以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=181725)

--  作者:一杯沧海
--  发布时间:2020/8/14 14:53:12
--  一小时周期上添加交易中止的语句
我希望在1小时周期交易过程中,在完成一笔交易后在6个交易周期内开仓信号不再执行的语句,谢谢!
--  作者:FireScript
--  发布时间:2020/8/14 14:57:29
--  
 你这里这个完成一笔交易是指平仓完了,还是指开仓以后。
[此贴子已经被作者于2020/8/14 16:09:53编辑过]

--  作者:一杯沧海
--  发布时间:2020/8/14 16:37:24
--  
平仓了就不再开仓了
--  作者:FireScript
--  发布时间:2020/8/14 16:52:32
--  
原开仓条件基础上加个判断就行了

如果是开仓之后6个周期内不在重复开仓:
原开仓条件 and (ENTERBARS>5 or ENTERBARS=-1)

如果是平仓之后6个周期内不在开仓:
(EXITBARS<=5 or EXITBARS=-1) and 原开仓条件

上面只针对单一的开平,如果有多个开仓语句就不适用了。

--  作者:一杯沧海
--  发布时间:2020/8/14 16:59:14
--  
好的,谢谢
--  作者:一杯沧海
--  发布时间:2020/8/17 8:42:49
--  
按照平仓后不开仓那么EXITBARS<=5 or EXITBARS=-1是用一个即可,还是这两个都要加上呢?
--  作者:FireScript
--  发布时间:2020/8/17 8:59:03
--  
EXITBARS<=5 or EXITBARS=-1

后面这部分不可以去掉。因为第一次开仓时候,前面肯定是没有过平仓的。加后面部分就是为了处理这个的。

--  作者:一杯沧海
--  发布时间:2020/8/17 9:36:53
--  
收到,我再试试,有问题再请教
--  作者:一杯沧海
--  发布时间:2020/8/17 11:25:03
--  
我把语句加进去了,但是因为是“非多既空”的模式,所以增加语句没有任何改变,请帮我修改一下:

IF HOLDING=0 THEN BEGIN   
 IF TMP<=0 THEN 
  BUY(1,ss,MARKET,CLOSE);  
END
IF HOLDING=0 THEN BEGIN   
 IF TMP>0 THEN           
  BUYSHORT(1,ss,MARKET,CLOSE); 
END
IF HOLDING>0 THEN BEGIN   
 IF TMP>0 THEN BEGIN      
  SELL(1,HOLDING,MARKET,CLOSE);   
  BUYSHORT(EXITBARS<=5 or EXITBARS=-1,ss,MARKET,CLOSE);    
 END
END
IF HOLDING<0 THEN BEGIN    
 IF TMP<=0 THEN BEGIN      
  SELLSHORT(1,HOLDING,market,CLOSE); 
  BUY(EXITBARS<=5 or EXITBARS=-1,ss,MARKET,CLOSE);  
 END
END

--  作者:FireScript
--  发布时间:2020/8/17 13:09:36
--  
看你的代码  你的需求是上面这个平空后 6个周期之后才允许开多仓或者平多后6个周期才允许开空仓?是这样的需求?