欢迎访问任你博娱乐 男人 | 女人 | 时尚 | 两性 | 知性   
娱乐
基于CTP的国内期货程序化交易之报单流程讲解
时间:2019-04-29 14:35 点击:

基于CTP的海内期货顺序化买卖之报单顺序教授 - 摘要: 本文是环境海内期货买卖BA的申报行动形势。,       与外用的期货买卖开展较比,海内期货买卖开展乏力。,更多坑。率先是买卖工夫。,像异国期货平等地,美国原油。,每天23小时陆续买卖,海内期货与上海黄金,有朝一日买卖四次,使分裂从9:00到10:15。、10:30至11:

      与外用的期货买卖较比

研制

,海内期货买卖开展乏力。,更多坑。率先是买卖工夫。,像异国期货平等地,美国原油。,每天23小时陆续买卖,海内期货与上海黄金,有朝一日买卖四次,使分裂从9:00到10:15。、10:30至11:30、13:30~15:00和0230~次日。。更多买卖工夫,还要很多关门工夫。,非常的,吹捧了很多事情逻辑。。并且,有很多买卖规则。,前一期的期货的股本被分为流传的船位。,非常的,本人就适宜依买卖工夫举行独立的断定。,是前任何人买卖日的列表或流传的买卖D的列表,要不然,叫牌的限度局限因素是不权利的。,该清单将直接的被买卖系统回绝。。研制行动形势中应用的头供免费入场券是:、及,静态库:。下面是少许密码电文示例。:        1. 发觉CTP api旋转:

CThostFtdcTraderApi *pTradeApi = CThostFtdcTraderApi::CreateFtdcTraderApi(dirName);

       经过转乘CreateFtdcTraderApi()发觉api旋转——pTradeApi,继转乘旋转来启动杂多的请求允许。,比如,衔接服务业。、用户登录、报单、撤单、查询持仓、查询资产等。。        2. 发觉CTP API回调旋转:

CFtdcTradeSpi *pTradeSpi = new CFtdcTradeSpi(pTradeApi, 即将到来的)

      这必要构图分歧的的引起类。,本人必要持续进行先前TE供的CTHOSTFTDCTCRADSPI类。重写该类切中要害方式,服务业发送的杂多的流通的。。        3. 连接点下面的两个先例。,并启动衔接服务业请求允许。:

pTradeApi->RegisterSpi(pTradeSpi);
pTradeSpi->connect(serverAddr, brokerId, username, 密码电文)

      衔接服务业和旋转设定初值密码电文。:

void CFtdcTradeSpi:衔接(字母行) serverAddr, string brokerId, string username, string 密码电文)
{
    serverAddr_ = serverAddr;
    brokerId_ = brokerId;
    username_ = username;
    password_ = password;

    pTradeApi_->SubscribePublicTopic(THOST_TERT_QUICK);
    pTradeApi_->SubscribePrivateTopic(THOST_TERT_QUICK);
    pTradeApi_->RegisterFront((char *)());
    pTradeApi_->Init();
}

      在收回衔接请求允许后,OnFruttField:()将作出反应请求允许。,继在该职务内可以转乘登录职务pTradeApi_->ReqUserLogin()执行用户登录手术,对应的OnRspUserLogin()将作出反应请求允许。。鉴于海内期货第一在买卖日登录,包围者必要C,例如,在OnrSPueLogIn()职务中。,可以更远地转乘pTradeApi_->ReqSettlementInfoConfirm()做包围者结算结出果实致谢,致谢结出果实将在OnRspSettlementInfoConfirm()内又来。执行包围者结算结出果实后致谢手术。,执行了总数服务业衔接和用户登录行动形势。,你可以时限定货。。

void CFtdcTradeSpi::OnFrontConnected()
{
    LOG_INFO << username_ << " 回调: 与服务业已建立衔接, 开始登录";
}

void CFtdcTradeSpi::OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
    if (pRspUserLogin == NULL || pRspInfo == 空)
    {
        LOG_INFO << username_ << " 登录回调异常, 指针为空";
        return;
    }

    if (pRspInfo->ErrorID == Err_Succeed)
    {
        LOG_INFO << username_ <<  " 登录成, 开始包围者结算结出果实致谢, 流传的买卖日: " << pTradeApi_->GetTradingDay();
    }
}

void CFtdcTradeSpi::OnRspSettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
    if (pSettlementInfoConfirm == NULL || pRspInfo == 空)
    {
        LOG_INFO << username_ << " 包围者结算结出果实致谢回调异常, 指针为空";
        return;
    }

    string errorMsg;
    getErrcodeDesc(pRspInfo->ErrorMsg, errorMsg);
    LOG_INFO << username_ << " "
             << "经纪公司密码电文: " << pSettlementInfoConfirm->BrokerID << " "
             << "包围者密码电文: " << pSettlementInfoConfirm->InvestorID << " "
             << "致谢日期: " << pSettlementInfoConfirm->ConfirmDate << " "
             << "致谢工夫: " << pSettlementInfoConfirm->ConfirmTime << " "
             << "回调: 错误交流, 错误码: " << pRspInfo->ErrorID << " " << errorMsg;
}

       4. 期货报单:        (1)ReqOrderInsert():申报邀请

CThostFtdcInputOrderField reqField;
memset(&reqField, 0, sizeof(CThostFtdcInputOrderField));
......
......
pTradeApi_->ReqOrderInsert(&reqField, orderInsertReqId_);

      与前述的解说根本分歧。,迥然不同。 必要权利填写事情/形势。、开/闭外景、时价/价钱限度局限、付托美国昆腾公司、佣钱价钱等。,ReqOrderInsert()叫牌可在执行后转乘。。        (2)OnRspOrderInsert():申报邀请应对

void CFtdcTradeSpi::OnRspOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
}

      宣言成后,从在理论上讲,职务将被回调。。但经过送交日记,,或许决定性的一技术是使简易逻辑。,效能削弱。,其实,职务无回调。,自然,这也可能性与SDK版本参与。。        (3)OnRtnOrder():付托变动流通的

void CFtdcTradeSpi::OnRtnOrder(CThostFtdcOrderField *pOrder)
{
}

      当付托环境变化时,将被回调。。一般而言,付托的位次要是:未知、排队中无买卖。、宗派买卖仍在排队中。、执行买卖等。。申报单,假使有更多的美国昆腾公司,通常责备一次所稍微买卖。,它将被划陷于慷慨的的买卖。,因而即将到来的职务将持续回调。。不休的回调,每回又来付托的美国昆腾公司。、量、留存下的的流通的将被变化。。        (4)OnRtnMatchInfo():买卖交流更改推进运动流通的

void CFtdcTradeSpi::OnRtnTrade(CThostFtdcTradeField *pTrade)
{
}

      即将到来的效能更要紧。,又来的每一转音讯都是事务交流。,它克制主体。、成交价、买卖费等。,这些是包围者相干的流通的。。总体来说,总数报单行动形势与前言教授的外用的期货报单顺序根本分歧。但其中的一部分使简易了。,换句话说,不必要写船只位置的推算流量把持逻辑。,因CTP无频率限度局限。,但对查询频率有限度局限。,这简直API的默记。,易胜是查询频率的限度局限。,叫牌有频率限度局限。。        5.  查询期货账外景:        查询持仓次要转乘pTradeApi_->ReqQryInvestorPosition(),依照

文档

这辱骂你可以填写正当的的限度局限因素。。查询外景作出反应职务:

void CFtdcTradeSpi::OnRspQryInvestorPosition(CThostFtdcInvestorPositionField *pInvestorPosition, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
}

      该效能必要由研制人员本身重写。,动乱的是,流通的不克立刻又来。,不过放置报答。,你必要依你的形势划分搜集。

计算

才行。        构图完密码电文,怎样测量法顺序?。如同先前的技术无供测量法帐户编号。,但,你可以在SIMNE网站上报户口买卖测量法帐户编号。,我不了解SimNow和先前的技术经过的相干是什么。报户口成后,有100万的账。,因而本人可以测量法开闭外景。。

这些都是海内期货申报顺序的全部内容。,云旗社区视频博客、问答、大众号、扮演角色、全部课程和另一个专栏也有宣言的有关主题。,迎将持续应用右上角搜索钮扣搜索 , 顺序化买卖 , 期货报单 CTP顺序研制 ,非常的你就能开腰槽更多互插的知。。

分享到: