主图副图同步显示请教怎么让macd的值做到零线上为红,零线下为空

各位大佬好,我萌新一枚, 有个问题想请教下,我在学习线上答疑20220127视频时,尝试跟着视频操作,将macd代码一齐写入副图和主图指标同步显示,大问题基本没有,就是有个小问题。正常MACD的值会在零线上变红,零线下变绿。我尝试按照系统写的macd指标,按照这思路加入if macdvalue >0 和 if macdvalue < 0 ,来赋值macdvalue不同颜色。但最终都只有一种颜色。 如图所示,我按照教学视频做出的其他指标都没有问题,就是macd值无论零线上下都是只有一种颜色 这是我按照视频写的代码,中间macd值加入if判断的部分删除了,无论加与否颜色都是只有一种,就是这里想请教,怎么才能做到和系统一样的效果,macdvalue值零线上为红,零线下为绿 系统提供的macd指标: 这是我写的原代码,请大佬们指教,谢谢 Vars Series<Numeric> MACDDiff; series<Numeric> AvgMACD; series<Numeric> MACDValue; Numeric FastLength(12); Numeric SlowLength(26); Numeric MACDLength(9); ////////////画板设置 Plot plot_mydata; Numeric xData;//x轴数据集 Events OnInit() { SubscribeBar("OI888.CZCE","5m",20220104); //SubscribeBar("OI888.CZCE","15m",20200104); plot_mydata.figure(0); plot_mydata.setOption("result","x-format","time"); plot_mydata.setOption("MACDDiff","color",red); plot_mydata.setOption("MACDValue","color",Yellow); plot_mydata.setOption("AvgMACD","color",Green); plot_mydata.setOption("零线","color",White); } OnBar(ArrayRef<Integer> indexs) { MACDDiff = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ; AvgMACD = XAverage(MACDDiff,MACDLength); MACDValue = MACDDiff - AvgMACD; //Commentary("macdvalue"+ text(MACDVALUE)); ma = AverageFC(close,n); PlotNumeric ("ma",ma); golden = CrossOver(MACDDiff,AvgMACD); ending = CrossUnder(MACDDiff,AvgMACD); xData = date + time; plot_mydata.line("MACDDiff",xData,MACDDiff); plot_mydata.line("AvgMACD",xData,AvgMACD); plot_mydata.line("零线",xData,0); plot_mydata.line("MACDValue",xData,MACDValue); }

http://www.tbquant.net/fun/849.html 更多的需求,建议通过帮助中心的文献资料自行查阅 要学会自学哦

回复:好的,谢谢

把value分城两组数据,0上一组,0下一组,不同的组别用不同的line对象去画图

回复:谢谢老师,老师,还有个小问题,请问如果我想将图中的macdvalue值显示为柱状,而不是线段,有没有办法在代码中直接固定为柱状,每次调试后可以在公式设置中改为柱状,但比较麻烦,每次更新都必须重新换一次。另外我尝试用系统的MACD指标plotanto替换也不行, 请教老师我该怎么写