Skip to content

Commit 278d808

Browse files
committed
简单修改
1 parent 403323f commit 278d808

15 files changed

Lines changed: 102 additions & 38 deletions

File tree

QuantBox.XAPI/Callback/BaseApi.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,19 @@ public class BaseApi : IDisposable
2020
protected object locker = new object();
2121

2222
public bool IsConnected { get; protected set; }
23-
private int _reconnect;
24-
public int Reconnect
23+
private int _reconnectInterval;
24+
public int ReconnectInterval
2525
{
26-
get { return _reconnect; }
26+
get { return _reconnectInterval; }
2727
set {
28-
_reconnect = value;
28+
_reconnectInterval = value;
2929
_Timer.Elapsed -= _Timer_Elapsed;
30-
if (_reconnect > 1000 * 10)
30+
if (_reconnectInterval >= 10)
3131
{
3232
_Timer.Elapsed += _Timer_Elapsed;
33-
_Timer.Interval = _reconnect;
33+
_Timer.Interval = _reconnectInterval*1000;
3434
}
35-
_Timer.Enabled = _reconnect > 1000 * 10;
35+
_Timer.Enabled = _reconnectInterval >= 10;
3636
}
3737
}
3838

@@ -55,7 +55,7 @@ public BaseApi(string path1,Queue queue)
5555
_XRespone = _OnRespone;
5656
_Queue = queue;
5757

58-
Reconnect = 0;
58+
ReconnectInterval = 0;
5959
}
6060

6161
void _Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)

QuantBox.XAPI/Enum.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,15 @@ public enum ConnectionStatus : byte
8383
[Description("未知")]
8484
Unknown,
8585
}
86+
87+
enum DataLevelType : byte
88+
{
89+
L0,
90+
L1,
91+
L5,
92+
L10,
93+
FULL,
94+
};
8695
public enum ResumeType : byte
8796
{
8897
Restart,

QuantBox.XAPI/RequestType.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public enum RequestType:byte
1111
Create = 0, // 创建
1212
Release, // 销毁
1313
Register, // 注册回调
14-
14+
Config, // 配置参数
1515

1616
Connect, // 开始/连接
1717
Disconnect, // 停止/断开

QuantBox.XAPI/Struct.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ public struct ServerInfoField
3434
/// <summary>
3535
/// 订阅主题
3636
/// </summary>
37-
public int IsUsingUdp;
37+
[MarshalAs(UnmanagedType.U1)]
38+
public bool IsUsingUdp;
3839
/// <summary>
3940
/// 订阅主题
4041
/// </summary>
41-
public int IsMulticast;
42+
[MarshalAs(UnmanagedType.U1)]
43+
public bool IsMulticast;
4244
/// <summary>
4345
/// 订阅主题
4446
/// </summary>
@@ -153,7 +155,7 @@ public struct DepthMarketDataField
153155
/// <summary>
154156
/// 数量
155157
/// </summary>
156-
public int Volume;
158+
public double Volume;
157159
/// <summary>
158160
/// 成交金额
159161
/// </summary>

QuantBox_CTP_Quote/MdUserApi.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ void CMdUserApi::Register(void* pMsgQueue)
3232
m_msgQueue = pMsgQueue;
3333
}
3434

35+
ConfigInfoField* CMdUserApi::Config(ConfigInfoField* pConfigInfo)
36+
{
37+
return nullptr;
38+
}
39+
3540
bool CMdUserApi::IsErrorRspInfo(CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
3641
{
3742
bool bRet = ((pRspInfo) && (pRspInfo->ErrorID != 0));

QuantBox_CTP_Quote/MdUserApi.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class CMdUserApi :
1818
virtual ~CMdUserApi(void);
1919

2020
void Register(void* pMsgQueue);
21+
ConfigInfoField* Config(ConfigInfoField* pConfigInfo);
2122

2223
void Connect(const string& szPath,
2324
ServerInfoField* pServerInfo,

QuantBox_CTP_Quote/main.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, do
3232
case RequestType::Register:
3333
pApi->Register(ptr1);
3434
break;
35+
case RequestType::Config:
36+
return (void*)pApi->Config((ConfigInfoField*)ptr1);
37+
break;
3538
case RequestType::Connect:
3639
pApi->Connect((const char*)ptr3, (ServerInfoField*)ptr1, (UserInfoField*)ptr2);
3740
break;

QuantBox_CTP_Trade/QuantBox_CTP_Trade.vcxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
<Text Include="ReadMe.txt" />
8383
</ItemGroup>
8484
<ItemGroup>
85+
<ClInclude Include="..\include\ApiEnum.h" />
8586
<ClInclude Include="..\include\toolkit.h" />
8687
<ClInclude Include="stdafx.h" />
8788
<ClInclude Include="targetver.h" />

QuantBox_CTP_Trade/QuantBox_CTP_Trade.vcxproj.filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
<Filter Include="lib">
1717
<UniqueIdentifier>{946c81af-2e24-4e96-b25c-fbbeca12efed}</UniqueIdentifier>
1818
</Filter>
19+
<Filter Include="include">
20+
<UniqueIdentifier>{85e89cab-d667-4133-9504-c4becf5250d9}</UniqueIdentifier>
21+
</Filter>
1922
</ItemGroup>
2023
<ItemGroup>
2124
<Text Include="ReadMe.txt" />
@@ -36,6 +39,9 @@
3639
<ClInclude Include="..\include\toolkit.h">
3740
<Filter>Header Files</Filter>
3841
</ClInclude>
42+
<ClInclude Include="..\include\ApiEnum.h">
43+
<Filter>include</Filter>
44+
</ClInclude>
3945
</ItemGroup>
4046
<ItemGroup>
4147
<ClCompile Include="stdafx.cpp">

QuantBox_LTS_Level2/Level2UserApi.cpp

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,32 @@ void CLevel2UserApi::OnRtnL2MarketData(CSecurityFtdcL2MarketDataField *pL2Market
378378
marketData.BidVolume5 = pL2MarketData->BidVolume5;
379379
marketData.AskPrice5 = pL2MarketData->OfferPrice5;
380380
marketData.AskVolume5 = pL2MarketData->OfferVolume5;
381+
382+
//marketData.BidPrice5 = pL2MarketData->BidPrice5;
383+
//marketData.BidVolume5 = pL2MarketData->BidVolume5;
384+
//marketData.AskPrice5 = pL2MarketData->OfferPrice5;
385+
//marketData.AskVolume5 = pL2MarketData->OfferVolume5;
386+
387+
//marketData.BidPrice5 = pL2MarketData->BidPrice5;
388+
//marketData.BidVolume5 = pL2MarketData->BidVolume5;
389+
//marketData.AskPrice5 = pL2MarketData->OfferPrice5;
390+
//marketData.AskVolume5 = pL2MarketData->OfferVolume5;
391+
392+
//marketData.BidPrice5 = pL2MarketData->BidPrice5;
393+
//marketData.BidVolume5 = pL2MarketData->BidVolume5;
394+
//marketData.AskPrice5 = pL2MarketData->OfferPrice5;
395+
//marketData.AskVolume5 = pL2MarketData->OfferVolume5;
396+
397+
//marketData.BidPrice5 = pL2MarketData->BidPrice5;
398+
//marketData.BidVolume5 = pL2MarketData->BidVolume5;
399+
//marketData.AskPrice5 = pL2MarketData->OfferPrice5;
400+
//marketData.AskVolume5 = pL2MarketData->OfferVolume5;
401+
402+
//marketData.BidPrice5 = pL2MarketData->BidPrice5;
403+
//marketData.BidVolume5 = pL2MarketData->BidVolume5;
404+
//marketData.AskPrice5 = pL2MarketData->OfferPrice5;
405+
//marketData.AskVolume5 = pL2MarketData->OfferVolume5;
406+
381407
}
382408

383409
XRespone(ResponeType::OnRtnDepthMarketData, m_msgQueue, this, 0, 0, &marketData, sizeof(DepthMarketDataField), nullptr, 0, nullptr, 0);
@@ -532,23 +558,23 @@ void CLevel2UserApi::OnRtnL2Index(CSecurityFtdcL2IndexField *pL2Index)
532558
sprintf(marketData.Symbol, "%s.%s", marketData.InstrumentID, marketData.ExchangeID);
533559
GetExchangeTime(pL2Index, marketData.ExchangeTime);
534560

535-
//marketData.LastPrice = pL2Index->LastPrice;
536-
//marketData.Volume = pL2Index->TotalTradeVolume;
537-
//marketData.Turnover = pL2Index->TotalTradeValue;
538-
////marketData.OpenInterest = pL2MarketData->OpenInterest;
539-
////marketData.AveragePrice = pL2MarketData->AveragePrice;
561+
marketData.LastPrice = pL2Index->LastIndex;
562+
marketData.Volume = pL2Index->TotalVolume;
563+
marketData.Turnover = pL2Index->TurnOver;
564+
//marketData.OpenInterest = pL2Index->OpenInterest;
565+
//marketData.AveragePrice = pL2Index->AveragePrice;
540566

541-
//marketData.OpenPrice = pL2Index->OpenPrice;
542-
//marketData.HighestPrice = pL2Index->HighPrice;
543-
//marketData.LowestPrice = pL2Index->LowPrice;
544-
//marketData.ClosePrice = pL2Index->ClosePrice;
545-
////marketData.SettlementPrice = pL2MarketData->SettlementPrice;
567+
marketData.OpenPrice = pL2Index->OpenIndex;
568+
marketData.HighestPrice = pL2Index->HighIndex;
569+
marketData.LowestPrice = pL2Index->LowIndex;
570+
marketData.ClosePrice = pL2Index->CloseIndex;
571+
//marketData.SettlementPrice = pL2Index->SettlementPrice;
546572

547-
////marketData.UpperLimitPrice = pL2MarketData->UpperLimitPrice;
548-
////marketData.LowerLimitPrice = pL2MarketData->LowerLimitPrice;
549-
////marketData.PreClosePrice = pL2MarketData->PreClosePrice;
550-
////marketData.PreSettlementPrice = pL2MarketData->PreSettlementPrice;
551-
////marketData.PreOpenInterest = pL2MarketData->PreOpenInterest;
573+
//marketData.UpperLimitPrice = pL2Index->UpperLimitPrice;
574+
//marketData.LowerLimitPrice = pL2Index->LowerLimitPrice;
575+
marketData.PreClosePrice = pL2Index->PreCloseIndex;
576+
//marketData.PreSettlementPrice = pL2Index->PreSettlementPrice;
577+
//marketData.PreOpenInterest = pL2Index->PreOpenInterest;
552578

553579
//marketData.BidPrice1 = pL2MarketData->BidPrice1;
554580
//marketData.BidVolume1 = pL2MarketData->BidVolume1;
@@ -578,5 +604,5 @@ void CLevel2UserApi::OnRtnL2Index(CSecurityFtdcL2IndexField *pL2Index)
578604
// marketData.AskVolume5 = pL2MarketData->OfferVolume5;
579605
//}
580606

581-
XRespone(ResponeType::OnRtnDepthMarketData, m_msgQueue, this, 0, 0, &marketData, sizeof(DepthMarketDataField), nullptr, 0, nullptr, 0);
607+
XRespone(ResponeType::OnRtnDepthMarketData, m_msgQueue, this, DataLevelType::L0, 0, &marketData, sizeof(DepthMarketDataField), nullptr, 0, nullptr, 0);
582608
}

0 commit comments

Comments
 (0)