以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=183651) |
-- 作者:haizxj -- 发布时间:2020/12/28 12:26:29 -- 请问我错在哪里 VARIABLE: ss:=1; if NUMSEQLOSS=1 then ss=2; if NUMSEQLOSS=2 then ss=4; if NUMSEQLOSS>=2 then ss=8; KD:=c>o; //开多条件 PD:=c<o; //平多条件 KK:=pd; //开空条件 PK:=kd; //平空条件 平空:SELLSHORT(PK,ss,LIMITr,c); //平空信号 开多:BUY(KD AND HOLDING=0,ss,LIMITr,c); //开多信号 平多:SELL(PD,ss,LIMITr,c); //平多信号 开空:BUYSHORT(KK AND HOLDING=0,ss,LIMITr,c); //开空信号 if NUMSEQLOSS=0 then ss=1; }
|
-- 作者:FireScript -- 发布时间:2020/12/28 13:40:04 -- 简单描述下你的问题。 不能只帖一段代码。文字说明下吧。 |
-- 作者:haizxj -- 发布时间:2020/12/28 13:42:40 -- 就是用连亏NUMSEQLOSS来编,正常是一手,如果亏损一手则用二手加仓,再赔钱用四手,这样下去 |
-- 作者:FireScript -- 发布时间:2020/12/28 13:51:18 -- 这段最好写在平仓语句后面。 平空:SELLSHORT(PK,ss,LIMITr,c); //平空信号 if NUMSEQLOSS=1 then ss=2; if NUMSEQLOSS=2 then ss=4; if NUMSEQLOSS>=2 then ss=8; 开多:BUY(KD AND HOLDING=0,ss,LIMITr,c); //开多信号 平多:SELL(PD,ss,LIMITr,c); //平多信号 if NUMSEQLOSS=1 then ss=2; if NUMSEQLOSS=2 then ss=4; if NUMSEQLOSS>=2 then ss=8; 开空:BUYSHORT(KK AND HOLDING=0,ss,LIMITr,c); //开空信号 这样更合理,否则中间的平仓要到下一个K才反应过来。 |
-- 作者:haizxj -- 发布时间:2020/12/29 15:56:01 -- VARIABLE: ss:=1; KD:=c>o; PD:=c<o; KK: =PD; PK:=kd; if NUMSEQLOSS=0 then ss=1; 平空:SELLSHORT(PK,ss,LIMITr,c); //平空信号 if NUMSEQLOSS=1 then ss=2; if NUMSEQLOSS=2 then ss=4; if NUMSEQLOSS>=2 then ss=8; 开多:BUY(KD AND HOLDING=0,ss,LIMITr,c); //开多信号 平多:SELL(PD,ss,LIMITr,c); //平多信号 if NUMSEQLOSS=1 then ss=2; if NUMSEQLOSS=2 then ss=4; if NUMSEQLOSS>=2 then ss=8; 开空:BUYSHORT(KK AND HOLDING=0,ss,LIMITr,c); //开空信号 怎么出现编译错误,变量名SS重复 |
-- 作者:FireScript -- 发布时间:2020/12/29 16:18:03 -- 你是不是参数里面还有个ss啊? |
-- 作者:haizxj -- 发布时间:2020/12/29 16:25:36 -- 就是上面的代码呀,就是代表手数 |
-- 作者:FireScript -- 发布时间:2020/12/29 16:28:29 -- 这里看下。你给的代码看不出问题。
|
-- 作者:haizxj -- 发布时间:2020/12/29 17:21:04 -- 可以了,谢谢,就是里面的手数不会自动变大,还是一直为1 |
-- 作者:FireScript -- 发布时间:2020/12/30 9:03:03 -- if NUMSEQLOSS=1 then ss:=2; if NUMSEQLOSS=2 then ss:=4; if NUMSEQLOSS>=2 then ss:=8; 这个这样改下。
|