鳄鱼法则
假定一只鳄鱼咬住你的脚,如果你用手去试图挣脱你的脚,鳄鱼便会同时咬住你的脚与手。你愈挣扎,就被咬住得越多。所以,万一鳄鱼咬住你的脚,你唯一的机会就是牺牲一只脚。
在资本市场里,无论是数字货币还是商品期货,鳄鱼法则就是:当你发现自己的交易背离了市场的方向,必须立即止损,不得有任何延误,不得存有任何侥幸。
保住资本永远是第一位的
投资大师 相信最重要的事情永远是保住资本,这是他投资策略的基石
失败的投资者 唯一的投资目标就是“赚大钱”。结果,他常常连本钱都保不住。
投资大师知道:避免赔钱远比赚钱要容易。如果你损失了投资资本的50%,你必须将你的资金翻倍才能回到最初的起点。
空间止损法
关键:将止损价位设置在某一基准位置上下,实现防患于未然的方法。
例如:
做多止损——以支撑线为基准,在支撑线之下设置止损; 做空止损——以阻力线为基准,在阻力线之上设置止损。
这种止损方法属于价格模式方法,相当于设置了止损的“最大限额”,目 的是为了保护自己,避免情绪干扰导致的灭顶之灾。当我们建立头寸后, 若消极等待价格下落至最大止损线才迟迟行动,就比较被动了,预设的最大 止损限额只可以在行情突然转向的时候起到很好的阻截作用。
限价止损法
止损策略:在开仓前预先设定了止损位置。
策略举例:在某一个固定价格点位进行止损,还可以在买入价下方的3% 或5%处止损,一旦价格有效跌破该止损位置,则立即离场。这里所说的“有效跌破”,一般是指收盘价格。
跟盘浮动止损法
止损策略:以设置止损时的盈亏为标准,从最大盈亏回撤N个价位后进行止损的方式。
策略举例:假如在8946点位对PTA做多单,设置价格回撤10点位时(8936)止损,当PTA价涨到8950时,止损价位会自动重新定位在8940。
回撤止损法 如果买入之后价格先上升,达到一个相对高点后再下跌,那么可以设定从相对高点开始的下跌幅度为止损目标,这个幅度的具体数值也由个人情况而定。另外还可以再加上下跌时间(即天数)的因素,例如设定在3天内回撤下跌5%即进行止损。回撤止损实际更经常用于止赢的情况。
时间止损法
应用:日内超短交易模式
关键:建仓后,一定时间内市场没有出现有利的波动,止损离场,重新寻找进场的时机。
交易原理:利用价格在某个因素如外盘影响、盘中支撑位和压力位的突破与假突破、突发消息等作用下瞬间大幅移动时,顺势或逆势快进快出赚取利润。
时间止损这个做法具有一定的前瞻性,属于其他止损方法分类。时间止损还涉及到开仓时点的问题。比如:应该力求在启动临界点(质变点)的瞬间开仓,期待后面会发生疯狂追涨杀跌,但这只是预期,如果没有发生,那就平仓离场,不要等到下跌支撑或上穿阻力之后才去止损的。
典型的时间止损:
横盘止损
止损策略:将买入之后价格在一定幅度内横盘的时间设为止损目标
策略距离:设定买入后5 天内上涨幅度未达到5%即进行止损。
横盘止损一般要时间止损与最大亏损法同时使用,以全面控制风险。
技术止损法
关键:技术止损法是较为复杂一些的止损方法,是将止损设置与技术分析相结合,剔除市场的随机波动之后,在关键的技术位设定止损单,从而避免亏损的进一步扩大。
应用:技术止损法要求投资者有较强的技术分析能力和自制力。技术止损法相比前一种对投资者的要求更高一些,很难找到一个固定的模式。一般而言,运用技术止损法,无非就是以小亏赌大盈。
举例:在上升通道的下轨买入后,等待上升趋势的结束再平仓,并将止损位设在相对可靠的平均移动线附近,这样可以低进高出,获取差价。
典型的技术止损:
趋势切线止损:
包括价格有效跌破趋势线的切线;价格有效击破江恩角度线1×1或2×1 线;价格有效突破上升通道的下轨等。
形态止损:
包括股价击破头肩顶、M头、圆弧顶等头部形态的颈线位;价格出现向 下跳空突破缺口等等。
K线止损:
包括出现两阴夹一阳、阴后两阳阴的空头炮,或出现一阴断三线的断头 铡刀,以及出现黄昏之星、穿头破脚、射击之星、双飞乌鸦、三只乌鸦 挂树梢等典型见顶的K线组合等。
指标止损:
根据技术指标发出的卖出指示,作为止损信号,主要包括:MACD出现绿 色柱状线并形成死叉;SAR向下跌破转向点且翻绿等等。其中最简单、 最实用就是SAR抛物式转向指标,亦称为停损点转向操作系统。 SAR就 像股价的守护神,一旦上涨速度跟不上,或者股价反转下跌,SAR都会 紧紧盯着,股价跌破SAR就为平仓信号。
统计止损法
在止损的参照物选择中,我们可以选取各种不同的参考标准,除了技术指标,K线形态,时间以及价位空间外,很多统计变量也是设置止损的重要参考标准,这些统计变量大多是根据统计学以及数学原理得出的,因此我们暂且称之为统计止损。
典型的统计止损:
资金止损法:
这是最简单的止损方法,我们每次交易把风险控制在资金的固定比例上,当连续赚钱时,这个比例代表金额就会增大,所以可以投入更多的资金赚更多的利润,当连续赔钱时,就相反可能缩小损失。
编写止损常用的几个函数:
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; //实现信号过滤
例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;
//适用品种,受外盘影响较大,
开盘波段比较剧烈的品种
止损模型的案例——时间止损:
例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;
价格突破通道模型:
例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;
形态止损模型:
例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线止损模型:
例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;
以上就是各个止损模型的大概代码框架,各位读者可以根据自己的需求取舍,交易之道在于灵活运用各种策略和方法,止损在一个量化交易策略中的重要性不言而喻,各位读者在运用以上模型时,且不能生搬硬套,一定要多次检查自己的交易标的和模型的适用性,然后在进行模拟盘的多次回测,确定模型无误,再运用到实盘上。