收盘平仓的简单处理
先给操作流程。首先,确定收盘bar的时间。注意,这个指的是bar时间,而不是自然时间。具体可以通过k线查看。比如,15分钟k线图,那么如果想要在下午收盘前最后一根bar收盘平仓,那么可以看到时间点为14点45分,换成tb的时间格式就是0.1445。再比如,5分钟图,那么如果想要在上午收盘前最后一根bar收盘平仓,可以看到时间点为11点25分,换算成tb的时间格式即使0.1125。现在以5分钟k线举例,需要在中午收盘和下午收盘时进行收盘平仓,如下步骤操作首先添加onbarclose部分代码OnBarClose(ArrayRef<Integer> indexs){if(time == 0.1125 or time == 0.1455){sell(0,close);BuyToCover(0,close);Commentary("收盘平仓");}}这个部分可以使历史bar上出现我们想要的收盘平仓信号但是光这样还不够,我们还需要添加设置,让实盘的时候也能在临近bar收盘的时候执行收盘平仓。在oninit域里添加代码如下OnInit(){array<Numeric> timepoint;timepoint[0] = 0.112950;timepoint[1] = 0.145950;SetTriggerBarClose(timepoint);}这样我们就会在实盘的时候,当走到11:25和14:55这个两个bar的时候,分别在自然时间11:29:50和14:59:50的时候执行onbarclose里的代码,也就是出现收盘平仓信号。注意,如果在这个时间点之后到当前bar走完之前,系统报警信号闪烁,一般是正常情况,无关紧要。上述代码基本上可以无缝添加到任何策略模型内,但是不能保证100%不出问题。如果没有达到预想情况,请食用文章底部的解说视频,进一步了解代码的意义。视频解说配合食用https://www.bilibili.com/video/BV1Gt4y1t7ET/作者:kyover https://www.bilibili.com/read/cv17625951 出处:bilibili