Skip to content

Commit e747b84

Browse files
committed
添加XSpeed项目
1 parent c9141ca commit e747b84

40 files changed

+3883
-123
lines changed

QuantBox.XAPI/Callback/BaseApi.cs

+81
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,74 @@ protected virtual void Dispose(bool disposing)
105105
//base.Dispose(disposing);
106106
}
107107

108+
#region 做市商询价订阅,主要是XSpeed这个功能是在交易API中
109+
private Dictionary<string, SortedSet<string>> _SubscribedQuotes = new Dictionary<string, SortedSet<string>>();
110+
public Dictionary<string, SortedSet<string>> SubscribedQuotes
111+
{
112+
get
113+
{
114+
lock (locker)
115+
{
116+
return _SubscribedQuotes;
117+
}
118+
}
119+
}
120+
121+
public virtual void SubscribeQuote(string szInstrument, string szExchange)
122+
{
123+
lock (locker)
124+
{
125+
IntPtr szInstrumentPtr = Marshal.StringToHGlobalAnsi(szInstrument);
126+
IntPtr szExchangePtr = Marshal.StringToHGlobalAnsi(szExchange);
127+
128+
proxy.XRequest((byte)RequestType.SubscribeQuote, Handle, IntPtr.Zero, 0, 0,
129+
szInstrumentPtr, 0, szExchangePtr, 0, IntPtr.Zero, 0);
130+
131+
SortedSet<string> instruments;
132+
if (!_SubscribedQuotes.TryGetValue(szExchange, out instruments))
133+
{
134+
instruments = new SortedSet<string>();
135+
_SubscribedQuotes[szExchange] = instruments;
136+
}
137+
138+
szInstrument.Split(new char[2] { ';', ',' }).ToList().ForEach(x =>
139+
{
140+
instruments.Add(x);
141+
});
142+
143+
Marshal.FreeHGlobal(szInstrumentPtr);
144+
Marshal.FreeHGlobal(szExchangePtr);
145+
}
146+
}
147+
148+
public virtual void UnsubscribeQuote(string szInstrument, string szExchange)
149+
{
150+
lock (locker)
151+
{
152+
IntPtr szInstrumentPtr = Marshal.StringToHGlobalAnsi(szInstrument);
153+
IntPtr szExchangePtr = Marshal.StringToHGlobalAnsi(szExchange);
154+
155+
proxy.XRequest((byte)RequestType.UnsubscribeQuote, Handle, IntPtr.Zero, 0, 0,
156+
szInstrumentPtr, 0, szExchangePtr, 0, IntPtr.Zero, 0);
157+
158+
SortedSet<string> instruments;
159+
if (!_SubscribedQuotes.TryGetValue(szExchange, out instruments))
160+
{
161+
instruments = new SortedSet<string>();
162+
_SubscribedQuotes[szExchange] = instruments;
163+
}
164+
165+
szInstrument.Split(new char[2] { ';', ',' }).ToList().ForEach(x =>
166+
{
167+
instruments.Remove(x);
168+
});
169+
170+
Marshal.FreeHGlobal(szInstrumentPtr);
171+
Marshal.FreeHGlobal(szExchangePtr);
172+
}
173+
}
174+
#endregion
175+
108176
public virtual void Connect()
109177
{
110178
lock(locker)
@@ -136,6 +204,18 @@ public virtual void Connect()
136204
Marshal.FreeHGlobal(ServerIntPtr);
137205
Marshal.FreeHGlobal(UserIntPtr);
138206
}
207+
208+
// 做市商询价
209+
lock (locker)
210+
{
211+
foreach (var kv in SubscribedQuotes)
212+
{
213+
foreach (var kvv in kv.Value)
214+
{
215+
SubscribeQuote(kvv, kv.Key);
216+
}
217+
}
218+
}
139219
}
140220

141221
public virtual void Disconnect()
@@ -156,6 +236,7 @@ public virtual void Disconnect()
156236
proxy = null;
157237
Handle = IntPtr.Zero;
158238
}
239+
159240
}
160241

161242
private IntPtr _OnRespone(byte type, IntPtr pApi1, IntPtr pApi2, double double1, double double2, IntPtr ptr1, int size1, IntPtr ptr2, int size2, IntPtr ptr3, int size3)

QuantBox.XAPI/Callback/MarketDataApi.cs

-75
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,6 @@ public Dictionary<string, SortedSet<string>> SubscribedInstruments
2727
}
2828
}
2929
}
30-
31-
private Dictionary<string, SortedSet<string>> _SubscribedQuotes = new Dictionary<string, SortedSet<string>>();
32-
public Dictionary<string, SortedSet<string>> SubscribedQuotes
33-
{
34-
get
35-
{
36-
lock (locker)
37-
{
38-
return _SubscribedQuotes;
39-
}
40-
}
41-
}
4230
#endregion
4331

4432
#region 订阅行情
@@ -95,61 +83,6 @@ public virtual void Unsubscribe(string szInstrument, string szExchange)
9583
Marshal.FreeHGlobal(szExchangePtr);
9684
}
9785
}
98-
99-
public virtual void SubscribeQuote(string szInstrument, string szExchange)
100-
{
101-
lock (locker)
102-
{
103-
IntPtr szInstrumentPtr = Marshal.StringToHGlobalAnsi(szInstrument);
104-
IntPtr szExchangePtr = Marshal.StringToHGlobalAnsi(szExchange);
105-
106-
proxy.XRequest((byte)RequestType.SubscribeQuote, Handle, IntPtr.Zero, 0, 0,
107-
szInstrumentPtr, 0, szExchangePtr, 0, IntPtr.Zero, 0);
108-
109-
SortedSet<string> instruments;
110-
if (!_SubscribedQuotes.TryGetValue(szExchange, out instruments))
111-
{
112-
instruments = new SortedSet<string>();
113-
_SubscribedQuotes[szExchange] = instruments;
114-
}
115-
116-
szInstrument.Split(new char[2] { ';', ',' }).ToList().ForEach(x =>
117-
{
118-
instruments.Add(x);
119-
});
120-
121-
Marshal.FreeHGlobal(szInstrumentPtr);
122-
Marshal.FreeHGlobal(szExchangePtr);
123-
}
124-
}
125-
126-
public virtual void UnsubscribeQuote(string szInstrument, string szExchange)
127-
{
128-
lock (locker)
129-
{
130-
IntPtr szInstrumentPtr = Marshal.StringToHGlobalAnsi(szInstrument);
131-
IntPtr szExchangePtr = Marshal.StringToHGlobalAnsi(szExchange);
132-
133-
proxy.XRequest((byte)RequestType.UnsubscribeQuote, Handle, IntPtr.Zero, 0, 0,
134-
szInstrumentPtr, 0, szExchangePtr, 0, IntPtr.Zero, 0);
135-
136-
SortedSet<string> instruments;
137-
if (!_SubscribedQuotes.TryGetValue(szExchange, out instruments))
138-
{
139-
instruments = new SortedSet<string>();
140-
_SubscribedQuotes[szExchange] = instruments;
141-
}
142-
143-
szInstrument.Split(new char[2] { ';', ',' }).ToList().ForEach(x =>
144-
{
145-
instruments.Remove(x);
146-
});
147-
148-
Marshal.FreeHGlobal(szInstrumentPtr);
149-
Marshal.FreeHGlobal(szExchangePtr);
150-
}
151-
}
152-
15386
#endregion
15487

15588
protected override IntPtr OnRespone(byte type, IntPtr pApi1, IntPtr pApi2, double double1, double double2, IntPtr ptr1, int size1, IntPtr ptr2, int size2, IntPtr ptr3, int size3)
@@ -184,14 +117,6 @@ public override void Connect()
184117
Subscribe(kvv, kv.Key);
185118
}
186119
}
187-
188-
foreach (var kv in SubscribedQuotes)
189-
{
190-
foreach (var kvv in kv.Value)
191-
{
192-
SubscribeQuote(kvv, kv.Key);
193-
}
194-
}
195120
}
196121
}
197122
}

QuantBox_LTS_Level2/QuantBox_LTS_Level2.cbp

+1-2
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,9 @@
4242
<Add option="-fPIC" />
4343
</Compiler>
4444
<Linker>
45-
<Add library="thostmduserapi" />
4645
<Add library="QuantBox_Queue" />
46+
<Add library="L2mduserapi" />
4747
<Add directory="../include/LTS_L2/linux64" />
48-
<Add directory="../QuantBox.TAPI/bin" />
4948
</Linker>
5049
<Unit filename="../include/toolkit.cpp" />
5150
<Unit filename="../include/toolkit.h" />

0 commit comments

Comments
 (0)