请先登录
收盘平仓的简单处理
2022-07-20 13:53

先给操作流程。

首先,确定收盘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

评论区
顶部