//+------------------------------------------------------------------+
//| ARROW_HERC_RSI_MTF_NR.mq4
//+------------------------------------------------------------------+
#property copyright "AHGduP"
#property link "ARROW_HERC_RSI_MTF_NR"
#property indicator_chart_window
#include <WinUser32.mqh>
#property indicator_buffers 2
#property indicator_color1 Red//Yellow
#property indicator_width1 3//2
#property indicator_color2 Red//Yellow
#property indicator_width2 3//2
//====================================================================================
//extern string RSI_1 = "== TF 5Min RSI ===";
//extern int Tf5_Rsi8_Per = 8 ;
//extern int Tf5_Rsi4_Per = 4 ;
//extern int Tf5_Rsi2_Per = 2 ;
//=======================================================================================
//extern string RSI_2 = "== TF 15Min RSI ===";
//extern int Tf15_Rsi8_Per = 8 ;
//extern int Tf15_Rsi4_Per = 4 ;
//extern int Tf15_Rsi2_Per = 2 ;
//=======================================================================================
extern string RSI_3 = "== TF 30Min RSI ===";
extern int Tf30_Rsi8_Per = 8 ;
extern int Tf30_Rsi4_Per = 4 ;
extern int Tf30_Rsi2_Per = 2 ;
//=======================================================================================
//extern string RSI_4 = "== TF 120Min RSI ===";
//extern int Tf120_Rsi8_Per = 8 ;
//extern int Tf120_Rsi4_Per = 4 ;
//extern int Tf120_Rsi2_Per = 2 ;
//=======================================================================================
extern bool Alarm_On = false ;
extern int LineSize = 2 ;//4
extern int Move_Arrow = 2 ;//5
extern int CountBars = 2000 ;
//double RSI5_up1 , RSI5_dn1 ;
//double RSI5_up2 , RSI5_dn2 ;
//double RSI15_up1 , RSI15_dn1 ;
//double RSI15_up2 , RSI15_dn2 ;
double RSI30_up1 , RSI30_dn1 ;
double RSI30_up2 , RSI30_dn2 ;
//double RSI120_up1 , RSI120_dn1 ;
//double RSI120_up2 , RSI120_dn2 ;
//double RSI15_up3 , RSI15_dn3 ;// hoekom weer die RSI s????
//double RSI60_up3 , RSI60_dn3 ;// ditto
//double RSI240_up3 , RSI240_dn3 ;//ditto
double up1, down1 ;
double bBuffer1[];
double sBuffer1[];
double alertBar;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW,2, LineSize);//(0,DRAW_ARROW,0, LineSize);
SetIndexBuffer(0,bBuffer1);
SetIndexEmptyValue(0,0);
SetIndexArrow(0,181);//116 = Diamond
SetIndexStyle(1,DRAW_ARROW,2, LineSize);
SetIndexBuffer(1,sBuffer1);
SetIndexEmptyValue(1,0);
SetIndexArrow(1,181);//234
up1 = 0 ;
down1 = 0 ;
//=======================================================================================
}
return(0);
//+--------------------------------------------------------------------------------------+
int start()
{
static int last_bar = 0;
if(last_bar==Bars) return (0);
last_bar = Bars;
int limit,y=0,counted_bars=IndicatorCounted();
//=================================================
limit=Bars-counted_bars;
//==================================================
if(counted_bars>0) limit++; else if (limit>100) limit=CountBars;
SetIndexDrawBegin(0,Bars-CountBars);
SetIndexDrawBegin(1,Bars-CountBars);
for(int i=CountBars;i>0;i--)
{
bBuffer1[i] = EMPTY_VALUE;
sBuffer1[i] = EMPTY_VALUE;
//======================== RSI ==================================================================================================
//======================== RSI 5 MIN ============================================================================================
// double RSI5_rsi8 = iCustom(NULL, 0, "RSI-3TF_5M_NR", Tf5_Rsi8_Per, Tf5_Rsi4_Per, Tf5_Rsi2_Per, 0, i);//8
// double RSI5_rsi4 = iCustom(NULL, 0, "RSI-3TF_5M_NR", Tf5_Rsi8_Per, Tf5_Rsi4_Per, Tf5_Rsi2_Per, 1, i);//4
// double RSI5_rsi2 = iCustom(NULL, 0, "RSI-3TF_5M_NR", Tf5_Rsi8_Per, Tf5_Rsi4_Per, Tf5_Rsi2_Per, 2, i);//2
// if ((RSI5_rsi2 > RSI5_rsi4)){ RSI5_up1 = 1; RSI5_dn1 = 0; }
// if ((RSI5_rsi4 > RSI5_rsi8)){ RSI5_up2 = 1; RSI5_dn2 = 0; }
// if ((RSI5_rsi2 < RSI5_rsi4)){ RSI5_up1 = 0; RSI5_dn1 = 1; }
// if ((RSI5_rsi4 < RSI5_rsi8)){ RSI5_up2 = 0; RSI5_dn2 = 1; }
//======================== RSI 15 MIN ==========================================================================================
// double RSI15_rsi8 = iCustom(NULL, 0, "RSI-M15", Tf15_Rsi8_Per, Tf15_Rsi4_Per, Tf15_Rsi2_Per, 0, i);//8 ***********
// double RSI15_rsi4 = iCustom(NULL, 0, "RSI-M15",Tf15_Rsi8_Per, Tf15_Rsi4_Per, Tf15_Rsi2_Per, 1, i);//4 ***********
// double RSI15_rsi2 = iCustom(NULL, 0, "RSI-M15", Tf15_Rsi8_Per, Tf15_Rsi4_Per, Tf15_Rsi2_Per, 2, i);//2 ************
// if ((RSI15_rsi2 > RSI15_rsi4)){ RSI15_up1 = 1; RSI15_dn1 = 0; }
// if ((RSI15_rsi2 < RSI15_rsi4)){ RSI15_up1 = 0; RSI15_dn1 = 1; }
// if ((RSI15_rsi4 > RSI15_rsi8)){ RSI15_up2 = 1; RSI15_dn2 = 0; }//**************
// if ((RSI15_rsi4 < RSI15_rsi8)){ RSI15_up2 = 0; RSI15_dn2 = 1; }
// if ((RSI15_rsi2 > RSI15_rsi8)){ RSI15_up3 = 1; RSI15_dn3 = 0; }
// if ((RSI15_rsi2 < RSI15_rsi8)){ RSI15_up3 = 0; RSI15_dn3 = 1; }
//========================RSI 30 MIN ==================================================================================
// double RSI60_rsi8 = iCustom(NULL, 0, "RSI-H1", Tf60_Rsi8_Per, Tf60_Rsi4_Per, Tf60_Rsi2_Per, 0, i);//**********
double RSI30_rsi4 = iCustom(NULL, 0, "RSI-M30", Tf30_Rsi8_Per, Tf30_Rsi4_Per, Tf30_Rsi2_Per, 1, i);
double RSI30_rsi2 = iCustom(NULL, 0, "RSI-M30", Tf30_Rsi8_Per, Tf30_Rsi4_Per, Tf30_Rsi2_Per, 2, i);
if ((RSI30_rsi2 > RSI30_rsi4)){ RSI30_up1 = 1; RSI30_dn1 = 0; }
if ((RSI30_rsi2 < RSI30_rsi4)){ RSI30_up1 = 0; RSI30_dn1 = 1; }
// if ((RSI60_rsi4 > RSI60_rsi8)){ RSI60_up2 = 1; RSI60_dn2 = 0; }
// if ((RSI60_rsi4 < RSI60_rsi8)){ RSI60_up2 = 0; RSI60_dn2 = 1; }
// if ((RSI60_rsi2 > RSI60_rsi8)){ RSI60_up3 = 1; RSI60_dn3 = 0; }
// if ((RSI60_rsi2 < RSI60_rsi8)){ RSI60_up3 = 0; RSI60_dn3 = 1; }
//========================RSI 240 MIN =================================================================================
// double RSI240_rsi8 = iCustom(NULL, 0, "RSI-H4", Tf240_Rsi8_Per, Tf240_Rsi4_Per, Tf240_Rsi2_Per, 0, i);//8 **************
// double RSI120_rsi4 = iCustom(NULL, 0, "RSI-H2", Tf120_Rsi8_Per, Tf120_Rsi4_Per, Tf120_Rsi2_Per, 1, i);//4
// double RSI120_rsi2 = iCustom(NULL, 0, "RSI-H2", Tf120_Rsi8_Per, Tf120_Rsi4_Per, Tf120_Rsi2_Per, 2, i);//2
// if ((RSI120_rsi2 > RSI120_rsi4)){ RSI120_up1 = 1; RSI120_dn1 = 0; }
// if ((RSI120_rsi2 < RSI120_rsi4)){ RSI120_up1 = 0; RSI120_dn1 = 1; }
// if ((RSI240_rsi4 > RSI240_rsi8)){ RSI240_up2 = 1; RSI240_dn2 = 0; }
// if ((RSI240_rsi4 < RSI240_rsi8)){ RSI240_up2 = 0; RSI240_dn2 = 1; }
// if ((RSI240_rsi2 > RSI240_rsi8)){ RSI240_up3 = 1; RSI240_dn3 = 0; }
// if ((RSI240_rsi2 < RSI240_rsi8)){ RSI240_up3 = 0; RSI240_dn3 = 1; }
//=====================================================================================================================
//========================== ARROWS A 2 cross 4 and 4 cross 8 ==========================================
if ( up1 == 0
// && ( RSI15_up1 + RSI15_up2 ) == 2
// && ( RSI60_up1 + RSI60_up2 ) == 2
// && ( RSI240_up1 + RSI240_up2 ) == 2
// && ( RSI5_up1 ) == 1
// && ( RSI15_up1 ) == 1//up2 VIR 4 KRUIS 8
&& ( RSI30_up1 ) == 1
// && ( RSI120_up1 ) == 1
)
{ bBuffer1[i] = Low[i]- Move_Arrow*Point;
if ( Alarm_On && Bars>alertBar)
{ // Alert(Symbol() + " M("+Period()+") - VM BUY");
PlaySound("alert2.wav");alertBar = Bars;
}
up1 = 1; down1 = 0;
}
//-------------------------------------------------------------------------------------------------
if ( down1 ==0
// && ( RSI15_dn1 + RSI15_dn2 ) == 2
// && ( RSI60_dn1 + RSI60_dn2 ) == 2
// && ( RSI240_dn1 + RSI240_dn2 ) == 2
// && ( RSI5_dn1 ) == 1
// && ( RSI15_dn1 ) == 1// dn2 VIR 4 KRUIS 8
&& ( RSI30_dn1 ) == 1
// && ( RSI120_dn1 ) == 1
)
{ sBuffer1[i] = High[i]+ Move_Arrow*Point;
if ( Alarm_On && Bars>alertBar)
{ // Alert(Symbol() + " M("+Period()+") - VM SELL");
PlaySound("alert2.wav");alertBar = Bars;
}
down1 = 1; up1 = 0;
}
//===========cancel signal and re enter in same direction=========================================
if ( up1 == 1
// && ( RSI15_up1 + RSI15_up2 ) != 2
// && ( RSI60_up1 + RSI60_up2 ) != 2
// && ( RSI240_up1 + RSI240_up2 ) != 2
// && ( RSI5_up1 ) != 1
// && ( RSI15_up1 ) != 1 ************ weet nie wat om hier te doen nie ******
&& ( RSI30_up1 ) != 1
// && ( RSI120_up1 ) != 1 //dalk hier weer aansit????????????
)
{ up1 = 0; down1 = 0;
}
//-----------------------------------------------------------------------------------------------
if ( down1 == 1
// && ( RSI15_dn1 + RSI15_dn2 ) != 2
// && ( RSI60_dn1 + RSI60_dn2 ) != 2
// && ( RSI240_dn1 + RSI240_dn2 ) != 2
// && ( RSI5_dn1 ) != 1
// && ( RSI15_dn1 ) != 1 ******************** weet nie - vra Gerhard
&& ( RSI30_dn1 ) != 1
// && ( RSI120_dn1 ) != 1
)
{ up1 = 0; down1 = 0;
}
//================================================================================================
}
return(0);
}
//============================================================================================= ++
Comments