这里讲一下如何在 Rhino
中书写自己的策略。
首先,将策略模块总体定义为 Rhino-strategy
,这个包下面有各种各样独立的策略,并且,每个策略本身就是一个独立库,可以进行打包。
策略模块通过 redis
订阅的方式进行接收数据。
但是,策略对于数据是这样的
- 不关心数据是谁产生
- 不在意数据是什么类型,合约还是现货
- 只在意数据是否按照策略格式
只要是符合该策略的数据格式,策略拿到后,即刻进行分析等操作。
我的策略执行是一种单一模式。以
里面描述的策略来分析。
首先,通过订阅 redis
,可以获得源源不断的数据,将数据进行分析后,可以进行下单,如果,这个订单超过设定时限,那么,则会撤单,然后重新下单。
我会同时创建一个心跳服务,进行监控下单的 order
的状态,如果成交,则会通过心跳计算盈亏,然后卖出。两个服务执行不同的业务,但是,相互之间的数据共享。
整个策略采用单核,单进程,单线程的异步操作,关于上述的实现方法可以参考