4MA Candles Indicator For MT5

4MA Candles Indicator For MT5

4MA Candles Indicator For MT5 Yeni bir Japon şamdan seti oluşturmak için mumların açık, yüksek, kapanış ve düşük değerlerini analiz eder. Fiyat yükseldiğinde, şamdan rengi kahverengidir. Aksine, fiyat daha düşük bir eğilim gösterdiğinde, şamdan rengi yeşil renktedir. Mumların renk koduna dayanarak, tüccarlar büyük trendin yönünü kolayca bulabilirler. İşlemleri gerçekleştirmek için, tüccarların pazarın daha büyük resmine güvenmeleri gerekir. Bu göstergenin değerini daha düşük bir zaman dilimi içinde kullanırsanız, bu pazardan iyi bir kazanç elde edemeyeceğiniz ihtimal çok yüksektir. İşlem yürütme sürecinizi iyileştirmek için, fiyat kritik destek ve direnç seviyesine ulaştığında mum kalıplarını analiz etmeyi öğrenmelisiniz. Kritik seviyelere dayanarak, trader'ların uzun vadeli fiyat hareketine odaklanması gerekir, böylece yanlış ani artışlarla uğraşmak zorunda kalmazlar.

FREE 4MA Candles Indicator

Download the FREE 4MA Candles Indicator for MT5.

To receive my email 100% sure: 
Put my email on your whitelist!

 

Partially Automated Trading Besides Your Day Job

Alerts In Real-Time When Divergences Occur

 

4MA Candles Indicator For MT5 Yükleme

Göstergeyi yukarıdaki form aracılığıyla indirdikten sonra zip dosyasını açmanız gerekir. Ardından 4_ma_candles.mq5 dosyasını MT5 kurulumunuzun MQL5Indicators klasörüne kopyalamanız gerekir. Bundan sonra lütfen MT5'i yeniden başlatın, ardından göstergeyi göstergeler listesinde görebileceksiniz.

4MA Candles Indicator For MT5 Parametreleri

4MA Candles Indicator For MT5 , yapılandırılacak 2 parametrelerine sahiptir.

input int       AvgPeriod  = 25;       // Averages period
input enMaTypes AvgType    = avgEma;   // Averages method

4MA Candles Indicator For MT5

4MA Candles Indicator For MT5 , 5 arabelleklerini sağlar.

SetIndexBuffer(0,cano  ,INDICATOR_DATA);
SetIndexBuffer(1,canh  ,INDICATOR_DATA);
SetIndexBuffer(2,canl  ,INDICATOR_DATA);
SetIndexBuffer(3,canc  ,INDICATOR_DATA);
SetIndexBuffer(4,colors,INDICATOR_COLOR_INDEX);

Kodun Ana Bölümleri

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[])
{ 
   int bars = Bars(_Symbol,_Period); if (bars lt rates_total) return(-1);
   for (int i=(int)MathMax(prev_calculated-1,0); i lt rates_total && !IsStopped(); i++)
   {
      double mao = iCustomMa(AvgType,open[i] ,AvgPeriod,i,rates_total,0);
      double mac = iCustomMa(AvgType,close[i],AvgPeriod,i,rates_total,1);
      double mah = iCustomMa(AvgType,high[i] ,AvgPeriod,i,rates_total,2);
      double mal = iCustomMa(AvgType,low[i]  ,AvgPeriod,i,rates_total,3);
         canh[i] = MathMax(MathMax(MathMax(mao,mac),mal),mah);
         canl[i] = MathMin(MathMin(MathMin(mao,mac),mal),mah);
         cano[i] = mao;
         canc[i] = mac;
         colors[i] = mao gt mac ? 2 : mao lt mac ? 1 : 0; 
   }
   return(rates_total);
}

//------------------------------------------------------------------
//                                                                  
//------------------------------------------------------------------
//
//
//
//
//

#define _maInstances 4
#define _maWorkBufferx1 1*_maInstances
#define _maWorkBufferx2 2*_maInstances

double iCustomMa(int mode, double price, double length, int r, int bars, int instanceNo=0)
{
   switch (mode)
   {
      case avgSma   : return(iSma(price,(int)length,r,bars,instanceNo));
      case avgEma   : return(iEma(price,length,r,bars,instanceNo));
      case avgSmma  : return(iSmma(price,(int)length,r,bars,instanceNo));
      case avgLwma  : return(iLwma(price,(int)length,r,bars,instanceNo));
      default       : return(price);
   }
}

//
//
//
//
//

double workSma[][_maWorkBufferx2];
double iSma(double price, int period, int r, int _bars, int instanceNo=0)
{
   if (period lt =1) return(price);
   if (ArrayRange(workSma,0)!= _bars) ArrayResize(workSma,_bars); instanceNo *= 2; int k;

   //
   //
   //
   //
   //
      
   workSma[r][instanceNo+0] = price;
   workSma[r][instanceNo+1] = price; for(k=1; k lt period && (r-k) gt =0; k++) workSma[r][instanceNo+1] += workSma[r-k][instanceNo+0];  
   workSma[r][instanceNo+1] /= 1.0*k;
   return(workSma[r][instanceNo+1]);
}

//
//
//
//
//

double workEma[][_maWorkBufferx1];
double iEma(double price, double period, int r, int _bars, int instanceNo=0)
{
   if (period lt =1) return(price);
   if (ArrayRange(workEma,0)!= _bars) ArrayResize(workEma,_bars);

   //
   //
   //
   //
   //
      
   workEma[r][instanceNo] = price;
   double alpha = 2.0 / (1.0+period);
   if (r gt 0)
          workEma[r][instanceNo] = workEma[r-1][instanceNo]+alpha*(price-workEma[r-1][instanceNo]);
   return(workEma[r][instanceNo]);
}

//
//
//
//
//

double workSmma[][_maWorkBufferx1];
double iSmma(double price, double period, int r, int _bars, int instanceNo=0)
{
   if (period lt =1) return(price);
   if (ArrayRange(workSmma,0)!= _bars) ArrayResize(workSmma,_bars);

   //
   //
   //
   //
   //

   if (r lt period)
         workSmma[r][instanceNo] = price;
   else  workSmma[r][instanceNo] = workSmma[r-1][instanceNo]+(price-workSmma[r-1][instanceNo])/period;
   return(workSmma[r][instanceNo]);
}

//
//
//
//
//

double workLwma[][_maWorkBufferx1];
double iLwma(double price, double period, int r, int _bars, int instanceNo=0)
{
   if (period lt =1) return(price);
   if (ArrayRange(workLwma,0)!= _bars) ArrayResize(workLwma,_bars);
   
   //
   //
   //
   //
   //
   
   workLwma[r][instanceNo] = price;
      double sumw = period;
      double sum  = period*price;

      for(int k=1; k lt period && (r-k) gt =0; k++)
      {
         double weight = period-k;
                sumw  += weight;
                sum   += weight*workLwma[r-k][instanceNo];  
      }             
      return(sum/sumw);
}

 

About Me

I'm Mike Semlitsch the owner of PerfectTrendSystem.com. My trading career started in 2007. Since 2013 I have helped thousands of traders to take their trading to the next level. Many of them are now constantly profitable traders. 

The following performance was achieved by me while trading live in front of hundreds of my clients:

Connect With Me:  

Results From 5 Months!
This service starts soon! Be the first who get's notified when it begins!

This FREE Indicator Can Transform
Your Trading!

FREE Indicator + Telegram Group


Request the Ultimate Double Top/Bottom Indicator which is used by 10,000+ traders.