以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  [求助]有时候会出错  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=75692)

--  作者:xiaosa2003
--  发布时间:2015/2/16 17:39:32
--  [求助]有时候会出错
INPUT:N(1,1,100,1),K(0.8,0.1,1,0.1),NMIN(10,1,100,1),SS(0.5,0.1,1,0.1);
variable:a=0;
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
开盘价:=VALUEWHEN(CYC=1,OPEN);
HH:=HHV(昨高,N);//N日HIGH的最高价
HC:=HHV(昨收,N);//N日CLOSE的最高价
LC:=LLV(昨收,N);//N日CLOSE的最低价
LL:=LLV(昨低,N);//N日LOW的最低价
浮动区间:=MAX(HH-LL,HC-LL);//RANGE 
上轨:开盘价+K*浮动区间;
下轨:开盘价-K*浮动区间;
T1:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
T2:=TIME>185800;
手数:=asset*ss/k/浮动区间/MULTIPLIER;
//交易条件
开多条件:=c>上轨 AND HOLDING=0;
开空条件:=c<下轨 AND HOLDING=0;
止损平多条件:=l<开盘价 and HOLDING>0;
止损平空条件:=h>开盘价 and HOLDING<0;
//交易系统
if 开多条件 and a<=2 then begin

    BUY(开多条件 AND T1 AND CYC>1,手数,LIMITr,上轨+MINDIFF);

    a:=a+1;

end;

 

if 开空条件 and a<=2 then begin

    BUYSHORT(开空条件 AND T1 AND CYC>1,手数,LIMITr,下轨-MINDIFF);

    a:=a+1;

end; 
 if time=closetime(0) then a:=0;
止损平多:sell(止损平多条件,0,LIMITR,开盘价-MINDIFF);
止损平空:SELLSHORT(止损平空条件,0,LIMITR,开盘价+MINDIFF);
收盘平多:SELL(T2,0,MARKET);
收盘平空:SELLSHORT(T2,0,MARKET);
涨停平多:sell(c=DYNAINFO(54),0,LIMITr,DYNAINFO(54));
跌停平空:SELLSHORT(c=DYNAINFO(55),0,limitr,DYNAINFO(55));
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150216173833.png
图片点击可在新窗口打开查看
14年1月30号交易了3次。模型是一天交易2次。白糖连续 1分钟数据
[此贴子已经被作者于2015/2/16 17:39:57编辑过]

--  作者:xiaosa2003
--  发布时间:2015/2/16 18:24:03
--  
上面的参数错了,是这个
INPUT:N(1,1,100,1),K(0.3,0.1,1,0.1),NMIN(10,1,100,1),SS(0.1,0.1,1,0.1);
variable:a=0;
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
开盘价:=VALUEWHEN(CYC=1,OPEN);
HH:=HHV(昨高,N);//N日HIGH的最高价
HC:=HHV(昨收,N);//N日CLOSE的最高价
LC:=LLV(昨收,N);//N日CLOSE的最低价
LL:=LLV(昨低,N);//N日LOW的最低价
浮动区间:=MAX(HH-LL,HC-LL);//RANGE 
上轨:开盘价+K*浮动区间;
下轨:开盘价-K*浮动区间;
T1:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
T2:=TIME>185800;
手数:=asset*ss/k/浮动区间/MULTIPLIER;
//交易条件
开多条件:=c>上轨 AND HOLDING=0;
开空条件:=c<下轨 AND HOLDING=0;
止损平多条件:=l<开盘价 and HOLDING>0;
止损平空条件:=h>开盘价 and HOLDING<0;
//交易系统
if 开多条件 and a<=2 then begin

    BUY(开多条件 AND T1 AND CYC>1,手数,LIMITr,上轨+MINDIFF);

    a:=a+1;

end;

 

if 开空条件 and a<=2 then begin

    BUYSHORT(开空条件 AND T1 AND CYC>1,手数,LIMITr,下轨-MINDIFF);

    a:=a+1;

end; 
 if time=closetime(0) then a:=0;
止损平多:sell(止损平多条件,0,LIMITR,开盘价-MINDIFF);
止损平空:SELLSHORT(止损平空条件,0,LIMITR,开盘价+MINDIFF);
收盘平多:SELL(T2,0,MARKET);
收盘平空:SELLSHORT(T2,0,MARKET);
涨停平多:sell(c=DYNAINFO(54),0,LIMITr,DYNAINFO(54));
跌停平空:SELLSHORT(c=DYNAINFO(55),0,limitr,DYNAINFO(55));
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值

[此贴子已经被作者于2015/2/16 18:24:49编辑过]

--  作者:xiaosa2003
--  发布时间:2015/2/16 18:28:58
--  
我找到问题了,不用管我了