划线错误(图中白色均线位置感觉不对,是哪里出错了?请老师看看)

//------------------------------------------------------------------------


Params

   Numeric FastLengthMA(20);// 短期指数平均线参数

   //Numeric SlowLengthMA(20);// 长期指数平均线参数

   

   Numeric FastLength(12);

   Numeric SlowLength(26);

   Numeric MACDLength(9);

Vars

   Series<Numeric> AvgValue1;

   Series<Numeric> AvgValue2;

   

   Series<Numeric> MACDDiff;

    Series<Numeric> AvgMACD;

    Series<Numeric> MACDValue;

   Series<Numeric> Fast_ma;

   Series<Numeric> Slow_ma;

   

   Plot pen1;

   Plot pen2;

   

Events

   OnReady()

   {

       SetBackBarMaxCount(1+Max(FastLength,SlowLength));

       Range[0:DataSourceSize() - 1]

       {

           setPlotOption("MA1", "begin-bar", FastLengthMA);

           //setPlotOption("MA2", "begin-bar", SlowLengthMA);

           

           setPlotOption("MACDDiff", "begin-bar", SlowLength);

           setPlotOption("MACDDEA", "begin-bar", SlowLength + MACDLength);

           setPlotOption("MACD", "begin-bar", SlowLength + MACDLength);

       }

        pen2.figure(0);  //开个副图

   }

   OnBar(ArrayRef<Integer> indexs)

   {

       AvgValue1 = AverageFC(Close,FastLengthMA);

      // AvgValue2 = AverageFC(Close,SlowLengthMA);

       PlotNumeric("MA1",AvgValue1);

      // PlotNumeric("MA2",AvgValue2);              

     

       {

     

           

          If(CurrentBar==0)

          {Fast_ma=Close;

              Slow_ma=Close;

              MACDDiff=Fast_ma-Slow_ma;

              AvgMACD=MACDDiff;              

          } Else

          {

           Fast_ma=Fast_ma[1]+(Close-Fast_ma[1])*2/(FastLength+1);

           Slow_ma=Slow_ma[1]+(Close-Slow_ma[1])*2/(SlowLength+1);

           MACDDiff=Fast_ma-Slow_ma;

              AvgMACD=AvgMACD[1]+(MACDDiff-AvgMACD[1])*2/(MACDLength+1);

              AvgMACD=AvgMACD[1]+(Fast_ma-Slow_ma-AvgMACD[1])*2/(MACDLength+1);

          }

         

          pen2.line("MACDDiff",date+time,MACDDiff);//画出MACD的两条均线

          pen2.Line("macddea",date+time,AvgMACD);

          Numeric X;

          X=((FastLength+1)*(SlowLength+1)*((AvgMACD[1]*(MACDLength+1)-2*(AvgMACD[1]))/(MACDLength-1)-Fast_ma[1]+Slow_ma[1])/2+(SlowLength+1)*Fast_ma[1]-(FastLength+1)*Slow_ma[1])/(SlowLength-FastLength);

          pen1.line("X",X);

          MACDValue = MACDDiff - AvgMACD;

看看哪里错了,全都选中
哪位大神老师帮我看看哪里不对
这段代码哪里逻辑不对吗?哪位老师帮忙看看
双均线系统,出信号未开仓
哪里错了啊?
趋势线教学视频划线
PlotString函数显示位置错误
abeplus策略,感觉不对,没有及时平仓
不按程序出信号,请大佬给看看
写在程序中,既要在主图中显示均线,又要在副图中显示MACD,语言如何写呢

pen1.line("X",X);

既然你画的是X,那么就验算X的值

这两个参数你确定对的么?

分开的,一个是用来计算均线的,一个是用来计算MACD的

你是不是想反算macd指标的金叉死叉点?

老师有搞过公式 你可以看看跟你有什么不一样

https://www.bilibili.com/video/BV1K34y1A7Lq?spm_id_from=333.788.videopod.sections&vd_source=0f5409c4d9c360588dbae5f07a75e860

楼主代码我没看懂

正在学习中


如果是你说的反算

其实换个思路

没必要的


自己弄个序列变量正算非常简单

老刘只是举个栗子

其实方案有正反两个

啊?正反两个是什么意思?

反算的意思是 算当close价格在什么点位的时候,计算出的macd柱==0

直接的思路就是把公式写出来,用代数的方式做

还有其他思路,对吗?

当然

你琢磨一下

你的意思是实时用boll判断macd==0?

那在图表交易中 buy sell 命令 就不能用到固定的价格了哦

好像也可以 ,macd==0的 时候, 把价格取出来

是这个意思吗

第一,你给的代码不全,没办法复现。

第二,你觉得图中白线画的不对是吧?那为什么不自己演算一下呢?线上每一个点的值都是可以显示或者commentary输出的,看看你的计算表达式到底哪一步算错了