R2_Arrows_v3





//+--------------------------------------------------------------------------+
//|                                                         R2_Arrows_v3.mq4 |
//|    Copyright © 2007 , NOT FOR SALE , transport_david , David W Honeywell |
//| http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//+--------------------------------------------------------------------------+

#property copyright "Copyright © 2007 , NOT FOR SALE , transport_david , David W Honeywell"
#property link      "http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"

//+-------------------------------------------------------------------------------------------------+
//| http://www.tradingmarkets.com/.site/stocks/commentary/editorial/The-Improved-R2-Strategy.cfm    |
//| introduced to http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/          |
//| by Peter , blackprinzze , blackprinzze@yahoo.com                                                |
//| for a complimentary build in .mq4                                                               |
//| I have included the option to check Day 3 Rsi Levels .                                          |
//+-------------------------------------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 DodgerBlue
#property indicator_color2 White
#property indicator_color3 Coral
#property indicator_color4 SlateGray

//|+---------------------------------------------------+
//---- input parameters

extern string Ma                  = "---------------";

extern int    Ma_Periods          = 200;
extern int    Ma_Applied_Price    =   0;

//|+---------------------------------------------------+
extern string Rsi                 = "---------------";

extern int    RsiPeriods          =   2;
extern int    Rsi_Applied_Price   =   0;

//|+---------------------------------------------------+
extern string Buy_Rsi_Levels      = "---------------";

extern int    Day_1_Rsi_Below     =  65;
extern int    Day_3_Rsi_Below     = 100;

//|+---------------------------------------------------+
extern string Sell_Rsi_Levels     = "---------------";

extern int    Day_1_Rsi_Above     =  35;
extern int    Day_3_Rsi_Above     =   0;

//|+---------------------------------------------------+
extern string Close_Rsi           = "---------------";

extern int    CloseBuyIfRsiAbove  =  75;
extern int    CloseSellIfRsiBelow =  25;

//|+---------------------------------------------------+
//---- buffers

double ExtMapBuffer0[];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+

int init()
  {
//---- indicators
   
   IndicatorBuffers(4);
   
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer0);
   
   SetIndexEmptyValue(1,0.0);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,233);
   SetIndexBuffer(1,ExtMapBuffer1);
   
   SetIndexEmptyValue(2,0.0);
   SetIndexStyle(2,DRAW_ARROW);
   SetIndexArrow(2,234);
   SetIndexBuffer(2,ExtMapBuffer2);
   
   SetIndexEmptyValue(3,0.0);
   SetIndexStyle(3,DRAW_ARROW);
   SetIndexArrow(3,172);
   SetIndexBuffer(3,ExtMapBuffer3);
   
   IndicatorShortName("R2_Arrows_v3");
   
//----
   return(0);
  }

//+------------------------------------------------------------------+ 
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+

int deinit()
  {
//---- 
   
//----
   return(0);
  } 

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+ 

int start()
  {
   
//---- 
   for (int i=Bars; i>=0; i--)
      {
      
      //|+---------------------------------------------------+
      double prevtime;
      if (prevtime != Time[0]) { RefreshRates(); prevtime=Time[0]; } 
      
      //|+---------------------------------------------------+
      double Trend_Ma = iMA(Symbol(),0,Ma_Periods,0,MODE_SMA,Ma_Applied_Price,i+1);
      
      ExtMapBuffer0[i]=Trend_Ma;
      
      //|+---------------------------------------------------+
      double Day1 = iRSI(Symbol(),0,RsiPeriods,Rsi_Applied_Price,i+3);
      double Day2 = iRSI(Symbol(),0,RsiPeriods,Rsi_Applied_Price,i+2);
      double Day3 = iRSI(Symbol(),0,RsiPeriods,Rsi_Applied_Price,i+1);
      
      //|+---------------------------------------------------+
      //- Buy Arrows ---
      if ( (Close[i+1] > Trend_Ma) && (Day1 < Day_1_Rsi_Below) && (Day2 < Day1) && (Day3 < Day2) && (Day3 < Day_3_Rsi_Below) )
         ExtMapBuffer1[i]=Low[i]-(20*Point);//Low arrow Buy 
      
      //|+---------------------------------------------------+
      //- Sell Arrows ---
      if ( (Close[i+1] < Trend_Ma) && (Day1 > Day_1_Rsi_Above) && (Day2 > Day1) && (Day3 > Day2) && (Day3 > Day_3_Rsi_Above) )
         ExtMapBuffer2[i]=High[i]+(20*Point);//High arrow Sell
      
      //|+---------------------------------------------------+
      //- Close Trades Marker ---
      if ( (Close[i+1] < Trend_Ma) && (Day3 < CloseSellIfRsiBelow) )
         ExtMapBuffer3[i]=Low[i]-(50*Point);
      
      if ( (Close[i+1] > Trend_Ma) && (Day3 > CloseBuyIfRsiAbove) )
         ExtMapBuffer3[i]=High[i]+(50*Point);
      
      }
     
//----
   return(0);
  }
//+------------------------------------------------------------------+





Sample





Analysis



Market Information Used:

Series array that contains open time of each bar
Series array that contains close prices for each bar
Series array that contains the lowest prices of each bar
Series array that contains the highest prices of each bar


Indicator Curves created:

Implements a curve of type DRAW_LINE

Implements a curve of type DRAW_ARROW

Indicators Used:

Moving average indicator
Relative strength index


Custom Indicators Used:

Order Management characteristics:

Other Features: