以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- [求助 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=61874) |
-- 作者:点点 -- 发布时间:2014/2/20 18:13:54 -- [求助 我的程序,编译不了哦。。。 //主图显示资产 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY; //输出当前资产,但不影响坐标最高最低值 //定义变量 VARIABLE:i:=0; INPUT:lot(0.1,0.1,1,0.1); VARIABLE:ljl:=1000000;
//入金量 VARIABLE:zcb:=0.5; //仓位控制 VARIABLE:ccj:=MULTIPLIER*ENTERPRICE; //持仓金额 VARIABLE:ccb:=ccj/ljl; //帐户持仓比 attack:=MA(CLOSE,5); defend:=MA(CLOSE,13); life:=MA(CLOSE,34); brunttop:=EMA(CLOSE,153); bruntmiddleone:=EMA(CLOSE,173); bruntmiddletwo:=EMA(CLOSE,193),COLORYELLOW; bruntmiddlethree:=EMA(CLOSE,213),COLORYELLOW; bruntend:=EMA(CLOSE,233),COLORYELLOW; //三线金叉 jc1:=CROSS(attack,defend); jc2:=CROSS(defend,life); //jc:=jc1 and jc2; jcma:=(ma(close,5)>ma(close,13)) and (ma(CLOSE,13)>ma(close,34)); jcline:=COUNT(jcma,5); //三线死叉 sc1:=CROSS(defend,attack); sc2:=CROSS(life,defend); //sc:=sc1 and sc2; scma:=(ma(close,5)<ma(close,13)) AND (ma(CLOSE,13)<ma(close,34)); scline:=COUNT(scma,5); //循环交易系统 WHILE i<10 DO BEGIN
if (ccb<zcb) and (time<(closetime(0)-500))
BEGIN
BEGIN
IF jcline>=3 THEN
SELLSHORT(jcma and HOLDING<0,HOLDING,market); //平空操作
BUY(jcma and HOLDING=0,lot,market);//开多操作
//限价止损
BEGIN
INPUT:D(10,1,100,1);
IF C-ENTERPRICE>D*mindiff and HOLDING<0 THEN
BEGIN
SELLshort(HOLDING<0,HOLDING,MARKET);//止空
END;
IF ENTERPRICE-C>D*mindiff and HOLDING>0 THEN
BEGIN
SELL(HOLDING>0,HOLDING,MARKET);//止多
END;
end
//移动止损
BEGIN
INPUT:ST(3,1,20,1);
BO:=HOLDING>0 AND ENTERBARS>1;
SO:=HOLDING<0 AND ENTERBARS>1;
TP:=IF(BO,HHV(C,ENTERBARS),IF(SO,LLV(C,ENTERBARS),0));
IF BO AND C<=TP*(1-0.01*ST) THEN SELL(1,0,LIMITR,C);
IF SO AND C>=TP*(1+0.01*ST) THEN SELLSHORT(1,0,LIMITR,C);
END
end
BEGIN
IF
scline>=3
THEN
SELL(scma and HOLDING>0,HOLDING,market); //平多操作
BUYSHORT(scma and HOLDING=0,lot,market); //开空操作
//限价止损
BEGIN
INPUT:D(10,1,100,1);
IF C-ENTERPRICE>D*mindiff and HOLDING<0 THEN
BEGIN
SELLshort(HOLDING<0,HOLDING,MARKET);//止空
END;
IF ENTERPRICE-C>D*mindiff and HOLDING>0 THEN
BEGIN
SELL(HOLDING>0,HOLDING,MARKET);//止多
END;
end
//移动止损
BEGIN
INPUT:ST(3,1,20,1);
BO:=HOLDING>0 AND ENTERBARS>1;
SO:=HOLDING<0 AND ENTERBARS>1;
TP:=IF(BO,HHV(C,ENTERBARS),IF(SO,LLV(C,ENTERBARS),0));
IF BO AND C<=TP*(1-0.01*ST) THEN SELL(1,0,LIMITR,C);
IF SO AND C>=TP*(1+0.01*ST) THEN SELLSHORT(1,0,LIMITR,C);
end
end
END i:=i+1; end
|
-- 作者:点点 -- 发布时间:2014/2/20 18:14:09 -- 请教高手哪里有问题啊? |
-- 作者:点点 -- 发布时间:2014/2/20 18:14:20 -- 谢谢 |
-- 作者:fly -- 发布时间:2014/2/21 9:34:15 -- 少了BEGIN....END |