Coral Indicator For MT5
L' Coral Indicator For MT5 mostra una curva della media mobile colorata che incorpora un rapporto di livellamento nei suoi calcoli. Il rapporto di livellamento è un periodo di calcolo il cui valore non può essere inferiore a 0,0086 e maggiore di 1,00. Più piccolo è il suo valore, più lungo sarà il periodo di calcolo.
L'indicatore Coral per MT5 viene sovrapposto come linea verde o linea rossa nella finestra principale dei prezzi. Una curva dell'indicatore verde in aumento indica che è in atto una tendenza al rialzo, mentre una linea dell'indicatore rossa in calo indica la presenza di una tendenza al ribasso.
I trader possono entrare a lungo quando l'indicatore Coral per MT5 diventa verde e il prezzo supera il livello di resistenza maggiore più vicino. Al contrario, è possibile inserire dei pantaloncini quando l'indicatore diventa rosso e il prezzo scende al di sotto della zona di supporto principale più vicina.
Installazione della Coral Indicator For MT5
Dopo aver scaricato l'indicatore tramite il modulo sopra è necessario decomprimere il file zip. Quindi è necessario copiare il file Coral.mq5 nella cartella MQL5Indicators dell'installazione di MT5 . Dopodiché, riavvia MT5 e sarai in grado di vedere l'indicatore nell'elenco degli indicatori.
Parametri della Coral Indicator For MT5
Coral Indicator For MT5 ha i parametri 2 da configurare.
input double InpCoeff = 0.063492063492; // Coefficient
input ENUM_APPLIED_PRICE InpAppliedPrice = PRICE_CLOSE; // Applied price
Buffer della Coral Indicator For MT5
Coral Indicator For MT5 fornisce buffer 9 .
SetIndexBuffer(0,BufferC,INDICATOR_DATA);
SetIndexBuffer(1,BufferColors,INDICATOR_COLOR_INDEX);
SetIndexBuffer(2,BufferB1,INDICATOR_CALCULATIONS);
SetIndexBuffer(3,BufferB2,INDICATOR_CALCULATIONS);
SetIndexBuffer(4,BufferB3,INDICATOR_CALCULATIONS);
SetIndexBuffer(5,BufferB4,INDICATOR_CALCULATIONS);
SetIndexBuffer(6,BufferB5,INDICATOR_CALCULATIONS);
SetIndexBuffer(7,BufferB6,INDICATOR_CALCULATIONS);
SetIndexBuffer(8,BufferMA,INDICATOR_CALCULATIONS);
Parti principali del codice
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[])
{
//--- @ gt 25@:0 8 @0AGQB : gt ;8G5AB20 ?@ gt AG8BK205 lt KE 10@ gt 2
if(rates_total lt 4) return 0;
//--- @ gt 25@:0 8 @0AGQB : gt ;8G5AB20 ?@ gt AG8BK205 lt KE 10@ gt 2
int limit=rates_total-prev_calculated;
if(limit gt 1)
{
limit=rates_total-2;
ArrayInitialize(BufferC,EMPTY_VALUE);
ArrayInitialize(BufferColors,2);
ArrayInitialize(BufferB1,0);
ArrayInitialize(BufferB2,0);
ArrayInitialize(BufferB3,0);
ArrayInitialize(BufferB4,0);
ArrayInitialize(BufferB5,0);
ArrayInitialize(BufferB6,0);
ArrayInitialize(BufferMA,0);
}
//--- gt 43 gt B gt 2:0 40==KE
int count=(limit gt 1 ? rates_total : 1);
int copied=CopyBuffer(handle_ma,0,0,count,BufferMA);
if(copied!=count) return 0;
//--- 0AGQB 8=48:0B gt @0
for(int i=limit; i gt =0 && !IsStopped(); i--)
{
if(i==rates_total-2)
BufferB1[i]=BufferB2[i]=BufferB3[i]=BufferB4[i]=BufferB5[i]=BufferB6[i]=BufferMA[i];
else
{
BufferB1[i]=coeff1*BufferMA[i]+coeff2*BufferB1[i+1];
BufferB2[i]=coeff1*BufferB1[i]+coeff2*BufferB2[i+1];
BufferB3[i]=coeff1*BufferB2[i]+coeff2*BufferB3[i+1];
BufferB4[i]=coeff1*BufferB3[i]+coeff2*BufferB4[i+1];
BufferB5[i]=coeff1*BufferB4[i]+coeff2*BufferB5[i+1];
BufferB6[i]=coeff1*BufferB5[i]+coeff2*BufferB6[i+1];
BufferC[i]=(-0.064)*BufferB6[i]+0.672*BufferB5[i]-2.352*BufferB4[i]+2.744*BufferB3[i];
BufferColors[i]=(BufferC[i] gt BufferC[i+1] ? 0 : BufferC[i] lt BufferC[i+1] ? 1 : 2);
}
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+