//+------------------------------------------------------------------+ //| #SFTH-Daily Range Calculator.mq4 | //| Copyright © 2011, P. Kubitzki | //| http://www.SecretsFromTheHeart.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, P. Kubitzki" #property link "http://www.SecretsFromTheHeart.com" #property link "admin@SecretsFromTheHeart.com" #property indicator_separate_window //---- input parameters int nDigits; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { IndicatorShortName("SFTH-ADR"); if(Symbol()=="GBPJPY" || Symbol()=="EURJPY" || Symbol()=="USDJPY" || Symbol()=="GOLD" || Symbol()=="USDMXN") nDigits = 2; if(Symbol()=="GBPUSD" || Symbol()=="EURUSD" || Symbol()=="NZDUSD" || Symbol()=="USDCHF" || Symbol()=="USDCAD" || Symbol()=="AUDUSD" || Symbol()=="EURUSD" || Symbol()=="EURCHF" || Symbol()=="EURGBP" || Symbol()=="EURCAD" || Symbol()=="EURAUD" || Symbol()=="AUDNZD")nDigits = 4; return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- int RangeCurrent=0,Range1=0,Range5=0,Range10=0,Range20=0,RangeAvg=0; int UpMove=0,DownMove=0; double low0=0,high0=0; int i=0; RangeCurrent = (iHigh(NULL,PERIOD_D1,0)-iLow(NULL,PERIOD_D1,0))/Point/10; Range1 = (iHigh(NULL,PERIOD_D1,1)-iLow(NULL,PERIOD_D1,1))/Point/10; for(i=1;i<=5;i++) Range5 = Range5 + (iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i))/Point/10; for(i=1;i<=10;i++) Range10 = Range10 + (iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i))/Point/10; for(i=1;i<=20;i++) Range20 = Range20 + (iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i))/Point/10; Range5 = Range5/5; Range10 = Range10/10; Range20 = Range20/20; RangeAvg = (RangeCurrent+Range1+Range5+Range10+Range20)/5; low0 = iLow(NULL,PERIOD_D1,0); high0 = iHigh(NULL,PERIOD_D1,0); UpMove = (Bid - low0)/Point/10; DownMove = (high0 - Bid)/Point/10; string P=Period(); ObjectCreate("SFTH-ADR", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR",StringSubstr(Symbol(),0),12, "Arial Bold", Aqua); ObjectSet("SFTH-ADR", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR", OBJPROP_XDISTANCE, 75); ObjectSet("SFTH-ADR", OBJPROP_YDISTANCE, 2); ObjectCreate("SFTH-ADR2", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR2","Current Daily Range:", 10, "Arial Bold", Aqua); ObjectSet("SFTH-ADR2", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR2", OBJPROP_XDISTANCE, 200); ObjectSet("SFTH-ADR2", OBJPROP_YDISTANCE, 2); ObjectCreate("SFTH-ADR3", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR3",DoubleToStr(RangeCurrent ,0),12, "Arial Bold", Gold); ObjectSet("SFTH-ADR3", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR3", OBJPROP_XDISTANCE, 350); ObjectSet("SFTH-ADR3", OBJPROP_YDISTANCE, 2); ObjectCreate("SFTH-ADR4", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR4","Prev 01 Day Range:", 10, "Arial ", LightSteelBlue); ObjectSet("SFTH-ADR4", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR4", OBJPROP_XDISTANCE, 25); ObjectSet("SFTH-ADR4", OBJPROP_YDISTANCE, 20); ObjectCreate("SFTH-ADR5", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR5",DoubleToStr(Range1,0),12, "Arial Bold", Orange); ObjectSet("SFTH-ADR5", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR5", OBJPROP_XDISTANCE, 160); ObjectSet("SFTH-ADR5", OBJPROP_YDISTANCE, 20); ObjectCreate("SFTH-ADR6", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR6","Prev 05 Days Range:", 10, "Arial ", LightSteelBlue); ObjectSet("SFTH-ADR6", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR6", OBJPROP_XDISTANCE, 25); ObjectSet("SFTH-ADR6", OBJPROP_YDISTANCE, 35); ObjectCreate("SFTH-ADR7", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR7",DoubleToStr(Range5,0),12, "Arial Bold", Orange); ObjectSet("SFTH-ADR7", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR7", OBJPROP_XDISTANCE, 160); ObjectSet("SFTH-ADR7", OBJPROP_YDISTANCE, 35); ObjectCreate("SFTH-ADR8", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR8","Prev 10 Days Range:", 10, "Arial ", LightSteelBlue); ObjectSet("SFTH-ADR8", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR8", OBJPROP_XDISTANCE, 220); ObjectSet("SFTH-ADR8", OBJPROP_YDISTANCE, 20); ObjectCreate("SFTH-ADR9", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR9",DoubleToStr(Range10,0),12, "Arial Bold", Orange); ObjectSet("SFTH-ADR9", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR9", OBJPROP_XDISTANCE, 355); ObjectSet("SFTH-ADR9", OBJPROP_YDISTANCE, 20); ObjectCreate("SFTH-ADR10", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR10","Prev 20 Days Range:", 10, "Arial ", LightSteelBlue); ObjectSet("SFTH-ADR10", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR10", OBJPROP_XDISTANCE, 220); ObjectSet("SFTH-ADR10", OBJPROP_YDISTANCE, 35); ObjectCreate("SFTH-ADR11", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR11",DoubleToStr(Range20,0),12, "Arial Bold", Orange); ObjectSet("SFTH-ADR11", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR11", OBJPROP_XDISTANCE, 355); ObjectSet("SFTH-ADR11", OBJPROP_YDISTANCE, 35); ObjectCreate("SFTH-ADR12", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR12","Overall Average Daily Range:", 10, "Arial", LightSteelBlue); ObjectSet("SFTH-ADR12", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR12", OBJPROP_XDISTANCE, 85); ObjectSet("SFTH-ADR12", OBJPROP_YDISTANCE, 50); ObjectCreate("SFTH-ADR13", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR13",DoubleToStr(RangeAvg ,0),12, "Arial Bold", Orange); ObjectSet("SFTH-ADR13", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR13", OBJPROP_XDISTANCE, 260); ObjectSet("SFTH-ADR13", OBJPROP_YDISTANCE, 50); ObjectCreate("SFTH-ADR14", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR14","Up Move:", 10, "Arial ", LawnGreen); ObjectSet("SFTH-ADR14", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR14", OBJPROP_XDISTANCE, 410); ObjectSet("SFTH-ADR14", OBJPROP_YDISTANCE, 20); ObjectCreate("SFTH-ADR15", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR15",DoubleToStr(UpMove,0),12, "Arial Bold", LawnGreen); ObjectSet("SFTH-ADR15", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR15", OBJPROP_XDISTANCE, 488); ObjectSet("SFTH-ADR15", OBJPROP_YDISTANCE, 20); ObjectCreate("SFTH-ADR16", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR16","Down Move:", 10, "Arial ", Crimson); ObjectSet("SFTH-ADR16", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR16", OBJPROP_XDISTANCE, 410); ObjectSet("SFTH-ADR16", OBJPROP_YDISTANCE, 35); ObjectCreate("SFTH-ADR17", OBJ_LABEL, WindowFind("SFTH-ADR"), 0, 0); ObjectSetText("SFTH-ADR17",DoubleToStr(DownMove,0),12, "Arial Bold", Crimson); ObjectSet("SFTH-ADR17", OBJPROP_CORNER, 0); ObjectSet("SFTH-ADR17", OBJPROP_XDISTANCE, 488); ObjectSet("SFTH-ADR17", OBJPROP_YDISTANCE, 35); return(0); } //+------------------------------------------------------------------+