量化研究

您所在的位置:网站首页 跟踪止盈单怎么设置 量化研究

量化研究

2024-01-30 20:58| 来源: 网络整理| 查看: 265

4、我们跟踪就做好,百分比就是根据每一个K的开盘价往下减去一个百分比,这个百分比是个固定值,当然也就是参数值,这个区间是随着跟踪变化而不变的,不变的,不变的。变化的只有跟踪。

5、至此跟踪百分比的逻辑就都跟大家讲清楚了,这种出场逻辑是新手也是初入中低频CTA领域最先最容易入手的一种出场方式,而后我在此基础上,进行了算法修改,加速了进场那一段时间的止损,以达到波段行情的快速跟踪止盈止损。从而减少止损和减少利润回撤。当然优点的另一面自然也是缺点,那就是会比没有加速的更容易打到跟踪线。

注释:

MarketPosition:当前持仓状态(1为多单,-1为空单,0为空仓)

BarsSinceentry:当前持仓的建仓位置K线index到当前位置的K线index计数

代码实例:2

代码释义:

如果 持仓==1 且 建仓K线数==0

{

HigherAfterEntry前一个 赋值给 HigherAfterEntry

LowerAfterEntry和K线最低价两者最大的一个 赋值给 LowerAfterEntry

}

如果 持仓==-1 且 建仓K线数==0

{

LowerAfterEntry前一个 赋值给 LowerAfterEntry

HigherAfterEntry和K线最高价 两者最小的一个 赋值给 HigherAfterEntry

}

如果 持仓 不等于 0 且 建仓K线数>0

{

LowerAfterEntry前一个和K线最低价 两者最大的一个 赋值给 LowerAfterEntry

HigherAfterEntry前一个和K线最高价 两者最小的一个 赋值给 HigherAfterEntry

}

显然这段代码的目的就是为了计算“跟踪“的,跟踪止盈止损你要跟踪谁?总得有一个目标物跟踪把,那么这段代码就是计算跟踪目标物的,当进场后,多单是以进场价格和最低价格比较,通常基本上都是进场价格较大,那么当随着行情发展,第二个…第三个…第四个…K出现后他们各自的最低价和LowerAfterEntry前一个比较,如果此时行情往上涨,那么当下的最低价肯定要比LowerAfterEntry前一个要大,循环往复那么一直取这个最大的最低价。

计算完这个跟踪,我们来具体计算实现跟踪线,如下图代码所示:3

代码释义:

如果 持仓 == 0

{

liQKA 赋值 1

}

否则(有持仓无论多空)

{

liQKA = liQKA – 0.1 (随着每一个K线演绎liQKA逐步减少)

liQKA最大保持在0.5(从1到0.5,经历5个K线,加速5个K线)

}

如果 持仓 有多单

{

公式字面意思,自行理解

}

至此,跟踪止盈百分比出场策略介绍完毕。

第二种:吊灯出场(一)

如图所示:4

乍一看这个图,基本上所有人都不会想到用这个图去讲“吊灯止盈止损”,实际上这个图的平仓走的就是吊灯其中一种逻辑——达到N利润后,回撤D利润平仓的逻辑。

百分比吊灯逻辑:

1、当下进场建仓K线的最高价和最低价保存,随着行情演绎每一个新K线的最高价和建仓所属K线最高价和最低价比较,(以做多为例)假设进场后行情开始走高,那么当下的最高价和前面比较完毕的HighAfterEntry比较大小,随着K线的最高价逐步走高,那么HighAfterEntry也逐渐赋值持仓到现在所处K线的最高价。

2、计算吊灯触发和平仓位置。吊灯触发是当HighAfterEntry>=建仓价*(1+N),吊灯平仓是当触发后,最低价=HighAfterEntry - (HighAfterEntry – 建仓价)* D 按照这个不等式右边的价格平仓

代码实例:5

6

代码释义:

如果 建仓K线数==0

{

HighAfterEntry 被赋值 High(K线最高价)

LowAfterEntry 被赋值 Low(K线最低价)

}

否则 (建仓K线数>0)

{

HighAfterEntry 被赋值max(HighAfterEntry ,High) (最大的一个刷新HighAfterEntry)

LowAfterEntry被赋值 min(LowAfterEntry,Low) (最小的一个刷新LowAfterEntry)

}

如果(持仓==1 且 当前持仓与建仓位置K线index差值>0 且 HighAfterEntry前一个>=建仓价*(1+N) 且 最低价=HighAfterEntry前一个 -(HighAfterEntry前一个 – 建仓价)* D )

{

卖出(数量:全部卖出, 价格:min(开盘价,HighAfterEntry前一个 - (HighAfterEntry前一个 – 建仓价)* D )

}

至此,吊灯一百分比吊灯出场介绍完毕。

第二种:吊灯出场(二)

如图所示:7

该小结并未放置实际的K线图,而只是放置了吊灯中的核心——吊灯直观图,为什么叫吊灯?大家看上图中的K线形态,是否像过去小时候家里面的灯泡上面用电线吊着垂直下来的样子?

吊灯二——ATR波动率吊灯止盈止损逻辑:

1、当下进场建仓K线的最高价和最低价保存,随着行情演绎每一个新K线的最高价和建仓所属K线最高价和最低价比较,(以做多为例)假设进场后行情开始走高,那么当下的最高价和前面比较完毕的HighAfterEntry比较大小,随着K线的最高价逐步走高,那么HighAfterEntry也逐渐赋值持仓到现在所处K线的最高价。

2、计算吊灯触发和平仓位置。吊灯触发是当HighAfterEntry - 建仓价 > N1倍ATR,吊灯平仓是当触发后,最低价=HighAfterEntry – N2倍ATR,按照这个不等式右边的价格平仓

代码实例:

8

9

代码释义:

如果 建仓K线数==0

{

HighAfterEntry 被赋值 High(K线最高价)

LowAfterEntry 被赋值 Low(K线最低价)

}

如果 (建仓K线数>0)

{

HighAfterEntry 被赋值max(HighAfterEntry ,High) (最大的一个刷新HighAfterEntry)

LowAfterEntry被赋值 min(LowAfterEntry,Low) (最小的一个刷新LowAfterEntry)

}

否则 (没有仓位时候)

{

HighAfterEntry 被赋值 HighAfterEntry前一个

}

如果 (有多单 且 已开仓周期K线数>1 且 HighAfterEntry - 建仓价 > NATRstop倍ATR 且 最低价 = HighAfterEntry – NATRstop倍ATR)

{

卖出(数量:全部卖出, 价格:min(开盘价,HighAfterEntry – NATRstop倍ATR)

}

吊灯总结:

1、吊灯、吊灯名副其实的形象逻辑理解即为:建仓后,随着行情演绎,创造了多大的利润,随后回撤了多少的止盈止损方法。

2、吊灯多普遍应用于止盈,实际止损是配合吊灯演变而附加的,例如在吊灯百分比止盈止损方法中,止损逻辑往往根据百分比吊灯止盈,在初步建仓后加入一定百分比的止损线,从而达到止损的目的。

3、吊灯方法与跟随主要区别是:只有行情触发了波动参数中规则,但是跟随是时时刻刻的随着行情演绎而变动。也就是说,在行情中大家可以把吊灯理解为一个点出场,跟随是一个过程出场。

第三种:达到目标利润/目标亏损目标位出场

如图所示:

10

目标位出场逻辑:

1、根据进场价格或位置,设定主动止损和主动止盈的位置,达到位置后即可出场,未达到位置,持续持仓。

2、往往根据百分比、某种区间计算的range、ATR等计算而来,并附以止盈>止损的系数倍数,从而让策略达到稳定的盈亏比。

3、该策略的开仓具有一定特殊性,但是我个人还没有验证过,因为此策略出场方式并不符合我个人的“审美”。

代码实例:11

12

代码释意:

这里我们不一一的详解所有代码,因为其他的小结已经叙述了,这里我只针对进出场的价格构造公式进行释意:

进场:

Buy语句中,按照open和therehold两个最大值来进行发单。

出场:(止盈)

Getglobalvar

止盈价格 = Getglobalvar(1)+profitratio* Getglobalvar(3),其中profitratio也是一个系数倍数

(止损)

Getglobalvar(1) - Getglobalvar(3),进场的therehold价格 - 前一天的range*ratio1。

止损价格 = Getglobalvar(1) - Getglobalvar(3)。

止盈和止损两者差距了一个 profitratio系数倍数。这个倍数是恒定的,因此也就让该策略回测绩效的盈亏比稳定在了profitratio/1。

第四种:时间出场

顾名思义:以时间因素为标准的出场策略,例如:日内交易、黑色星期四等等。但是还有一种逻辑,在这里跟大家分享一下。那就是以时间周期为参数的择时

第五种:K线波幅出场

如下图所示:13

如上图所示该出场算法基于K线间的差值,核心就是在初始仓位建立一个止损线后,根据差值大小来进行跟踪止盈止损,他不同于第一种的百分比跟踪止盈止损,百分比参数是固定的、死的,需要人为的去优化修改。然而根据K线波幅进行跟踪可以达到大波幅较快的跟踪,小波幅较小的跟踪。

K线波幅逻辑:

1、进场后建立一个以ATR自适应波动的止损线

2、根据K线波幅差值,乘以控制系数加以K线初始止损线,随着行情演绎形成跟踪止盈止损。

代码实例:14

代码释义:

StopAtr = TrueRange(真实波幅)的Length周期的平均,实际求得就是ATR

如果 持仓 等于 1

{

如果 开仓K线周期数 等于 0

{

Stopprice = 最低价 – StopATR * FirstBarMultp系数

}

如果 开仓K线周期数 > 0

{

如果 收盘价 > 前一个收盘价

{

Range = 收盘价 – 前一个收盘价

Stopprice = Stopprice + Acceleration(系数) * range

}

否则

{

Stopprice = Stopprice前一个

}

}

}

K线波幅出场总结:

1、属于紧密型跟踪止盈止损出场策略,大家可根据进场策略或品种进行具体问题具体分析。

2、可以其他出场策略进行组合,形成减仓的策略组合。

第六种:VWAP出场

如图所示:15

黄色线为VWAP(成交量加权均线)出场线。

VWAP出场策略逻辑:

1、进场设置初始止损,这是一个百分比值

2、逐个K成交量乘以初始止损线,滚动计算求和

3、2中数据占比成交量滚动求和

代码实例:16

代码释义:(核心计算)

如果 有持仓

{

(多头)

Vwapprice = Entprice(实际就是逐个LowAfterEntry) *(1-Longshort_stop * 0.001)

(空头)

Vwapprice = Entprice(实际就是逐个HighAfterEntry) *(1+Longshort_stop * 0.001)

Wi = 前一个K成交量

Wisum = 前一个K成交量 + Wisum(等同于Wisum +=Wi)

Vwap = (Wi * Vwapprice)+Vwap (等同于 Vwap += Wi+ Vwapprice)

Vwapline = Vwap / Wisum

Vwapline 即是止盈止损线

}

Vwap成交量加权平均线,是以某当个K线成交量占比某一段行情K线成交量占比为权重系数的一种算法均线,实际应用中,本人加入了加速的算法置于其中,在这里作为思路拓展就不展开说了。

目前VWAP是一个很好的普适性出场策略,但并不是组合最好的。

第七种:三档跟踪法

如图所示:17

18

19

三档跟踪法逻辑:

就是根据当前不同的盈利幅度,跟踪止盈线会分别采用不同的加速系数。以求将整个波段都吃掉。核心是盈利幅度和止盈的敏感度是成反比的。具体请看代码

代码实例:20

代码释意:(核心三级部分)

如果 收盘价>前一个收盘价 且 最高价 > 前一个最高价

{

如果 初始止损线stopprice < 开仓价

{

Range = 收盘价 – 前一个收盘价

Stopprice = stopprice + Acceleration * range(Acceleration是一个系数)

}

如果 stopprice >= 进场价 且 利润 N倍ATR

{

Stopprice = soptprice + (Accelaeration – 0.3 )*range(系数越来越小,也就越来越不敏感,权重低了吗)

}

如果 利润 > N倍ATR

{

Stopprice = soptprice + (Accelaeration – 0.5 )*range(系数更小,也更不敏感,权重更低了吗)

}

}

总述

8个出场策略,是目前市面上传统CTA中用的比较多的,各有特色,也各有相同点,他们之间并没有谁肯定比谁好,谁肯定不如谁的的说法。核心是看什么进场策略用什么样的出场策略组合。当然了,肯定还有更多的出场策略,在这里我会继续搜寻新的出场思路作为文章的后续补充。

更多精彩内容和策略源码在松鼠宽客俱乐部哦!

本策略仅作学习交流使用,实盘交易盈亏投资者个人负责。返回搜狐,查看更多



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3