CTP爬坑指北(五)

2023-05-14 14:58:39 来源:哔哩哔哩

众所周知,天下大坑共一石,CTP独占八斗。进行CTP开发时,里面需要注意的地方比较多。今天给大家聊一聊CTP中暗藏的一些坑,让新手避开陷阱。


(资料图片)

01

报单时的开平方向TThostFtdcCombOffsetFlagType和投机套保TThostFtdcCombHedgeFlagType,怎么填?

TThostFtdcCombOffsetFlagType是一个数组,元素值的类型为TThostFtdcOffsetFlagType。在最开始的设计中,单腿合约交易只需要填[0]位,组合合约交易时各分腿的开平标志从[0]开始,每个元素对应一条分腿,暂定为5位,当时市场上最长的组合合约为3条腿。但在后来的设计中,所有类型的合约都只需要填[0]位即可,因此把它当作TThostFtdcOffsetFlagType来处理就好。

与此类似的,组合投机套保标志CombHedgeFlag在设计之初也是为了处理组合套利合约而设计的多位,但现在也是只需要把它当作TThostFtdcHedgeFlagType,填[0]位就好

示例:

CThostFtdcInputOrderFieldord = { 0 };

ord.CombOffsetFlag[0] =  THOST_FTDC_OF_Close; // 平仓

ord.CombHedgeFlag[0] = THOST_FTDC_HF_Speculation; // 投机

02

API是否多线程安全的(linux以及windows平台)?

API和SPI是不同的线程,API可以同时被多个线程调用,也就是大家所说的线程安全性。这些特性和平台无关。因此,API是线程安全的,可以在多个线程调用API的接口函数。

03

投资者结算结果确认是什么意思?有什么用?

投资者在登录后首先需要确认(英文Confirm)自己的结算单(英文SettlementInfo,即账单),表示认可经纪商提供的交易结果,结算单确认后才可以进行交易操作。

终端可以使用ReqSettlementInfoConfirm请求确认结算单,请求时只需要填写经纪公司代码BrokerID和投资者代码InvestorID。

怎么查结算单内容呢?

查询结算单使用ReqQrySettlementInfo,若不填日期,则表示取上一交易日结算单,结算单内容的文本(Content)较长,会通过多条返回,需要自行拼接。拼接时注意中文编码的问题,见:结算单中有乱码?

那么,如何知道自己今天有没有确认过结算单呢?

使用ReqQrySettlementInfoConfirm可以查询当天客户结算单的确认情况,无记录返回(可能返回空指针)表示当天未确认结算单,为避免客户当天多次登陆多次重复确认结算单,建议在确认前先查询当天是否已经确认,如果客户已经确认过则不需要再次重复确认。

这里以快期2软件为例,来看看它是怎么处理确认结算的流程的。

打开快期2之后,由于我这个账户今天还没有确认过结算单,所以ReqQrySettlementInfoConfirm查询结算单确认情况发现,今天还没有确认过,所以快期软件执行ReqQrySettlementInfo查结算单,并将查询返回的结算单内容展示出来。如果在展示出来的结算单确认页面这里点击“确认”按钮,则会发送确认的命令ReqSettlementInfoConfirm

如果对结算单有异议,则点击“取消”,点击后会退出软件。

如果打开软件时,我这个账户今天已经确认过结算单,那么软件ReqQrySettlementInfoConfirm查询结算单确认情况就会发现,今天已经确认过了,无需再次确认,所以就不会去执行ReqQrySettlementInfo查结算单以及展示,即跳过后续的步骤,可正常使用软件交易。

流程图如下:

04

结算单可以自动解析么?格式是怎样的?

各个期货公司的结算单内容有一些小差别,但总的差别不大,而且格式是长期不变的。如果仔细研究,是可以实现自动解析的,从而从结算单中提取(历史)成交记录等。

这里提供一个通用的产生结算单的格式化的文件(有部分删改,某一个资管平台即是通过这个文件产生的结算单),以帮助大家解析,具体的使用方法就见仁见智了。

settlement_header2=_                                                                    制表时间 Creation Date:%8s

settlement_header3=_----------------------------------------------------------------------------------------------------

settlement_header4=_                             交易结算单(盯市) Settlement Statement(MTM)                             

settlement_header5=_客户号 Client ID:  %-16s客户名称 Client Name:%s

settlement_header6=_日期 Date:%8s

settlement_header7=_

settlement_header8=_

settlement_header9=_

settlement_header10=_

settlement_account_summary1=_                   资金状况  币种:人民币  Account Summary  Currency:CNY 

settlement_account_summary2=_----------------------------------------------------------------------------------------------------

settlement_account_summary3=_期初结存 Balance b/f:               %13.2f  基础保证金 Initial Margin:        %13.2f

settlement_account_summary4=_出 入 金 Deposit/Withdrawal:        %13.2f  期末结存 Balance c/f:             %13.2f

settlement_account_summary5=_平仓盈亏 Realized P/L:              %13.2f  质 押 金 Pledge Amount:           %13.2f

settlement_account_summary6=_持仓盯市盈亏 MTM P/L:               %13.2f  客户权益 Client Equity::         %13.2f

settlement_account_summary7=_期权执行盈亏 Exercise P/L:          %13.2f  货币质押保证金占用 FX Pledge Occ.:%13.2f

settlement_account_summary8=_手 续 费 Commission:                %13.2f  保证金占用 Margin Occupied:       %13.2f

settlement_account_summary9=_行权手续费 Exercise Fee:            %13.2f  交割保证金 Delivery Margin:       %13.2f

settlement_account_summary10=_交割手续费 Delivery Fee:            %13.2f  多头期权市值 Market value(long):  %13.2f

settlement_account_summary11=_货币质入 New FX Pledge:             %13.2f  空头期权市值 Market value(short): %13.2f

settlement_account_summary12=_货币质出 FX Redemption:             %13.2f  市值权益 Market value(equity):    %13.2f

settlement_account_summary13=_质押变化金额 Chg in Pledge Amt:     %13.2f  可用资金 Fund Avail.:             %13.2f

settlement_account_summary14=_权利金收入 Premium received:        %13.2f  风 险 度 Risk Degree:            %13.2f%%

settlement_account_summary17=_

settlement_deposit_withdrawal_head1=_                                        出入金明细 Deposit/Withdrawal 

settlement_deposit_withdrawal_head2=_----------------------------------------------------------------------------------------------------------------

settlement_deposit_withdrawal_head3=_|发生日期|       出入金类型       |      入金      |      出金      |                   说明                   |

settlement_deposit_withdrawal_head4=_|  Date  |          Type          |    Deposit     |   Withdrawal   |                   Note                   |

settlement_deposit_withdrawal_head5=_----------------------------------------------------------------------------------------------------------------

settlement_deposit_withdrawal_single_record1=_|%-8s|出入金                  |%16.2f|%16.2f|%-42s|

settlement_deposit_withdrawal_end1=_----------------------------------------------------------------------------------------------------------------

settlement_deposit_withdrawal_end2=_|共%4d条|                        |%16.2f|%16.2f|                                          |

settlement_deposit_withdrawal_end3=_----------------------------------------------------------------------------------------------------------------

settlement_deposit_withdrawal_end4=_出入金---Deposit/Withdrawal     银期转账---Bank-Futures Transfer    银期换汇---Bank-Futures FX Exchange

settlement_deposit_withdrawal_end5=_

settlement_trade_head1=_                                                              成交记录 Transaction Record 

settlement_trade_head2=_---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_trade_head3=_|成交日期| 交易所 |       品种       |      合约      |买/卖|   投/保    |  成交价  | 手数 |   成交额   |       开平       |  手续费  |  平仓盈亏  |     权利金收支      |  成交序号  |

settlement_trade_head4=_|  Date  |Exchange|     Product      |   Instrument   | B/S |    S/H     |   Price  | Lots |  Turnover  |       O/C        |   Fee    |Realized P/L|Premium Received/Paid|  Trans.No. |

settlement_trade_head5=_---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_trade_single_record1=_|%-8s|%-8s|%-18s|     %-11s|%-5s|投          |%10.3f|%6d|%12.2f|%-18s|%10.2f|%12.2f|                 0.00|%-12s|

settlement_trade_end1=_---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_trade_end2=_|共%4d条|        |                  |                      |            |          |%6d|%12.2f|                  |%10.2f|%12.2f|                 0.00|            |

settlement_trade_end3=_---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_trade_end4=_能源中心---INE  上期所---SHFE   中金所---CFFEX  大商所---DCE   郑商所---CZCE

settlement_trade_end5=_买---Buy   卖---Sell

settlement_trade_end6=_投---Speculation  保---Hedge  套---Arbitrage 般---General

settlement_trade_end7=_开---Open 平---Close 平今---Close Today 强平---Forced Liquidation 平昨---Close Prev. 强减---Forced Reduction 本地强平---Local Forced Liquidation 

settlement_trade_end8=_

settlement_position_closed_head1=_                                                         平仓明细 Position Closed 

settlement_position_closed_head2=_----------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_closed_head3=_| 平仓日期 | 交易所 |       品种       |      合约      |开仓日期 |买/卖|   手数   |     开仓价    |     昨结算     |   成交价   |  平仓盈亏  |     权利金收支      |

settlement_position_closed_head4=_|Close Date|Exchange|      Product     |   Instrument   |Open Date| B/S |   Lots   |Pos. Open Price|   Prev. Sttl   |Trans. Price|Realized P/L|Premium Received/Paid|

settlement_position_closed_head5=_----------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_closed_single_record1=_|%-10s|%-8s|%-18s|%-16s|%-9s|%-5s|%10d|%15.3f|%16.3f|%12.3f|%12.2f|                 0.000|

settlement_position_closed_end1=_----------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_closed_end2=_|共%6d条|        |                  |                |         |     |%10d|               |                |            |%12.2f|                  0.00|

settlement_position_closed_end3=_----------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_closed_end4=_能源中心---INE  上期所---SHFE   中金所---CFFEX  大商所---DCE   郑商所---CZCE  

settlement_position_closed_end5=_买---Buy   卖---Sell 

settlement_position_closed_end6=_

settlement_position_detail_head1=_                                              持仓明细 Positions Detail

settlement_position_detail_head2=_-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_detail_head3=_| 交易所 |       品种       |      合约      |开仓日期 |   投/保    |买/卖|持仓量 |    开仓价     |     昨结算     |     结算价     |  浮动盈亏  |  盯市盈亏 |  保证金   |       期权市值       |

settlement_position_detail_head4=_|Exchange|     Product      |   Instrument   |Open Date|    S/H     | B/S |Positon|Pos. Open Price|   Prev. Sttl   |Settlement Price| Accum. P/L |  MTM P/L  |  Margin   | Market Value(Options)|

settlement_position_detail_head5=_-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_detail_single_record1=_|%-8s|%-18s|     %-11s|%9s|投          |%-5s|%7d|%15.3f|%16.3f|%16.3f|%12.2f|%11.2f|%11.2f|                  0.00|

settlement_position_detail_end1=_-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_detail_end2=_|共%4d条|                  |                |         |            |     |%7d|               |                |                |%12.2f|%11.2f|%11.2f|                  0.00|

settlement_position_detail_end3=_-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_detail_end4=_能源中心---INE  上期所---SHFE   中金所---CFFEX  大商所---DCE   郑商所---CZCE

settlement_position_detail_end5=_买---Buy   卖---Sell  

settlement_position_detail_end6=_投---Speculation  保---Hedge  套---Arbitrage 般---General

settlement_position_detail_end7=_

settlement_position_head1=_                                                         持仓汇总 Positions

settlement_position_head2=_------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_head3=_|       品种       |      合约      |    买持     |    买均价   |     卖持     |    卖均价    |  昨结算  |  今结算  |持仓盯市盈亏|  保证金占用   |  投/保     |   多头期权市值   |   空头期权市值    |

settlement_position_head4=_|      Product     |   Instrument   |  Long Pos.  |Avg Buy Price|  Short Pos.  |Avg Sell Price|Prev. Sttl|Sttl Today|  MTM P/L   |Margin Occupied|    S/H     |Market Value(Long)|Market Value(Short)|

settlement_position_head5=_------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_single_record1=_|%-18s|%-16s|%13d|%13.3f|%14d|%14.3f|%10.3f|%10.3f|%12.2f|%15.2f|投          |              0.00|               0.00|

settlement_position_end1=_------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_end2=_|共%6d条        |                |%13d|             |%14d|              |          |          |%12.2f|%15.2f|            |              0.00|               0.00|

settlement_position_end3=_------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

settlement_position_end4=_

settlement_position_end5=_

settlement_position_end6=_

settlement_position_end7=_

settlement_position_end8=_

关键词:

推荐内容