Post on 28-Dec-2015
description
transcript
Average Daily Range - Custom MT4 Indicator
This helpful indicator will show you the average daily range in pips for a currency pair and much more! This is similar to the Weekly and Monthly Range calculator. The information provided in this indicator can help in evaluating what position to place and where to put your stop loss at for maximum effectiveness.
Features
Previous 1 day range (the number of previous days can be changed in settings) Previous 5 day range
Previous 10 day range
Previous 20 day range
Room Up - How many pips the market could move up based on daily trading range and current market price
Room Down - how many pips the market could move down based on daily trading range and current market price
Daily High - the high price for the day
Daily Low - the low price for the day
And it has a maximum stop loss level suggestion based on direction of price and what position placed.
To incorporate this indicator into your trading platform, I have provided the code below:
For those that need instructions:1.Open up MetaEditor through the MT4 terminal2.Click on "File" ---> New3.Choose Customer Indicator4. Click "Next"5. Put in desired indicator name6. Click "Next"7. Check box that says "Indicator in Seperate Window"8. Click "Finish"9. Delete the generic code 10.Copy the code below11. Paste the code12. Compile it to make sure it has not errors/warning 13. Should be zero errors/warning 14. Save15. Restart MT4 terminal ---> You should now have your new indicator under the custom indicator heading and able to attach it to any chart.
Code
#property indicator_separate_window//---- input parametersextern double Risk_to_Reward_ratio = 3.0;extern int First_av = 5;extern int Second_av = 10;extern int Third_av = 20;int nDigits;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init(){IndicatorShortName("TSR");if(Symbol()=="GBPJPY" || Symbol()=="EURJPY" || Symbol()=="USDJPY" || Symbol()=="CHFJPY" || Symbol()=="AUDJPY") nDigits = 2;if(Symbol()=="GBPUSD" || Symbol()=="EURUSD" || Symbol()=="NZDUSD" || Symbol()=="USDCHF" ||Symbol()=="USDCAD" || Symbol()=="AUDUSD" || Symbol()=="AUDCAD" || Symbol()=="EURCHF" || Symbol()=="EURGBP"|| Symbol()=="EURCAD" || Symbol()=="EURAUD" ||Symbol()=="AUDNZD"|| Symbol()=="GBPCHF" )nDigits = 4;
return(0);}//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit(){//----// Comment(""); //----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,PERIOD_D1,1)-iLow(NULL,PERIOD_D1,1))/Point;for(i=1;i<=First_av;i++)R5 = R5 + (iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i))/Point;for(i=1;i<=Second_av;i++)R10 = R10 + (iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i))/Point;for(i=1;i<=Third_av;i++)R20 = R20 + (iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i))/Point;
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,PERIOD_D1,0);high0 = iHigh(NULL,PERIOD_D1,0);RoomUp = RAvg - (Bid - low0)/Point;RoomDown = RAvg - (high0 - Bid)/Point;StopLoss_Long = RoomUp/Risk_to_Reward_ratio;SL_Long = Bid - StopLoss_Long*Point;StopLoss_Short = RoomDown/Risk_to_Reward_ratio;
SL_Short = Bid + StopLoss_Short*Point;
Text = "Average Day Range: " + RAvg + "\n" + "Prev 01 Day Range: " + R1 + "\n" + "Prev 05 Days Range: " + R5 + "\n" + "Prev 10 Days Range: " + R10 + "\n" +"Prev 20 Days Range: " + R20 + "\n";Text = Text +"Room Up: " + RoomUp + "\n" +"Room Down: " + RoomDown + "\n" +"Maximum StopLosses :" + "\n" +"Long: " + StopLoss_Long + " Pips at " + DoubleToStr(SL_Long,nDigits) + "\n" +"Short: " + StopLoss_Short + " Pips at " + DoubleToStr(SL_Short,nDigits) + "\n" ;
//Comment(Text);
string P=Period();
ObjectCreate("TSR", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR",StringSubstr(Symbol(),0),12, "Arial Bold", CadetBlue);ObjectSet("TSR", OBJPROP_CORNER, 0);ObjectSet("TSR", OBJPROP_XDISTANCE, 25);ObjectSet("TSR", OBJPROP_YDISTANCE, 2);ObjectCreate("TSR1", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR1",StringSubstr(P,0),12, "Arial Bold", CadetBlue);ObjectSet("TSR1", OBJPROP_CORNER, 0);ObjectSet("TSR1", OBJPROP_XDISTANCE, 100);ObjectSet("TSR1", OBJPROP_YDISTANCE, 2);
ObjectCreate("TSR2", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR2","Average Daily Range:", 10, "Arial Bold", CadetBlue);ObjectSet("TSR2", OBJPROP_CORNER, 0);ObjectSet("TSR2", OBJPROP_XDISTANCE, 150);ObjectSet("TSR2", OBJPROP_YDISTANCE, 2);ObjectCreate("TSR3", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR3",DoubleToStr(RAvg ,0),12, "Arial Bold", Orange);ObjectSet("TSR3", OBJPROP_CORNER, 0);ObjectSet("TSR3", OBJPROP_XDISTANCE, 300);ObjectSet("TSR3", OBJPROP_YDISTANCE, 2);
ObjectCreate("TSR4", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR4","Prev 1 Day Range:", 10, "Arial ", LightSteelBlue);ObjectSet("TSR4", OBJPROP_CORNER, 0);ObjectSet("TSR4", OBJPROP_XDISTANCE, 25);
ObjectSet("TSR4", OBJPROP_YDISTANCE, 20);ObjectCreate("TSR5", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR5",DoubleToStr(R1,0),12, "Arial Bold", Orange);ObjectSet("TSR5", OBJPROP_CORNER, 0);ObjectSet("TSR5", OBJPROP_XDISTANCE, 170);ObjectSet("TSR5", OBJPROP_YDISTANCE, 20);
ObjectCreate("TSR6", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR6","Prev "+First_av+" Days Range:", 10, "Arial ", LightSteelBlue);ObjectSet("TSR6", OBJPROP_CORNER, 0);ObjectSet("TSR6", OBJPROP_XDISTANCE, 25);ObjectSet("TSR6", OBJPROP_YDISTANCE, 35);ObjectCreate("TSR7", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR7",DoubleToStr(R5,0),12, "Arial Bold", Orange);ObjectSet("TSR7", OBJPROP_CORNER, 0);ObjectSet("TSR7", OBJPROP_XDISTANCE, 170);ObjectSet("TSR7", OBJPROP_YDISTANCE, 35);
ObjectCreate("TSR8", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR8","Prev "+Second_av+" Days Range:", 10, "Arial ", LightSteelBlue);ObjectSet("TSR8", OBJPROP_CORNER, 0);ObjectSet("TSR8", OBJPROP_XDISTANCE, 220);ObjectSet("TSR8", OBJPROP_YDISTANCE, 20);ObjectCreate("TSR9", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR9",DoubleToStr(R10,0),12, "Arial Bold", Orange);ObjectSet("TSR9", OBJPROP_CORNER, 0);ObjectSet("TSR9", OBJPROP_XDISTANCE, 365);ObjectSet("TSR9", OBJPROP_YDISTANCE, 20);
ObjectCreate("TSR10", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR10","Prev "+Third_av+" Days Range:", 10, "Arial ", LightSteelBlue);ObjectSet("TSR10", OBJPROP_CORNER, 0);ObjectSet("TSR10", OBJPROP_XDISTANCE, 220);ObjectSet("TSR10", OBJPROP_YDISTANCE, 35);ObjectCreate("TSR11", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR11",DoubleToStr(R20,0),12, "Arial Bold", Orange);ObjectSet("TSR11", OBJPROP_CORNER, 0);ObjectSet("TSR11", OBJPROP_XDISTANCE, 365);ObjectSet("TSR11", OBJPROP_YDISTANCE, 35);
ObjectCreate("TSR12", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR12","Room UP:", 10, "Arial ", LightSteelBlue);ObjectSet("TSR12", OBJPROP_CORNER, 0);ObjectSet("TSR12", OBJPROP_XDISTANCE, 420);ObjectSet("TSR12", OBJPROP_YDISTANCE, 20);ObjectCreate("TSR13", OBJ_LABEL, WindowFind("TSR"), 0, 0);
ObjectSetText("TSR13",DoubleToStr(RoomUp,0),12, "Arial Bold", Orange);ObjectSet("TSR13", OBJPROP_CORNER, 0);ObjectSet("TSR13", OBJPROP_XDISTANCE, 490);ObjectSet("TSR13", OBJPROP_YDISTANCE, 20);
ObjectCreate("TSR14", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR14","Room DN:", 10, "Arial ", LightSteelBlue);ObjectSet("TSR14", OBJPROP_CORNER, 0);ObjectSet("TSR14", OBJPROP_XDISTANCE, 420);ObjectSet("TSR14", OBJPROP_YDISTANCE, 35);ObjectCreate("TSR15", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR15",DoubleToStr(RoomDown,0),12, "Arial Bold", Orange);ObjectSet("TSR15", OBJPROP_CORNER, 0);ObjectSet("TSR15", OBJPROP_XDISTANCE, 490);ObjectSet("TSR15", OBJPROP_YDISTANCE, 35);
ObjectCreate("TSR16", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR16","Maximum StopLosses;",10, "Arial Bold", CadetBlue);ObjectSet("TSR16", OBJPROP_CORNER, 0);ObjectSet("TSR16", OBJPROP_XDISTANCE, 560);ObjectSet("TSR16", OBJPROP_YDISTANCE, 2);
ObjectCreate("TSR17", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR17","Long: Pips at", 10, "Arial ", LightSteelBlue);ObjectSet("TSR17", OBJPROP_CORNER, 0);ObjectSet("TSR17", OBJPROP_XDISTANCE, 560);ObjectSet("TSR17", OBJPROP_YDISTANCE, 20);ObjectCreate("TSR18", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR18",DoubleToStr(StopLoss_Long,0),14, "Arial Bold", LimeGreen);ObjectSet("TSR18", OBJPROP_CORNER, 0);ObjectSet("TSR18", OBJPROP_XDISTANCE, 600);ObjectSet("TSR18", OBJPROP_YDISTANCE, 17);
ObjectCreate("TSR19", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR19","Short: Pips at", 10, "Arial ", LightSteelBlue);ObjectSet("TSR19", OBJPROP_CORNER, 0);ObjectSet("TSR19", OBJPROP_XDISTANCE, 560);ObjectSet("TSR19", OBJPROP_YDISTANCE, 35);ObjectCreate("TSR20", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR20",DoubleToStr(StopLoss_Short,0),14, "Arial Bold", Red);ObjectSet("TSR20", OBJPROP_CORNER, 0);ObjectSet("TSR20", OBJPROP_XDISTANCE, 600);ObjectSet("TSR20", OBJPROP_YDISTANCE, 32);
ObjectCreate("TSR21", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR21",DoubleToStr(SL_Long,nDigits),12, "Arial Bold", LimeGreen);
ObjectSet("TSR21", OBJPROP_CORNER, 0);ObjectSet("TSR21", OBJPROP_XDISTANCE, 690);ObjectSet("TSR21", OBJPROP_YDISTANCE, 20);ObjectCreate("TSR22", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR22",DoubleToStr(SL_Short,nDigits),12, "Arial Bold",Red);ObjectSet("TSR22", OBJPROP_CORNER, 0);ObjectSet("TSR22", OBJPROP_XDISTANCE, 690);ObjectSet("TSR22", OBJPROP_YDISTANCE, 35);
ObjectCreate("TSR23", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR23","Risk to Reward Ratio:", 10, "Arial Bold", CadetBlue);ObjectSet("TSR23", OBJPROP_CORNER, 0);ObjectSet("TSR23", OBJPROP_XDISTANCE, 350);ObjectSet("TSR23", OBJPROP_YDISTANCE, 2);ObjectCreate("TSR24", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("TSR24",DoubleToStr( Risk_to_Reward_ratio ,0),12, "Arial Bold", Orange);ObjectSet("TSR24", OBJPROP_CORNER, 0);ObjectSet("TSR24", OBJPROP_XDISTANCE, 500);ObjectSet("TSR24", OBJPROP_YDISTANCE, 2);
double HIDaily = iMA(Symbol(),PERIOD_D1,1,0,MODE_HIGH,PRICE_HIGH,0);double LOWDaily = iMA(Symbol(),PERIOD_D1,1,0,MODE_LOW,PRICE_LOW,0); //double YEST_HIDaily = iMA(Symbol(),PERIOD_D1,1,0,MODE_HIGH,PRICE_HIGH,1);//double YEST_LOWDaily = iMA(Symbol(),PERIOD_D1,1,0,MODE_LOW,PRICE_LOW,1);
ObjectCreate("high", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("high",DoubleToStr(HIDaily,Digits), 12, "Arial Bold", Orange);ObjectSet("high", OBJPROP_CORNER, 0);ObjectSet("high", OBJPROP_XDISTANCE, 890);ObjectSet("high", OBJPROP_YDISTANCE, 20);
ObjectCreate("high2", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("high2","DailyHigh", 9, "Arial Bold", CadetBlue);ObjectSet("high2", OBJPROP_CORNER, 0);ObjectSet("high2", OBJPROP_XDISTANCE, 890);ObjectSet("high2", OBJPROP_YDISTANCE, 2);
ObjectCreate("low", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("low",DoubleToStr(LOWDaily,Digits), 12, "Arial Bold", Orange);ObjectSet("low", OBJPROP_CORNER, 0);ObjectSet("low", OBJPROP_XDISTANCE, 830);ObjectSet("low", OBJPROP_YDISTANCE, 20);
ObjectCreate("low2", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("low2","DailyLow", 9, "Arial Bold", CadetBlue);
ObjectSet("low2", OBJPROP_CORNER, 0);ObjectSet("low2", OBJPROP_XDISTANCE, 830);ObjectSet("low2", OBJPROP_YDISTANCE, 2);
double CURR = iMA(Symbol(),0,1,0,MODE_EMA,PRICE_CLOSE,0);
ObjectCreate("high3", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("high3",DoubleToStr(CURR,Digits), 12, "Arial Bold", Coral);ObjectSet("high3", OBJPROP_CORNER, 0);ObjectSet("high3", OBJPROP_XDISTANCE, 890);ObjectSet("high3", OBJPROP_YDISTANCE,35 );
ObjectCreate("high4", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("high4",DoubleToStr(CURR,Digits), 12, "Arial Bold", Coral);ObjectSet("high4", OBJPROP_CORNER, 0);ObjectSet("high4", OBJPROP_XDISTANCE, 830);ObjectSet("high4", OBJPROP_YDISTANCE,35 );
ObjectCreate("low4", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("low4","Curr/Day", 9, "Arial ", LightSteelBlue);ObjectSet("low4", OBJPROP_CORNER, 0);ObjectSet("low4", OBJPROP_XDISTANCE, 770);ObjectSet("low4", OBJPROP_YDISTANCE, 20);ObjectCreate("low5", OBJ_LABEL, WindowFind("TSR"), 0, 0);ObjectSetText("low5","Price", 9, "Arial ", LightSteelBlue);ObjectSet("low5", OBJPROP_CORNER, 0);ObjectSet("low5", OBJPROP_XDISTANCE, 790);ObjectSet("low5", OBJPROP_YDISTANCE, 37);
return(0);}//+------------------------------------------------------------------+
http://forexcashback.hubpages.com/hub/Average-Daily-Range-Indictor
Average Weekly Range Calculator - Custom MT4 Indicator
This helpful indicator will show you the average weekly range in pips for a currency pair and is similar to the Daily and Monthly range indicators. The information provided in this indicator can help you in evaluating what position to place and where to put your stop loss at for maximum effectiveness.
Features
Room Up - How many pips the market could move up based on weekly trading range and current market price
Room Down - how many pips the market could move down based on weekly trading range and current market price
Weekly High - the high price for the week
Weekly Low - the low price for the week
And it has a maximum stop loss level suggestion based on direction of price and what position placed.
To incorporate this indicator into your trading platform, I have provided the code below:
For those that need instructions:1.Open up MetaEditor through the MT4 terminal2.Click on "File" ---> New3.Choose Customer Indicator4. Click "Next"5. Put in desired indicator name6. Click "Next"7. Check box that says "Indicator in Seperate Window"8. Click "Finish"9. Delete the generic code 10.Copy the code below11. Paste the code12. Compile it to make sure it has not errors/warning 13. Should be zero errors/warning 14. Save15. Restart MT4 terminal ---> You should now have your new indicator under the custom indicator heading and able to attach it to any chart.
Code:
#property indicator_separate_window//---- input parametersextern double Risk_to_Reward_ratio = 3.0;extern int First_AV = 5;extern int Second_AV = 10;extern int Third_AV = 20;int nDigits;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init(){IndicatorShortName("TSR_Weekly");if(Symbol()=="GBPJPY" || Symbol()=="EURJPY" || Symbol()=="USDJPY" || Symbol()=="CHFJPY" || Symbol()=="AUDJPY") nDigits = 2;if(Symbol()=="GBPUSD" || Symbol()=="EURUSD" || Symbol()=="NZDUSD" || Symbol()=="USDCHF" ||Symbol()=="USDCAD" || Symbol()=="AUDUSD" || Symbol()=="AUDCAD" || Symbol()=="EURCHF" || Symbol()=="EURGBP"|| Symbol()=="EURCAD" || Symbol()=="EURAUD" ||Symbol()=="AUDNZD"|| Symbol()=="GBPCHF" )nDigits = 4;
return(0);}//+------------------------------------------------------------------+//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+int deinit(){//----// Comment(""); //----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,PERIOD_W1,1)-iLow(NULL,PERIOD_W1,1))/Point;for(i=1;i<=First_AV;i++)R5 = R5 + (iHigh(NULL,PERIOD_W1,i)-iLow(NULL,PERIOD_W1,i))/Point;for(i=1;i<=Second_AV;i++)R10 = R10 + (iHigh(NULL,PERIOD_W1,i)-iLow(NULL,PERIOD_W1,i))/Point;for(i=1;i<=Third_AV;i++)R20 = R20 + (iHigh(NULL,PERIOD_W1,i)-iLow(NULL,PERIOD_W1,i))/Point;
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,PERIOD_W1,0);high0 = iHigh(NULL,PERIOD_W1,0);RoomUp = RAvg - (Bid - low0)/Point;RoomDown = RAvg - (high0 - Bid)/Point;StopLoss_Long = RoomUp/Risk_to_Reward_ratio;SL_Long = Bid - StopLoss_Long*Point;StopLoss_Short = RoomDown/Risk_to_Reward_ratio;SL_Short = Bid + StopLoss_Short*Point;
Text = "Average Weeks Range: " + RAvg + "\n" + "Prev 01 Weeks Range: " + R1 + "\n" +
"Prev 05 Weeks Range: " + R5 + "\n" + "Prev 10 Weeks Range: " + R10 + "\n" +"Prev 20 Weeks Range: " + R20 + "\n";Text = Text +"Room Up: " + RoomUp + "\n" +"Room Down: " + RoomDown + "\n" +"Maximum StopLosses :" + "\n" +"Long: " + StopLoss_Long + " Pips at " + DoubleToStr(SL_Long,nDigits) + "\n" +"Short: " + StopLoss_Short + " Pips at " + DoubleToStr(SL_Short,nDigits) + "\n" ;
//Comment(Text);
string P=Period();
ObjectCreate("WTSR", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR",StringSubstr(Symbol(),0),12, "Arial Bold", CadetBlue);ObjectSet("WTSR", OBJPROP_CORNER, 0);ObjectSet("WTSR", OBJPROP_XDISTANCE, 25);ObjectSet("WTSR", OBJPROP_YDISTANCE, 2);ObjectCreate("WTSR1", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR1",StringSubstr(P,0),12, "Arial Bold", CadetBlue);ObjectSet("WTSR1", OBJPROP_CORNER, 0);ObjectSet("WTSR1", OBJPROP_XDISTANCE, 100);ObjectSet("WTSR1", OBJPROP_YDISTANCE, 2);
ObjectCreate("WTSR2", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR2","Average Weekly Range:", 10, "Arial Bold", CadetBlue);ObjectSet("WTSR2", OBJPROP_CORNER, 0);ObjectSet("WTSR2", OBJPROP_XDISTANCE, 150);ObjectSet("WTSR2", OBJPROP_YDISTANCE, 2);ObjectCreate("WTSR3", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR3",DoubleToStr(RAvg ,0),12, "Arial Bold", Orange);ObjectSet("WTSR3", OBJPROP_CORNER, 0);ObjectSet("WTSR3", OBJPROP_XDISTANCE, 310);ObjectSet("WTSR3", OBJPROP_YDISTANCE, 2);
ObjectCreate("WTSR4", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR4","Prev 1 Week Range:", 10, "Arial ", LightSteelBlue);ObjectSet("WTSR4", OBJPROP_CORNER, 0);ObjectSet("WTSR4", OBJPROP_XDISTANCE, 25);ObjectSet("WTSR4", OBJPROP_YDISTANCE, 20);ObjectCreate("WTSR5", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR5",DoubleToStr(R1,0),12, "Arial Bold", Orange);ObjectSet("WTSR5", OBJPROP_CORNER, 0);ObjectSet("WTSR5", OBJPROP_XDISTANCE, 170);
ObjectSet("WTSR5", OBJPROP_YDISTANCE, 20);
ObjectCreate("WTSR6", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR6","Prev "+First_AV+" Weeks Range:", 10, "Arial ", LightSteelBlue);ObjectSet("WTSR6", OBJPROP_CORNER, 0);ObjectSet("WTSR6", OBJPROP_XDISTANCE, 25);ObjectSet("WTSR6", OBJPROP_YDISTANCE, 35);ObjectCreate("WTSR7", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR7",DoubleToStr(R5,0),12, "Arial Bold", Orange);ObjectSet("WTSR7", OBJPROP_CORNER, 0);ObjectSet("WTSR7", OBJPROP_XDISTANCE, 170);ObjectSet("WTSR7", OBJPROP_YDISTANCE, 35);
ObjectCreate("WTSR8", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR8","Prev "+Second_AV+" Weeks Range:", 10, "Arial ", LightSteelBlue);ObjectSet("WTSR8", OBJPROP_CORNER, 0);ObjectSet("WTSR8", OBJPROP_XDISTANCE, 220);ObjectSet("WTSR8", OBJPROP_YDISTANCE, 20);ObjectCreate("WTSR9", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR9",DoubleToStr(R10,0),12, "Arial Bold", Orange);ObjectSet("WTSR9", OBJPROP_CORNER, 0);ObjectSet("WTSR9", OBJPROP_XDISTANCE, 370);ObjectSet("WTSR9", OBJPROP_YDISTANCE, 20);
ObjectCreate("WTSR10", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR10","Prev "+Third_AV+" Weeks Range:", 10, "Arial ", LightSteelBlue);ObjectSet("WTSR10", OBJPROP_CORNER, 0);ObjectSet("WTSR10", OBJPROP_XDISTANCE, 220);ObjectSet("WTSR10", OBJPROP_YDISTANCE, 35);ObjectCreate("WTSR11", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR11",DoubleToStr(R20,0),12, "Arial Bold", Orange);ObjectSet("WTSR11", OBJPROP_CORNER, 0);ObjectSet("WTSR11", OBJPROP_XDISTANCE, 370);ObjectSet("WTSR11", OBJPROP_YDISTANCE, 35);
ObjectCreate("WTSR12", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR12","Room UP:", 10, "Arial ", LightSteelBlue);ObjectSet("WTSR12", OBJPROP_CORNER, 0);ObjectSet("WTSR12", OBJPROP_XDISTANCE, 420);ObjectSet("WTSR12", OBJPROP_YDISTANCE, 20);ObjectCreate("WTSR13", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR13",DoubleToStr(RoomUp,0),12, "Arial Bold", Orange);ObjectSet("WTSR13", OBJPROP_CORNER, 0);ObjectSet("WTSR13", OBJPROP_XDISTANCE, 490);ObjectSet("WTSR13", OBJPROP_YDISTANCE, 20);
ObjectCreate("WTSR14", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR14","Room DN:", 10, "Arial ", LightSteelBlue);ObjectSet("WTSR14", OBJPROP_CORNER, 0);ObjectSet("WTSR14", OBJPROP_XDISTANCE, 420);ObjectSet("WTSR14", OBJPROP_YDISTANCE, 35);ObjectCreate("WTSR15", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR15",DoubleToStr(RoomDown,0),12, "Arial Bold", Orange);ObjectSet("WTSR15", OBJPROP_CORNER, 0);ObjectSet("WTSR15", OBJPROP_XDISTANCE, 490);ObjectSet("WTSR15", OBJPROP_YDISTANCE, 35);
ObjectCreate("WTSR16", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR16","Maximum StopLosses;",10, "Arial Bold", CadetBlue);ObjectSet("WTSR16", OBJPROP_CORNER, 0);ObjectSet("WTSR16", OBJPROP_XDISTANCE, 560);ObjectSet("WTSR16", OBJPROP_YDISTANCE, 2);
ObjectCreate("WTSR17", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR17","Long: Pips at", 10, "Arial ", LightSteelBlue);ObjectSet("WTSR17", OBJPROP_CORNER, 0);ObjectSet("WTSR17", OBJPROP_XDISTANCE, 560);ObjectSet("WTSR17", OBJPROP_YDISTANCE, 20);ObjectCreate("WTSR18", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR18",DoubleToStr(StopLoss_Long,0),14, "Arial Bold", LimeGreen);ObjectSet("WTSR18", OBJPROP_CORNER, 0);ObjectSet("WTSR18", OBJPROP_XDISTANCE, 600);ObjectSet("WTSR18", OBJPROP_YDISTANCE, 17);
ObjectCreate("WTSR19", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR19","Short: Pips at", 10, "Arial ", LightSteelBlue);ObjectSet("WTSR19", OBJPROP_CORNER, 0);ObjectSet("WTSR19", OBJPROP_XDISTANCE, 560);ObjectSet("WTSR19", OBJPROP_YDISTANCE, 35);ObjectCreate("WTSR20", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR20",DoubleToStr(StopLoss_Short,0),14, "Arial Bold", Red);ObjectSet("WTSR20", OBJPROP_CORNER, 0);ObjectSet("WTSR20", OBJPROP_XDISTANCE, 600);ObjectSet("WTSR20", OBJPROP_YDISTANCE, 32);
ObjectCreate("WTSR21", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR21",DoubleToStr(SL_Long,nDigits),12, "Arial Bold", LimeGreen);ObjectSet("WTSR21", OBJPROP_CORNER, 0);ObjectSet("WTSR21", OBJPROP_XDISTANCE, 690);ObjectSet("WTSR21", OBJPROP_YDISTANCE, 20);ObjectCreate("WTSR22", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR22",DoubleToStr(SL_Short,nDigits),12, "Arial Bold",Red);
ObjectSet("WTSR22", OBJPROP_CORNER, 0);ObjectSet("WTSR22", OBJPROP_XDISTANCE, 690);ObjectSet("WTSR22", OBJPROP_YDISTANCE, 35);
ObjectCreate("WTSR23", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR23","Risk to Reward Ratio:", 10, "Arial Bold", CadetBlue);ObjectSet("WTSR23", OBJPROP_CORNER, 0);ObjectSet("WTSR23", OBJPROP_XDISTANCE, 350);ObjectSet("WTSR23", OBJPROP_YDISTANCE, 2);ObjectCreate("WTSR24", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("WTSR24",DoubleToStr( Risk_to_Reward_ratio ,0),12, "Arial Bold", Orange);ObjectSet("WTSR24", OBJPROP_CORNER, 0);ObjectSet("WTSR24", OBJPROP_XDISTANCE, 500);ObjectSet("WTSR24", OBJPROP_YDISTANCE, 2);
double HIWeekly = iMA(Symbol(),PERIOD_W1,1,0,MODE_HIGH,PRICE_HIGH,0);double LOWWeekly = iMA(Symbol(),PERIOD_W1,1,0,MODE_LOW,PRICE_LOW,0); //double YEST_HIDaily = iMA(Symbol(),PERIOD_D1,1,0,MODE_HIGH,PRICE_HIGH,1);//double YEST_LOWDaily = iMA(Symbol(),PERIOD_D1,1,0,MODE_LOW,PRICE_LOW,1);
ObjectCreate("Whigh", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("Whigh",DoubleToStr(HIWeekly,Digits), 12, "Arial Bold", Orange);ObjectSet("Whigh", OBJPROP_CORNER, 0);ObjectSet("Whigh", OBJPROP_XDISTANCE, 890);ObjectSet("Whigh", OBJPROP_YDISTANCE, 20);
ObjectCreate("Whigh2", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("Whigh2","WeeklyHigh", 9, "Arial Bold", CadetBlue);ObjectSet("Whigh2", OBJPROP_CORNER, 0);ObjectSet("Whigh2", OBJPROP_XDISTANCE, 890);ObjectSet("Whigh2", OBJPROP_YDISTANCE, 2);
ObjectCreate("Wlow", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("Wlow",DoubleToStr(LOWWeekly,Digits), 12, "Arial Bold", Orange);ObjectSet("Wlow", OBJPROP_CORNER, 0);ObjectSet("Wlow", OBJPROP_XDISTANCE, 830);ObjectSet("Wlow", OBJPROP_YDISTANCE, 20);
ObjectCreate("Wlow2", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("Wlow2","WeeklyLow", 9, "Arial Bold", CadetBlue);ObjectSet("Wlow2", OBJPROP_CORNER, 0);ObjectSet("Wlow2", OBJPROP_XDISTANCE, 810);ObjectSet("Wlow2", OBJPROP_YDISTANCE, 2);
double CURR = iMA(Symbol(),0,1,0,MODE_EMA,PRICE_CLOSE,0);
ObjectCreate("Whigh3", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("Whigh3",DoubleToStr(CURR,Digits), 12, "Arial Bold", Coral);ObjectSet("Whigh3", OBJPROP_CORNER, 0);ObjectSet("Whigh3", OBJPROP_XDISTANCE, 890);ObjectSet("Whigh3", OBJPROP_YDISTANCE,35 );
ObjectCreate("Whigh4", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("Whigh4",DoubleToStr(CURR,Digits), 12, "Arial Bold", Coral);ObjectSet("Whigh4", OBJPROP_CORNER, 0);ObjectSet("Whigh4", OBJPROP_XDISTANCE, 830);ObjectSet("Whigh4", OBJPROP_YDISTANCE,35 );
ObjectCreate("Wlow4", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("Wlow4","Curr/Week", 9, "Arial ", LightSteelBlue);ObjectSet("Wlow4", OBJPROP_CORNER, 0);ObjectSet("Wlow4", OBJPROP_XDISTANCE, 760);ObjectSet("Wlow4", OBJPROP_YDISTANCE, 20);ObjectCreate("Wlow5", OBJ_LABEL, WindowFind("TSR_Weekly"), 0, 0);ObjectSetText("Wlow5","Price", 9, "Arial ", LightSteelBlue);ObjectSet("Wlow5", OBJPROP_CORNER, 0);ObjectSet("Wlow5", OBJPROP_XDISTANCE, 790);ObjectSet("Wlow5", OBJPROP_YDISTANCE, 37);
return(0);}//+------------------------------------------------------------------+
http://forexcashback.hubpages.com/hub/Average-Weekly-Range-Calculator-Custome-MT4-Indicator
Average Monthly Range Calculator - MT4 Custom Indicator
This helpful indicator will show you the average monthly range in pips for a currency pair and is similar to the Daily and Weekly range indicators. The information provided in this indicator can help you in evaluating what position to place and where to put your stop loss at for maximum effectiveness.
Features
Room Up - How many pips the market could move up based on monthly trading range and current market price
Room Down - how many pips the market could move down based on monthly trading range and current market price
Monthly High - the high price for the month
Monthly Low - the low price for the month
And it has a maximum stop loss level suggestion based on direction of price and what position placed.
To incorporate this indicator into your trading platform, I have provided the code below:
For those that need instructions:1.Open up MetaEditor through the MT4 terminal2.Click on "File" ---> New3.Choose Customer Indicator4. Click "Next"5. Put in desired indicator name6. Click "Next"7. Check box that says "Indicator in Seperate Window"8. Click "Finish"9. Delete the generic code 10.Copy the code below11. Paste the code12. Compile it to make sure it has not errors/warning 13. Should be zero errors/warning 14. Save15. Restart MT4 terminal ---> You should now have your new indicator under the custom indicator heading and able to attach it to any chart.
Code:
#property indicator_separate_window//---- input parametersextern double Risk_to_Reward_ratio = 3.0;extern int First_Av = 5;extern int Second_Av = 10;extern int Third_Av = 20;
int nDigits;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init(){IndicatorShortName("TSR_Monthly");if(Symbol()=="GBPJPY" || Symbol()=="EURJPY" || Symbol()=="USDJPY" || Symbol()=="CHFJPY" || Symbol()=="AUDJPY") nDigits = 2;if(Symbol()=="GBPUSD" || Symbol()=="EURUSD" || Symbol()=="NZDUSD" || Symbol()=="USDCHF" ||Symbol()=="USDCAD" || Symbol()=="AUDUSD" || Symbol()=="AUDCAD" || Symbol()=="EURCHF" || Symbol()=="EURGBP"|| Symbol()=="EURCAD" || Symbol()=="EURAUD" ||Symbol()=="AUDNZD"|| Symbol()=="GBPCHF" )nDigits = 4;
return(0);
}//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit(){//----// Comment(""); //----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,PERIOD_MN1,1)-iLow(NULL,PERIOD_MN1,1))/Point;for(i=1;i<=First_Av;i++)R5 = R5 + (iHigh(NULL,PERIOD_MN1,i)-iLow(NULL,PERIOD_MN1,i))/Point;for(i=1;i<=Second_Av;i++)R10 = R10 + (iHigh(NULL,PERIOD_MN1,i)-iLow(NULL,PERIOD_MN1,i))/Point;for(i=1;i<=Third_Av;i++)R20 = R20 + (iHigh(NULL,PERIOD_MN1,i)-iLow(NULL,PERIOD_MN1,i))/Point;
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,PERIOD_MN1,0);high0 = iHigh(NULL,PERIOD_MN1,0);RoomUp = RAvg - (Bid - low0)/Point;RoomDown = RAvg - (high0 - Bid)/Point;StopLoss_Long = RoomUp/Risk_to_Reward_ratio;SL_Long = Bid - StopLoss_Long*Point;StopLoss_Short = RoomDown/Risk_to_Reward_ratio;SL_Short = Bid + StopLoss_Short*Point;
Text = "Average Months Range: " + RAvg + "\n" + "Prev 01 Months Range: " + R1 + "\n" + "Prev 05 Months Range: " + R5 + "\n" + "Prev 10 Months Range: " + R10 + "\n" +"Prev 20 Months Range: " + R20 + "\n";Text = Text +"Room Up: " + RoomUp + "\n" +"Room Down: " + RoomDown + "\n" +"Maximum StopLosses :" + "\n" +"Long: " + StopLoss_Long + " Pips at " + DoubleToStr(SL_Long,nDigits) + "\n" +"Short: " + StopLoss_Short + " Pips at " + DoubleToStr(SL_Short,nDigits) + "\n" ;
//Comment(Text);
string P=Period();
ObjectCreate("MTSR", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR",StringSubstr(Symbol(),0),12, "Arial Bold", CadetBlue);ObjectSet("MTSR", OBJPROP_CORNER, 0);ObjectSet("MTSR", OBJPROP_XDISTANCE, 25);ObjectSet("MTSR", OBJPROP_YDISTANCE, 2);ObjectCreate("MTSR1", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR1",StringSubstr(P,0),12, "Arial Bold", CadetBlue);ObjectSet("MTSR1", OBJPROP_CORNER, 0);ObjectSet("MTSR1", OBJPROP_XDISTANCE, 100);ObjectSet("MTSR1", OBJPROP_YDISTANCE, 2);
ObjectCreate("MTSR2", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR2","Average Monthly Range:", 10, "Arial Bold", CadetBlue);ObjectSet("MTSR2", OBJPROP_CORNER, 0);ObjectSet("MTSR2", OBJPROP_XDISTANCE, 150);ObjectSet("MTSR2", OBJPROP_YDISTANCE, 2);ObjectCreate("MTSR3", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR3",DoubleToStr(RAvg ,0),12, "Arial Bold", Orange);ObjectSet("MTSR3", OBJPROP_CORNER, 0);ObjectSet("MTSR3", OBJPROP_XDISTANCE, 310);ObjectSet("MTSR3", OBJPROP_YDISTANCE, 2);
ObjectCreate("MTSR4", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR4","Prev 1 Month Range:", 10, "Arial ", LightSteelBlue);ObjectSet("MTSR4", OBJPROP_CORNER, 0);ObjectSet("MTSR4", OBJPROP_XDISTANCE, 25);ObjectSet("MTSR4", OBJPROP_YDISTANCE, 20);ObjectCreate("MTSR5", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);
ObjectSetText("MTSR5",DoubleToStr(R1,0),12, "Arial Bold", Orange);ObjectSet("MTSR5", OBJPROP_CORNER, 0);ObjectSet("MTSR5", OBJPROP_XDISTANCE, 170);ObjectSet("MTSR5", OBJPROP_YDISTANCE, 20);
ObjectCreate("MTSR6", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR6","Prev "+First_Av+" Months Range:", 10, "Arial ", LightSteelBlue);ObjectSet("MTSR6", OBJPROP_CORNER, 0);ObjectSet("MTSR6", OBJPROP_XDISTANCE, 25);ObjectSet("MTSR6", OBJPROP_YDISTANCE, 35);ObjectCreate("MTSR7", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR7",DoubleToStr(R5,0),12, "Arial Bold", Orange);ObjectSet("MTSR7", OBJPROP_CORNER, 0);ObjectSet("MTSR7", OBJPROP_XDISTANCE, 170);ObjectSet("MTSR7", OBJPROP_YDISTANCE, 35);
ObjectCreate("MTSR8", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR8","Prev "+Second_Av+" Months Range:", 10, "Arial ", LightSteelBlue);ObjectSet("MTSR8", OBJPROP_CORNER, 0);ObjectSet("MTSR8", OBJPROP_XDISTANCE, 220);ObjectSet("MTSR8", OBJPROP_YDISTANCE, 20);ObjectCreate("MTSR9", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR9",DoubleToStr(R10,0),12, "Arial Bold", Orange);ObjectSet("MTSR9", OBJPROP_CORNER, 0);ObjectSet("MTSR9", OBJPROP_XDISTANCE, 370);ObjectSet("MTSR9", OBJPROP_YDISTANCE, 20);
ObjectCreate("MTSR10", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR10","Prev "+Third_Av+" Months Range:", 10, "Arial ", LightSteelBlue);ObjectSet("MTSR10", OBJPROP_CORNER, 0);ObjectSet("MTSR10", OBJPROP_XDISTANCE, 220);ObjectSet("MTSR10", OBJPROP_YDISTANCE, 35);ObjectCreate("mMTSR11", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("mMTSR11",DoubleToStr(R20,0),12, "Arial Bold", Orange);ObjectSet("mMTSR11", OBJPROP_CORNER, 0);ObjectSet("mMTSR11", OBJPROP_XDISTANCE, 370);ObjectSet("mMTSR11", OBJPROP_YDISTANCE, 35);
ObjectCreate("MTSR12", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR12","Room UP:", 10, "Arial ", LightSteelBlue);ObjectSet("MTSR12", OBJPROP_CORNER, 0);ObjectSet("MTSR12", OBJPROP_XDISTANCE, 420);ObjectSet("MTSR12", OBJPROP_YDISTANCE, 20);ObjectCreate("mMTSR13", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("mMTSR13",DoubleToStr(RoomUp,0),12, "Arial Bold", Orange);ObjectSet("mMTSR13", OBJPROP_CORNER, 0);
ObjectSet("mMTSR13", OBJPROP_XDISTANCE, 490);ObjectSet("mMTSR13", OBJPROP_YDISTANCE, 20);
ObjectCreate("MTSR14", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR14","Room DN:", 10, "Arial ", LightSteelBlue);ObjectSet("MTSR14", OBJPROP_CORNER, 0);ObjectSet("MTSR14", OBJPROP_XDISTANCE, 420);ObjectSet("MTSR14", OBJPROP_YDISTANCE, 35);ObjectCreate("MTSR15", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR15",DoubleToStr(RoomDown,0),12, "Arial Bold", Orange);ObjectSet("MTSR15", OBJPROP_CORNER, 0);ObjectSet("MTSR15", OBJPROP_XDISTANCE, 490);ObjectSet("MTSR15", OBJPROP_YDISTANCE, 35);
ObjectCreate("MTSR16", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR16","Maximum StopLosses;",10, "Arial Bold", CadetBlue);ObjectSet("MTSR16", OBJPROP_CORNER, 0);ObjectSet("MTSR16", OBJPROP_XDISTANCE, 560);ObjectSet("MTSR16", OBJPROP_YDISTANCE, 2);
ObjectCreate("MTSR17", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR17","Long: Pips at", 10, "Arial ", LightSteelBlue);ObjectSet("MTSR17", OBJPROP_CORNER, 0);ObjectSet("MTSR17", OBJPROP_XDISTANCE, 560);ObjectSet("MTSR17", OBJPROP_YDISTANCE, 20);ObjectCreate("mMTSR18", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("mMTSR18",DoubleToStr(StopLoss_Long,0),14, "Arial Bold", LimeGreen);ObjectSet("mMTSR18", OBJPROP_CORNER, 0);ObjectSet("mMTSR18", OBJPROP_XDISTANCE, 600);ObjectSet("mMTSR18", OBJPROP_YDISTANCE, 17);
ObjectCreate("MTSR19", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR19","Short: Pips at", 10, "Arial ", LightSteelBlue);ObjectSet("MTSR19", OBJPROP_CORNER, 0);ObjectSet("MTSR19", OBJPROP_XDISTANCE, 560);ObjectSet("MTSR19", OBJPROP_YDISTANCE, 35);ObjectCreate("MTSR20", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR20",DoubleToStr(StopLoss_Short,0),14, "Arial Bold", Red);ObjectSet("MTSR20", OBJPROP_CORNER, 0);ObjectSet("MTSR20", OBJPROP_XDISTANCE, 600);ObjectSet("MTSR20", OBJPROP_YDISTANCE, 32);
ObjectCreate("MTSR21", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR21",DoubleToStr(SL_Long,nDigits),12, "Arial Bold", LimeGreen);ObjectSet("MTSR21", OBJPROP_CORNER, 0);ObjectSet("MTSR21", OBJPROP_XDISTANCE, 690);
ObjectSet("MTSR21", OBJPROP_YDISTANCE, 20);ObjectCreate("MTSR22", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR22",DoubleToStr(SL_Short,nDigits),12, "Arial Bold",Red);ObjectSet("MTSR22", OBJPROP_CORNER, 0);ObjectSet("MTSR22", OBJPROP_XDISTANCE, 690);ObjectSet("MTSR22", OBJPROP_YDISTANCE, 35);
ObjectCreate("MTSR23", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR23","Risk to Reward Ratio:", 10, "Arial Bold", CadetBlue);ObjectSet("MTSR23", OBJPROP_CORNER, 0);ObjectSet("MTSR23", OBJPROP_XDISTANCE, 350);ObjectSet("MTSR23", OBJPROP_YDISTANCE, 2);ObjectCreate("MTSR24", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("MTSR24",DoubleToStr( Risk_to_Reward_ratio ,0),12, "Arial Bold", Orange);ObjectSet("MTSR24", OBJPROP_CORNER, 0);ObjectSet("MTSR24", OBJPROP_XDISTANCE, 500);ObjectSet("MTSR24", OBJPROP_YDISTANCE, 2);
double HIMonthly = iMA(Symbol(),PERIOD_MN1,1,0,MODE_HIGH,PRICE_HIGH,0);double LOWMonthly = iMA(Symbol(),PERIOD_MN1,1,0,MODE_LOW,PRICE_LOW,0); //double YEST_HIDaily = iMA(Symbol(),PERIOD_D1,1,0,MODE_HIGH,PRICE_HIGH,1);//double YEST_LOWDaily = iMA(Symbol(),PERIOD_D1,1,0,MODE_LOW,PRICE_LOW,1);
ObjectCreate("Mhigh", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("Mhigh",DoubleToStr(HIMonthly,Digits), 12, "Arial Bold", Orange);ObjectSet("Mhigh", OBJPROP_CORNER, 0);ObjectSet("Mhigh", OBJPROP_XDISTANCE, 890);ObjectSet("Mhigh", OBJPROP_YDISTANCE, 20);
ObjectCreate("Mhigh2", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("Mhigh2","MonthlyHigh", 9, "Arial Bold", CadetBlue);ObjectSet("Mhigh2", OBJPROP_CORNER, 0);ObjectSet("Mhigh2", OBJPROP_XDISTANCE, 890);ObjectSet("Mhigh2", OBJPROP_YDISTANCE, 2);
ObjectCreate("Mlow", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("Mlow",DoubleToStr(LOWMonthly,Digits), 12, "Arial Bold", Orange);ObjectSet("Mlow", OBJPROP_CORNER, 0);ObjectSet("Mlow", OBJPROP_XDISTANCE, 830);ObjectSet("Mlow", OBJPROP_YDISTANCE, 20);
ObjectCreate("mMlow2", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("mMlow2","MonthlyLow", 9, "Arial Bold", CadetBlue);ObjectSet("mMlow2", OBJPROP_CORNER, 0);ObjectSet("mMlow2", OBJPROP_XDISTANCE, 810);
ObjectSet("mMlow2", OBJPROP_YDISTANCE, 2);
double CURR = iMA(Symbol(),0,1,0,MODE_EMA,PRICE_CLOSE,0);
ObjectCreate("Mhigh3", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("Mhigh3",DoubleToStr(CURR,Digits), 12, "Arial Bold", Coral);ObjectSet("Whigh3", OBJPROP_CORNER, 0);ObjectSet("Mhigh3", OBJPROP_XDISTANCE, 890);ObjectSet("Mhigh3", OBJPROP_YDISTANCE,35 );
ObjectCreate("Mhigh4", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("Mhigh4",DoubleToStr(CURR,Digits), 12, "Arial Bold", Coral);ObjectSet("Mhigh4", OBJPROP_CORNER, 0);ObjectSet("Mhigh4", OBJPROP_XDISTANCE, 830);ObjectSet("Mhigh4", OBJPROP_YDISTANCE,35 );
ObjectCreate("Mlow4", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("Mlow4","Curr/Month", 9, "Arial ", LightSteelBlue);ObjectSet("Mlow4", OBJPROP_CORNER, 0);ObjectSet("Mlow4", OBJPROP_XDISTANCE, 760);ObjectSet("Mlow4", OBJPROP_YDISTANCE, 20);ObjectCreate("Mlow5", OBJ_LABEL, WindowFind("TSR_Monthly"), 0, 0);ObjectSetText("Mlow5","Price", 9, "Arial ", LightSteelBlue);ObjectSet("Mlow5", OBJPROP_CORNER, 0);ObjectSet("Mlow5", OBJPROP_XDISTANCE, 790);ObjectSet("Mlow5", OBJPROP_YDISTANCE, 37);
return(0);}//+------------------------------------------------------------------+
http://forexcashback.hubpages.com/hub/Average-Monthly-Range-Calculator-MT4-Custom-Indicator