生成K线的流程
(下文中所说的示范程序,点击这里下载)
某合约的行情数据来到本机后:
1.在C++部分,触发“OnRtnDepthMarketData”;
2.通过已注册的函数指针,找到C#中关于处理行情数据的回调函数;
3.在这个回调函数中,与生成K线有关的操作是:
(1)生成本机所需的K线(仅供本机交易使用);
(2)如果当前合约要参与指数的计算,就计算指数,然后:
算出来的指数,递归调用处理行情数据的函数,生成本机所需的指数K线。
这个指数、这个合约,都用来生成行情服务所需的(供客户端补K线用的)指数K线、合约K线。
在我们的示范程序中,K线的生成,由两个函数来完成——
dataToBarForSol:生成本机所需的K线(仅供本机交易所用)。
dataToBarForMd:生成行情服务所需的K线(供外界补K线)。
这两个函数,都是既可以生成指数K线,又可以生成合约K线的。输入的参数是指数代码,就生成指数K线,输入的参数是合约代码,就生成合约K线。
举例来说,SR005这个合约的行情到来后,生成了这些K线:
在dataToBarForSol中,生成了SR005的K线、指数SR的K线,仅供本机交易所用。
在dataToBarForMd中,生成了SR005的K线、指数SR的K线,供外界补K线。
那么,生成K线的周期是多大呢?
本机自用K线的周期,取决于在交易方案中的设置。比如你在创建白糖的交易方案时,设定了使用5分钟K线,那么程序生成的自用K线就是5分钟的。
行情服务K线的周期,是预设的几个固定值:1分钟、5分钟、30分钟、1小时、1日。如果客户端需要其他周期,可以用这些基本周期合成。
接下来,本机自用的K线、行情服务的K线,制作方法是相同的,都是:
1.判断当前tick是不是要开启一条新K线。
2.如果开启新K线,就添加K线。
3.如果不开启新K线,就更新末端

585

被折叠的 条评论
为什么被折叠?



