海龟交易法则之极简的开仓条件

标签:
海龟交易法则 |
在金融市场的二级市场交易中盈利是一场和人性的战争,这个过程中要不断克服贪婪、恐惧的人性弱点,说的容易实际却很难做到,如果你在交易过程中依赖自己的判断,你的内心会受到反复煎熬。QR社区告诉我们,依赖一种或者多种特定的策略来帮助我们制定规则、跟随规则去交易,这种方法可以帮助我们消除掉很多不确定性,有助于我们在交易市场的惊涛骇浪之中更加容易地生存下去。
接下来是一段来自文华财经的海龟交易法则的代码实例:
//该示范主要用海龟交易法则,演示“头寸计算,最大仓位控制等资金管理”的编写方法
//该模型仅仅用来示范演示使用,依此入市,风险自负。
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//真实波幅
ATR:=MA(TR,26); //求26个周期内真实波幅的简单移动平均
//TC:=INTPART((MONEYTOT*0.01/(0.5*ATR)));//根据权益的1%计算下单手数
TC:=INTPART((MONEYTOT*0.01/(0.5*ATR)));//根据权益的1%计算下单手数
//MTC^^4*TC; //总的持仓头寸:
MTC:=INTPART((MONEYTOT*0.01/(UNIT*ATR)));//根据权益的1%计算下单手数
HH:HV(H,20);
LL:LV(L,20);
CROSSUP(C,HH)&&ISLASTBK=0&&ISLASTSK=0&&BARPOS>=26,BK(TC);//最新价超过20周期的最高值,首次买入开仓,手数为TC手
CROSSDOWN(C,LL)&&ISLASTBK=0&&ISLASTSK=0,SK(TC); //最新价跌破20周期的最低值,首次卖出开仓,手数为TC手
//C>=BKPRICE+0.5*ATR&&BKVOL<="">
//C<=SKPRICE-0.5*ATR&&SKVOL<="">
C<=(BKPRICE-2*ATR)&&BKVOL>0,SP(BKVOL);//最新价小于开仓价减去2倍的ATR,止损平仓
C>=(SKPRICE+2*ATR)&&SKVOL>0,BP(SKVOL); //最新价大于开仓价加上2倍的ATR,止损平仓
CROSSUP(H,HV(H,10))&&SKVOL>0,BP(SKVOL);//最高价上穿10周期最高价,平仓
CROSSDOWN(L,LV(L,10))&&BKVOL>0,SP(BKVOL); //最低价下穿10周期的最低价,平仓
TRADE_AGAIN(10);
QR量化投资中提到,海龟交易法则是一种十分常见的交易策略,也是一个完整的交易系统,覆盖了交易的各个方面,并且不给交易员留下一点主观想象决策的余地。它具备一个完整的交易系统的所有成分。海龟交易法则的一大特点是其极简的开仓条件。一般开仓条件越复杂,整个策略在进仓时需要考虑的复杂性就会越高,虽然多维度的信号同时满足开仓条件可以增加交易盈利的概率,但是也会带来策略不稳定性的增加。在此,我们就来简要介绍下海龟交易法则极简的开仓条件。
文华海龟交易法则开仓部分代码:
CROSSUP(C,HH)&&ISLASTBK=0&&ISLASTSK=0&&BARPOS>=26,BK(TC);//最新价超过20周期的最高值,首次买入开仓,手数为TC手
CROSSDOWN(C,LL)&&ISLASTBK=0&&ISLASTSK=0,SK(TC); //最新价跌破20周期的最低值,首次卖出开仓,手数为TC手
一个完整系统的成分:
一个完整的交易系统包含了成功的交易所需的每项决策:
1. 市场——卖卖多少
2. 头寸规模——卖卖多少
3. 入市——何时买卖
4. 止损——何时退出亏损的头寸
5. 离市——何时退出盈利的头寸
6. 策略——如何买卖
海龟交易法则的开仓信号只会根据价格是否创新高、创新低而产生,信号的参数只有一个,即创新高、创新低的时间窗口,这一点比大多数均线策略还要简单。有人会问,如何定义“简单”两字呢?宽客相对论认为定义一个开仓条件是否简单还是复杂的标准,是看它需要计算的参数的个数有多少。海龟交易法则中,开仓条件是根据前N天的最高价和最低价来决定,因此只有一个参数N,而大多数的均线策略的开仓条件都需要计算2到3个参数,比如MACD、KDJ、等。
举个例子,如图,交易员常用的MACD指标在生成买卖开仓信号的过程中,需要三个参数:SHORT, LONG和M,因此需要同时确定三个参数的数字,才可以生成开仓信号。
文华中MACD指标选股的公式代码:
DIFF:= EMA(CLOSE, SHORT) - EMA(CLOSE, LONG);
DEA:= EMA(DIFF, M);
CROSS(DIFF, DEA), SELECT; //选出DIFF上穿DEA的股票
再来看KDJ,同样的,也是有三个参数作为开仓信号来计算:
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
J:=3*K-2*D;
CROSS(J,0), SELECT; //选出J值上穿0轴的股票
而海龟交易法则在计算开仓信号时,只有一个参数。并且由于是根据前N个周期创新高、创新低开仓,因此开仓信号的变更频率也可以根据参数N来控制。如果将N设大一些,则不会出现每天都有开仓信号、信号闪烁导致来回亏钱、并且多付出手续费和滑点成本的问题,这一点显示了其和均线策略对比之后的优点,并且在QR量化社区中也有所提及。