全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
关于收盘平仓
LTB_866 分享到
2022-11-11 09:45

Events OnBar(ArrayRef<Integer> indexs) {     //...    

 If((TradingDate[-1] != InvalidInteger && TradingDate!= TradingDate[-1]) || (TradingDate[-1] == InvalidInteger && TradingDate< CurrentDate))     

{         

Sell(0,Close);         

BuyToCover(0,Close);     }Else If(TradingDate== CurrentDate && Time == 0.1455 && CurrentTime >= 0.1459)     

{        

 Sell(0, Close);         

BuyToCover(0, Close);     }     //... }

【注意事项】

  1. 本例是以国内商品期货交易所收市时间举例,股指期货或其他市场需调整写法。

  2. 本例是针对5分钟周期的收盘平仓所写,针对不同的周期需改写为合适的最后Bar时间。

老师好!

我想解决这个问题:针对不同的周期需改写为合适的最后Bar时间。

一个品种我有多个周期,如果每个周期都改写最后Bar时间就很麻烦,我试着把这句

Else If(TradingDate== CurrentDate && Time == 0.1455 && CurrentTime >= 0.1459)   

改写成

Else If(TradingDate== CurrentDate && CurrentTime >= 0.1459)   

省略了&& Time == 0.1455

结果导致策略单元里的多单信号还在

而图表上的多单却已经平仓了

监控器里也少了多单信号

这是怎么回事,应该如何解决?谢谢老师

 

 

LTB_866

昨天下午的收盘平仓执行成功,但策略单元里的多单信号还在,监控器里多单信号也在。导致信号和实盘持仓对不上。

2022-11-11 09:55
LTB_866

2022-11-11 09:56
kyover

收盘平仓建议直接用onbarclose作为实盘的载体

收盘平仓 - 哔哩哔哩 (bilibili.com)

2022-11-11 10:59
LTB_866
@kyover

老师,您举的例子是5分钟周期的情况,如果要各个周期都通用,比如15分钟、60分钟,有没有更好的办法?

2022-11-11 11:23
kyover
@LTB_866

不太能领会你这个问题的意义

首先 无论是5分钟,1小时,如果你是想每天定点收盘平仓,settrigger设置的参数肯定是一样,不需要修改。

如果你是需要每根bar都执行收盘平仓操作,那句正常像onbar一样写罢了,只不过是在每个小节结束的时候用settrigger设置一下这跟小节结束bar的执行时间就行了

感觉你并没有读懂这个东西的机制

如果只是想照葫芦画瓢,却没搞清楚背后的原理,恐怕很难应用吧

 

2022-11-11 11:35
LTB_866
@kyover

老师,我的意思是,5分钟周期是这样写的:

OnBarClose(ArrayRef<Integer> indexs)

{

if(time == 0.1125 or time == 0.1455)

......

那么28分钟周期应该怎样写?写成

if(time == 0.1125 or time == 0.1455)还行吗?

或者要改写成:

if(time == 0.1107 or time == 0.1459)才好?

2022-11-11 12:32
您未登录,请先 登录注册 后发表评论
顶部