1.策略思路:日内区间突破思路
VNPY的模板中只用到了两天的数据,用T-1日的数据找到波动RANGE=HH-LL,定义突破的上下边界为T日的开盘价OPEN + k1RANGE , OPEN-k2*RANGE
突破上边界做多,跌破下边界做空,尾盘平仓.
做多后跌破下边界后反手做空,反之亦然,但一日内的多空操作仅仅一次.
2.vnpy实现
2.1从CtaTemplate基类继承,策略名定义为DualThrustStrategy.参数3个,fixed_size代表每次交易手数,k1是上边界远离开盘价多少个range,k2是下边界远离开盘价多少个range.
变量代表策略里边不断迭代的量:
day_open:开盘价,每次交易日变更的时候需要变更一次.一天只变化一次.
day_high:记录当天的最高价,为了找区间用的.
day_low:如上
day_range: 等于day_high-day_low
long_entry:上边界价格
short_entry:如上
exit_time:不是变量,因为不变化. 为了保证是日内策略,尾盘平仓.
long_entered:当天是否开过多头,为了控制一天只开一次多仓用的.
short_entered:如上
绩效:这个策略写起来比较简单,绩效如下: