CTP 接口COM封装使用指南Word格式文档下载.docx
- 文档编号:17281700
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:21
- 大小:22.55KB
CTP 接口COM封装使用指南Word格式文档下载.docx
《CTP 接口COM封装使用指南Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《CTP 接口COM封装使用指南Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
参数:
pszInstrumentID,合约代码,区分大小写;
volume,开仓手数,
price,开仓价格,0表示以市价开仓(对于上期所,
以停板价+立即撤单来模拟)
OrderID,返回该报单的唯一编号,可以通过这个编号
来跟踪此报单;
✧Sell([in]BSTRpszInstrumentID,[in]intvolume,[in]doubleprice,[out]long*OrderID);
对指定的合约卖出平仓;
volume,平仓手数,
price,平仓价格,0表示以市价平仓(对于上期所,
✧Short([in]BSTRpszInstrumentID,[in]intvolume,[in]doubleprice,[out]long*OrderID);
说明:
对指定的合约卖出开仓;
OrderID,返回该报单的唯一编号,可以通过这个
编号来跟踪此报单;
✧Cover([in]BSTRpszInstrumentID,[in]intvolume,[in]doubleprice,[out]long*OrderID);
对指定的合约买入平仓;
OrderID,返回该报单的唯一编号,可以通过这个编号来
跟踪此报单;
✧PlaceOrder([in]BSTRpszInstrumentID,[in]intbuySell,[in]intopenClose,[in]intvolume,[in]doubleprice,[out]long*OrderID);
buySell,买卖,0为买,1为卖;
openClose,开平,0为开,1为平;
✧CancelOrder([in]longOrderID,[out]int*status);
对指定的报单进行撤单操作;
OrderID,指定的报单号;
Status,返回代码,>
0表示已经对该报单发出撤单指令,
<
=0表示该报单不存在,或者已经不可撤;
✧SubscribeMD([in]BSTRInstrumentID);
订阅某个合约的行情数据。
在订阅了后,会通过OnMarketData事件将该合约的行情发出。
InstrumentID–合约代码,区分大小写。
✧GetLongPos([in]BSTRInstrumentID,[out]long*LongPos,[out]double*PositionPrice);
返回某个合约的多头(买持)仓位。
LongPos–返回的多头(买持)仓位大小;
PositionPrice-多头仓位的持仓均价;
✧GetLongClosable([in]BSTRInstrumentID,[out]long*LongClosable);
返回某个合约的多头(买持)可平仓位。
LongClosable–返回的多头(买持)仓位可平量;
✧GetShortPos([in]BSTRInstrumentID,[out]long*ShortPos,[out]double*PositionPrice);
返回某个合约的空头(卖持)仓位。
LongPos–返回的空头(卖持)仓位大小;
PositionPrice-多头仓位的持仓均价;
✧GetShortClosable([in]BSTRInstrumentID,[out]long*ShortClosable);
返回某个合约的空头(卖持)可平仓位。
ShortClosable–返回的空头(卖持)仓位的可平量;
✧IsOrderOpen([in]longOrderID,[out]BOOL*IsOpen);
判断某个报单是否处于可撤状态。
OrderID–报单编号。
IsOpen–不为0表示处于可撤状态,0表示不可撤;
✧GetMarketData([in]BSTRInstrumentID,[out]double*YdClose,[out]double*YdSettlement,[out]double*Open,[out]double*Last,[out]double*Bid1,[out]double*Ask1,[out]int*Bid1Volume,[out]int*Ask1Volume,[out]double*Highest,[out]double*Lowest,[out]int*TradedVolume,[out]double*TradedAmmount);
获取一个合约当前最新行情数据。
InstrumentID–指定合约编号。
YdClose–昨日收盘价;
YdSettlement-昨日结算价
Open-今日开盘价
Last-今日最新价
Bid1-买一价
Ask1-卖一价
Bid1Volume-买一量
Ask1Volume-卖一量
Highest-今日最高价
Lowest-今日最低价
TradedVolume-今日成交量
TradedAmmount-今日成交额
✧GetAccount([out]double*Balance,[out]double*Available);
获取当前帐户的用户权益和可用资金。
Balance-当前帐户的用户权益可用资金
Available-当前帐户的可用资金
✧GetInstruments([out]SAFEARRAY(InstrumentField)*ppIns,[out]int*Count)
获取所有合约列表;
ppIns–InstrumentField指针数组;
Count-合约数目,
✧GetInstrumentInfo([in]BSTRInstrumentID,[out]int*Multiply,[out]double*PriceUnit);
获得一个合约的乘数和最小价格变动单位;
该方法需要在OnInitFinished事件之后调用。
InstrumentID–合约编号
Multiply–合约乘数;
PriceUnit–合约最小价格变动单位;
✧GetMarginRate([in]BSTRInstrumentID,[out]double*MarginRate,[out]BSTR*ExpireDate);
获得一个合约的保证金率乘数和到期日,该方法需要在OnInitFinished事件之后调用,MarginRate在第一次调用时可能不能返回,此时可以在OnMarginRate事件中接受。
MarginRate–合约乘数;
ExpireDate–合约最小价格变动单位;
✧CreateKBars(BSTRInstrumentID,intPeriod,intInterval);
创建一个Bar序列,之后,COM会通过OnBar事件将生成的Bar推送出来。
InstrumentID–合约代码;
Period–周期类型,0–分钟线1-小时线;
Interval-周期大小;
大于1
1.4COM触发事件
客户端通过事件来接受行情、资金和仓位等信息。
该COM组件发出的事件如下:
✧OnAccount–当投资者账户信息发生变化时,此事件被触发;
参数:
PreBalance期初用户权益
Balance当前用户权益
Available当前可用资金
Commission今日以发生手续费
FrozenCommission今日冻结手续费
Margin占用保证金
FrozenMargin今日冻结保证金
CloseProfit今日平仓盈亏
PositionProfit持仓盈亏
✧OnMarketData-当某个合约有新行情到达时,此事件被触发;
InstrumentID合约编号
BidPrice1买一价
BidVolume1买一量
AskPrice1卖一价
AskVolume1卖一量
OpenPrice开盘价
HighestPrice最高价
LowestPrice最低价
LastPrice最新价
OpenInterest持仓量
Volume成交量
UpperLimitPrice涨停价
LowerLimitPrice跌停价
PreSettlementPrice昨结算价
AveragePrice今日平均价
UpdateTime行情更新时间
UpdateMilliSecond更新毫秒数为0或500
✧OnOrder–当某个报单信息发生变化时,此事件被触发;
OrderID报单编号
InstrumentID和约编号
IsBuy是否为买,非0为买,否则为卖;
IsOpen是否开仓,非0为开仓,否则为平仓
Volume委托数量
Price委托价格
TradedVolume已成交数量
AvgTradePrice成交均价
OrderStatus报单当前状态
OrderSysID交易所报单号
InsertTime委托时间
StatusMsg状态信息,如果该报单失败,则为失败原因。
✧OnOrderCanceled-当出现报单错误或者报单被撤时,此事件被触发;
OrderID-报单编号
ErrorID-当为错单时的错误编号;
ErrorMsg-当为错单时的错误信息;
✧OnOrderFinished–当某个报单全部成交后,此事件被触发;
此事件总是在一个报单的所有OnTrade事件之后发生。
✧OnPosition–当某个合约的仓位信息发生变化时,此事件被触发;
InstrumentID-合约代码
IsLong-是否为多仓
Volume-持仓量
CloseProfit-今日平仓盈亏
AvgPositionPrice持仓均价昨仓,是结算之后的均价;
AvgOpenPrice开仓均价;
按开仓价计算的均价;
TotalClosable总可平量
TodayClosable今日可平量
✧OnTrade-当所发出的报单有成交时,此事件被触发;
InstrumentID合约代码
IsBuy是否为买,非0为买,否则为卖;
IsOpen是否开仓,非0为开,否则为平;
ThisTradeVolume本次成交数量
ThisTradePrice本次成交均价
TradeTime成交时间;
✧OnTradeConnected-当交易连线后,此事件被触发;
✧OnTradeDisconnected-当交易断线后,此事件被触发;
✧OnMDConnected-当行情连线后,此事件被触发;
✧OnMDDisconnected-当行情断线后,此事件被触发;
✧OnOrderActionFailed([in]longOrderID,[in]intErrorID);
当撤单失败时,此事件被触发;
✧OnInstrumentStatus–交易所状态信息通知
InstrumentID–交易所随机选择的一个合约;
ExchangeID–交易所代码:
CFFEX中金所;
SHFE上期所;
DCE大商所;
CZCE郑商所;
EnterTime–进入本状态时间;
NewState–当前状态;
其值如下所示:
//开盘前
#defineTHOST_FTDC_IS_BeforeTrading'
0'
///非交易
#defineTHOST_FTDC_IS_NoTrading'
1'
///连续交易
#defineTHOST_FTDC_IS_Continous'
2'
///集合竞价报单
#defineTHOST_FTDC_IS_AuctionOrdering'
3'
///集合竞价价格平衡
#defineTHOST_FTDC_IS_AuctionBalance'
4'
///集合竞价撮合
#defineTHOST_FTDC_IS_AuctionMatch'
5'
///收盘
#defineTHOST_FTDC_IS_Closed'
6'
✧OnInitFinished–相关初始化工作完成,在这个事件通知之后,可以通过GetInstruments方法获得所有合约列表。
✧OnMarginRate
Desc:
Firedwhenaninstruments’marginratewasqueriedback.
Params:
InstrumentID
longMarginRate
shortMarginRate
✧OnCommissionRate
Firedwhenaninstruments’commissionratewasqueriedback.
InstrumentID
OpenCommissionRateByMoney
OpenCommissionRateByVolume
CloseCommissionRateByMoney
CloseCommissionRateByVolumeCloseTodayCommissionRateByMoneyCloseTodayCommissionRateByVolume
✧OnBar–新创建了Bar或者某个Bar被关闭;
InstrumentID–合约编号;
BeginTime–本Bar的开始时间;
Period–周期类型,0–分钟线;
1–小时线;
Interval–周期大小;
Open–本Bar的开盘价,
High–本Bar的最高价;
Low-本Bar的最低价;
Close–本Bar的收盘价;
Volume-本bar时间内的成交量;
Position-本Bar结束时的持仓量;
Status–本Bar的状态,0-未关闭,1–关闭;
注1:
接口中涉及到的ErrorID和ErrorMsg参见发布包中的error.xml;
注2:
OrderStatus的取值如下:
///全部成交
#defineTHOST_FTDC_OST_AllTraded'
///部分成交还在队列中
#defineTHOST_FTDC_OST_PartTradedQueueing'
///部分成交不在队列中
#defineTHOST_FTDC_OST_PartTradedNotQueueing'
///未成交还在队列中
#defineTHOST_FTDC_OST_NoTradeQueueing'
///未成交不在队列中
#defineTHOST_FTDC_OST_NoTradeNotQueueing'
///撤单
#defineTHOST_FTDC_OST_Canceled'
///未知
#defineTHOST_FTDC_OST_Unknown'
a'
///尚未触发
#defineTHOST_FTDC_OST_NotTouched'
b'
///已触发
#defineTHOST_FTDC_OST_Touched'
c'
1.5COM使用示例
1.5.1Excel示例
见ctpcom_sample.xls
1.5.2VB6.0示例
DimWithEventsctpAsICTPClientAPI
PrivateSubLogin_Click()
DimerrorIDAsLong
DimsuccAsLong
Setctp=NewCTPCOMLib.ICTPClientAPI
Callctp.Login("
config.xml"
"
00100"
888888"
errorID)
IferrorID=0Then
MsgBox"
登录ok"
Else
登录错误:
"
&
errorID
EndIf
EndSub
PrivateSubBuy_Click()
DimOrderIDAsLong
DimindexAsInteger
Dimtm1,tm2AsDate
Callctp.Buy("
IF1008"
1,0,OrderID)
PrivateSubMD_Click()
Callctp.SubscribeMD("
)
PrivateSubClose_Click()
Setctp=Nothing
PrivateSubSell_Click()
Callctp.Sell("
PrivateSubctp_OnAccount(ByValPreBalanceAsDouble,ByValBalanceAsDouble,ByValAvailableAsLong,ByValCommissionAsDouble,ByValFrozenCommissionAsDouble,ByValMarginAsDouble,ByValFrozenMarginAsDouble,ByValCloseProfitAsDouble,ByValPositionProfitAsDouble)
Label1.Caption=Available
PrivateSubctp_OnMarketData(ByValInstrumentIDAsString,ByValBidPrice1AsDouble,ByValBidVolume1AsLong,ByValAskPrice1AsDouble,ByValAskVolume1AsLong,ByValOpenPriceAsDouble,ByValHighestPriceAsDouble,ByValLowestPriceAsDouble,ByValLastPriceAsDouble,ByValOpenInterestAsLong,ByValVolumeAsLong,ByValUpperLimitPriceAsDouble,ByValLowerLimitPriceAsDouble,ByValPreSettlementPriceAsDouble,ByValAveragePriceAsDouble,ByValUpdateTimeAs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CTP 接口COM封装使用指南 接口 COM 封装 使用指南