-
Notifications
You must be signed in to change notification settings - Fork 646
撮合机制
wondereamer edited this page Jan 8, 2017
·
1 revision
每个策略类必须实现4个接口:on_init
, on_symbol
, on_bar
, on_exit
。其中交易相关的买卖函数,查询函数,比如ctx.buy
, ctx.cash()
等,
只能在on_bar
中被调用。系统内部通过调用Context.process_trading_events
来开始一次价格撮合。我们把价格数据分为k线数据和tick数据两类。
两则的撮合机制不一样。
-
k线数据 表示当根k线开盘和收盘时间区间内的open, close, high, low四个价格。系统会分别在开盘时间和收盘时间做一个价格撮合。因此,当根k线的开盘时间 才是“当前”时间。收盘时间的价格撮合是未了确保交易能在当前k线时间区间内成交,但对
on_bar
是不可见的,它只能对应到当根k线的开盘时间,并且 任何交易最早只能在收盘时间成交。假设我们当前在第i根k线上,那么以下情况不存引用未来数据的问题:- 使用了open数据,
- 引用了第j(j<i)根k线的数据
-
tick数据(待实现) 只有一个时间点,任何交易最早只能在下个时间点成交,以下情况不存在引用未来数据问题:
- 引用当前数据
- 引用前面的tick数据