Coral Indicator For MT5
Coral Indicator For MT5 memaparkan lengkung Purata Bergerak berwarna yang menggabungkan nisbah perataan dalam pengiraannya. Nisbah smoothing adalah tempoh pengiraan yang nilainya tidak boleh kurang dari 0.0086 dan lebih besar dari 1.00. Nilai yang lebih kecil, semakin lama tempoh pengiraan.
Petunjuk Coral Untuk MT5 akan dilapisi sebagai garisan Hijau atau garis Merah pada tetingkap harga utama. Lengkung indikator Hijau yang semakin meningkat menandakan trend yang sedang ada, manakala garis indikator Merah jatuh menunjukkan kehadiran trend menurun.
Peniaga boleh memasuki masa yang lama apabila Petunjuk Coral Untuk MT5 bertukar Hijau, dan harga terputus di atas paras rintangan utama yang terdekat. Sebaliknya, seluar pendek boleh dimasukkan apabila penunjuk bertukar menjadi Merah, dan harga jatuh di bawah zon sokongan utama terdekat.
Memasang Coral Indicator For MT5
Selepas anda memuat turun penunjuk melalui borang di atas, anda perlu unzip fail zip. Kemudian anda perlu menyalin fail Coral.mq5 ke folder MQL5Indicators pemasangan MT5 anda. Selepas itu sila mulakan MT5 dan kemudian anda akan dapat melihat penunjuk dalam senarai petunjuk.
Parameter Coral Indicator For MT5
Coral Indicator For MT5 mempunyai parameter 2 untuk mengkonfigurasi.
input double InpCoeff = 0.063492063492; // Coefficient
input ENUM_APPLIED_PRICE InpAppliedPrice = PRICE_CLOSE; // Applied price
Coral Indicator For MT5
Coral Indicator For MT5 menyediakan 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);
Bahagian Utama Kod
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);
}
//+------------------------------------------------------------------+