//+------------------------------------------------------------------+ //| #(T_S_R)-Daily Range Calculator .mq4 | //+------------------------------------------------------------------+ #property link "Data window & extra Periods by cja" //+------------------------------------------------------------------+ //| TSR_Ranges.mq4 | //| Copyright © 2006, Ogeima | //| ph_bresson@yahoo.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Ogeima" #property link "ph_bresson@yahoo.com" #property indicator_separate_window //---- input parameters extern int TimeFrame = 0; extern double Risk_to_Reward_ratio = 3.0; extern int First_av = 5; extern int Second_av = 10; extern int Third_av = 20; double myPoint; string TF,TF1; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ double SetPoint() { double mPoint; if (Digits < 4) mPoint = 0.01; else mPoint = 0.0001; return(mPoint); } int CreateTSRcomments( string tsr, int y, int x ) { ObjectCreate( tsr, OBJ_LABEL, WindowFind("TSR"+TimeFrame), 0, 0 ); ObjectSet( tsr, OBJPROP_CORNER, 0 ); ObjectSet( tsr, OBJPROP_XDISTANCE,x ); ObjectSet( tsr, OBJPROP_YDISTANCE,y); } int init() { IndicatorShortName("TSR"+TimeFrame); myPoint = SetPoint(); switch(TimeFrame) { case 1: TF="M1"; break; case 5: TF="M5"; break; case 15: TF="M15"; break; case 30: TF="M30"; break; case 60: TF="H1"; break; case 240: TF="H4"; break; case 1440: TF="D1"; break; case 10080: TF="W1"; break; case 43200: TF="MN1"; break; default: {TimeFrame = Period(); init(); return(0);} } switch(TimeFrame) { case 1: TF1="1Mins"; break; case 5: TF1="5Mins"; break; case 15: TF1="15Mins"; break; case 30: TF1="30Mins"; break; case 60: TF1="1Hourly"; break; case 240: TF1="4Hourly"; break; case 1440: TF1="Daily "; break; case 10080: TF1="Weekly"; break; case 43200: TF1="Monthly"; break; default: {TimeFrame = Period(); init(); return(0);} } return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- DeleteLabels(); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- int R1=0,R5=0,R10=0,R20=0,RAvg=0; int RoomUp=0,RoomDown=0,StopLoss_Long=0,StopLoss_Short=0; double SL_Long=0,SL_Short=0; double low0=0,high0=0; string Text=""; int i=0; R1 = (iHigh(NULL,TimeFrame,1)-iLow(NULL,TimeFrame,1))/myPoint; for(i=1;i<=First_av;i++) R5 = R5 + (iHigh(NULL,TimeFrame,i)-iLow(NULL,TimeFrame,i))/myPoint; for(i=1;i<=Second_av;i++) R10 = R10 + (iHigh(NULL,TimeFrame,i)-iLow(NULL,TimeFrame,i))/myPoint; for(i=1;i<=Third_av;i++) R20 = R20 + (iHigh(NULL,TimeFrame,i)-iLow(NULL,TimeFrame,i))/myPoint; R5 = R5/First_av; R10 = R10/Second_av; R20 = R20/Third_av; RAvg = (R1+R5+R10+R20)/4; //RAvg = (R5+R10+R20)/3;new setting low0 = iLow(NULL,TimeFrame,0); high0 = iHigh(NULL,TimeFrame,0); RoomUp = RAvg - (Bid - low0)/myPoint; RoomDown = RAvg - (high0 - Bid)/myPoint; StopLoss_Long = RoomUp/Risk_to_Reward_ratio; SL_Long = Bid - StopLoss_Long*myPoint; StopLoss_Short = RoomDown/Risk_to_Reward_ratio; SL_Short = Bid + StopLoss_Short*myPoint; string P=Period(); CreateTSRcomments("TSR0"+TimeFrame,2,25); ObjectSetText("TSR0"+TimeFrame,StringSubstr(Symbol(),0),12, "Arial Bold", CadetBlue); CreateTSRcomments("TSR1"+TimeFrame,2,100); ObjectSetText("TSR1"+TimeFrame,StringSubstr(TF,0),12, "Arial Bold", CadetBlue); CreateTSRcomments("TSR2"+TimeFrame,2,140); ObjectSetText("TSR2"+TimeFrame,"Average "+TF1+" Range:", 10, "Arial Bold", CadetBlue); CreateTSRcomments("TSR3"+TimeFrame,2,300); ObjectSetText("TSR3"+TimeFrame,DoubleToStr(RAvg ,0),12, "Arial Bold", Orange); CreateTSRcomments("TSR4"+TimeFrame,20,25); ObjectSetText("TSR4"+TimeFrame,"Prev 1 x "+TF+" Range:", 10, "Arial ", LightSteelBlue); CreateTSRcomments("TSR5"+TimeFrame,20,170); ObjectSetText("TSR5"+TimeFrame,DoubleToStr(R1,0),12, "Arial Bold", Orange); CreateTSRcomments("TSR6"+TimeFrame,35,25); ObjectSetText("TSR6"+TimeFrame,"Prev "+First_av+" x "+TF+" Range:", 10, "Arial ", LightSteelBlue); CreateTSRcomments("TSR7"+TimeFrame,35,170); ObjectSetText("TSR7"+TimeFrame,DoubleToStr(R5,0),12, "Arial Bold", Orange); CreateTSRcomments("TSR8"+TimeFrame,20,220); ObjectSetText("TSR8"+TimeFrame,"Prev "+Second_av+" x "+TF+" Range:", 10, "Arial ", LightSteelBlue); CreateTSRcomments("TSR9"+TimeFrame,20,365); ObjectSetText("TSR9"+TimeFrame,DoubleToStr(R10,0),12, "Arial Bold", Orange); CreateTSRcomments("TSR10"+TimeFrame,35,220); ObjectSetText("TSR10"+TimeFrame,"Prev "+Third_av+" x "+TF+" Range:", 10, "Arial ", LightSteelBlue); CreateTSRcomments("TSR11"+TimeFrame,35,365); ObjectSetText("TSR11"+TimeFrame,DoubleToStr(R20,0),12, "Arial Bold", Orange); CreateTSRcomments("TSR12"+TimeFrame,20,420); ObjectSetText("TSR12"+TimeFrame,"Room UP:", 10, "Arial ", LightSteelBlue); CreateTSRcomments("TSR13"+TimeFrame,20,490); ObjectSetText("TSR13"+TimeFrame,DoubleToStr(RoomUp,0),12, "Arial Bold", Orange); CreateTSRcomments("TSR14"+TimeFrame,35,420); ObjectSetText("TSR14"+TimeFrame,"Room DN:", 10, "Arial ", LightSteelBlue); CreateTSRcomments("TSR15"+TimeFrame,35,490); ObjectSetText("TSR15"+TimeFrame,DoubleToStr(RoomDown,0),12, "Arial Bold", Orange); CreateTSRcomments("TSR16"+TimeFrame,2,560); ObjectSetText("TSR16"+TimeFrame,"Maximum StopLosses;",10, "Arial Bold", CadetBlue); CreateTSRcomments("TSR17"+TimeFrame,20,560); ObjectSetText("TSR17"+TimeFrame,"Long: Pips at", 10, "Arial ", LightSteelBlue); CreateTSRcomments("TSR18"+TimeFrame,17,600); ObjectSetText("TSR18"+TimeFrame,DoubleToStr(StopLoss_Long,0),14, "Arial Bold", LimeGreen); CreateTSRcomments("TSR19"+TimeFrame,35,560); ObjectSetText("TSR19"+TimeFrame,"Short: Pips at", 10, "Arial ", LightSteelBlue); CreateTSRcomments("TSR20"+TimeFrame,32,600); ObjectSetText("TSR20"+TimeFrame,DoubleToStr(StopLoss_Short,0),14, "Arial Bold", Red); CreateTSRcomments("TSR21"+TimeFrame,20,690); ObjectSetText("TSR21"+TimeFrame,DoubleToStr(SL_Long,Digits),12, "Arial Bold", LimeGreen); CreateTSRcomments("TSR22"+TimeFrame,35,690); ObjectSetText("TSR22"+TimeFrame,DoubleToStr(SL_Short,Digits),12, "Arial Bold",Red); CreateTSRcomments("TSR23"+TimeFrame,2,350); ObjectSetText("TSR23"+TimeFrame,"Risk to Reward Ratio:", 10, "Arial Bold", CadetBlue); CreateTSRcomments("TSR24"+TimeFrame,2,500); ObjectSetText("TSR24"+TimeFrame,DoubleToStr( Risk_to_Reward_ratio ,0),12, "Arial Bold", Orange); double HIDaily = iMA(Symbol(),TimeFrame,1,0,MODE_HIGH,PRICE_HIGH,0); double LOWDaily = iMA(Symbol(),TimeFrame,1,0,MODE_LOW,PRICE_LOW,0); CreateTSRcomments("TSR25"+TimeFrame,20,910); ObjectSetText("TSR25"+TimeFrame,DoubleToStr(HIDaily,Digits), 12, "Arial Bold", LimeGreen); CreateTSRcomments("TSR26"+TimeFrame,2,900); ObjectSetText("TSR26"+TimeFrame,""+TF1+"High", 9, "Arial Bold", CadetBlue); CreateTSRcomments("TSR27"+TimeFrame,20,830); ObjectSetText("TSR27"+TimeFrame,DoubleToStr(LOWDaily,Digits), 12, "Arial Bold", Red); CreateTSRcomments("TSR28"+TimeFrame,2,820); ObjectSetText("TSR28"+TimeFrame,""+TF1+"Low", 9, "Arial Bold", CadetBlue); double CURR = iMA(Symbol(),1,1,0,MODE_EMA,PRICE_CLOSE,0); CreateTSRcomments("TSR29"+TimeFrame,35,910); ObjectSetText("TSR29"+TimeFrame,DoubleToStr(CURR,Digits), 12, "Arial Bold", Coral); CreateTSRcomments("TSR30"+TimeFrame,35,830); ObjectSetText("TSR30"+TimeFrame,DoubleToStr(CURR,Digits), 12, "Arial Bold", Coral); CreateTSRcomments("TSR31"+TimeFrame,20,770); ObjectSetText("TSR31"+TimeFrame,"Curr / "+TF+"", 9, "Arial ", LightSteelBlue); CreateTSRcomments("TSR32"+TimeFrame,37,790); ObjectSetText("TSR32"+TimeFrame,"Price", 9, "Arial ", LightSteelBlue); return(0); } void DeleteLabels(){ ObjectDelete("TSR0"+TimeFrame); ObjectDelete("TSR1"+TimeFrame); ObjectDelete("TSR2"+TimeFrame); ObjectDelete("TSR3"+TimeFrame); ObjectDelete("TSR4"+TimeFrame); ObjectDelete("TSR5"+TimeFrame); ObjectDelete("TSR6"+TimeFrame); ObjectDelete("TSR7"+TimeFrame); ObjectDelete("TSR8"+TimeFrame); ObjectDelete("TSR9"+TimeFrame); ObjectDelete("TSR10"+TimeFrame); ObjectDelete("TSR11"+TimeFrame); ObjectDelete("TSR12"+TimeFrame); ObjectDelete("TSR13"+TimeFrame); ObjectDelete("TSR14"+TimeFrame); ObjectDelete("TSR15"+TimeFrame); ObjectDelete("TSR16"+TimeFrame); ObjectDelete("TSR17"+TimeFrame); ObjectDelete("TSR18"+TimeFrame); ObjectDelete("TSR19"+TimeFrame); ObjectDelete("TSR20"+TimeFrame); ObjectDelete("TSR21"+TimeFrame); ObjectDelete("TSR22"+TimeFrame); ObjectDelete("TSR23"+TimeFrame); ObjectDelete("TSR24"+TimeFrame); ObjectDelete("TSR25"+TimeFrame); ObjectDelete("TSR26"+TimeFrame); ObjectDelete("TSR27"+TimeFrame); ObjectDelete("TSR28"+TimeFrame); ObjectDelete("TSR29"+TimeFrame); ObjectDelete("TSR30"+TimeFrame); ObjectDelete("TSR31"+TimeFrame); } //+------------------------------------------------------------------+