،،،اعضاء وزوار منتديات ارابيا الكرام ، اهلا بكم في درس جديد من دروس تعليم البرمجة بلغة MQL4،،،
،،،موضوع هذا الدرس هو برمجة اكسبيرت يقوم بعرض بيانات اكثر من مؤشر علي الشارت ولاكثر من تايم فريم بطريقة سهله وبسيطة،،،
،،،يجب ان تكون لديك خلفية عن البرمجة بهذه اللغة ويمكن الالمام بها عن طريق مراجعة الدروس الموجودة بالمواضيع علي الروابط التالية،،،
دورة تعليم البرمجة الاحترافية بلغة mql4
دروس شرح البرمجة المتقدمة بلغة MQL4
،،،نبدأ اولا باستدعاء المؤشرات التي سيتم العمل عليها وسيكون العمل علي مؤشرات اساسية موجوده بالميتاتريدر،،،
،،،Moving Average - RSI - ADX - MACD - Parbolic Sar ،،،
،،،نقوم باستدعاء كل الفريمات لكل مؤشر ونبدأ بالموفينج افريج،،،
//MA - M1
double ma_m1 = iMA(Symbol(),PERIOD_M1,MA_Period,MA_Shift,MA_Method,MA_Applied_Price,1);
//MA - M5
double ma_m5 = iMA(Symbol(),PERIOD_M5,MA_Period,MA_Shift,MA_Method,MA_Applied_Price,1);
//MA - M15
double ma_m15 = iMA(Symbol(),PERIOD_M15,MA_Period,MA_Shift,MA_Method,MA_Applied_Price,1);
//MA - M30
double ma_m30 = iMA(Symbol(),PERIOD_M30,MA_Period,MA_Shift,MA_Method,MA_Applied_Price,1);
//MA - H1
double ma_h1 = iMA(Symbol(),PERIOD_H1,MA_Period,MA_Shift,MA_Method,MA_Applied_Price,1);
//MA - H4
double ma_h4 = iMA(Symbol(),PERIOD_H4,MA_Period,MA_Shift,MA_Method,MA_Applied_Price,1);
//MA - D1
double ma_d1 = iMA(Symbol(),PERIOD_D1,MA_Period,MA_Shift,MA_Method,MA_Applied_Price,1);
//MA - W1
double ma_w1 = iMA(Symbol(),PERIOD_W1,MA_Period,MA_Shift,MA_Method,MA_Applied_Price,1);
//MA - MN1
double ma_mn1 = iMA(Symbol(),PERIOD_MN1,MA_Period,MA_Shift,MA_Method,MA_Applied_Price,1);
////////////////////////////////////////////////////////////////////////////////////////////////////////////
extern int MA_Period = 14;
extern int MA_Shift = 0;
extern ENUM_MA_METHOD MA_Method = MODE_SMA;
extern ENUM_APPLIED_PRICE MA_Applied_Price = PRICE_CLOSE;
//rsi - m1
double rsi_m1 = iRSI(Symbol(),PERIOD_M1,RSI_Period,RSI_Applied_Price,1);
//rsi - m5
double rsi_m5 = iRSI(Symbol(),PERIOD_M5,RSI_Period,RSI_Applied_Price,1);
//rsi - m15
double rsi_m15 = iRSI(Symbol(),PERIOD_M15,RSI_Period,RSI_Applied_Price,1);
//rsi - m30
double rsi_m30 = iRSI(Symbol(),PERIOD_M30,RSI_Period,RSI_Applied_Price,1);
//rsi - H1
double rsi_h1 = iRSI(Symbol(),PERIOD_H1,RSI_Period,RSI_Applied_Price,1);
//rsi - H4
double rsi_h4 = iRSI(Symbol(),PERIOD_H4,RSI_Period,RSI_Applied_Price,1);
//rsi - D1
double rsi_d1 = iRSI(Symbol(),PERIOD_D1,RSI_Period,RSI_Applied_Price,1);
//rsi - W1
double rsi_w1 = iRSI(Symbol(),PERIOD_W1,RSI_Period,RSI_Applied_Price,1);
//rsi - MN1
double rsi_mn1 = iRSI(Symbol(),PERIOD_MN1,RSI_Period,RSI_Applied_Price,1);
/////////////////////////////////////////////////////////////////////////////
extern int RSI_Period = 14;
extern ENUM_APPLIED_PRICE RSI_Applied_Price = PRICE_CLOSE;
/////////////////////////////////////////////////////////////////////////////
//ADX - M1
double ADX_P_m1 = iADX(Symbol(),PERIOD_M1,ADX_Period,ADX_Applied_Price,MODE_PLUSDI,1);
double ADX_M_m1 = iADX(Symbol(),PERIOD_M1,ADX_Period,ADX_Applied_Price,MODE_MINUSDI,1);
double ADX_MN_m1 = iADX(Symbol(),PERIOD_M1,ADX_Period,ADX_Applied_Price,MODE_MAIN,1);
//ADX - M5
double ADX_P_m5 = iADX(Symbol(),PERIOD_M5,ADX_Period,ADX_Applied_Price,MODE_PLUSDI,1);
double ADX_M_m5 = iADX(Symbol(),PERIOD_M5,ADX_Period,ADX_Applied_Price,MODE_MINUSDI,1);
double ADX_MN_m5 = iADX(Symbol(),PERIOD_M5,ADX_Period,ADX_Applied_Price,MODE_MAIN,1);
//ADX - M15
double ADX_P_m15 = iADX(Symbol(),PERIOD_M15,ADX_Period,ADX_Applied_Price,MODE_PLUSDI,1);
double ADX_M_m15 = iADX(Symbol(),PERIOD_M15,ADX_Period,ADX_Applied_Price,MODE_MINUSDI,1);
double ADX_MN_m15 = iADX(Symbol(),PERIOD_M15,ADX_Period,ADX_Applied_Price,MODE_MAIN,1);
//ADX - M30
double ADX_P_m30 = iADX(Symbol(),PERIOD_M30,ADX_Period,ADX_Applied_Price,MODE_PLUSDI,1);
double ADX_M_m30 = iADX(Symbol(),PERIOD_M30,ADX_Period,ADX_Applied_Price,MODE_MINUSDI,1);
double ADX_MN_m30 = iADX(Symbol(),PERIOD_M30,ADX_Period,ADX_Applied_Price,MODE_MAIN,1);
//ADX - H1
double ADX_P_h1 = iADX(Symbol(),PERIOD_H1,ADX_Period,ADX_Applied_Price,MODE_PLUSDI,1);
double ADX_M_h1 = iADX(Symbol(),PERIOD_H1,ADX_Period,ADX_Applied_Price,MODE_MINUSDI,1);
double ADX_MN_h1 = iADX(Symbol(),PERIOD_H1,ADX_Period,ADX_Applied_Price,MODE_MAIN,1);
//ADX - H4
double ADX_P_h4 = iADX(Symbol(),PERIOD_H4,ADX_Period,ADX_Applied_Price,MODE_PLUSDI,1);
double ADX_M_h4 = iADX(Symbol(),PERIOD_H4,ADX_Period,ADX_Applied_Price,MODE_MINUSDI,1);
double ADX_MN_h4 = iADX(Symbol(),PERIOD_H4,ADX_Period,ADX_Applied_Price,MODE_MAIN,1);
//ADX - D1
double ADX_P_d1 = iADX(Symbol(),PERIOD_D1,ADX_Period,ADX_Applied_Price,MODE_PLUSDI,1);
double ADX_M_d1 = iADX(Symbol(),PERIOD_D1,ADX_Period,ADX_Applied_Price,MODE_MINUSDI,1);
double ADX_MN_d1 = iADX(Symbol(),PERIOD_D1,ADX_Period,ADX_Applied_Price,MODE_MAIN,1);
//ADX - W1
double ADX_P_w1 = iADX(Symbol(),PERIOD_W1,ADX_Period,ADX_Applied_Price,MODE_PLUSDI,1);
double ADX_M_w1 = iADX(Symbol(),PERIOD_W1,ADX_Period,ADX_Applied_Price,MODE_MINUSDI,1);
double ADX_MN_w1 = iADX(Symbol(),PERIOD_W1,ADX_Period,ADX_Applied_Price,MODE_MAIN,1);
//ADX - MN1
double ADX_P_mn1 = iADX(Symbol(),PERIOD_MN1,ADX_Period,ADX_Applied_Price,MODE_PLUSDI,1);
double ADX_M_mn1 = iADX(Symbol(),PERIOD_MN1,ADX_Period,ADX_Applied_Price,MODE_MINUSDI,1);
double ADX_MN_mn1 = iADX(Symbol(),PERIOD_MN1,ADX_Period,ADX_Applied_Price,MODE_MAIN,1);
////////////////////////////////////////////////////////////////////////////////////////////
extern int ADX_Period = 14;
extern ENUM_APPLIED_PRICE ADX_Applied_Price = PRICE_CLOSE;
//MACD-M1
double MACD_M_m1 = iMACD(Symbol(),PERIOD_M1,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_MAIN,1);
double MACD_S_m1 = iMACD(Symbol(),PERIOD_M1,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_SIGNAL,1);
//MACD-M5
double MACD_M_m5 = iMACD(Symbol(),PERIOD_M5,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_MAIN,1);
double MACD_S_m5 = iMACD(Symbol(),PERIOD_M5,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_SIGNAL,1);
//MACD-M15
double MACD_M_m15 = iMACD(Symbol(),PERIOD_M15,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_MAIN,1);
double MACD_S_m15 = iMACD(Symbol(),PERIOD_M15,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_SIGNAL,1);
//MACD-M30
double MACD_M_m30 = iMACD(Symbol(),PERIOD_M30,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_MAIN,1);
double MACD_S_m30 = iMACD(Symbol(),PERIOD_M30,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_SIGNAL,1);
//MACD-H1
double MACD_M_h1 = iMACD(Symbol(),PERIOD_H1,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_MAIN,1);
double MACD_S_h1 = iMACD(Symbol(),PERIOD_H1,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_SIGNAL,1);
//MACD-H4
double MACD_M_h4 = iMACD(Symbol(),PERIOD_H4,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_MAIN,1);
double MACD_S_h4 = iMACD(Symbol(),PERIOD_H4,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_SIGNAL,1);
//MACD-D1
double MACD_M_d1 = iMACD(Symbol(),PERIOD_D1,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_MAIN,1);
double MACD_S_d1 = iMACD(Symbol(),PERIOD_D1,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_SIGNAL,1);
//MACD-W1
double MACD_M_w1 = iMACD(Symbol(),PERIOD_W1,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_MAIN,1);
double MACD_S_w1 = iMACD(Symbol(),PERIOD_W1,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_SIGNAL,1);
//MACD-MN1
double MACD_M_mn1 = iMACD(Symbol(),PERIOD_MN1,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_MAIN,1);
double MACD_S_mn1 = iMACD(Symbol(),PERIOD_MN1,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,Applied_Price,MODE_SIGNAL,1);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
extern int Fast_EMA_Period = 13;
extern int Slow_EMA_Period = 3;
extern int Signal_Period = 3;
extern ENUM_APPLIED_PRICE Apllied_Price = PRICE_CLOSE;
//Sar-M1
double SAR_m1 = iSAR(Symbol(),PERIOD_M1,Step,Maximum,1);
//Sar-M5
double SAR_m5 = iSAR(Symbol(),PERIOD_M5,Step,Maximum,1);
//Sar-M15
double SAR_m15 = iSAR(Symbol(),PERIOD_M15,Step,Maximum,1);
//Sar-M30
double SAR_m30 = iSAR(Symbol(),PERIOD_M30,Step,Maximum,1);
//Sar-H1
double SAR_h1 = iSAR(Symbol(),PERIOD_H1,Step,Maximum,1);
//Sar-H4
double SAR_h4 = iSAR(Symbol(),PERIOD_H4,Step,Maximum,1);
//Sar-D1
double SAR_d1 = iSAR(Symbol(),PERIOD_D1,Step,Maximum,1);
//Sar-W1
double SAR_w1 = iSAR(Symbol(),PERIOD_W1,Step,Maximum,1);
//Sar-MN1
double SAR_mn1 = iSAR(Symbol(),PERIOD_MN1,Step,Maximum,1);
//////////////////////////////////////////////////////////////////////////////
extern double Step = 0.02;
extern double Maximum = 0.2;