收盘价判断开盘价操作在实盘中仍然产生信号闪烁问题

我的实盘策略是多空分离的,做空策略的开仓条件只有一个。

       If(MarketPosition <> -1 and c[1] < LowerBand[1])

           {

               Sellshort(1, Open);            

         }

就是上个收盘价在布林线下轨下,就开空单。

苯乙烯连续90分钟周期。4月10日上午10:30-11:30的K线显示跟踪止损。这根K线的收盘价是10251,下轨的价格是10441。按照策略公式,下根K线肯定会再开空仓。

13:30,新的K线开始了,果然显示一单做空,于是我手动开了空单。

可是时间来到14:08:54,系统突然说信号闪烁了,开空仓的标志闪了几下消失了。

我百思不得其解,究竟是怎么回事?以前没遇到过这种情况。

老师可以通过远程控制,查看我的代码、图表和信息。


回测无信号闪烁,实盘中出现信号问题。
信号闪烁问题处理?
信号闪烁问题
使用ma均线价格作为判断条件,导致信号闪烁
实盘消息提示信号闪烁
关于信号闪烁的问题
信号闪烁问题
关于信号闪烁在是盘中成交还是不成交的逻辑问题
一种信号闪烁问题的求证
数据对齐与信号闪烁

最近策略代写任务太多了,实在是没时间分析这个问题

建议投稿,看直播的时候有没有时间分析下

闪烁的根本原因就是IF条件有变化

代码中

只有LowerBand存在风险

策略单元和图表不要同时开

否则应该是执行了两次


MarketPosition按理说没问题

如果你排除了其他问题

那只能检查LowerBand相关的一切

晚上九点开盘又出现了两个空单。为什么前一根K线的信号会闪烁呢?

下单映射到主力合约了吗?

代码上看不出问题

要检查LowerBand类型、计算

但是能画线输出也没问题

我又刷新了一下,信号又回复到原来的位置了。实在找不到问题在哪里?请老师加我Q76878814, 或者微信18734933865,请用向日葵远程帮我看看是什么问题?

映射到主力合约了,lowband用得是前根K线的收盘价,应该没问题。

以我的水平看不出什么问题

但是,老师之前调试过一个类似的案例

用了SetBasePeriod函数

你可以先参考看看自己能不能通过打断点输出的方式找到问题

案例视频: https://video.tbquant.net/video?id=20250310103731783228

他这个是marketposition的位置问题,marketposition是序列变量

咱先捋一捋

既然多空策略分开

1设置成双向交易

做多和做空互不相干

2在1的基础上

不要用MarketPosition了

有图标函数取多头、空头持仓量

符合条件后

多单量为0开多

空单量为0开空

3你代码明显写的开仓量为1

你的图表为啥有2得情况?

多空策略分开后

是不是重复挂了

4如果你代码并不复杂

贴一下

很快就能解决问题

  AveMa = Average(Close, Length);
  StdValue = StandardDev(Close, Length, 2);
  UpperBand = Avema + beishu * StdValue;
  LowerBand = Avema - beishu * StdValue;

lowband应该也没有问题,就是布林线的下轨。

我贴的代码,在开仓数量并不是1,而一个变量,这个变量与长短期ATR的比率相关。我怀疑是变量与收盘价相关,导致开仓bar期间,开仓数量发生变动。但是转念一想,即使开仓量由1变成2,也不会造成信号消失哪。

总而言之,非常感谢wgy_king您的耐心回答。如果方便可以加我。如果不方便也没有关系,我再仔细检查下开仓量是不是会随时变化。此次信号闪烁是第一次出现,如果再发生,我就把代码贴出来,请您帮我找找原因。

用close会闪烁

实盘状态

close会变化

布林带也会变化

所以IF条件会变化

就会引起闪烁

而且那个数字就是仓位

你是不是既打开了策略运行

又打开了图表

并发交易了

不对

我看错了

晚点我再想想

76878814  我的Q