我用的语句是ss:intpart(cash(0)/close/300*0.6);
可是测试明细中却突然从10手变成1手了,为什么会这样啊。

此主题相关图片如下:qq截图20140311093113.png

我是这样子设置的,

此主题相关图片如下:qq截图20140311093138.png

不好意思,是我弄错了

应该是intpart((cash(0)*0.6)/close/300/0.1);忘记加0.1了,不过那为什么测试的时候还测试的好好的啊,应该会提示资金不够才对啊,起始资金是20万
20万的怎么能在股指上开10手,你的费率是怎么设置的?
你把所有的代码都贴上来,我本地测试一下
不是啊,一开始是一手交易啊,然后慢慢的变成10手

此主题相关图片如下:qq截图20140311104104.png

//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//适用模式:“走完一根K线以后”
//若用户模式选为“固定时间间隔”,请将"交易条件"中的CLOSE改为OPEN,避免信号闪烁。
//
//中间变量
input:N(9,1,100,10),P1(3,2,40,4),P2(3,2,40,2),SS(1,1,1000,1);
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
J:=3*K-2*D;
26ma:ma(close,26);
250ma:ma(close,250);
60ma:=ma(close,60);
250maref:abs(250ma-ref(250ma,1)),noaxis;
手数:=ss*intpart(cash(0)/close/300*0.6);
//交易条件
buy1:=CROSS(J,0) and count(close>250ma,120)=120 and 60ma>250ma;//开多平空条件
sell1:=CROSS(100,J) and count(close<250ma,120)=120 and 60ma<250ma ;//开空平多条件
//交易系统
ZSDS:=15; {止损点数}
zyds:=if(250maref>0.05,20*250maref*10,10); {止盈点数}
//持有空单
IF holding<0 then begin
IF enterprice-C>=zyds THEN BEGIN //平空单
空平:SELLSHORT(1,0,Market),ORDERQUEUE;
END
IF C-ENTERPRICE>=ZSDS THEN BEGIN
空损:SELLSHORT(1,0,Market),ORDERQUEUE;
END
END
//开空单
IF HOLDING=0 THEN BEGIN
IF SELL1 THEN BEGIN
空开:BUYSHORT(1=1,手数,Market);
END
END
//持有多单
IF holding>0 then begin
IF C-enterprice>=zyds THEN BEGIN //平空单
多平:SELL(1,0,Market),ORDERQUEUE;
END
IF ENTERPRICE-C>=ZSDS THEN BEGIN
多损:SELL(1,0,Market),ORDERQUEUE;
END
END
//开多单
IF HOLDING=0 THEN BEGIN
IF buy1 THEN BEGIN
多开:BUY(1=1,手数,Market);
END
END
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
//注意交易系统先开后平的原则
呃,那个没有删掉
手数:=ss*intpart((cash(0)*0.6)/close/300/0.1);