4MA Candles Indicator For MT5
4MA Candles Indicator For MT5 कैंडल्स 4MA Candles Indicator For MT5 जापानी कैंडलस्टिक का एक नया सेट बनाने के लिए मोमबत्तियों के खुले, उच्च, समापन और निम्न का विश्लेषण करता है। जब कीमत अधिक होती है, तो कैंडलस्टिक का रंग भूरा होता है। इसके विपरीत, जब कीमत कम हो रही है, तो कैंडलस्टिक का रंग हरे रंग में रंगा हुआ है। मोमबत्तियों के रंग कोड के आधार पर, व्यापारी आसानी से प्रमुख प्रवृत्ति की दिशा पा सकते हैं। ट्रेडों को निष्पादित करने के लिए, व्यापारियों को बाजार की बड़ी तस्वीर पर भरोसा करने की आवश्यकता है। यदि आप इस सूचक के निचले समय सीमा में पढ़ने का उपयोग करते हैं, तो संभावना बहुत अधिक है कि आप इस बाजार से एक अच्छा लाभ नहीं कमा पाएंगे। अपनी व्यापार निष्पादन प्रक्रिया को बेहतर बनाने के लिए, आपको कैंडलस्टिक पैटर्न का विश्लेषण करना सीखना चाहिए जब मूल्य महत्वपूर्ण समर्थन और प्रतिरोध स्तर को हिट करता है। महत्वपूर्ण स्तरों के आधार पर, व्यापारियों को दीर्घकालिक मूल्य आंदोलन पर ध्यान केंद्रित करने की आवश्यकता है ताकि उन्हें झूठी स्पाइक्स से निपटना न पड़े।
4MA Candles Indicator For MT5 स्थापित करना
आपके द्वारा उपर्युक्त फ़ॉर्म के माध्यम से संकेतक डाउनलोड करने के बाद आपको ज़िप-फ़ाइल को अनज़िप करना होगा। तो फिर तुम फाइल कॉपी करने की जरूरत है 4_ma_candles.mq5 फ़ोल्डर में MQL5Indicators अपने की MT5 स्थापना। उसके बाद कृपया MT5 को पुनः आरंभ करें और फिर आप संकेतक की सूची में संकेतक देख पाएंगे।
4MA Candles Indicator For MT5 पैरामीटर
4MA Candles Indicator For MT5 पास कॉन्फ़िगर करने के लिए 2 पैरामीटर हैं।
input int AvgPeriod = 25; // Averages period
input enMaTypes AvgType = avgEma; // Averages method
4MA Candles Indicator For MT5 के 4MA Candles Indicator For MT5
4MA Candles Indicator For MT5 5 बफ़र्स प्रदान करता है।
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);
संहिता के मुख्य भाग
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);
}