以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- [求助]下单手数不同 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=62541) |
-- 作者:zzq888888 -- 发布时间:2014/3/11 9:32:56 -- [求助]下单手数不同 我用的语句是ss:intpart(cash(0)/close/300*0.6); 可是测试明细中却突然从10手变成1手了,为什么会这样啊。 我是这样子设置的, |
-- 作者:jinzhe -- 发布时间:2014/3/11 9:43:15 -- 初始金额是多少? 这个公式计算思路能不能讲讲? |
-- 作者:zzq888888 -- 发布时间:2014/3/11 9:55:10 -- 不好意思,是我弄错了 应该是intpart((cash(0)*0.6)/close/300/0.1);忘记加0.1了,不过那为什么测试的时候还测试的好好的啊,应该会提示资金不够才对啊,起始资金是20万
|
-- 作者:jinzhe -- 发布时间:2014/3/11 10:08:32 -- 20万的怎么能在股指上开10手,你的费率是怎么设置的? 你把所有的代码都贴上来,我本地测试一下 |
-- 作者:zzq888888 -- 发布时间:2014/3/11 10:41:38 -- 不是啊,一开始是一手交易啊,然后慢慢的变成10手 |
-- 作者:jinzhe -- 发布时间:2014/3/11 10:43:58 -- 帖代码 |
-- 作者:zzq888888 -- 发布时间:2014/3/11 11:33:59 -- //该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!! //适用模式:“走完一根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; //注意交易系统先开后平的原则 |
-- 作者:zzq888888 -- 发布时间:2014/3/11 11:35:42 -- 如果把“手数:=ss*intpart(cash(0)/close/300*0.6);”改成“手数:=ss*intpart((cash(0)*0.6)/close/300*/0.1);就不会了 |
-- 作者:jinzhe -- 发布时间:2014/3/11 13:09:49 -- */0.1是啥意思?又乘又除? |
-- 作者:zzq888888 -- 发布时间:2014/3/11 13:14:34 -- 呃,那个没有删掉 手数:=ss*intpart((cash(0)*0.6)/close/300/0.1);
|