行情软件的实现

行情功能是CTP给的例子,本文是基于这个例子进行分析的过程。


行情功能和下单功能分别集成在两个不同的动态库里面,他们的构架都差不多。
都需要要一个Api对象以及一个自定义的Spi对象,并且要进行Spi的注册。不同的是下单需要提供对事件流的订阅,包括公共的和私有的数据流。而行情功能只对特定行情列表进行订阅。主函数的实现都差不多,就是那么基本的几步操作,其他的操作都需要通过Spi自定义的操作来实现。貌似这两个功能在init之后,程序维护了一个事件接收处理的循环过程,一直接收从服务器发过来的数据包,客服端负责处理收到的一些事件信息。
对于客户端,除了接收和处理事件外,它还应该能够提出一些请求。对于客户与服务器的交流,除了被动的接受和处理一些信息以外,还应该根据需要来进行交流。但程序执行的主体上来看,并没有发现客户端有什么主动的操作来处理一些事件。那么客户端是如何实现对特定行情的订阅的呢?
原来这个订阅过程是集成在用户的Login请求之中,Login好像是客户端唯一的请求。正是在这个唯一的请求,使得客户端响应登陆事件,在末尾客户端“偷偷”将订阅的操作放在了里面。
这个神秘的操作就是SubscribeMarketData();  这个函数在内部实现的时候调用了Api->SubscribeMarketData, 从而实现了订阅行情的请求。
最后一个最关键的问题是,如何提取接收到的行情数据呢?猜想这个数据应该在OnRspSubMarketData中返回,不过由于过了交易的时间,现在无法接受到交易行情。


对于这个软件,其中用到了一些Api,分析一下他们的具体作用。
1. pUserApi->SubscribeMarketData(ppInstrumentID, iInstrumentID), 发送行情订阅请求。
2. OnRspSubMarketData 订阅行情应答。
3. OnRspUnSubMarketData 取消订阅行情应答
4. OnRtnDepthMarketData 深度行情通知
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值