上面是机械的部分。
人类的自由度就是信号过滤,加减仓。
信号过滤部分,BIASU(多头)大于某个数值或BIASD(空头)小于某个数值的
信号将被过滤,等回落至轨道附近再开仓。当然你也可以选择不过滤。 加仓,MACD缩小后再增加的时候加仓,加仓采取金字塔式,只可加两次,但是
MACD背离的情况下不加仓。当然你也可以选择从不加仓。
减仓,BIASU(多头)大于某个数值时减仓,BIASD(空头)小于某个数值时减仓,
减多少由你定,你也可以选择不减。
加入的自由度部分 增加辅助判断的资金方向指标
PJ:=(C+O+H+L)/4;
资金方向:SUM(AMOUNT*((PJ-REF(PJ,1))/REF(PJ,1)),10)
辅助开仓法则,V形反转后,前面的缺口被填补后开与轨道方向相反的10%仓位,
5%止损,执行50%法则。
轨道角度不大时BIASU>1 BIASD<-1信号不开仓,等价格在轨道外而BIASU<1 BIASD>-1才开仓,当V形反转出现后,轨道角度较大时,不进行开仓信号过滤。
加仓法则
MACD缩小后再增加,未背离情况下加仓。金字塔式加仓法,最多加到7成仓位
减仓法则
螺纹BIASU>12,BIASD<-8减5成仓 豆一BIASU>7,BIASD<-15减5成仓 豆粕BIASU>10,BIASD<-16减5成仓 豆油BIASU>14,BAISD<-24减5成仓 玉米BIASU>4,BIASD<-8减5成仓 PTA BIASU>10,BIASD<-30减5成仓 橡胶BIASU>10,BIASD<-40减5成仓 棉一BIASU>6,BIASD<-15减5成仓 棕榈BIASU>14 ,BIASD<-25减5成仓
减仓后如果资金方向指标背离后创新低新高则清仓,V形反转填补之前的缺口也清仓。清仓后如果价格继续沿原来方向运动则要价格和资金方向指标创新高新低
后再开仓,仓位按照原来的计算公式手动计算。
针对豆系这类经常围绕轨道跳空宽幅震荡的品种。增加了辅助买卖法则。 如果价格由突破点运动幅度少于10%,则价格反向运动填补正向缺口后平仓并建
立10%反向头寸。这个头寸遵循这些平仓法则:损失3%、缺口被填补、利润回撤
50%。
如果价格由突破点运动幅度大于10%,则只有BIASD、BIASU数值达到减仓值后
才实施上面的辅助买卖法则
==================================
================
==================================
================
指标:
一、博弈:失败指标
http://hzhou1986.spaces.live.com ... B3751BB6F!347.entry http://hzhou1986.spaces.live.com ... B3751BB6F!805.entry
我用过不同公司下载的文化,发现很怪,对同一个函数的源代码不一样。上面的
代码在国泰君安期货那里下载的文华里有效。
三个“失败指标”的文华算法:
BB:=BARPOS;
B:=IF(CLOSE>MA(CLOSE,20),1,0); S:=IF(CLOSE SD:=BARSLAST(REF(B,1)); BD:=BARSLAST(REF(S,1)); SR:=IF(S=1&&BB>50&&B=0&&REF(S,1)=0,CLOSE/REF(CLOSE,BD)-1,0); SR1:=IF(S=1&&BB>50&&REF(S,1)=0,CLOSE-REF(CLOSE,BD),0); SR2:=IF(BB>50,CLOSE/REF(CLOSE,BD)-1,0); LASTS:=IF(ISLASTBAR,CLOSE/REF(CLOSE,BD)-1,0); BR:=IF(B=1&&BB>50&&S=0&&REF(B,1)=0,REF(CLOSE,SD)/CLOSE-1,0); BR1:=IF(B=1&&BB>50&&REF(B,1)=0,REF(CLOSE,SD)-CLOSE,0); BR2:=IF(BB>50&&S=0,REF(CLOSE,SD)/CLOSE-1,0); LASTB:=IF(ISLASTBAR,REF(CLOSE,SD)/CLOSE-1,0); TR := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); SSS:=IF(S<>REF(S,1),0,SD+BD); ZX:=IF(SR>0&&S<>REF(S,1),1,0); ZC:=IF(BR>0&&S<>REF(S,1),1,0); ZZ:=ZX+ZC; ZD:=BARSLAST(ZZ)-SSS; AA:=IF(ZD>0,0,1); AD:=BARSLAST(AA); SRBR:=IF(BB>(BARPOS-AD),SR1+BR1,0); TT2:=IF(SRBR<0,1,0); {依次显示收盘价、ATR、显示连续亏损次数、连续亏损时间、连续亏损幅度} BY1:=INTPART(CLOSE); BY2:=INTPART(MA(TR,14)),COLORYELLOW; IF(BB>(BARPOS-AD),INTPART(COUNT(TT2,AD)),0); BARSLAST(ZZ)-SSS; IF(BB>(BARPOS-AD),INTPART(SUM(SRBR,AD)/MA(CLOSE,320)*100),0); ========================= 失败指标完善 代码运用于amibroker,主要由4部分构成,第一部分是某标准系统的买卖条件;第二部分是求该系统下的每次的连续亏损时间、次数、天数;第三部分是用上述数据计算历史数据的失败指标;第四部分是计算当前持仓的失败指标。将三、四 部分结果求和可得连续化的失败指标。 _SECTION_BEGIN(\ mma=IIf(IsEmpty(MA(C,20)),0,MA(C,20)); mma2=IIf(IsEmpty(MA(C,1)),0,MA(C,1)); xxx=Cross(mma2,mma) AND Ref(mma2,-1)!=Ref(mma,-1); yyy=Cross(mma,mma2) AND Ref(mma2,-1)!=Ref(mma,-1); aa=BarsSince( xxx )+1; bb=BarsSince( yyy)+1; rice\ aaa=IIf(IsEmpty(aa),0,aa); bbb=IIf(IsEmpty(bb),0,bb); c2=IIf(aaa>bbb,-bbb,aaa); c1=IIf(IsEmpty(c2),0,IIf(C2>0,1,-1)); C5=IIf(xxx+yyy,1,0); //Plot(C5*100,\ C6=BarsSince( C5 ); C7=Ref(C,-C6); dbsyl1=IIf(C1==-1&&Ref(C1,-1)==1,C7/Ref(C7,-1)-1,0); dbsyl2=IIf(C1==1&&Ref(C1,-1)==-1,Ref(C7,-1)/C7-1,0); dbsyl=dbsyl1+dbsyl2; syl[0]=1; Lxkscs[0]=0; Lxkssj1[0]=0; Lxkssj2[0]=0; Lxkssj3[0]=0; Lxkssj4[0]=0; Lxkssj5[0]=0; Lxksfd1[0]=1; Lxksfd3[0]=0; CLxkscs1[0]=0; CLxkscs2[0]=0; CLxkscs3[0]=0; C9=IIf(dbsyl>0,2,IIf((c5==1 AND dbsyl==0) OR dbsyl<0,1,0)); for(i=1;i<=EndValue(BarIndex());i++) { syl=syl[i-1]*(dbsyl+1); if(C9==1)Lxkscs=Lxkscs[i-1]+C9; if(C9==2)Lxkscs=0; if(C9==0)Lxkscs=Lxkscs[i-1]; //--------Lxkscs shi lian xu kui sun ci shu if((Lxkscs==1 AND Lxkscs[i-1]==0))Lxkssj1=i; else if(Lxkscs>0)Lxkssj1=Lxkssj1[i-1]; if(Lxkssj1>0 AND Lxkssj1[i-1]>0)Lxkssj2=Lxkssj2[i-1]+1; if(Lxkscs==Lxkscs[i-1])Lxkssj3=Lxkssj3[i-1]+1; if(Lxkssj1[1]>0)Lxkssj4=Lxkssj2-Lxkssj3;