快捷搜索:  汽车  科技

程序化止盈策略(如何将单品种的AF加速跟踪止盈算法)

程序化止盈策略(如何将单品种的AF加速跟踪止盈算法)例如:只要是交易开拓者内部获取叠加的其他品种的数据必须要使用data[i]. 的方式进行捕获,包括开平仓指令中也要采用。接下来,作者将详细的分享如何将单品种的指标或跟踪止盈算法修改成多品种的,包括改造过程中需要注意的诸多细节和实际应用。既然是使用交易开拓者旗舰版做多品种交易,免不了需要多品种叠加,而想要在叠加的图表中运算就少不了循环语句、数组等的使用。1.记住一个原则。

点及财经,股票期货专业投机者。

程序化止盈策略(如何将单品种的AF加速跟踪止盈算法)(1)

前言

在过去的大部分文章中,作者只分享了在单品种上开发策略或其他有用的模块,但这对于做交易而言并不够的,应该要有比较大的格局,着眼于整个板块或整个期货市场。

如果局限于一个品种,那么很容易走进死胡同。

程序化止盈策略(如何将单品种的AF加速跟踪止盈算法)(2)

那么,就需要将单个品种的跟踪止盈修改成适应多个品种的,在这里作者采用的是交易开拓者TB,其他量化交易平台我不知道是否需要这样做。

接下来,作者将详细的分享如何将单品种的指标或跟踪止盈算法修改成多品种的,包括改造过程中需要注意的诸多细节和实际应用。

AF加速算法多品种改造方法

既然是使用交易开拓者旗舰版做多品种交易,免不了需要多品种叠加,而想要在叠加的图表中运算就少不了循环语句、数组等的使用。

1.记住一个原则

只要是交易开拓者内部获取叠加的其他品种的数据必须要使用data[i]. 的方式进行捕获,包括开平仓指令中也要采用。

例如:

(1)获取第一个品种的最高价,data[0].high。

(2)获取第三个品种的成交量,data[2].vol。

以上就是关于改造过程中,需要注意的一些细节。

AF加速算法多品种改造过程:

1.设置参数变量。

如下图所示:

程序化止盈策略(如何将单品种的AF加速跟踪止盈算法)(3)

(1)在params部分,有两个参数 i和StopATR 分别代表数据源编号和编号所对应品种的平均真实波幅,传入这两个参数就可以算出特定品种目前的跟踪止盈值是多少。

(2)在vars部分,Acceleration和FirstBarMultp,分别是抛物线的加速系数和初始止损ATR倍数。

2.函数主体部分。

如下图所示:

程序化止盈策略(如何将单品种的AF加速跟踪止盈算法)(4)

其中:

(1)StopATRSeries是传入的ATR值。

(2)AF为加速系数,系数越大跟踪止盈线抬升的尺寸就越大。

特别地:

我们看到倒数3、4这两行有两个if条件判断并有对跟踪止盈线StopPrice有赋值,其主要原因是为了处理有无夜盘的品种叠加在一起导致数据不齐产生的问题,具体问题如下:

(1)多数据源叠加计算的话,TB内部的运算机制是空缺的k线部分也会有索引,但是没有值,当程序运行到这些位置的时候,它也会运算一次,导致跟踪止盈每次在这些地方都会累加一次,但实际上是不需要的。

如下图所示:

程序化止盈策略(如何将单品种的AF加速跟踪止盈算法)(5)

因此,解决办法就是用成交量来识别,圈内是否没有成交量数据,没有的话那么就是空缺的,有成交量的地方再继续运算。

这就是整个函数最关键的一步,如果没有这一步函数的效果是天壤之别的。

3.函数效果。

如下图所示:

程序化止盈策略(如何将单品种的AF加速跟踪止盈算法)(6)

小结。

想要写多品种的函数或者策略,都需要了解tb内部的一些“秘密”,在你后面开发更复杂策略的时候,可能会遇到各种问题。

因为这些东西无论是官方还是公开的资料中,都没有提到,具体原因我也没了解。

最后

这是一个相对简单的多品种跟踪止盈函数,理解之后就可以对其他的跟踪止盈方法进行改造。

想要开发多品种策略,需要多循环、数组、函数、变量等基础的知识要很熟练,在策略开发时才能够灵活的运用,及时发现问题并解决。

如有疑问,请在下方评论留言,欢迎点赞转发哦!

文章及策略代码仅供学习,切勿直接实盘!

文章系原创,未经授权,不得转载,后果自负!

猜您喜欢: