以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=182687) |
-- 作者:zxl86081 -- 发布时间:2020/10/26 11:01:10 -- [求助]请教一下这个如何写 LOTS:=max(1,INTPART(Fund/(O*MULTIPLIER*CWKZ))); TR1:=.............; ATR:=.............;// MIDLINE:=.............; UPBAND:=.............; DOWNBAND:=.............; MA20:.............; 请问一下,如何编写 1,当 holding<=0 and C>=UPBAND AND REF(C,1)<REF(UPBAND,1) 条件满足时并价格大于MA20时平空开多(也就是说在MA20上方只要满足holding<=0 and C>=UPBAND AND REF(C,1)<REF(UPBAND,1) 条件就开多) 2,当 holding<=0 and C>MA20 条件满足时时平空开多 以上两个条件先到原则,先到先做,后到不做 IF holding<=0 and C>=UPBAND and C>MA20 AND REF(C,1)<REF(UPBAND,1) THEN
BEGIN sellshort(holding<0,0,market); //买平空单 Buy(holding=0,lots,market); //买开多单
END 我按上面的写有点不对 3,当 holding>=0 and C<=DOWNBAND AND REF(C,1)>REF(DOWNBAND,1) 条件满足时并价格小于MA20时平多开空(也就是说在MA20下方只要满足holding>=0 and C<=DOWNBAND AND REF(C,1)>REF(DOWNBAND,1) 条件就开空) 4,当 holding<=0 and C<MA20 条件满足时时平多开空 以上两个条件先到原则,先到先做,后到不做 IF holding>=0 and C<=DOWNBAND and C<MA20 AND REF(C,1)>REF(DOWNBAND,1) THEN
BEGIN sell(holding>0,holding,market); //卖平多单 buyShort(holding=0,lots,MARKET);//卖开空单
END 我按上面的写有点不对 多平:SELL(holding>=0 and C<=MIDLINE,0,market); 空平:SELLSHORT(holding<=0 and C>=MIDLINE,0,market);
|
-- 作者:FireScript -- 发布时间:2020/10/26 11:30:11 -- 你这个“ C>=UPBAND and C>MA20 ” 是and的关系了啊。也就是同时满足才会执行 1,当 holding<=0 and C>=UPBAND AND REF(C,1)<REF(UPBAND,1)
2,当 holding<=0 and C>MA20
如果我没有理解错, 你的意思是大于ma20和前面那个条件是先后满足,且不区分顺序的意思吧? 如果是这样,这种逻辑上是有点问题的。
|
-- 作者:zxl86081 -- 发布时间:2020/10/26 12:00:04 -- 我的意思是第一个条件是在大于MA20上方才可以,第二个条件是只要大于MA20就可以,应是大于MA20是先成立的 |
-- 作者:zxl86081 -- 发布时间:2020/10/26 12:05:56 -- 应是holding<=0 and C>=UPBAND AND REF(C,1)<REF(UPBAND,1)条件成立后 价格大于MA20 后平空开多 ,多平:SELL(holding>=0 and C<=MIDLINE,0,market);这个条件后 只要在MA20上方只要满足holding<=0 and C>=UPBAND AND REF(C,1)<REF(UPBAND,1) 条件就开多 |
-- 作者:zxl86081 -- 发布时间:2020/10/26 12:20:38 -- 意思是我这样写是对的? IF holding<=0 and C>=UPBAND and C>MA20 AND REF(C,1)<REF(UPBAND,1) THEN
BEGIN sellshort(holding<0,0,market); //买平空单 Buy(holding=0,lots,market); //买开多单
END |