国外期货程序化交易之报单流程讲解

      本国期货和约的组成顺序,这两个开展也因为易胜,郑州的SDK。,经过易胜经商API使筋疲力尽买卖定货单。。结果,它们都是一家公司号的SDK。,从此处,买卖API的设计作风与出价根本平等的。,呼叫逻辑根本平等的。。写信编码时,需求处置两个方面。,东西是新鲜的。,那就是举起东西自找使迷惑。,另东西是回调。,答复自找使迷惑,这边心不在焉更多的小事。。合奏上讲,事务剥削诉讼程序颇有趣。,仍然更多的事实要处置。。次要应用的头记录是:、、及,静态库为:。下面是流程图和稍微编码示例。:

       1. 确立或使安全Yi Sheng TapAPI示例:

  1. IEsunnyTradeApi *pTradeApi = CreateEsunnyForeignTradeApi(szCertInfo, &result, szLogFilePath, szAppId);  
  2. if (pTradeApi == NULL)  
  3. {  
  4.     LOG_INFO << 确立或使安全经商API先例忘记,不公正的码:” << result;  
  5.     return;  
  6. }  

       经过理由CreateEsunnyForeignTradeApi()确立或使安全api先例——pTradeApi,过后理由先例来启动各式各样的自找使迷惑。,拿 … 来说,衔接上菜用具。、用户登录、报单、撤单、查询仓库栈、查询资产等。。

       2. 确立或使安全TabAPI回调先例:

  1. EsunnyTradeSpi *pTradeSpi = new EsunnyTradeSpi(pTradeApi, this);  

       这需求写信相当的的引起类。,该类需恢宏易盛求婚的IEsunnyTradeSpi类。重写该类达到目标办法,处置Yisheng上菜用具发送的各式各样的录音。。

       3. 连接下面的两个要求。,启动衔接上菜用具和用户登录。:

  1. pTradeApi->SetSpi(pTradeSpi);  
  2. pTradeSpi->connect(serverAddr, port, username,密码电文)

       衔接上菜用具切断编码:

  1. void EsunnyTradeSpi::connect(string serverAddr, uint16_t port, string username,字母行密码电文
  2. {  
  3.       
  4.     serverAddr_ = serverAddr;  
  5.     port_ = port;  
  6.     username_ = username;  
  7.     password_ = password;  
  8.   
  9.       
  10.     TEsAddressField addrField;  
  11.     strcpy(, ());  
  12.      = port_;  
  13.     bool ret = (pTradeApi_ != NULL) ? pTradeApi_->Open(addrField) : false;  
  14.     if (!RET)
  15.     {  
  16.         LOG_INFO << username_ << 自找使迷惑:衔接上菜用具不公正的。 << Err_Unknown;  
  17.     }  
  18. }  

       自找使迷惑收回后,OnOpen()将回调以答复上述的自找使迷惑。,可以在OnOPEN()应变量中读到用户登录逻辑。,理由pTraceAPI(>登录)来启动登录。,OnLogin()及OnInitFinished()会持续地答复上述的自找使迷惑,推理来回的物,您可以批准即使已使筋疲力尽登录。,此外API即使被设定初值。。一旦出错,将有相当的的不公正的编码来回。,轻易发展的成绩。

  1. void __cdecl EsunnyTradeSpi::OnOpen()  
  2. {  
  3. }  
  4.   
  5. void __cdecl EsunnyTradeSpi::OnLogin(const TEsLoginRspField *rsp, int errCode, const int iReqID)  
  6. {  
  7. }  
  8.   
  9. void __cdecl EsunnyTradeSpi::OnInitFinished(int errCode)  
  10. {  
  11. }  

       4. 期货报单:

      陈述逻辑应是完整地买卖系统的要点切断。陈述次要关涉以下效能,从ON开端的应变量是从iESunnTrutsPPI类恢宏的。,剥削人员需求重写:

       (1)OrderInsert():报单自找使迷惑

  1. TEsOrderInsertReqField reqField;  
  2. memset(&reqField, 0, sizeof(TEsOrderInsertReqField));  
  3. ……  
  4. ……  
  5. pTradeApi_->OrderInsert(reqField,ReqID)

       陈述有很多决定因素。,需求本来的填写事情/任职培训。、开/闭场所、时价/价钱限度局限、付托发展成为、佣钱价钱等。。这需求查询文档和易胜的示例演示。,OrderInsert()陈述可在使筋疲力尽后理由。。

       (2)OnRspOrderInsert():报单自找使迷惑应对

  1. void __cdecl EsunnyTradeSpi::OnRspOrderInsert(const TEsOrderInsertRspField *rsp, int errCode, const int iReqID)  
  2. {  
  3. }  

       宣言成后,应变量将回调。,它将卓越的地预示协商会议即使成。,伺侯剥削人员处置事情逻辑。

       (3)OnRtnOrderState():付托变换告诉

  1. void __cdecl EsunnyTradeSpi::OnRtnOrderState(const TEsOrderStateNoticeField &rsp)  
  2. {  
  3. }  

       当付托公务的替换时,将回调。总而言之,付托的位置次要是:在排队、切断买卖、完整成交,一次报单,万一有更多的发展成为,通常找错误一次所一些买卖。,它将被划堕入落落大方的买卖。,因而为了应变量将持续回调。。

       (4)OnRtnMatchState():买卖变换推进运动告诉

  1. void __cdecl EsunnyTradeSpi::OnRtnMatchState(const TEsMatchStateNoticeField &rsp)  
  2. {  
  3. }  

       可以认为为了应变量与(5)反复。,因而我在处置它。,在为了应变量中敏捷地的理由应变量(5),不要写这样的逻辑。

       (5)OnRtnMatchInfo():买卖物更改推进运动告诉

  1. void __cdecl EsunnyTradeSpi::OnRtnMatchInfo(const TEsMatchInfoNoticeField &rsp)  
  2. {  
  3. }  

       为了效能更要紧。,来回的每条款音讯都是事务物。,它克制容积。、成交价、买卖费等。,这些是金融家注意到力的录音。。总体来说,ONRSP开端时的应变量都是,ONRTN的初始效能是上菜用具的驾驶推进运动物效能。。需求注意到的事项。,易胜限度局限了陈述的频率。,普通期货理由,清单的频率是10单/秒。,从此处,在写信CO时,需求写信票据流把持逻辑。。

       5. 查询期货导致场所:

       查询仓库栈次要理由pTradeApi_->QryHold(),推理记录填写适宜的的决定因素。。查询仓库栈答复应变量为:

  1. void __cdecl EsunnyTradeSpi::OnQryHold(const TEsHoldQryRspField *rsp, TEsIsLastType islast, int errCode, const int iReqID)  
  2. {  
  3. }  

       该效能需求由剥削人员本人重写。,使迷惑的是,录音不克不及胜任的敏捷地来回。,不过数组付还。,你需求本人做东西汇总计算。。

       6. 查询期货导致资产:

      查询基金次要理由pTrimaPisi-> qRyBayes,推理记录填写适宜的的决定因素。。查询基金答复应变量:

  1. void __cdecl EsunnyTradeSpi::OnQryMoney(const TEsMoneyQryRspField *rsp, TEsIsLastType islast, int errCode, const int iReqID)  
  2. {  
  3. }  

       异样,为了应变量需求剥削人员重写本人。,这是比得上简略的。,它将可任意处理的不景气导致资产的相干物。,如:进行资产、现钱、在昨日的钱、佣金、导致的需求价等。。

       写信完编码,健康状况如何化验顺序?那晴朗的。,你可以去Yisheng官方网站(记录)买卖化验账号。,记录成后,有100万的导致。,因而本人可以化验开闭场所。。这些正好稍微根本采取军事行动。,及其他采取军事行动需求反省API文档并读到相当的的。异样,实时买卖顺序葡萄汁无效和稳固。,因而你不克不及越境少许需求。,一旦买卖发信号涌现,适时使筋疲力尽开仓或结仓,进项最大值化。这边,信手说一下。,易胜的对外经商系统是套期保值。,拿 … 来说,同时,单手、单手和单手空表,易买卖系统套期保值后,在世界上,不克不及胜任的有少许陈述。。从此处,当许多同时应用同东西理由时,,在世界上,你可以在对冲预先阻止写出对冲池。,就是说,当同样的人物种在期货导致下时,它将是DECL。,这将更进一步的使萧条买卖费。。

       参考资料:

发表评论