代码如下:
Params
String symb("RM888.CZCE"); // 合约标的
Array<String> LayerFreq(["30s","15m","1d"]); // 订阅三个周期图层频率数组
Enum<Integer> HideData([-1,0,1,2]); // 选择需要隐藏的图层,-1 全部显示
Integer Length(10);
Vars
Global Array<Integer> gArrInt_LayerNr; // 图层编号数组
Series<Numeric> my_MA; // 均线
Events
OnInit()
{
// 订阅三图层
gArrInt_LayerNr[0] = SubscribeBar(symb, LayerFreq[0], 20241218.18); // 第0图层
gArrInt_LayerNr[1] = SubscribeBar(symb, LayerFreq[1], Data[gArrInt_LayerNr[0]].BeginDateTime); // 第1图层
gArrInt_LayerNr[2] = SubscribeBar(symb, LayerFreq[2], Data[gArrInt_LayerNr[0]].BeginDateTime); // 第2图层
}
OnReady()
{
// 选择需要隐藏的图层
If(HideData<>-1) Data[gArrInt_LayerNr[HideData]].Hide();
}
OnBar(ArrayRef<Integer> indexs)
{
Range[0:DataSourceSize-1]
{
// 三图层均线计算并显示
my_MA = Average(Close,Length);
PlotNumeric("MA",my_MA, 0,Yellow);
}
}
上述公式在空图表加载后正常显示三个图层及指标。如果此时右击鼠标,更改“策略应用设置”里的参数,选择HideData参数为 0,也就是说我想隐藏Data0图层。点击“应用”后,Data0的K线被隐藏了,但其上均线指标没有隐藏,并奇怪地显示在最下方,好像成了一个副图指标。如下图:
此时点击“刷新”则正常显示。如果选择HideData参数为其它值则没有这个现象。请确认!
收到了,已确认,转发研发人员分析。