//+------------------------------------------------------------------+ //| R2_Arrows.mq4 | //| Copyright © 2006, transport_david , David W Honeywell | //| hellonwheels.trans@gmail.com | //+------------------------------------------------------------------+ #property copyright "transport_david , David W Honeywell" #property link "hellonwheels.trans@gmail.com" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Coral #property indicator_color2 White #property indicator_color3 FireBrick //---- input parameters extern int Trend_Ma_Periods = 200; extern int RsiLowLev = 35; extern int RsiHiLev = 65; extern int RsiPeriods = 2; extern int Applied_Price = 0; extern int CloseBuyRsiLev = 75; extern int CloseSellRsiLev = 25; //---- buffers double ExtMapBuffer0[]; double ExtMapBuffer1[]; double ExtMapBuffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorBuffers(3); SetIndexEmptyValue(0,0.0); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,234); 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,STYLE_SOLID,1); SetIndexArrow(2,172); SetIndexBuffer(2,ExtMapBuffer2); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- for (int i=Bars-50; i>=0; i--) { double prevtime; if (Time[0]!=prevtime) { RefreshRates(); prevtime=Time[0]; } double Trend_Ma = iMA(Symbol(),PERIOD_D1,Trend_Ma_Periods,0,MODE_SMA,Applied_Price,i); double Day1 = iRSI(Symbol(),PERIOD_D1,RsiPeriods,Applied_Price,i+3); double Day2 = iRSI(Symbol(),PERIOD_D1,RsiPeriods,Applied_Price,i+2); double Day3 = iRSI(Symbol(),PERIOD_D1,RsiPeriods,Applied_Price,i+1); //- Sell Arrows --- if ( (Close[i+1] < Trend_Ma) && (Day1 > RsiHiLev) && (Day2 > Day1) && (Day3 > Day2) ) ExtMapBuffer0[i]=High[i]+(20*Point);//High arrow Sell //- Buy Arrows --- if ( (Close[i+1] > Trend_Ma) && (Day1 < RsiLowLev) && (Day2 < Day1) && (Day3 < Day2) ) ExtMapBuffer1[i]=Low[i]-(20*Point);//Low arrow Buy //- Close Trades Marker --- if ( (Close[i+1] < Trend_Ma) && (Day3 < CloseSellRsiLev) ) ExtMapBuffer2[i]=Low[i]-(50*Point); if ( (Close[i+1] > Trend_Ma) && (Day3 > CloseBuyRsiLev) ) ExtMapBuffer2[i]=High[i]+(50*Point); } //---- return(0); } //+------------------------------------------------------------------+