Bull&BearCandles 1.1

Author: Vincenzo Augello, settembre 2022
0 Views
0 Downloads
0 Favorites
Bull&BearCandles 1.1
ÿþ//+------------------------------------------------------------------+

//|                                         Bull&BearCandles 1.1.mq5 |

//|                                         Author  Vincenzo Augello |

//+------------------------------------------------------------------+

#property copyright "Vincenzo Augello, settembre 2022 "

#property link      "www.mql5.com"

#property indicator_separate_window

 

#property description "Sommatoria di candele rialziste CV e ribassiste CR, con valore netto (CV - CR)"

#property description "replicato in draw_line mediante finestra separata. Presente il contatore di candele"

#property description "nulle, ovvero con medesima quotazione in apertura e chiusura"



#property indicator_separate_window

#property indicator_buffers 1

#property indicator_plots   1



//--- Le proprietà della linea vengono impostate utilizzando le direttive del compilatore



#property indicator_label1  "Bull&BearCandles 1.1" // Nome del disegno per la Finestra Dati

#property indicator_type1   DRAW_LINE             // Tipo di disegno della linea

#property indicator_color1  clrYellow            // Colore della linea

#property indicator_style1  STYLE_SOLID         // Stile della linea

#property indicator_width1  2                  // Spessore della linea



//--- Buffer indicatori per il disegno



double  LineBuffer [];



//+--------------------------------------------------------------------------------+

//| Funzione di inizializzazione Indicatore Personalizzato                         |

//+--------------------------------------------------------------------------------+

int OnInit()

  {

  //--- Associa un array e un buffer indicatore

   

   SetIndexBuffer(0,LineBuffer,INDICATOR_DATA);

   

  //---

  

   return(INIT_SUCCEEDED);

 }

//+-------------------------------------------------------------------------------+

// Funzione di uscita registro e cls display                                      |        

//+-------------------------------------------------------------------------------+

void OnDeinit(const int reason)

{

 Print("EXIT");

 

 Comment(" "); 

}



//+--------------------------------------------------------------------------------+

//| Funzione di iterazione indicatore personalizato                                |

//+--------------------------------------------------------------------------------+

   double apertura = 0;

   double chiusura = 0; 

   int candleV     = 0;

   int candleR     = 0;

   int candleN     = 0;

   int netta       = 0;   

   int nettaL      = 0;  

   double somma    = 0;

   double media    = 0;

   int i           = 0;   

   int numC        = -1;   

   

   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[])

  {

//-- Blocco per il calcolo dei valori dell'indicatore

 

  while(i<rates_total)

         {

  numC = numC + 1;     

  

  LineBuffer[i] = open[i];

  apertura = open[i];

  

  LineBuffer[i] = close[i];

  chiusura      = close[i];  

  

  somma = somma + chiusura;

  media = somma / numC; 

  

  if (chiusura > apertura && prev_calculated < i)

      candleV = candleV + 1;

  if (chiusura < apertura && prev_calculated < i)     

      candleR = candleR + 1;

  if (chiusura == apertura)

      candleN = candleN + 1;

  

  netta = candleV - candleR;

  nettaL = netta;   

  

  LineBuffer[i] = nettaL;

  i++;

        

  //--Output su grafico e registro 

  

  Comment( " NumCandele : " + numC + " CV : " + candleV + " CR : " + candleR + " CN : " + candleN + " Netta : " + netta + " Prezzo medio : " + media);                                                                                                                                          

  Print( _Symbol + " NumCandele : " + numC + " CV : " + candleV + " CR : " + candleR + " CN : " + candleN + " Netta : " + netta + " Prezzo medio : " + media);

   

}



//--- Restituisce il valore prev_calculated per la successiva chiamata della funzione

   return(rates_total);

 } 

Comments