Vous êtes sur la page 1sur 24

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 terminal
2.Click on "File" ---> New
3.Choose Customer Indicator
4. Click "Next"
5. Put in desired indicator name
6. Click "Next"
7. Check box that says "Indicator in Seperate Window"
8. Click "Finish"
9. Delete the generic code
10.Copy the code below
11. Paste the code
12. Compile it to make sure it has not errors/warning
13. Should be zero errors/warning
14. Save
15. 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 parameters
extern 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 terminal
2.Click on "File" ---> New
3.Choose Customer Indicator
4. Click "Next"
5. Put in desired indicator name
6. Click "Next"
7. Check box that says "Indicator in Seperate Window"
8. Click "Finish"
9. Delete the generic code
10.Copy the code below
11. Paste the code
12. Compile it to make sure it has not errors/warning
13. Should be zero errors/warning
14. Save
15. 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 parameters
extern 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-MT4Indicator

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 terminal
2.Click on "File" ---> New
3.Choose Customer Indicator
4. Click "Next"
5. Put in desired indicator name
6. Click "Next"
7. Check box that says "Indicator in Seperate Window"
8. Click "Finish"
9. Delete the generic code
10.Copy the code below
11. Paste the code
12. Compile it to make sure it has not errors/warning
13. Should be zero errors/warning
14. Save
15. 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 parameters
extern 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-CustomIndicator

Vous aimerez peut-être aussi