CTP交易软件开发----第一章(一)

从上期技术提供的Demo开始讲起(一)

既然咱们使用的CTP的API接口,当然最好的教程就看看官方的说明文档了,但是,不知道为什么,本人很多时候上他的官网的时候,有时候能上,有时候不能上,如果你不能上的话,我直接把官方文档共享出来好了:
链接:https://pan.baidu.com/s/1GnotRqLV9_oyAgl3E_PcrA
提取码:gw9t
另外,上期官方提供的Demo也共享出来:
链接:https://pan.baidu.com/s/1LzFBTY050yv1TeiInN6W2Q
提取码:0gtu

如果你把上面的资料都下载了,可以对看官主说明文档一步一步的看Demo程序,如果懒得看的话,就看下面我写的吧,应该会比官方文档更容易理解吧。

本文先从行情说起,因为相对比较简单。
先看Demo的文件:
CTP交易软件开发----第一章(一)_第1张图片
整个项目只有这么几个文件,MdSpi.h/.cpp文件里面定义了CMdSpi类,而且是继承于CThostFtdcMdSpi类的。最底下还包含了一个lib文件,这个lib文件可以属性上面设置,也可以直接从代码层面上加上这样一行:
#pragma comment(lib, “./xxx/thostmduserapi.lib”)

再来看主程序:
CTP交易软件开发----第一章(一)_第2张图片
其实在代码中,已经注释得比较清楚了,所以不再在这里重复。
行情线程启动后,主线程阻塞,那么行情线程就会来到OnFrontConnected方法中。
行情登录一条线跑下来,如果对函数调用流程清楚的话,后面的就不用多说了,一个函数调用一个函数,到最后,逐一返回,完成行情登录。

完成登录后,如果当前还没有开盘,或放你啥都没有看得到,很可能是因为你在深度行情回调函数中啥东西都没干。
行情初始化完成,假设你已经订阅了合约,而且合约代码没有错(使用已经过期的,或代码不正确)的情况下,那么,正常情况下,Tick行情推送回来就会调用OnRtnDepthMarketData函数,返回的也是一个数据结构的指针,数据结构的各个字段可以查看:
CTP交易软件开发----第一章(一)_第3张图片
这时候,你可以对Tick数据进行过滤、加工或合成K线等操作。
来到这里行情登录已经算是完成。
但是,这样的代码实在是乱,如果后面再加上交易上来,那么,就会更乱。例如,我们可以提前看看交易的Demo是什么样的:
CTP交易软件开发----第一章(一)_第4张图片
两个Demo对比来看,是不是很类似?正因为太类似了,所以这些类似的东西都应该把它们封装起来,藏在类里面,让外面的分别区分定义,免得自己都弄混。

你可能感兴趣的:(CTP交易软件开发)