//+--------------------------------------------------------------------------+ //| 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: