#(T_S_R)-Monthly Range Calculator

Author: Copyright � 2006, Ogeima
#(T_S_R)-Monthly Range Calculator
Price Data Components
Series array that contains the highest prices of each barSeries array that contains the lowest prices of each bar
Indicators Used
Moving average indicator
10 Views
0 Downloads
0 Favorites
#(T_S_R)-Monthly Range Calculator
//+------------------------------------------------------------------+
//|                            #(T_S_R)-Monthly Range Calculator.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//|                             #(T_S_R)-Weekly Range Calculator.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//|                             #(T_S_R)-Daily Range Calculator .mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#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 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()=="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" )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_LWMA,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);
  }
//+------------------------------------------------------------------+

Comments