本文提供了一个用vn.py来编写R-breaker交易策略的示例。只提供一个参考模板,并不能直接进入市场进行交易。感谢‘爱谁谁’在维恩的派论坛里的分享!
策略介绍
R-breaker策略是一种短线交易策略,结合了趋势和反转两种交易方式。
策略逻辑
周期:1min、5min
1. 根据前一个交易日的收盘价、最高价、最低价计算出如下6个价格,以此来形成当前交易日盘中交易的触发条件。
2. 交易规则:
反转:
突破:
是否隔夜留仓?
策略代码
信号生成部分:
if bar.close > self.Bbreak: self.judge_signal_current = 3 #反转趋势回落
elif bar.close > self.Ssetup: self.judge_signal_current = 2 elif bar.close < self.Senter and self.judge_signal_current == 2: self.judge_signal_current = 1 elif bar.close < self.Bsetup : self.judge_signal_current = -2 elif bar.close > self.Benter and self.judge_signal_current == -2: self.judge_signal_current = -1 #突破了底线 elif bar.close < self.Sbreak: self.judge_signal_current = -3
处理交易信号:
if self.pos ==0 : #处理信号为3的情况 if self.judge_signal_current == 3 or self.judge_signal_current == -1 : vtOrderID = self.buy(bar.close+2, self.fixedSize, stop=True) self.orderList.append(vtOrderID) self.judge_signal_current = 0 #处理 信号为-3的情况 elif self.judge_signal_current == -3 or self.judge_signal_current == 1 : vtOrderID = self.short(bar.close-2, self.fixedSize, stop=True) self.orderList.append(vtOrderID)
self.judge_signal_current = 0
#处理持仓大于零 elif self.pos > 0 : #先平仓(后反向开仓) : if self.judge_signal_current == 1 : vtOrderID = self.sell(bar.close * 0.99, abs(self.pos)) self.orderList.append(vtOrderID) vtOrderID = self.short(bar.close-2, self.fixedSize, stop=True) self.orderList.append(vtOrderID) self.judge_signal_current = 0
#处理持仓小于零 elif self.pos < 0 : #先平仓后开仓:cover+buy if self.judge_signal_current == -1 : vtOrderID = self.cover(bar.close * 1.01, abs(self.pos)) self.orderList.append(vtOrderID) vtOrderID = self.buy(bar.close+2, self.fixedSize, stop=True) self.orderList.append(vtOrderID) self.judge_signal_current = 0
收盘前平仓
if self.pos > 0: vtOrderID = self.sell(bar.close * 0.99, abs(self.pos)) self.orderList.append(vtOrderID) self.judge_signal_current = 0 elif self.pos < 0: vtOrderID = self.cover(bar.close * 1.01, abs(self.pos)) self.orderList.append(vtOrderID) self.judge_signal_current = 0
主要展示了onBar那一部分代码,完整代码请点击‘阅读原文’跳转到维恩的派论坛下载附件。
注:
参考文献:
R-Breaker 策略优化表现
(http://www.sohu.com/a/120307567_505915)
点击“阅读原文”查看原贴!欢迎大家把使用过程中遇到的问题或者摸索的经验分享到「维恩的派」论坛!
基于python的开源交易平台开发框架。截止目前,vn.py项目在Github上的Star已经达到5787,量化交易类开源项目第1,量化类项目第3(1、2依旧分别是Zipline和TuShare)。
项目官网:http://www.vnpy.org
论坛地址:www.vnpie.com
知乎专栏:https://zhuanlan.zhihu.com/vn-py
Developed by Traders,
for Traders