以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 关于平仓 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=187951) |
-- 作者:lk20050805 -- 发布时间:2021/4/20 10:30:55 -- 关于平仓 持仓2手空单的情况下 当C大于5日线平仓一手空单,当C大于10日线平全仓。怎么写? |
-- 作者:FireScript -- 发布时间:2021/4/20 10:44:50 -- sellshort(cross(c,ma(c,5)),1,market); sellshort(cross(c,ma(c,10)),holding,market); 如果2个平仓是或的关系的话,就上面这样操作就行了。谁触发就执行谁。
|
-- 作者:lk20050805 -- 发布时间:2021/4/20 11:05:41 -- 单是 大于5日线平1手后,股价来回在5日线上下波动,结果第二手也在第二次C穿过5日线时平仓了。那我想在穿越10日线平剩下一手的想法落空了啊,怎么办 |
-- 作者:FireScript -- 发布时间:2021/4/20 11:12:35 -- 你如果要这样的逻辑的话,就只能用全局变量操作了。 VARIABLE:mark:=0; if cross(c,ma(c,5)) and mark=0 and holding<0 then begin sellshort(1,1,market); mark:=1;//五日线平仓时候纪录下 end if cross(c,ma(c,10)) and mark=1 and holding<0 then begin sellshort(1,holding,market); mark:=0;//十日线平仓时候重置下全局变量 end 你参考这个逻辑 应用到你代码里就行了。
|
-- 作者:lk20050805 -- 发布时间:2021/4/20 11:16:25 -- 谢谢 |
-- 作者:lk20050805 -- 发布时间:2021/4/20 11:56:23 -- 平多条件:=cross(ma1,c);//平多条件
//交易系统
if 平空条件1 and mark=1 and holding<0 then
老师 这样写行吗 |
-- 作者:FireScript -- 发布时间:2021/4/20 13:33:44 -- VARIABLE:mark1:=0,mark2:=0; 平多条件:=cross(ma1,c);//平多条件 平空条件:=cross(c,ma1);//平空条件 PK:=C>三多头20; PD:=C<三多头20; 平多条件1:=COUNT(PK,2)=2; 平空条件1:=COUNT(PK,2)=2; //交易系统 BUY(开多条件 AND HOLDING=0,2,MARKET); BUYSHORT(开空条件 AND HOLDING=0,2,MARKET); if 平多条件 AND HOLDING>0 and mark1=0 then begin SELL(1,1,MARKET); mark1:=1; end if 平空条件 AND HOLDING>0 and mark2=0 then begin SELLSHORT(1,1,MARKET); mark2:=1; end if 平空条件1 and mark2=1 and holding<0 then begin sellshort(1,holding,market); mark2:=0; //十日线平仓时候重置下全局变量 end IF 平多条件1 and mark1=1 and HOLDING>0 THEN BEGIN//若持有多单 SELL(1,HOLDING,MARKET);//平多单 mark1:=0; END 多空要用2个全局变量分开来做的。 |
-- 作者:lk20050805 -- 发布时间:2021/4/20 15:15:24 -- 谢谢
|
-- 作者:lk20050805 -- 发布时间:2021/4/20 15:29:09 -- 老师,粘贴你这代码进去 老提示 BEGEN语句缺少END |
-- 作者:FireScript -- 发布时间:2021/4/20 15:35:45 -- 我本地正常。你再自查下看下。 |