止损模型的原理及编写

Author: , Created: 2019-07-11 09:44:17, Updated: 2023-10-24 21:43:13

img

为什么要止损

img

鳄鱼法则

假定一只鳄鱼咬住你的脚,如果你用手去试图挣脱你的脚,鳄鱼便会同时咬住你的脚与手。你愈挣扎,就被咬住得越多。所以,万一鳄鱼咬住你的脚,你唯一的机会就是牺牲一只脚。

在资本市场里,无论是数字货币还是商品期货,鳄鱼法则就是:当你发现自己的交易背离了市场的方向,必须立即止损,不得有任何延误,不得存有任何侥幸。

保住资本永远是第一位的

投资大师 相信最重要的事情永远是保住资本,这是他投资策略的基石

失败的投资者 唯一的投资目标就是“赚大钱”。结果,他常常连本钱都保不住。

投资大师知道:避免赔钱远比赚钱要容易。如果你损失了投资资本的50%,你必须将你的资金翻倍才能回到最初的起点。

img img

空间止损法

关键:将止损价位设置在某一基准位置上下,实现防患于未然的方法。

例如:

做多止损——以支撑线为基准,在支撑线之下设置止损; 做空止损——以阻力线为基准,在阻力线之上设置止损。

这种止损方法属于价格模式方法,相当于设置了止损的“最大限额”,目 的是为了保护自己,避免情绪干扰导致的灭顶之灾。当我们建立头寸后, 若消极等待价格下落至最大止损线才迟迟行动,就比较被动了,预设的最大 止损限额只可以在行情突然转向的时候起到很好的阻截作用。

限价止损法

止损策略:在开仓前预先设定了止损位置。

策略举例:在某一个固定价格点位进行止损,还可以在买入价下方的3% 或5%处止损,一旦价格有效跌破该止损位置,则立即离场。这里所说的“有效跌破”,一般是指收盘价格。

跟盘浮动止损法

止损策略:以设置止损时的盈亏为标准,从最大盈亏回撤N个价位后进行止损的方式。

策略举例:假如在8946点位对PTA做多单,设置价格回撤10点位时(8936)止损,当PTA价涨到8950时,止损价位会自动重新定位在8940。

回撤止损法 如果买入之后价格先上升,达到一个相对高点后再下跌,那么可以设定从相对高点开始的下跌幅度为止损目标,这个幅度的具体数值也由个人情况而定。另外还可以再加上下跌时间(即天数)的因素,例如设定在3天内回撤下跌5%即进行止损。回撤止损实际更经常用于止赢的情况。

img

现代止损方法介绍

时间止损法

应用:日内超短交易模式

关键:建仓后,一定时间内市场没有出现有利的波动,止损离场,重新寻找进场的时机。

交易原理:利用价格在某个因素如外盘影响、盘中支撑位和压力位的突破与假突破、突发消息等作用下瞬间大幅移动时,顺势或逆势快进快出赚取利润。

时间止损这个做法具有一定的前瞻性,属于其他止损方法分类。时间止损还涉及到开仓时点的问题。比如:应该力求在启动临界点(质变点)的瞬间开仓,期待后面会发生疯狂追涨杀跌,但这只是预期,如果没有发生,那就平仓离场,不要等到下跌支撑或上穿阻力之后才去止损的。

典型的时间止损:

横盘止损

  • 止损策略:将买入之后价格在一定幅度内横盘的时间设为止损目标

  • 策略距离:设定买入后5 天内上涨幅度未达到5%即进行止损。

  • 横盘止损一般要时间止损与最大亏损法同时使用,以全面控制风险。

img

img

技术止损法

关键:技术止损法是较为复杂一些的止损方法,是将止损设置与技术分析相结合,剔除市场的随机波动之后,在关键的技术位设定止损单,从而避免亏损的进一步扩大。

应用:技术止损法要求投资者有较强的技术分析能力和自制力。技术止损法相比前一种对投资者的要求更高一些,很难找到一个固定的模式。一般而言,运用技术止损法,无非就是以小亏赌大盈。

举例:在上升通道的下轨买入后,等待上升趋势的结束再平仓,并将止损位设在相对可靠的平均移动线附近,这样可以低进高出,获取差价。

典型的技术止损:

趋势切线止损:

包括价格有效跌破趋势线的切线;价格有效击破江恩角度线1×1或2×1 线;价格有效突破上升通道的下轨等。

形态止损:

包括股价击破头肩顶、M头、圆弧顶等头部形态的颈线位;价格出现向 下跳空突破缺口等等。

K线止损:

包括出现两阴夹一阳、阴后两阳阴的空头炮,或出现一阴断三线的断头 铡刀,以及出现黄昏之星、穿头破脚、射击之星、双飞乌鸦、三只乌鸦 挂树梢等典型见顶的K线组合等。

指标止损:

根据技术指标发出的卖出指示,作为止损信号,主要包括:MACD出现绿 色柱状线并形成死叉;SAR向下跌破转向点且翻绿等等。其中最简单、 最实用就是SAR抛物式转向指标,亦称为停损点转向操作系统。 SAR就 像股价的守护神,一旦上涨速度跟不上,或者股价反转下跌,SAR都会 紧紧盯着,股价跌破SAR就为平仓信号。

img

img

img

统计止损法

在止损的参照物选择中,我们可以选取各种不同的参考标准,除了技术指标,K线形态,时间以及价位空间外,很多统计变量也是设置止损的重要参考标准,这些统计变量大多是根据统计学以及数学原理得出的,因此我们暂且称之为统计止损。

典型的统计止损:

资金止损法:

这是最简单的止损方法,我们每次交易把风险控制在资金的固定比例上,当连续赚钱时,这个比例代表金额就会增大,所以可以投入更多的资金赚更多的利润,当连续赔钱时,就相反可能缩小损失。

img

止损模型的编写方法

编写止损常用的几个函数:

BKPRICE 返回数据合约最近一次买开信号价位。
SKPRICE 返回数据合约最近一次卖开信号价位。
BKHIGH  返回最近一次模型买开位置到当前的最高价。
SKLOW   返回最近一次模型卖开位置到当前的最低价。
BARSBK 上一次买开信号位置
BARSSK 上一次卖开信号位置

限价止损止盈

TMP1:=C<BKPRICE-M;
TMP2:=C>SKPRICE+M;

TMP3:=C>BKPRICE+M;
TMP4:=C<SKPRICE-M;

跟踪止损

HH:HHV(H,BARSBK); //入场以来的高点
LL:LLV(L,BARSSK); //入场以来的低点
TMP1:=C<(HH-BKPRICE)*0.5+BKPRICE&&HH>BKPRICE+25; //多头跟踪止损条件
TMP2:=C>SKPRICE-(SKPRICE-LL)*0.5&&LL<SKPRICE-25; //空头跟踪止损条件

止损模型的案例

例1 双重均线系统

思路:当100日均线穿越350日均线的时候买入或卖出

MA1:MA(C,100);
MA2:MA(C,350); //定义双重均线
CROSS(MA1,MA2),BPK;
CROSS(MA2,MA1),SPK;
AUTOFILTER;

思考

  • 如果还没达到穿越平仓条件,趋势已经反转,能否立即止损减少损失?

  • 如果赢利,能否最大化赢利,让平仓位置跟随行情走高而提高?

转化:限价止损+追踪止盈

//限价止损
C<BKPRICE-N,SP;
C>SKPRICE+N,BP;
//追踪止盈
C>BKPRICE&&C<BKHIGH-M,SP;
C<SKPRICE&&C>SKLOW+M,BP;
注:N,M为价差

完整代码:

MA1:MA(C,100);
MA2:MA(C,350); //定义双重均线
CROSS(MA1,MA2),BK;
CROSS(MA2,MA1),SK; //转化模型
CROSS(MA2,MA1)||C<BKPRICE-N||(C>BKPRICE&&C<BKHIGH-M),SP;
CROSS(MA1,MA2)||C>SKPRICE+N||(C<SKPRICE&&C>SKLOW+M),BP;
 //限价止损+回撤止损
AUTOFILTER; //实现信号过滤

img

img

例2 开盘波动回归模型

思路:突破分钟周期当天第一根K线的实体上端,做多,后期价格下跌低于当天第一根K线的最低价或者行情已经过去了10分钟,平仓出场;跌破分钟周期当天第一根K线的实体下端,做空,后期价格上涨高于当天第一根K线的最高价或者行情已经过去了10分钟,平仓出场。

RKO:=VALUEWHEN(TIME=0900,O);//分钟周期当天第一根K线的开盘价
RKC:=VALUEWHEN(TIME=0900,C);//分钟周期当天第一根K线的收盘价
RKH:=VALUEWHEN(TIME=0900,H);//分钟周期当天第一根K线的最高价
RKL:=VALUEWHEN(TIME=0900,L);//分钟周期当天第一根K线的最低价
CROSS(H,MAX(RKO,RKC))&&TIME<0910&&TIME>0900,BK;
CROSS(MIN(RKO,RKC),L)&&TIME<0910&&TIME>0900,SK;
C>RKH || TIME>=0910,BP;
C<RKL || TIME>=0910,SP;
AUTOFILTER;
//适用品种,受外盘影响较大,
开盘波段比较剧烈的品种

止损模型的案例——时间止损: img img img

例3 价格突破通道模型

思路:用ATR计算价格通道上下轨。创新高后且当前最高价突破上一根K线收盘价加上ATR的一定倍数多头入场,价格突破下轨,平仓出场。创新低后且当前最低价突破上一根K线收盘价减去ATR的一定倍数空头入场,价格突破上轨,平仓出场。

TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR,26),COLORYELLOW;//求26个周期内的TR的简单移动平均
C1:REF(C,1)+REF(ATR,1)*0.79;//上轨
C2:REF(C,1)-REF(ATR,1)*0.79;//下轨
HIGH>HHV(REF(HIGH,1),10)&&H>=REF(C,1)+REF(ATR,1)*0.79,BPK;
LOW<LLV(REF(L,1),10)&&L<=REF(C,1)-REF(ATR,1)*0.79,SPK;
CROSS(C2,C),SP;//价格突破下轨,多头止损平仓
CROSS(C,C1),BP;//价格突破上轨,空头止损平仓
AUTOFILTER;

价格突破通道模型:

img

例4 形态止损模型

思路:将当前价格和MA之差定义为DRD,N天DRD的加和除以DRD绝对值的加和。设置5为入市阈值,如果RDV>5,则入场做多,K线出现向下跳空缺口,平仓出场。设置-5为入市阈值,如果RDV<-5,则入场做空,K线出现向上跳空缺口,平仓出场。

RMA:=MA(CLOSE,15); 
DRD:=CLOSE-RMA;//将当前价格和MA之差定义为DRD                
NDV:=SUM(DRD,15); 
TDV:=SUM(ABS(DRD),15); 
RDV:=VALUEWHEN(TDV>0,100*NDV/TDV);//15天DRD的和除以DRD绝对值的和
RDV>5,BPK;
RDV<-5,SPK;
MAX(C,O)<REF(MIN(C,O),1),SP;//K线出现向下跳空缺口,多头止损
MIN(C,O)>REF(MAX(C,O),1),BP;//K线出现向上跳空缺口,空头止损
AUTOFILTER;

形态止损模型: img

例5 K线止损模型

思路:两组均线均成多头排列时且当前价高于上根K线最高价入场做多,一根阴线跌破四条均线多头止损。两组均线均成空头排列时且当前价低于上根K线最低价入场做空,一根阳线上穿四条均线空头止损。

MA3:MA(CLOSE,3);
MA5:MA(CLOSE,5);
MA10:MA(CLOSE,10);
MA20:MA(CLOSE,20);//均线组合
MA5>MA20&&MA3>MA10&&HIGH>=REF(HIGH,1),BPK;
MA5<MA20&&MA3<MA10&&LOW<=REF(LOW,1),SPK;
ISDOWN&&O>MAX1(MA3,MA5,MA10,MA20)&&C<MIN1(MA3,MA5,MA10,MA20),SP;
//一根阴线跌破四条均线多头止损
ISUP&&C>MAX1(MA3,MA5,MA10,MA20)&&O<MIN1(MA3,MA5,MA10,MA20),BP;
//一根阳线上穿四条均线空头止损
AUTOFILTER;

K线止损模型:

img

例6 基于BOLL和SAR的指标止损模型

思路:最高价大于布林上轨时入场做多,抛物转向值上穿0,多头止损。最低价小于布林下轨时入场做空,抛物转向值下穿0,空头止损。

MID:=MA(CLOSE,26);//求26个周期的收盘价均线,称为布林通道中轨
TMP2:=STD(CLOSE,26);//求26个周期内的收盘价的标准差
TOP:=MID+2*TMP2;//布林通道上轨
BOTTOM:=MID-2*TMP2;//布林通道下轨
STEP1:=2/100;
MVALUE1:=2/10;
SARLINE:SAR(4,STEP1,MVALUE1),CIRCLEDOT;
//4个周期的抛物转向,步长为STEP1,极限值为MVALUE1
HIGH>=TOP,BPK;
LOW<=BOTTOM,SPK;
CROSS(SARLINE,0),BP;//抛物转向值上穿0,多头止损
CROSS(0,SARLINE),SP;//抛物转向值下穿0,空头止损
AUTOFILTER;

img

以上就是各个止损模型的大概代码框架,各位读者可以根据自己的需求取舍,交易之道在于灵活运用各种策略和方法,止损在一个量化交易策略中的重要性不言而喻,各位读者在运用以上模型时,且不能生搬硬套,一定要多次检查自己的交易标的和模型的适用性,然后在进行模拟盘的多次回测,确定模型无误,再运用到实盘上。


Related

More