用Python实现一个Dual Thrust数字货币量化交易策略

Dual Thrust交易算法介绍

Dual Thrust交易算法是由Michael Chalek开发的著名量化交易策略。它通常用于期货外汇和股票市场。Dual Thrust的概念属于典型的突破交易系统,其运用双推力系统根据历史价格构建更新的回溯期,这在理论上使其在任何给定时期内更加稳定。

在这篇文章中,我们给出了此策略的详细逻辑细节,并展示了如何在发明者量化平台上实现此算法。首先,我们要选择所交易标的的历史价格,该范围基于最近N天的收盘价,最高价和最低价计算。当市场从开盘价移动一定范围时,执行开仓

我们在常见的两个市场状态下用单个交易对测试了此策略,即趋势市场和震荡市场。结果表明,这种动量交易系统在趋势市场中运行得更好,在波动较大的市场中会触发一些无效买卖信号。在区间市场下,我们可以调整参数以获得更好的回报。作为个别参照交易标的的比较,我们还测试了国内商品期货市商。结果表明该策略好于平均表现。


DT策略原理

它的逻辑原型是常见的日内交易策略。开盘区间突破策略基于今天的开盘价加上或减去昨天幅度的一定百分比来确定上下轨。当价格突破上方轨道时,它会开仓买入,当它突破下方轨道时,它会开仓做空。

策略原理

在收盘后,计算两个价值:最高价 - 收盘价,收盘价 - 最低价。然后取这两个值中较大的值,将该值乘以0.7。让我们称之为值KK值我们称为触发值。

第二日开市后,记录开盘价,然后在价格超过(开盘价+触发价值)时立即买入,或在价格低于(开盘价 - 触发价值)时卖空

此策略没有明显的止损。这个系统是一个反向系统,也就是说,如果在价格超过(开盘价+触发值)时有一个空头仓位订单,那么它将发送两个买单(一个关闭错误的仓位,另一个打开正确方向的仓位)。出于同样的原因,如果有一个多头仓位价格低于(开盘价-触发价值),那么它将发送两个卖单。

 


DT策略的数学表达式

范围=最大值(HH-LCHC-LL

多头信号的计算方法是

cap = open + K1 × Rangecap = open + K1 × Range

空头短信号的计算方法是

floor = open – K2 × Rangefloor = open – K2 × Range

其中K1K2是参数。当K1大于K2时,触发多头信号,反之亦然。为了演示,我们选择K1 = K2 = 0.5。在实际交易中,我们仍然可以使用历史数据来优化这些参数或根据市场趋势调整参数。如果您看涨市场,K1应小于K2,如果您看跌市场,则K1应大于K2 该系统是一个反转系统,因此如果投资者在价格突破上轨时持有空头仓位,则在开多仓前要先平掉空头仓位。如果投资者在价格突破下轨时持有多头仓位,则在开新的空头仓位之前应先平掉多头仓位。


DT策略的改进:

在范围设置中,引入前N天的四个价格点(高,开,低,收),使得一定时期内的范围相对稳定,可应用于日线趋势跟踪。此策略的开多和空的触发条件,考虑不对称幅度,多空交易可参考范围应该选择不同数量的周期,也可以通过参数K1K2来确定。当K1<K2时,多头信号相对容易被触发,而当K1>K2时,空头信号相对容易被触发。

因此,在使用此策略时,一方面可以参考历史数据回测的最佳参数。另一方面,您可以根据自己对后势的判断或其他主要周期技术指标分阶段调整K1K2这是一种等待信号,进入市场,套利,然后离开市场的典型交易方式,但效果非常出色。


在发明者量化平台部署DT策略

我们打开,FMZ.COM, 登陆账户,点击控制中心,部署托管者和机器人。

关于如何部署托管者和机器人,请参考我之前的文章:https://www.fmz.com/bbs-topic/4140

想购买自己云计算服务器部署托管者的读者,可以参考这篇文章:https://www.fmz.com/bbs-topic/2848

接下来,我们点击左侧栏目当中的策略库,点击新建策略

在编写策略页面右上角记得选择编程语言为Python,如图:

 


接下来我们把Python代码写入代码编辑页面中,下面的代码,有着非常详细的逐行注释,各位读者可以慢慢理解和体会。我们就用OKCoin期货来测试这个策略:



写完代码后,请注意我们还未完成整个策略的编写部分,接下来,我们需要把策略中用的参数添加到策略编写页面,添加的方法十分简单,直接点击策略编写对话框下方的加号逐个添加即可。

 


需要添加的内容:

 


到此,我们终于完成策略的编写部分,接下来,我们就开始回测这个策略吧。


策略回测

写完策略后,我们首先要做的就是回测它,看它在历史数据中表现如何,但是请各位读者千万注意,回测的结果不等于未来的预判,回测只能作为一种参考信息来考虑我们的策略有效性。一旦市场发生变化,策略开始有大的亏损出现,我们应该及时去发现问题,然后改变策略以适应新的市场环境,比如上文提到的阀值,如果策略出现大于百分之10的亏损,我们就应该马上停止策略运行,然后查找问题,可以先从调节阀值开始入手。

点击策略编辑页面中的模拟回测,在回测页面,参数的调节可以根据需求的不同,进行方便快捷的调试,特别是对于逻辑复杂,参数众多的策略,不用再回去源码,进行逐个修改。回测时间我们选最近半年的,点击添加OKCoin期货交易所,选择BTC交易标的。

 


可以看到,最近半年由于BTC的单边趋势非常不错,策略收获了很好的收益。



有问题的朋友可以到 https://www.fmz.com/bbs 留言,无论是关于策略还是平台的技术,发明者量化平台有专业的人员随时为您解答。

免责声明:信息仅供参考,不构成投资及交易建议。投资者据此操作,风险自担。

如果觉得文章对你有用,请随意赞赏收藏
相关推荐
相关下载
登录后评论
Copyright © 2019 宽客在线