//+----------------------------------------------------------------+ //| RoNz Higher Timeframe High and Low.mq4 v1.0 (15.01.25) by RoNz | //+----------------------------------------------------------------+ #property copyright "2015, Rony Nofrianto, Indonesia." #property link "https://www.mql5.com/en/users/ronz" #property description "Show High and Low for Selected Timeframe" #property version "1.0" #property strict #property indicator_chart_window const string FontType="Arial"; const int FontSize=8; const string Days[7]={"SUN","MON","TUE","WED","THU","FRI","SAT"}; enum EN_STD_TIMEFRAMES { M1=1,M5=5,M15=15,M30=30,H1=60,H4=240,D1=PERIOD_D1,W1=PERIOD_W1,MN1=PERIOD_MN1 }; //---- Indicator Buffers double ExtUpperStopBuffer[],ExtLowerStopBuffer[]; //---- Indicator Inputs extern EN_STD_TIMEFRAMES inpHigherPeriod=PERIOD_W1;//Higher Timeframe extern bool inpUseAutoShift=false;//Use Auto Shift int inpStopPointShift=0;//Shift //---- string MyShortName="RoNz Timeframe High and Low"; #property indicator_buffers 2 #property indicator_label1 "Upper Period High Price" #property indicator_color1 clrBlue #property indicator_type1 DRAW_LINE #property indicator_style1 STYLE_DOT #property indicator_label2 "Upper Period Low Price" #property indicator_color2 clrRed #property indicator_type2 DRAW_LINE #property indicator_style2 STYLE_DOT //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { MyShortName=MyShortName; if (inpUseAutoShift) inpStopPointShift=inpHigherPeriod/Period(); else inpStopPointShift=0; ChartSetInteger(0,CHART_SHIFT,true); ChartSetInteger(0,CHART_SHOW_ASK_LINE,true); ChartSetInteger(0,CHART_SHOW_PERIOD_SEP,true); //ObjectsDeleteAll(WindowFind(MyShortName)); //---- IndicatorShortName(MyShortName); IndicatorDigits(Digits()); IndicatorBuffers(2); SetIndexBuffer(0,ExtUpperStopBuffer); SetIndexLabel(0,"Upper Period High Price"); SetIndexShift(0,inpStopPointShift); SetIndexDrawBegin(0,inpStopPointShift); // Upper Stop Point SetIndexBuffer(1,ExtLowerStopBuffer); SetIndexLabel(1,"Upper Period Low Price"); SetIndexShift(1,inpStopPointShift); SetIndexDrawBegin(1,inpStopPointShift); // Lower Stop Point //---- Invisible Value for(int i=0; i<2; i++) SetIndexEmptyValue(i,0); //--- initialization done return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { if(IsTesting()) return; EventKillTimer(); return; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //---- Return if no data was calculated before if(prev_calculated<0) return(-1); int limit; //---- Calculating Entry Sign and Stop Point Indicator if(prev_calculated==0) { limit=rates_total; } else { limit=rates_total;//-(prev_calculated-1); } //---- Calculating entry, Stop Point, and Support/Resistance indicator for(int i=0; i