收盘价判断开盘价操作在实盘中仍然产生信号闪烁问题
我的实盘策略是多空分离的,做空策略的开仓条件只有一个。 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,系统突然说信号闪烁了,开空仓的标志闪了几下消失了。我百思不得其解,究竟是怎么回事?以前没遇到过这种情况。老师可以通过远程控制,查看我的代码、图表和信息。
下单映射到主力合约了吗?代码上看不出问题要检查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条件会变化就会引起闪烁
回复:而且那个数字就是仓位你是不是既打开了策略运行又打开了图表并发交易了
回复:不对我看错了晚点我再想想