权益均线无法显示,问题出在哪里?
2024-09-13 21:56

想要显示账户权益的均线和MACD,但不成功。下面是完整代码,请老师看一下,问题出在哪里?

Params

Numeric Length1(5);

Numeric Length2(20);

   Numeric FastLength(12);

   Numeric SlowLength(26);

   Numeric MACDLength(9);

Vars

  Numeric MACDDiff;

   Numeric AvgMACD;

   Numeric MACDValue;

   Plot plt_macd;

   Plot plt_vol;

   plot plt_line;


  Natural Series<Numeric> CloseL;


   Numeric Tvalue;

   Integer i;

Global Numeric BZJB;

Integer lot;

Natural MarginRate mRate;


Events

   OnInit()

     {

          //=========数据源相关设置==============

//获取数据源委托映射合约

Array<String> symbols;

           Bool ret = GetLayerOrderMapSymbols(symbols);

           Print(\"GetLayerOrderMapSymbols:\" + IIFString(ret, \"True\", \"False\") + \",\" + TextArray(symbols));    


     {

     plt_line.figure(0); //plt_line单独设置画板,没有指定画板id,系统自动创建

     plt_macd.figure(0);//plt_macd和k线同一个画板,独立图表显示

     plt_vol.figure(1);  //plt_vol单独设置画板,没有指定画板id,系统自动创建

     

     plt_vol.setOption(\"Vol\",\"x-format\",\"time\");

     plt_line.setOption(\"MA1\",\"x-format\",\"time\");

     plt_vol.setLayout(5,0);

     plt_vol.setOption(tableName,\"data-pagination\",False);

     plt_vol.setOption(tableName,\"column-index\",\"账户_合约=0\");

  }

  }

       //在所有的数据源准备完成后调用

       

OnBar(ArrayRef<Integer> indexs)

{


//CloseL = Close ;                     //均线和MACD可以正常显示

CloseL = A_CurrentEquity(i);           //指定账户的动态权益均线和MACD无法正常显示

//CloseL = Portfolio_CurrentEquity();

       //CloseL = Portfolio_InitCapital();

       //CloseL = A_PositionProfitLossO(i);

       //CloseL = Portfolio_PositionProfit();

       //CloseL = PositionProfit;

     //Line

     plt_line.line(\"MA1\",AverageFC(CloseL,Length1));

     plt_line.line(\"MA2\",AverageFC(CloseL,Length2));    

           

     //macd

     MACDDiff = XAverage( CloseL, FastLength ) - XAverage( CloseL, SlowLength ) ;    

     AvgMACD = XAverage(MACDDiff,MACDLength);

     MACDValue = MACDDiff - AvgMACD;

     plt_macd.line(\"MACDDiff\",MACDDiff); //画线

     plt_macd.line(\"MACDDEA\",AvgMACD); //画线

     If (MACDValue >= 0)    

     {

         plt_macd.setOption(\"MACD\",\"color\",Red); //设置颜色属性

         plt_macd.barv(\"MACD\",MACDValue);  //画柱状图

     }

     Else

     {

         plt_macd.setOption(\"MACD\",\"color\",Green);//设置颜色属性

         plt_macd.barv(\"MACD\",MACDValue); //画柱状图

     }

         plt_macd.line(\"零线\",0);


      }  

评论区
顶部