aiuto mql4

Discussione in 'Trading Systems, Econometria' iniziata da adrimas, 1 Febbraio 2019.

    1 Febbraio 2019
  1. adrimas

    adrimas New Member

    Registrato:
    1 Febbraio 2019
    Messaggi:
    1
    Salve a tutti, spero che qualcuno potrà darmi una mano con questo problemino...

    perchè scrivendo così funziona e si aggiorna correttamente candela dopo candela (partendo dalla candela [1]):
    Label1Buffer[1] = Volume[1]/((High[1]-Low[1])*10000);
    Label1Buffer[2] = Volume[2]/((High[2]-Low[2])*10000);
    Label1Buffer[3] = Volume[3]/((High[3]-Low[3])*10000);


    e così invece volendo visualizzare l'indicatore anche in tempo reale (sulla candela [0]) funziona solo alla prima candela poi si congela?:
    Label1Buffer[0] = Volume[0]/((High[0]-Low[0])*10000);
    Label1Buffer[1] = Volume[1]/((High[1]-Low[1])*10000);
    Label1Buffer[2] = Volume[2]/((High[2]-Low[2])*10000);
    Label1Buffer[3] = Volume[3]/((High[3]-Low[3])*10000);



    anche con il ciclo for ovviamente il risultato non cambia:
    for(int i=0;i<=Bars-(Bars-100);i++){
    Label1Buffer = Volume/((High-Low)*10000);
    }




    invece così (senza candela [0]) funziona...
    for(int i=1;i<=Bars-(Bars-100);i++){
    Label1Buffer = Volume/((High-Low)*10000);
    }



    se invece sostituisco nel ciclo for il valore del buffer "Volume/((High-Low)*10000);" inserendo un solo valore (High più tosto che Low o Volume) funzionano tutto perfettamente...


    RINGRAZIO TUTTI ANTICIPATAMENTE :)

    codice completo:
    #property strict
    #property indicator_separate_window
    #property indicator_buffers 1
    #property indicator_plots 1
    //--- plot Label1
    #property indicator_label1 "Label1"
    #property indicator_type1 DRAW_HISTOGRAM
    #property indicator_color1 clrBlue
    #property indicator_style1 STYLE_SOLID
    #property indicator_width1 2
    //--- indicator buffers
    double Label1Buffer[];
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int OnInit()
    {
    //--- indicator buffers mapping
    SetIndexBuffer(0,Label1Buffer);

    //---
    return(INIT_SUCCEEDED);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int OnCalculate(const int rates_total,
    const int prev_calculated,
    const datetime &time[],
    const double &open[],
    const double &high[],
    const double &low[],
    const double &close[],
    const long &tick_volume[],
    const long &volume[],
    const int &spread[])
    {
    //---

    for(int i=0;i<=Bars-(Bars-100);i++){
    Label1Buffer = Volume/((High-Low)*10000);
    }


    //--- return value of prev_calculated for next call
    return(rates_total);
    }
    //+------------------------------------------------------------------+
     

Utenti che hanno già letto questo Thread (Totale: 0)

Condividi questa Pagina