以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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

替换下之前的下单代码。建议学习下基本的代码编写,否则后续很难进行维护的。