VARIABLE:dayCount=1,PositionCount=1,SellSign=0; VARIABLE:EntAndExitSign=1,EntPoint=0,ExitPoint=0; VARIABLE:True=1,False=0,N=0; TR :=MAX(HIGH,CLOSE[1])-MIN(LOW,CLOSE[1]); IF BARPOS>=20 THEN BEGIN IF BARPOS=20 THEN N:=MA(TR,20); IF DayCount=5 OR BARPOS=20 THEN BEGIN{5天调整N值} N:=(19*N+TR)/20;{计算N值} DayCount:=1; END DayCount:=DayCount+1; EntPoint:=ENTERBARS+1; IF EntPoint=EntAndExitSign THEN BEGIN{说明STOP指令买进头寸成功} PositionCount:=PositionCount+1;{头寸计数} SellSign:=True;{开始以STOP卖出,如果达到指定的价格} END IF PositionCount=1 THEN BEGIN{第一头寸} HOW:=CASH*0.01/N;{波动性百分比决定头寸规模} BUY(HOW,STOP,HHV(H,20));{在20日新高STOP指令买进} END IF PositionCount=2 THEN BEGIN{如到第二头寸} HOW:=CASH*0.01/N;{波动性百分比决定头寸规模} BUY(HOW,STOP,ENTERPRICE+0.5*N);{在上头寸(即第一头寸)+0.5个N以STOP指令买进} END IF PositionCount=3 THEN BEGIN{如到第三头寸} HOW:=CASH*0.01/N; BUY(HOW,STOP,ENTERPRICE+0.5*N);{在上头寸(即第二头寸)+0.5个N以STOP指令买进} END IF PositionCount=4 THEN BEGIN HOW:=CASH*0.01/N; BUY(HOW,STOP,ENTERPRICE+0.5*N); END IF SellSign=True THEN BEGIN ExitPoint:=EXITBARS+1; IF ExitPoint=EntAndExitSign THEN BEGIN {说明卖出成功} PositionCount:=1;{头寸计算复原} SellSign:=False; END IF ENTERPRICE-2*N<LLV(L,10) THEN SELL(100%,STOP,LLV(L,10));{退出离盈利头寸} ELSE SELL(100%,STOP,ENTERPRICE-2*N);{退出亏损头寸} END END; 作者: 战神觉者
发现了一个 http://bbs.macd.cn/viewthread.php?tid=690586&fpage=1&highlight=%BA%A3%B9%EA%BD%BB%D2%D7%CF%B5%CD%B3