以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://www.weistock.com/bbs/list.asp?boardid=4) ---- 达到某一空单平仓条件并反手开多单时,如何才能排除某一多单平仓条件限制 (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=163627) |
-- 作者:呼雷 -- 发布时间:2018/5/24 15:01:33 -- 达到某一空单平仓条件并反手开多单时,如何才能排除某一多单平仓条件限制 达到某一空单平仓条件并反手开多单时,如何才能排除某一多单平仓条件的限制? 当满足空平条件(kp1202)时,对空单进行平仓,同时反手开多单,但此时要排除多单平仓条件(dp)的限制,不然此条件达成后,一旦开多单就会马上被平仓,在此,对以下语句中要加入何语句才可以排除多平条件(dp)的限制,谢谢! if kp1202 then begin
kp(kp1202):sellshort(holding<0,ss,marketr);// kd(kd1202):buy(holding=0,ss,thisclose) ;// end [此贴子已经被作者于2018/5/24 15:02:11编辑过]
|
-- 作者:FireScript -- 发布时间:2018/5/24 15:03:22 -- 原帖中已有回复。可前往查看,跟帖。 |
-- 作者:呼雷 -- 发布时间:2018/5/24 15:05:11 -- 没有解决! |
-- 作者:FireScript -- 发布时间:2018/5/24 15:38:58 -- 后面重新回复了,你是没看到还是有不理解的地方? 下面再给个测试代码和结果给你参考下吧。 m:=0;//先定义一个变量,在触发平多开空的时候给这个变量赋值 ss:=1; kp1202:=(BARPOS=DATACOUNT-1); if kp1202=1 then begin kp(kp1202):sellshort(holding<0,ss,marketr); kd(kd1202):buy(holding=0,ss,thisclose) ; m:=1;//改变m的值,这样下面的dp即使触发也不能平多了 end dp:c>o or BARPOS=DATACOUNT-1; if dp and m=0 then sell(holding>0,holding,market);//再平多这里里把m=0的判断加进去即可 hd:holding;//显示持仓 效果图: 我这里设置情况的是最后2个K上平多条件dp都触发。但是倒数第二个K 因为我设置了过滤,先触发了开多因此dp触发的平多不再进行下去。 |
-- 作者:FireScript -- 发布时间:2018/5/24 15:40:00 -- 但是也有一些限制,这个如果你是用走完K,没啥问题。固定轮询需要重新处理。 |