以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 改写代码-请求老师帮助 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=172947) |
-- 作者:3216995438 -- 发布时间:2019/11/7 15:31:59 -- 改写代码-请求老师帮助 SETTLE; DRAWNUMBER(ISLASTBAR,SETTLE,SETTLE,2,COLORLIGHTGREY),FONTSIZE20,ALIGN0; DRAWSL(ISLASTBAR,SETTLE,0,30,0,COLORLIGHTGREY); TR1 := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR:=MA(TR1,26),COLORBLACK; MA26:=MA(C,26); RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:=SMA(RSV,3,1); D:=SMA(K,3,1); DRAWTEXT(C-REF(C,1)>REF(ATR,1)&&K>REF(K,1)&&K>D&&ISUP&&(A9||AA9),L,\'阳\'),COLORMAGENTA,VALIGN0,FONTSIZE15; DRAWTEXT(C-REF(C,1)<REF(ATR,1)&&K<REF(K,1)&&K<D&&ISDOWN&&(B9||BB9),H,\'阴\'),COLORGREEN,VALIGN2,FONTSIZE15; A9://变量 AA9://变量 B9://变量 BB9://变量 TT:=TIME>=0915&&TIME<1455||TIME>=2115&&TIME<055; TT&&CROSS(C,SETTLE)&&A9||AA9&&BKVOL=0,BK(1); TT&&C>BKPRICE&&A9||AA9,BK(1); TT&&CROSSDOWN(C,SETTLE)&&B9||BB9&&SKVOL=0,SK(1); TT&&C<SKPRICE&&B9||BB9,SK(1); TIME>=1457&&TIME<1500||TIME>=057&&TIME<100,CLOSEOUT; CHECKSIG(CLOSEOUT,\'A\',0,\'C\',0,0); TRADE_AGAIN(100); DIFF := EMA(CLOSE,12) - EMA(CLOSE,26); DEA := EMA(DIFF,9); MACD:=2*(DIFF-DEA),COLORSTICK; DRAWCOLORKLINE(EVERY(C>=SETTLE,2)||EVERY(C>MA(C,26),2)||EVERY(C<SETTLE,2)||EVERY(C<MA(C,26),2),COLORYELLOW,0); DRAWCOLORKLINE((EVERY(C>SETTLE&&C>MA(C,26),2)||(EVERY(C>SETTLE,2)||EVERY(C>MA(C,26),2)))&&MA(C,26)>REF(MA(C,26),1)&&DEA>REF(DEA,1),RGB(188,58,3),0); DRAWCOLORKLINE((EVERY(C<SETTLE&&C<MA(C,26),2)||(EVERY(C<SETTLE,2)||EVERY(C<MA(C,26),2)))&&MA(C,26)<REF(MA(C,26),1)&&DEA<REF(DEA,1),COLORWHITE,0); DRAWTEXT(CROSS(C,SETTLE)&&A9||AA9,L,\'阳\'),COLORMAGENTA,VALIGN0,FONTSIZE15; DRAWTEXT(CROSSDOWN(C,SETTLE)&&(B9||BB9),H,\'阴\'),COLORGREEN,VALIGN2,FONTSIZE15; DRAWCOLORKLINE(CROSS(C,SETTLE)&&A9||AA9,COLORMAGENTA,0); DRAWCOLORKLINE(CROSSDOWN(C,SETTLE)&&(B9||BB9),COLORGREEN,0); DRAWCOLORKLINE((C>SETTLE)&&A9||AA9,COLORRED,0); DRAWCOLORKLINE((C<SETTLE)&&(B9||BB9),COLORBLUE,0); HH:HHV(H,CROSS(C,SETTLE)&&A9||AA9);//买入显示价格 DRAWSL(CROSS(C,SETTLE)&&A9||AA9,HH,0,2,0,COLORRED),LINETHICK5; DRAWNUMBER(CROSS(C,SETTLE)&&A9||AA9,HH,HH,2,COLORWHITE),ALIGN0;//数字 HH3:HHV(H,C>BKPRICE&&A9||AA9);//买入显示价格 DRAWSL(C>BKPRICE&&A9||AA9,HH3,0,2,0,COLORRED),LINETHICK5; DRAWNUMBER(C>BKPRICE&&A9||AA9,HH3,HH3,2,COLORWHITE),ALIGN0;//数字 LL:LLV(L,CROSSDOWN(C,SETTLE)&&B9||BB9);//卖出显示价格 DRAWSL(CROSSDOWN(C,SETTLE)&&B9||BB9,LL,0,2,0,COLORRED),LINETHICK5; DRAWNUMBER(CROSSDOWN(C,SETTLE)&&B9||BB9,LL,LL,2,COLORWHITE),ALIGN0;//数字 LL3:LLV(L,C<SKPRICE&&B9||BB9);//卖出显示价格 DRAWSL(C<SKPRICE&&B9||BB9,LL3,0,2,0,COLORRED),LINETHICK5; DRAWNUMBER(C<SKPRICE&&B9||BB9,LL3,LL3,2,COLORWHITE),ALIGN0;//数字 请求帮助改成金字塔的程序化
|
-- 作者:FireScript -- 发布时间:2019/11/15 13:53:58 -- 大部分逻辑能进行转换,但是部分函数不能或无法等效替换。这些部分建议提供一些替代思路,这样会比较好点。此外部分变量未提供原始定义,请用户自行完善。 //结算价,需要在1分钟周期上才能正常计算。如果你当前指标是其他周期,那么请将下面结算价部分的代码单独放到一个指标中,再用stkindi函数进行调用。 n1:=todaybar; dm:=4-INTPART(LOG(C)); SETTLE:ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm),colorred; DRAWNUMBER(ISLASTBAR,SETTLE,SETTLE,2,COLORYELLOW,0); //DRAWSL(ISLASTBAR,SETTLE,0,30,0,COLORYELLOW); 无法从起点是最新K的位置绘制直线 TR1 := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR:=MA(TR1,26),COLORBLACK; MA26:=MA(C,26); RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:=SMA(RSV,3,1); D:=SMA(K,3,1); A9:=1;//变量 AA9:=1;//变量 B9:=1;//变量 BB9:=1;//变量 DRAWTEXT(C-REF(C,1)>REF(ATR,1) and K>REF(K,1) and K>D and ISUP and (A9 or AA9),L,\'阳\',COLORRED,0); DRAWTEXT(C-REF(C,1)<REF(ATR,1) and K<REF(K,1) and K<D and ISDOWN and (B9 or BB9),H,\'阴\',COLORGREEN,0); TT:=TIME>=131500 and TIME<185500 or TIME>=11500 and TIME<45500;//9点15-14点55 或者21点15-0点55 if TT and CROSS(C,SETTLE) and A9 or AA9 and holding=0 then begin sellshort(holding<0,holding,market); buy(1,1,market); end if TT and C>AvGENTERPRICE and A9 or AA9 then buy(holding>0,1,market); if TT and CROSS(SETTLE,c) and B9 or BB9 and holding=0 then begin sell(holding>0,holding,market); buyshort(holding=0,1,market); end if TT and C<AvGENTERPRICE and B9 or BB9 then buyshort(holding<0,1,market); if TIME>=185700 and TIME<190000 or TIME>=45700 and TIME<50000 then begin sell(holding>0,holding,market); sellshort(holding<0,holding,market); end //TRADE_AGAIN(100); 这个无法实现 DIFF := EMA(CLOSE,12) - EMA(CLOSE,26); DEA := EMA(DIFF,9); MACD:=2*(DIFF-DEA),COLORSTICK; //DRAWCOLORKLINE无法等效替换 使用柱形近似替代。效果相近 STICKLINE(EVERY(C>=SETTLE,2) or EVERY(C>MA(C,26),2) or EVERY(C<SETTLE,2) or EVERY(C<MA(C,26),2),c,o,0.8,0,COLORYELLOW); STICKLINE((EVERY(C>SETTLE and C>MA(C,26),2) or (EVERY(C>SETTLE,2) or EVERY(C>MA(C,26),2))) and MA(C,26)>REF(MA(C,26),1) and DEA>REF(DEA,1),c,o,0.8,1,RGB(188,58,3)); STICKLINE((EVERY(C<SETTLE and C<MA(C,26),2) or (EVERY(C<SETTLE,2) or EVERY(C<MA(C,26),2))) and MA(C,26)<REF(MA(C,26),1) and DEA<REF(DEA,1),c,o,0.8,1,COLORWHITE); DRAWTEXT(CROSS(C,SETTLE) and A9 or AA9,L,\'阳\',COLORMAGENTA,0); DRAWTEXT(CROSS(SETTLE,C) and (B9 or BB9),H,\'阴\',COLORGREEN,0); //DRAWCOLORKLINE无法等效替换 使用柱形近似替代。效果相近 STICKLINE(CROSS(C,SETTLE) and A9 or AA9,c,o,0.8,0,COLORMAGENTA); STICKLINE(CROSS(SETTLE,C) and (B9 or BB9),c,o,0.8,0,COLORGREEN); STICKLINE((C>SETTLE) and A9 or AA9,c,o,0.8,0,COLORRED); STICKLINE((C<SETTLE) and (B9 or BB9),c,o,0.8,0,COLORBLUE); DRAWSL(HOLDING>0 and CROSS(C,SETTLE) and A9 or AA9,h,0,2,0,COLORRED),LINETHICK5; DRAWNUMBER(HOLDING<0 and CROSS(C,SETTLE) and A9 or AA9,h,h,2,COLORWHITE); DRAWSL(holding>0 and C>ENTERPRICE and A9 or AA9 and holding>0,h,0,2,0,COLORRED),LINETHICK5; DRAWNUMBER(holding>0 and C>ENTERPRICE and A9 or AA9 and holding>0,H,H,2,COLORWHITE); DRAWSL(HOLDING<0 and CROSS(SETTLE,c) and B9 or BB9 ,L,0,2,0,COLORRED),LINETHICK5; DRAWNUMBER(HOLDING<0 and CROSS(SETTLE,c) and B9 or BB9,L,L,2,COLORWHITE); DRAWSL( HOLDING<0 and C<ENTERPRICE and B9 or BB9,L,0,2,0,COLORRED),LINETHICK5; DRAWNUMBER(HOLDING<0 and C<ENTERPRICE and B9 or BB9,L,L,2,COLORWHITE); |