老师,您好:
有下面几个问题需要咨询下,帮忙解下疑哈,谢谢。
1,委托问题:近期实时行情模拟盘测试,发现好几个品种均出现以下现象:
(场景说明:策略单元自动化运行基于连续合约,设置中开启主力合约映射和委托偏移,0跳(想在主力合约上现价对手价成交))
现象:公式代码中开仓后有盈利后价格回来保本平推,实盘模拟测试发现图表中连续合约平推价格和开仓价一致,实现平推;但委托记录单中离场价格距离开仓价损了4到8跳(比较大),这种一般是什么原因导致的呢,多个品种近几天实时行情均有出现,有相关的处理建议么?
2,策略运行问题:
由于小周期上(3min)开仓,需要用实时的大周期数据作为开仓条件(CON_A,包含大周期实时数据),机制上有概率出现闪烁问题;为解决闪烁,我用下面方法处理了下:
Global Bool KC_FLAG;
OnBarOpen(ArrayRef<Integer> indexs)
{
KC_FLAG = false;
}
//空单进场,满足CON_A时
If(CON_A || (True == KC_FLAG))
{
SellShort(KCL,H);
KC_FLAG = True; //解决开仓信号闪烁问题
}
针对上面做法,屏蔽掉了信号闪烁报警,开仓和平仓委托以及监控器状态显示同步正常。
但以下几点有些疑问:
1)TB软件针对相同bar做开平仓一次限制,是基于CON_A还是整个if判断条件?
2)策略单元打开K线图表,发现当日无开平仓信号,实际上当天账户是有开平仓单子的(代码委托开平均正常),我理解上面写法首次满足CON_A 后图表会出信号后续不会闪烁了,但K线图表没发现当天有信号。
3)策略单元——单元名显示绿色(没有一个图层在当前BAR有信号,但在当天的某根BAR有图层有信号,则显示为绿色),我打开该单元K线,没发现当日任何图层有开仓信号(实际上当天账户是有开平仓单子的),这个显示绿色比较奇怪,怎么理解。
谢谢老师,帮忙解答下哈,辛苦。
1 这个比较明显就是偷价了,你策略里计算立场价格的算法错了,算出来不是立场条件发生时的合理价格
1)TB软件针对相同bar做开平仓一次限制,是基于CON_A还是整个if判断条件?
这个问题听不懂,什么叫基于CON_A还是整个if判断条件,代码的执行顺序就是从上到下顺序,不明白你在问什么
2)策略单元打开K线图表,发现当日无开平仓信号,实际上当天账户是有开平仓单子的(代码委托开平均正常),我理解上面写法首次满足CON_A 后图表会出信号后续不会闪烁了,但K线图表没发现当天有信号。
你这个现象是肯定的,因为照你的代码逻辑,如果以收盘状态运行一遍程序,如果盘中运行会消失的信号,以历史状态运行那就是没信号的
3)策略单元——单元名显示绿色(没有一个图层在当前BAR有信号,但在当天的某根BAR有图层有信号,则显示为绿色),我打开该单元K线,没发现当日任何图层有开仓信号(实际上当天账户是有开平仓单子的),这个显示绿色比较奇怪,怎么理解。
这个问题跟上面第二个问题的回答一样的。你这个本质上就是信号闪烁了,实时运行路径和历史运行路径不一致。实时一根bar运行可能很多次,但是等它变成历史bar就只运行一次了,而且是以收盘状态运行的。
好的,解决了,谢谢老师提醒。