//+------------------------------------------------------------------+ //| ZZZ_STF_StandardEntry_STD.mq4 //+------------------------------------------------------------------+ #property copyright "YEVELL" #property link "ZZZ_STF_StandardEntry_STD" #property indicator_separate_window #property indicator_buffers 8 #property indicator_color1 Lime #property indicator_color2 Red #property indicator_color3 Lime #property indicator_color4 Red #property indicator_color5 Lime #property indicator_color6 Red #property indicator_color7 Aqua//Lime #property indicator_color8 Magenta//Red #property indicator_maximum 4.9 #property indicator_minimum 0.4 //=================================================================================== extern int MA_WPR_WIN5_SM =1 ; string Input1 = "== RSI M30 =="; extern int rsiL_1M = 8 ; extern int rsiS_1M = 4 ; extern int rsiL_5M = 8 ; extern int rsiS_5M = 4 ; extern int rsiL_15M = 4 ; extern int rsiS_15M = 2 ; extern int rsiL_30M = 4 ; extern int rsiS_30M = 2 ; extern int rsiL_60M = 4 ; extern int rsiS_60M = 2 ; string Input2 = "== MA_WPR ==="; extern int L_1M = 14 ; extern int S_1M = 8; extern int L_5M = 14 ; extern int S_5M = 8 ; extern int L_15M = 14 ; extern int S_15M = 8 ; extern int L_30M = 14 ; extern int S_30M = 8 ; extern int L_60M = 14 ; extern int S_60M = 8 ; //=================================================================================== extern int DotSize_110_167 = 110 ; //167 extern int ArrowSize = 6 ; extern int CountBars = 600 ; extern int TFA = 5 ;//0 vir al 4. extern int TFB = 15 ; extern int TFC = 30 ; extern int TFD = 60 ; bool StepTFA_Up = true; bool StepTFB_Up = true; bool StepTFC_Up = true; bool StepTFD_Up = true; double rsiAm_up , rsiAm_dn ; double rsiBm_up , rsiBm_dn ; double rsiCm_up , rsiCm_dn ; double rsiDm_up , rsiDm_dn ; double wprAm_up , wprAm_dn ; double wprBm_up , wprBm_dn ; double wprCm_up , wprCm_dn ; double wprDm_up , wprDm_dn ; double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; double ExtMapBuffer5[]; double ExtMapBuffer6[]; double ExtMapBuffer7[]; double ExtMapBuffer8[]; //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ int init() { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,DotSize_110_167); SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,DotSize_110_167); SetIndexBuffer(1,ExtMapBuffer2); SetIndexEmptyValue(1,0.0); SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,DotSize_110_167); SetIndexBuffer(2,ExtMapBuffer3); SetIndexEmptyValue(2,0.0); SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,DotSize_110_167); SetIndexBuffer(3,ExtMapBuffer4); SetIndexEmptyValue(3,0.0); SetIndexStyle(4,DRAW_ARROW); SetIndexArrow(4,DotSize_110_167); SetIndexBuffer(4,ExtMapBuffer5); SetIndexEmptyValue(4,0.0); SetIndexStyle(5,DRAW_ARROW); SetIndexArrow(5,DotSize_110_167); SetIndexBuffer(5,ExtMapBuffer6); SetIndexEmptyValue(5,0.0); SetIndexStyle(6,DRAW_ARROW); SetIndexArrow(6,DotSize_110_167); SetIndexBuffer(6,ExtMapBuffer7); SetIndexEmptyValue(6,0.0); SetIndexStyle(7,DRAW_ARROW); SetIndexArrow(7,DotSize_110_167); SetIndexBuffer(7,ExtMapBuffer8); SetIndexEmptyValue(7,0.0); //------------------------------------ string short_name; IndicatorShortName("StandardEntry_STD"); SetIndexLabel(0,"StandardEntry_STD"); //======================================================================================== switch(TFA) { case 1 : string TimeFrameStrA="Period_M1"; break; case 5 : TimeFrameStrA="Period_M5"; break; case 15 : TimeFrameStrA="Period_M15"; break; case 30 : TimeFrameStrA="Period_M30"; break; case 60 : TimeFrameStrA="Period_H1"; break; case 240 : TimeFrameStrA="Period_H4"; break; case 1440 : TimeFrameStrA="Period_D1"; break; case 10080 : TimeFrameStrA="Period_W1"; break; case 43200 : TimeFrameStrA="Period_MN1"; break; default : TimeFrameStrA="Current Timeframe"; SetStepTFA_Up(); } //======================================================================================= switch(TFB) { case 1 : string TimeFrameStrB="Period_M1"; break; case 5 : TimeFrameStrB="Period_M5"; break; case 15 : TimeFrameStrB="Period_M15"; break; case 30 : TimeFrameStrB="Period_M30"; break; case 60 : TimeFrameStrB="Period_H1"; break; case 240 : TimeFrameStrB="Period_H4"; break; case 1440 : TimeFrameStrB="Period_D1"; break; case 10080 : TimeFrameStrB="Period_W1"; break; case 43200 : TimeFrameStrB="Period_MN1"; break; default : TimeFrameStrB="Current Timeframe"; SetStepTFB_Up(); } //======================================================================================= switch(TFC) { case 1 : string TimeFrameStrC="Period_M1"; break; case 5 : TimeFrameStrC="Period_M5"; break; case 15 : TimeFrameStrC="Period_M15"; break; case 30 : TimeFrameStrC="Period_M30"; break; case 60 : TimeFrameStrC="Period_H1"; break; case 240 : TimeFrameStrC="Period_H4"; break; case 1440 : TimeFrameStrC="Period_D1"; break; case 10080 : TimeFrameStrC="Period_W1"; break; case 43200 : TimeFrameStrC="Period_MN1"; break; default : TimeFrameStrC="Current Timeframe"; SetStepTFC_Up(); } //======================================================================================= switch(TFD) { case 1 : string TimeFrameStrD="Period_M1"; break; case 5 : TimeFrameStrD="Period_M5"; break; case 15 : TimeFrameStrD="Period_M15"; break; case 30 : TimeFrameStrD="Period_M30"; break; case 60 : TimeFrameStrD="Period_H1"; break; case 240 : TimeFrameStrD="Period_H4"; break; case 1440 : TimeFrameStrD="Period_D1"; break; case 10080 : TimeFrameStrD="Period_W1"; break; case 43200 : TimeFrameStrD="Period_MN1"; break; default : TimeFrameStrD="Current Timeframe"; SetStepTFD_Up(); } //======================================================================================= } return(0); //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ int deinit() { Refresh(); return(0); } //+--------------------------------------------------------------------------------------+ int start() { Refresh(); datetime TimeArray[]; datetime TimeArray1[]; datetime TimeArray2[];datetime TimeArray3[]; double RsiAm_rsi4,RsiAm_rsi2; double RsiBm_rsi4,RsiBm_rsi2; double RsiCm_rsi4,RsiCm_rsi2; double RsiDm_rsi4,RsiDm_rsi2; double Ma_WprAm,WprAm; double Ma_WprBm,WprBm; double Ma_WprCm,WprCm; double Ma_WprDm,WprDm; int RSIAL=0,RSIAS=0, RSIBL=0,RSIBS=0, RSICL=0,RSICS=0, RSIDL=0,RSIDS=0 ; int WprAL=0,Ma_WprAS=0, WprBL=0,Ma_WprBS=0, WprCL=0,Ma_WprCS=0, WprDL=0,Ma_WprDS=0 ; int i,limit,counted_bars=IndicatorCounted(); int y=0,y1=0,y2=0,y3=0; ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TFA); ArrayCopySeries(TimeArray1,MODE_TIME,Symbol(),TFB); ArrayCopySeries(TimeArray2,MODE_TIME,Symbol(),TFC); ArrayCopySeries(TimeArray3,MODE_TIME,Symbol(),TFD); limit=Bars-counted_bars; //============================================================================================== SetIndexDrawBegin(0,Bars-CountBars); SetIndexDrawBegin(1,Bars-CountBars); SetIndexDrawBegin(2,Bars-CountBars); SetIndexDrawBegin(3,Bars-CountBars); SetIndexDrawBegin(4,Bars-CountBars); SetIndexDrawBegin(5,Bars-CountBars); SetIndexDrawBegin(6,Bars-CountBars); SetIndexDrawBegin(7,Bars-CountBars); // ------------------ laat laaste 2 kerse repaint(smooth)-------------------------------- // if(counted_bars>0) limit++; else if (limit>100) limit=CountBars; //====================== CHANGE PERIOD =========================================================== switch(Period()) { case 1: WprAL = L_1M; Ma_WprAS = S_1M; WprBL = L_5M; Ma_WprBS = S_5M; WprCL = L_15M; Ma_WprCS = S_15M; WprDL = L_30M; Ma_WprDS = S_30M ; RSIAL = rsiL_1M; RSIAS = rsiS_1M; RSIBL = rsiL_5M; RSIBS = rsiS_5M; RSICL = rsiL_15M; RSICS = rsiS_15M; RSIDL = rsiL_30M; RSIDS = rsiS_30M ;break; case 5: WprAL = L_5M; Ma_WprAS = S_5M; WprBL = L_15M; Ma_WprBS = S_15M; WprCL = L_30M; Ma_WprCS = S_30M; WprDL = L_60M; Ma_WprDS = S_60M ; RSIAL = rsiL_5M; RSIAS = rsiS_5M; RSIBL = rsiL_15M; RSIBS = rsiS_15M; RSICL = rsiL_30M; RSICS = rsiS_30M; RSIDL = rsiL_60M; RSIDS = rsiS_60M ; break; case 15: WprAL = L_15M; Ma_WprAS = S_15M; WprBL = L_30M; Ma_WprBS = S_30M; WprCL = L_60M; Ma_WprCS = S_60M; WprDL = L_60M; Ma_WprDS = S_60M ; RSIAL = rsiL_15M; RSIAS = rsiS_15M; RSIBL = rsiL_30M; RSIBS = rsiS_30M; RSICL = rsiL_60M; RSICS = rsiS_60M; RSIDL = rsiL_60M; RSIDS = rsiS_60M ; break; case 30: WprAL = L_30M; Ma_WprAS = S_30M; WprBL = L_60M; Ma_WprBS = S_60M; WprCL = L_60M; Ma_WprCS = S_60M; WprDL = L_60M; Ma_WprDS = S_60M ; RSIAL = rsiL_30M; RSIAS = rsiS_30M; RSIBL = rsiL_60M; RSIBS = rsiS_60M; RSICL = rsiL_60M; RSICS = rsiS_60M; RSIDL = rsiL_60M; RSIDS = rsiS_60M ;break; case 60: WprAL = L_60M; Ma_WprAS = S_60M; WprBL = L_60M; Ma_WprBS = S_60M; WprCL = L_60M; Ma_WprCS = S_60M; WprDL = L_60M; Ma_WprDS = S_60M ; RSIAL = rsiL_60M; RSIAS = rsiS_60M; RSIBL = rsiL_60M; RSIBS = rsiS_60M; RSICL = rsiL_60M; RSICS = rsiS_60M; RSIDL = rsiL_60M; RSIDS = rsiS_60M ;break; case 240: WprAL = L_60M; Ma_WprAS = S_60M; WprBL = L_60M; Ma_WprBS = S_60M; WprCL = L_60M; Ma_WprCS = S_60M; WprDL = L_60M; Ma_WprDS = S_60M ; RSIAL = rsiL_60M; RSIAS = rsiS_60M; RSIBL = rsiL_60M; RSIBS = rsiS_60M; RSICL = rsiL_60M; RSICS = rsiS_60M; RSIDL = rsiL_60M; RSIDS = rsiS_60M ; break; case 1440: WprAL = L_60M; Ma_WprAS = S_60M; WprBL = L_60M; Ma_WprBS = S_60M; WprCL = L_60M; Ma_WprCS = S_60M; WprDL = L_60M; Ma_WprDS = S_60M ; RSIAL = rsiL_60M; RSIAS = rsiS_60M; RSIBL = rsiL_60M; RSIBS = rsiS_60M; RSICL = rsiL_60M; RSICS = rsiS_60M; RSIDL = rsiL_60M; RSIDS = rsiS_60M ;break; case 10080:WprAL = L_60M; Ma_WprAS = S_60M; WprBL = L_60M; Ma_WprBS = S_60M; WprCL = L_60M; Ma_WprCS = S_60M; WprDL = L_60M; Ma_WprDS = S_60M ; RSIAL = rsiL_60M; RSIAS = rsiS_60M; RSIBL = rsiL_60M; RSIBS = rsiS_60M; RSICL = rsiL_60M; RSICS = rsiS_60M; RSIDL = rsiL_60M; RSIDS = rsiS_60M ; break; case 43200:WprAL = L_60M; Ma_WprAS = S_60M; WprBL = L_60M; Ma_WprBS = S_60M; WprDL = L_60M; Ma_WprDS = S_60M; WprDL = L_60M; Ma_WprDS = S_60M ; RSIAL = rsiL_60M; RSIAS = rsiS_60M; RSIBL = rsiL_60M; RSIBS = rsiS_60M; RSICL = rsiL_60M; RSICS = rsiS_60M; RSIDL = rsiL_60M; RSIDS = rsiS_60M ; break; } //==================================================================================================== for(i=0,y=0;i<limit;i++) { if (Time[i]<TimeArray[y]) y++; if (Time[i]<TimeArray1[y1]) y1++; if (Time[i]<TimeArray2[y2]) y2++; if (Time[i]<TimeArray3[y3]) y3++; //======================= HEADINGE ============================================================= { ObjectCreate("HEAD_ZZZ_SMD", OBJ_LABEL,WindowFind("StandardEntry_STD"), 0, 0); ObjectSetText("HEAD_ZZZ_SMD", "StandardEntry_STD_STF" , 8, "Tahoma Narrow", Gold); ObjectSet("HEAD_ZZZ_SMD", OBJPROP_CORNER, 1); ObjectSet("HEAD_ZZZ_SMD", OBJPROP_XDISTANCE, 20); ObjectSet("HEAD_ZZZ_SMD", OBJPROP_YDISTANCE, 5 ); } //===================== RSI A ======================================================================== Ma_WprAm = iCustom(NULL, TFA,"W%R_MA_LC", WprAL,Ma_WprAS, 1, y ); WprAm = iCustom(NULL, TFA, "W%R_MA_LC",WprAL,Ma_WprBS, 0, y ); if ((WprAm > Ma_WprAm)){ wprAm_up = 1; wprAm_dn = 0; } if ((WprAm < Ma_WprAm)){ wprAm_up = 0; wprAm_dn = 1; } double totalUpA = 0.0; double totalDnA = 0.0; if (( wprAm_up ) == 1) totalUpA = 2 ; if (( wprAm_dn ) == 1) totalDnA = 2 ; ExtMapBuffer1[i] = 0; ExtMapBuffer2[i] = 0; if ( totalUpA == 2 || totalDnA == 2 ){ ExtMapBuffer1[i] = totalUpA; ExtMapBuffer2[i] = totalDnA; } //===================================B MIN============================================ /* Ma_WprBm = iCustom(NULL, TFB,"W%R_MA_LC", WprBL,Ma_WprBS, 1, y1 ); WprBm = iCustom(NULL, TFB,"W%R_MA_LC", WprBL,Ma_WprBS, 0, y1 ) ; if ((WprBm > Ma_WprBm)){ wprBm_up = 1; wprBm_dn = 0; } if ((WprBm < Ma_WprBm)){ wprBm_up = 0; wprBm_dn = 1; } double totalUpB = 0.0; double totalDnB = 0.0; if (( wprBm_up ) == 1) totalUpB = 3 ; if (( wprBm_dn ) == 1) totalDnB = 3 ; ExtMapBuffer3[i] = 0; ExtMapBuffer4[i] = 0; if ( totalUpB == 3 || totalDnB == 3 ){ ExtMapBuffer3[i] = totalUpB; ExtMapBuffer4[i] = totalDnB; }*/ //======================================C MIN========================================== Ma_WprCm = iCustom(NULL, TFC,"W%R_MA_LC", WprCL,Ma_WprCS,1, y2 ) ; WprCm = iCustom(NULL, TFC,"W%R_MA_LC", WprCL,Ma_WprCS,0,y2 ) ; if ((WprCm > Ma_WprCm)){ wprCm_up = 1; wprCm_dn = 0; } if ((WprCm < Ma_WprCm)){ wprCm_up = 0; wprCm_dn = 1; } double totalUpC = 0.0; double totalDnC = 0.0; if (( wprCm_up ) == 1) totalUpC = 1 ; if (( wprCm_dn ) == 1) totalDnC = 1 ; ExtMapBuffer5[i] = 0; ExtMapBuffer6[i] = 0; if ( totalUpC == 1 || totalDnC == 1 ){ ExtMapBuffer5[i] = totalUpC; ExtMapBuffer6[i] = totalDnC; } //======================================RSI M30 C MIN========================================== RsiCm_rsi4 = iRSI(NULL, TFC, RSICL, PRICE_CLOSE, y2 ) ; RsiCm_rsi2 = iRSI(NULL, TFC, RSICS, PRICE_CLOSE, y2 ) ; if ((RsiCm_rsi2 > RsiCm_rsi4)){ rsiCm_up = 1; rsiCm_dn = 0; } if ((RsiCm_rsi2 < RsiCm_rsi4)){ rsiCm_up = 0; rsiCm_dn = 1; } double rsitotalUpC = 0.0; double rsitotalDnC = 0.0; if (( rsiCm_up ) == 1) rsitotalUpC = 3 ; if (( rsiCm_dn ) == 1) rsitotalDnC = 3 ; ExtMapBuffer3[i] = 0; ExtMapBuffer4[i] = 0; if ( rsitotalUpC == 3 || rsitotalDnC == 3 ){ ExtMapBuffer3[i] = rsitotalUpC; ExtMapBuffer4[i] = rsitotalDnC; } //=====================================D MIN=========================================== /* Ma_WprDm = iCustom(NULL, TFD, "W%R_MA_LC",WprDL, Ma_WprDS,1, y3); WprDm = iCustom(NULL, TFD, "W%R_MA_LC", WprDL, Ma_WprDS,0, y3); if ((WprDm > Ma_WprDm)){ wprDm_up = 1; wprDm_dn = 0; } if ((WprDm < Ma_WprDm)){ wprDm_up = 0; wprDm_dn = 1; } double totalUpD = 0.0; double totalDnD = 0.0; if (( wprDm_up ) == 1) totalUpD = 1 ; if (( wprDm_dn ) == 1) totalDnD = 1 ; ExtMapBuffer7[i] = 0; ExtMapBuffer8[i] = 0; if ( totalUpD == 1 || totalDnD == 1 ){ ExtMapBuffer7[i] = totalUpD; ExtMapBuffer8[i] = totalDnD; }*/ //===================================================================================== } return(0); } //================================================================================== ++ void SetValuesA(int pA) { TFA = pA; } void SetStepTFA_Up() { switch (Period() ) { case PERIOD_M1 : SetValuesA(PERIOD_M1); break; case PERIOD_M5 : SetValuesA(PERIOD_M5); break; case PERIOD_M15 : SetValuesA(PERIOD_M15); break; case PERIOD_M30 : SetValuesA(PERIOD_M30); break; case PERIOD_H1 : SetValuesA(PERIOD_H1); break; case PERIOD_H4 : SetValuesA(PERIOD_H4); break; case PERIOD_D1 : SetValuesA(PERIOD_D1); break; case PERIOD_W1 : SetValuesA(PERIOD_W1); break; case PERIOD_MN1 : SetValuesA(PERIOD_MN1); break; } } //==============================step timeframe up TF1==================================== void SetValuesB(int pB) { TFB = pB; } void SetStepTFB_Up() { switch (Period() ) { case PERIOD_M1 : SetValuesB(PERIOD_M5); break; case PERIOD_M5 : SetValuesB(PERIOD_M15); break; case PERIOD_M15 : SetValuesB(PERIOD_M30); break; case PERIOD_M30 : SetValuesB(PERIOD_H1); break; case PERIOD_H1 : SetValuesB(PERIOD_H4); break; case PERIOD_H4 : SetValuesB(PERIOD_D1); break; case PERIOD_D1 : SetValuesB(PERIOD_W1); break; case PERIOD_W1 : SetValuesB(PERIOD_MN1); break; case PERIOD_MN1 : SetValuesB(PERIOD_MN1); break; } } //============================== TF2 =================================================== void SetValuesC(int pC) { TFC = pC; } void SetStepTFC_Up() { switch (Period() ) { case PERIOD_M1 : SetValuesC(PERIOD_M15); break; case PERIOD_M5 : SetValuesC(PERIOD_M30); break; case PERIOD_M15 : SetValuesC(PERIOD_H1); break; case PERIOD_M30 : SetValuesC(PERIOD_H4); break; case PERIOD_H1 : SetValuesC(PERIOD_D1); break; case PERIOD_H4 : SetValuesC(PERIOD_W1); break; case PERIOD_D1 : SetValuesC(PERIOD_MN1); break; case PERIOD_W1 : SetValuesC(PERIOD_MN1); break; case PERIOD_MN1 : SetValuesC(PERIOD_MN1); break; } } //=============================== TF3 ================================================== void SetValuesD(int pD) { TFD = pD; } void SetStepTFD_Up() { switch (Period() ) { case PERIOD_M1 : SetValuesD(PERIOD_M30); break; case PERIOD_M5 : SetValuesD(PERIOD_H1); break; case PERIOD_M15 : SetValuesD(PERIOD_H4); break; case PERIOD_M30 : SetValuesD(PERIOD_D1); break; case PERIOD_H1 : SetValuesD(PERIOD_W1); break; case PERIOD_H4 : SetValuesD(PERIOD_MN1); break; case PERIOD_D1 : SetValuesD(PERIOD_MN1); break; case PERIOD_W1 : SetValuesD(PERIOD_MN1); break; case PERIOD_MN1 : SetValuesD(PERIOD_MN1); break; } } //================================================================================== //==================================================================== void Refresh() { ObjectDelete("HEAD_ZZZ_SMD"); } //------------------------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains open time of each bar
Indicator Curves created:
Implements a curve of type DRAW_ARROW
Indicators Used:
Relative strength index
Custom Indicators Used:
W%R_MA_LC
W%R_MA_LC
Order Management characteristics:
Other Features: