以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 文华转金字塔 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=166634) |
-- 作者:a3034316970 -- 发布时间:2018/11/22 18:17:22 -- 文华转金字塔 老师麻烦把在个指标 改成交易系统策略 价格在线上买,反之线下卖出 N:=10; M:=1.5; TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); UP:=(H+L)/2+MA(TR1,N)*M; DN:=(H+L)/2-MA(TR1,N)*M; L1:=REF(UP,BARSLAST(UP<=REF(UP,1))); L2:=LLV(UP,N*1.5); LL:=IF(L2<>REF(L2,1) AND L1<REF(L1,1),L1,IF(L1=L2,L1,L2)); S1:=BARSLAST(CROSS(0.5,UP=LL))+1; S2:=CROSS(COUNT((CROSS(C,LL) OR CROSS(C,REF(LL,2))) AND UP>LL,S1),0.5); A6:=BARSLAST(S2); B6:=BARSLAST(CROSS(HHV(DN,A6+1),C)); BY:=CROSS(B6,A6); SL:=CROSS(A6,B6); SUPERTREN:IF(B6>A6,HHV(DN,BARSLAST(BY)+1),LLV(UP,BARSLAST(SL)+1)),COLORWHITE; DRAWCOLORLINE(B6>A6,SUPERTREN,COLORRED,COLORGREEN),LINETHICK2; DRAWICON(CROSS(B6,A6),SUPERTREN*0.99,4); DRAWICON(CROSS(A6,B6),SUPERTREN*1.015,5); 买进:CROSS(B6,A6)*100,NODRAW,COLORRED; 卖出:CROSS(A6,B6)*100,NODRAW; |
-- 作者:FireScript -- 发布时间:2018/11/23 9:47:42 -- N:=10; M:=1.5; TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); UP:=(H+L)/2+MA(TR1,N)*M; DN:=(H+L)/2-MA(TR1,N)*M; L1:=REF(UP,BARSLAST(UP<=REF(UP,1))); L2:=LLV(UP,N*1.5); LL:=IF(L2<>REF(L2,1) AND L1<REF(L1,1),L1,IF(L1=L2,L1,L2)); S1:=BARSLAST(CROSS(0.5,UP=LL))+1; S2:=CROSS(COUNT((CROSS(C,LL) OR CROSS(C,REF(LL,2))) AND UP>LL,S1),0.5); A6:=BARSLAST(S2); B6:=BARSLAST(CROSS(HHV(DN,A6+1),C)); BY:=CROSS(B6,A6); SL:=CROSS(A6,B6); SUPERTREN:IF(B6>A6,HHV(DN,BARSLAST(BY)+1),LLV(UP,BARSLAST(SL)+1)),COLORWHITE; 买进:CROSS(B6,A6)*100,NODRAW,COLORRED; 卖出:CROSS(A6,B6)*100,NODRAW; if 买进 then buy(holding=0,1,market); if 卖出 then sell(holding>0,holding,market); 以多头为例,其实你代码主体部分并不需要修改。只要添加下交易函数就行了,并且我删除了你这里的绘图函数。
|
-- 作者:a3034316970 -- 发布时间:2018/11/23 13:28:38 -- 老师你好!我刚学,还不会写,麻烦把开空交易函数也写进去,谢谢! |
-- 作者:FireScript -- 发布时间:2018/11/23 13:33:08 -- if 买进 then begin sellshort(holding<0,holding,market); buy(holding=0,1,market); end if 卖出 then begin sell(holding>0,holding,market); buyshort(holding=0,1,market); end 替换下之前的下单代码。建议学习下基本的代码编写,否则后续很难进行维护的。
|