indicator draw line 0 but value inside buffer is differents o_O

 

hi guys i want  draw e EXponetial EMA , but not want use a class inside of mql4 (ima or imaonarray )

therefore i build my class but  not draw nothing

o_O

thanks at all

//+------------------------------------------------------------------+
//|                                                     MM2Smoth.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property description "  "
#property strict
#property indicator_separate_window  // indicatore in seprata window
#property indicator_buffers 1       // Number of buffers
#property indicator_color1 Green     //  

int  barsbackN = 1500;

double ArrayNClose[1];
double ArrayNOpen[1];

double Buf_0[],Buf_1[];

double MedSyStart[1];
double EMA1[1];
double SF;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   //SF=2/(barsbackN+1 );
   ChartSetSymbolPeriod(0,Symbol(),PERIOD_M5);

   IndicatorShortName("");
   SetIndexBuffer(0,Buf_0);         // Assigning an array to a buffer
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2); // Line style

//--- indicator buffers mapping
//--  BLOCK A
   ArrayResize(ArrayNClose,barsbackN+3);
   ArrayResize(ArrayNOpen,barsbackN+3);
   ArrayResize(MedSyStart,barsbackN+3);
   ArrayResize(EMA1,barsbackN+1);

   SetIndexDrawBegin(0,barsbackN);
   
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {

// NUMERATOR
   CopyClose(Symbol(),Period(),0,barsbackN+2,ArrayNClose);
   CopyOpen(Symbol(),Period(),0,barsbackN+2,ArrayNOpen);

//*******************---------------------------------
   for(int i=0; i<=(barsbackN+1); i++)
     {
      if(i+1 <=barsbackN+1)
        {
         MedSyStart[i]= (ArrayNClose[i]-ArrayNOpen[i])+(ArrayNClose[i+1]-ArrayNOpen[i+1])/(barsbackN+1);
        }
     }

      
        SF=0.001332445036642;

   for(int i=barsbackN; i>0; i--)
     {
      if(i==barsbackN)
        {
         EMA1[i]=MedSyStart[barsbackN+1]+SF*((ArrayNClose[i]-ArrayNOpen[i])-MedSyStart[barsbackN+1]);       
        }
      else
        {
         EMA1[i]=EMA1[i-1]+SF*((ArrayNClose[i]-ArrayNOpen[i])-EMA1[i-1]);
        }
     }

//*******************---------------------------------
// FUNCTION 4 DRAW INDICATOR
 
      int Counted_bars=barsbackN;
     // int J=Bars-Counted_bars-1;
     int J=barsbackN;
    
      while(J>=0)
        {
        
         //Buf_0[J]= (EmaBB[J]/ EmaDD[J])*100;
         Buf_0[J]= (EMA1[J]);
           Print("BAOBA  "+Buf_0[J]);
         J--;
        }
 
   return 0;
  }

//+------------------------------------------------------------------+
Reason: