以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4)
---- 请问我用IF错在何处 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=59916)
|
-- 作者:haizxj
-- 发布时间:2013/12/13 23:13:16
-- 请问我用IF错在何处
费率设置设ASSET为10万
IF ASSET>=100000 THEN BEGIN 平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE; //平空信号 开多:BUY(KD AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开多信号 平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE; //平多信号 开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开空信号 END ELSE if ASSET< 100000 then BEGIN 平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE; 平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE; END
显示编译错误,说平空不能重复,可是如果我想实现ASSET 小于八万平掉所有仓位,等下次虚拟运算,如果大于再次开平仓.怎么样实现
[此贴子已经被作者于2013/12/13 23:13:59编辑过]
|
-- 作者:王锋
-- 发布时间:2013/12/14 9:15:39
--
不可能不让多次平空的,你把完整代码贴过来我们帮你看看
|
-- 作者:haizxj
-- 发布时间:2013/12/14 12:17:30
--
就是用的你们的软件的KDJ交易系统呀
|
-- 作者:王锋
-- 发布时间:2013/12/14 17:11:45
--
你完整贴过来吧
|
-- 作者:haizxj
-- 发布时间:2013/12/15 21:01:40
--
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;
手数:=ss; //交易条件
开多平空条件:=CROSS(J,0);//开多平空条件 开空平多条件:=CROSS(100,J);//开空平多条件 KD:=cross(j,0); PD:=cross(100,j); KK:=pd; pk:=kd;
IF ASSET>=100000 THEN BEGIN 平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE; //平空信号 开多:BUY(KD AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开多信号 平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE; //平多信号 开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开空信号 END ELSE if ASSET< 100000 then BEGIN 平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE; 平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE; END
|
-- 作者:RogarZ
-- 发布时间:2013/12/15 22:12:59
--
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; 手数:=ss; //交易条件 开多平空条件:=CROSS(J,0);//开多平空条件 开空平多条件:=CROSS(100,J);//开空平多条件 KD:=cross(j,0); PD:=cross(100,j); KK:=pd; pk:=kd; IF ASSET>=100000 THEN BEGIN 平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE; //平空信号 开多:BUY(KD AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开多信号 平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE; //平多信号 开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开空信号 END ELSE if ASSET< 100000 then BEGIN 平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE; 平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE; END
一个系统 相同的变量名只能是1个
|
-- 作者:haizxj
-- 发布时间:2013/12/16 9:13:15
--
怎么样解决这个问题呢
|
-- 作者:qwer123
-- 发布时间:2013/12/16 12:24:58
--
把“平空”改为“平空1”,“平空2” 或者干脆把“平空:”去掉就ok。
|