我在写一个策略时,想要尾盘平掉所有仓位,采用下面的方式,在图表上显示已经触发了,但在实盘运行中并没有进行平仓操作,请问这会是什么原因呢
Bool ForceExit =
(currentTime >= 0.2255 && currentTime < 0.2300) || // 夜盘结束
(currentTime >= 0.1125 && currentTime < 0.1130) || // 上午结束
(currentTime >= 0.1455 && currentTime < 0.1500); // 下午结束
If(ForceExit)
{
If(MarketPosition == 1)
{
Print("尾盘离场");
Sell(0, 0);
}
Else If(MarketPosition == -1) {
Print("尾盘离场");
BuyToCover(0, 0);
}
}
只是局部代码看上去没问题,而且你这个平仓代码显然也会闪烁
更不要说开仓如果再闪烁的问题了
然后你说居然是A函数开仓,那大概率不会有平仓了
图表信号如何平A函数开的仓呢
估计你整个策略里都是问题
Bool ForceExit =
(endTradingDateTime == date + 0.2300) || // 夜盘结束
(endTradingDateTime == date + 0.1130) || // 上午结束
(endTradingDateTime == date + 0.1500); // 下午结束
这个试试哩?
感觉一样的
这个要在小周期数据源上判断
总体而言
你的代码本身似乎没问题
没看出啥问题
委托列表看上去也都平仓了
你可以贴一下什么品种没有平仓,以及对应的图表发出的平仓信号
只能考虑
是否有闪烁问题
如果信号闪烁了
账户的仓位就多出来了
一般都是用A函数读账户仓位
然后A函数清仓
先检查消息中心有无闪烁
非常感谢,今天晚上试了一下,到时间后没有平仓的动作
平仓时没有出现闪烁的情况
奇怪啊
消息中心有闪烁吗
不是平仓时
是开仓时有无闪烁
图表函数开仓必须100%不闪烁
平仓才有用
正常的策略
账户操作
都是A函数开仓
平仓用A函数读账户仓位
然后A函数清仓
好的 我先换成A函数
可以了,非常感谢
👍
我就先不说你这个写得对不对了
图上有信号,没执行。一般是设置问题
交易没启动,账户没挂上,或者实际持仓不准确都有可能下不出
这些配置好了,用模拟账户执行策略可以正常下单成交,只是在尾盘这个地方平仓时无法执行
截图看下委托列表
看看是没下单,还是下了废单
最后的十四点五十五分之后没有出现平仓记录
您好,感谢指教,这部分的逻辑我是写在 OnBar 里的,是不是这样写有问题