Xard-MM2





//+------------------------------------------------------------------+
//|                                           Murrey_Math_Line_X.mq4 |
//|                         Copyright © 2004, Vladislav Goshkov (VG).|
//|                                                      4vg@mail.ru |
//|                                 code change by Alex.Piech.FinGeR |
//|               33%, 50% & franka code added by Xard777            |
//+------------------------------------------------------------------+
#property copyright "Vladislav Goshkov (VG) && Alex.Piech.FinGeR"
#property link      "4vg@mail.ru && regnif@gmx.net"

#property indicator_chart_window

// ============================================================================================
// * Line 8/8 & 0/8 (Ultimate Support and Ultimate Resistance).
// * Those lines are the most strong concerning Support and Resistance.
// ============================================================================================
//* Line 7/8  (Weak, Place to Stop and Reverse).
//* This line is weak. If suddenly the price was going too fast and too far and stops around this line 
//* it means the price will reverse down very soon. If the price did not stop near this line this price 
//* will continue the movement to the line 8/8.
// ============================================================================================
//* Line 1/8  (Weak, Place to Stop and Reverse).
//* This line is weak. If suddenly the price was going too fast and too far and stops around this line 
//* it means the price will reverse up very soon. If the price did not stop near this line this price
//* will continue the movement down to the line 0/8.
// ============================================================================================
//* Line 2/8 and 6/8 (Pivot, Reverse)
//* Those two lines yield the line 4/8 only to the strength to reverse the price movement.
// ============================================================================================
//* Line 5/8 (Top of Trading Range)
//* The price is spending the about 40% of the time on the movement between the lines 5/8 and 3/8. 
//* If the price is moving near line 5/8 and stopping near the line during the 10 - 12 days so it means 
//* that it is necessary to sell in this "bonus zone" (some people are doing like this) but if the price is keeping the tendency to stay above 
//* 5/8 line, so it means that the price will be above. But if the price is droping below 5/8 line it means that the price will continue 
//* falling to the next level of resistance.
// ============================================================================================
//* Line 3/8 (Bottom of Trading Range).
//* If the price is below this line and in uptrend it means that it will be very difficult for the price to break this level. 
//* If the price broke this line during the uptrend and staying above during the 10 12 days it means that the price will be above this line 
//* during the 40% of its time moving between this line and 5/8 line.
// ============================================================================================
//* Line 4/8 (Major Support/Resistance Line).
//* It is the major line concerning support and resistance. This leve is the better for the new sell or buy. 
//* It is the strong level of support of the price is above 4/8. It is the fine resistance line if the price is below this 4/8 line. 
// ============================================================================================
extern int P = 64;
extern int MMPeriod = 1440;
extern int StepBack = 0;

extern bool baby.50.percent.lines=true;
extern color baby.50.color = DodgerBlue;

extern bool baby.33.percent.lines=true;
extern color baby.33.color = DarkSlateGray;

extern bool franka.lines = true;
extern color franka.color = Chocolate;

//+------------------------------------------------------------------+
extern bool show.price.info=true;
extern int price.x.offset= -230;//250
extern int price.y.offset= -160;//-190
extern int win = 1;
//+------------------------------------------------------------------+

extern color  mml_clr_m_2_8 = Red;       // [-2]/8
extern color  mml_clr_m_1_8 = DarkOrange;       // [-1]/8
extern color  mml_clr_0_8   = DodgerBlue;        //  [0]/8
extern color  mml_clr_1_8   = Yellow;      //  [1]/8
extern color  mml_clr_2_8   = DeepPink;         //  [2]/8
extern color  mml_clr_3_8   = Lime;       //  [3]/8
extern color  mml_clr_4_8   = DodgerBlue;        //  [4]/8
extern color  mml_clr_5_8   = Lime;       //  [5]/8
extern color  mml_clr_6_8   = DeepPink;         //  [6]/8
extern color  mml_clr_7_8   = Yellow;      //  [7]/8
extern color  mml_clr_8_8   = DodgerBlue;        //  [8]/8
extern color  mml_clr_p_1_8 = DarkOrange;       // [+1]/8
extern color  mml_clr_p_2_8 = Red;       // [+2]/8

extern int    mml_wdth_m_2_8 = 2;        // [-2]/8
extern int    mml_wdth_m_1_8 = 2;       // [-1]/8
extern int    mml_wdth_0_8   = 4;        //  [0]/8
extern int    mml_wdth_1_8   = 2;      //  [1]/8
extern int    mml_wdth_2_8   = 2;         //  [2]/8
extern int    mml_wdth_3_8   = 2;       //  [3]/8
extern int    mml_wdth_4_8   = 4;        //  [4]/8
extern int    mml_wdth_5_8   = 2;       //  [5]/8
extern int    mml_wdth_6_8   = 2;         //  [6]/8
extern int    mml_wdth_7_8   = 2;      //  [7]/8
extern int    mml_wdth_8_8   = 4;        //  [8]/8
extern int    mml_wdth_p_1_8 = 2;       // [+1]/8
extern int    mml_wdth_p_2_8 = 2;       // [+2]/8

extern color  MarkColor   = Blue;
extern int    MarkNumber  = 217;


double  dmml = 0,
        dvtl = 0,
        sum  = 0,
        v1 = 0,
        v2 = 0,
        mn = 0,
        mx = 0,
        x1 = 0,
        x2 = 0,
        x3 = 0,
        x4 = 0,
        x5 = 0,
        x6 = 0,
        y1 = 0,
        y2 = 0,
        y3 = 0,
        y4 = 0,
        y5 = 0,
        y6 = 0,
        octave = 0,
        fractal = 0,
        range   = 0,
        finalH  = 0,
        finalL  = 0,
        mml[13];

string  ln_txt[13],        
        buff_str = "";
        
int     
        bn_v1   = 0,
        bn_v2   = 0,
        OctLinesCnt = 13,
        mml_thk = 8,
        mml_clr[13],
        mml_wdth[13],
        mml_shft = 35,
        nTime = 0,
        CurPeriod = 0,
        nDigits = 0,
        i = 0;
int NewPeriod=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init() {
//---- indicators
   if(MMPeriod>0)
      NewPeriod   = P*MathCeil(MMPeriod/Period());
   else NewPeriod = P;
   
   ln_txt[0]  = "[-2/8]";// "extreme overshoot [-2/8]";// [-2/8]
   ln_txt[1]  = "[-1/8]";// "overshoot [-1/8]";// [-1/8]
   ln_txt[2]  = "[0/8]";// "Ultimate Support - extremely oversold [0/8]";// [0/8]
   ln_txt[3]  = "[1/8]";// "Weak, Place to Stop and Reverse - [1/8]";// [1/8]
   ln_txt[4]  = "[2/8]";// "Pivot, Reverse - major [2/8]";// [2/8]
   ln_txt[5]  = "[3/8]";// "Bottom of Trading Range - [3/8], if 10-12 bars then 40% Time. BUY Premium Zone";//[3/8]
   ln_txt[6]  = "[4/8]";// "Major Support/Resistance Pivotal Point [4/8]- Best New BUY or SELL level";// [4/8]
   ln_txt[7]  = "[5/8]";// "Top of Trading Range - [5/8], if 10-12 bars then 40% Time. SELL Premium Zone";//[5/8]
   ln_txt[8]  = "[6/8]";// "Pivot, Reverse - major [6/8]";// [6/8]
   ln_txt[9]  = "[7/8]";// "Weak, Place to Stop and Reverse - [7/8]";// [7/8]
   ln_txt[10] = "[8/8]";// "Ultimate Resistance - extremely overbought [8/8]";// [8/8]
   ln_txt[11] = "[+1/8]";// "overshoot [+1/8]";// [+1/8]
   ln_txt[12] = "[+2/8]";// "extreme overshoot [+2/8]";// [+2/8]

   //mml_shft = 3;
   mml_thk  = 3;

   // Íà÷àëüíàÿ óñòàíîâêà öâåòîâ óðîâíåé îêòàâ è òîëùèíû ëèíèé
   mml_clr[0]  = mml_clr_m_2_8;   mml_wdth[0] = mml_wdth_m_2_8; // [-2]/8
   mml_clr[1]  = mml_clr_m_1_8;   mml_wdth[1] = mml_wdth_m_1_8; // [-1]/8
   mml_clr[2]  = mml_clr_0_8;     mml_wdth[2] = mml_wdth_0_8;   //  [0]/8
   mml_clr[3]  = mml_clr_1_8;     mml_wdth[3] = mml_wdth_1_8;   //  [1]/8
   mml_clr[4]  = mml_clr_2_8;     mml_wdth[4] = mml_wdth_2_8;   //  [2]/8
   mml_clr[5]  = mml_clr_3_8;     mml_wdth[5] = mml_wdth_3_8;   //  [3]/8
   mml_clr[6]  = mml_clr_4_8;     mml_wdth[6] = mml_wdth_4_8;   //  [4]/8
   mml_clr[7]  = mml_clr_5_8;     mml_wdth[7] = mml_wdth_5_8;   //  [5]/8
   mml_clr[8]  = mml_clr_6_8;     mml_wdth[8] = mml_wdth_6_8;   //  [6]/8
   mml_clr[9]  = mml_clr_7_8;     mml_wdth[9] = mml_wdth_7_8;   //  [7]/8
   mml_clr[10] = mml_clr_8_8;     mml_wdth[10]= mml_wdth_8_8;   //  [8]/8
   mml_clr[11] = mml_clr_p_1_8;   mml_wdth[11]= mml_wdth_p_1_8; // [+1]/8
   mml_clr[12] = mml_clr_p_2_8;   mml_wdth[12]= mml_wdth_p_2_8; // [+2]/8
   
   
//----
   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit() {
//---- TODO: add your code here
Comment(" ");   
for(i=0;i<OctLinesCnt;i++) {
    buff_str = "mml"+i;
    ObjectDelete(buff_str);
    buff_str = "mml_txt"+i;
    ObjectDelete(buff_str);
    buff_str = "MML_LatestCulcBar";
    ObjectDelete(buff_str);
    }
//----
  ObjectsDeleteAll(0,OBJ_HLINE);
  ObjectsDeleteAll(0,OBJ_TEXT);
  ObjectsDeleteAll(0,OBJ_LABEL);
  ObjectDelete("price"); 

  ObjectsDeleteAll(win,OBJ_HLINE);
  ObjectsDeleteAll(win,OBJ_TEXT);
  ObjectsDeleteAll(win,OBJ_LABEL);


//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {

//---- TODO: add your code here

//+------------------------------------------------------------------+   
   double H2DAILY = iMA(Symbol(),PERIOD_D1,1,0,MODE_HIGH,PRICE_HIGH,0);
   double LDAILY = iMA(Symbol(),PERIOD_D1,1,0,MODE_LOW,PRICE_LOW,0);
//+------------------------------------------------------------------+   
   double price = iMA(Symbol(),0,1,0,0,PRICE_CLOSE,0);
   double V3 = iRSI(Symbol(),0,2,PRICE_MEDIAN,0); 
//+------------------------------------------------------------------+   
   double week.high = iMA(Symbol(),PERIOD_W1,1,0,MODE_HIGH,PRICE_HIGH,0);
   double week.low = iMA(Symbol(),PERIOD_W1,1,0,MODE_LOW,PRICE_LOW,0);      
//+------------------------------------------------------------------+
   double  next.sup = 0, next.res = 0;
//+------------------------------------------------------------------+
   //Time for next bar: 57 min 31 sec
	double q;
   int m,s,k;
   m=Time[0]+Period()*60-CurTime();
   q=m/60.0;
   s=m%60;
   m=(m-m%60)/60;
   //Comment( m + " minutes " + s + " seconds left to bar end");
//+------------------------------------------------------------------+


if( (nTime != Time[0]) || (CurPeriod != Period()) ) {
   
  //price
   bn_v1 = Lowest(NULL,0,MODE_LOW,NewPeriod+StepBack,StepBack);
   bn_v2 = Highest(NULL,0,MODE_HIGH,NewPeriod+StepBack,StepBack);

   v1 = Low[bn_v1];
   v2 = High[bn_v2];

//determine fractal.....
   if( v2<=250000 && v2>25000 )
   fractal=100000;
   else
     if( v2<=25000 && v2>2500 )
     fractal=10000;
     else
       if( v2<=2500 && v2>250 )
       fractal=1000;
       else
         if( v2<=250 && v2>25 )
         fractal=100;
         else
           if( v2<=25 && v2>12.5 )
           fractal=12.5;
           else
             if( v2<=12.5 && v2>6.25)
             fractal=12.5;
             else
               if( v2<=6.25 && v2>3.125 )
               fractal=6.25;
               else
                 if( v2<=3.125 && v2>1.5625 )
                 fractal=3.125;
                 else
                   if( v2<=1.5625 && v2>0.390625 )
                   fractal=1.5625;
                   else
                     if( v2<=0.390625 && v2>0)
                     fractal=0.1953125;
      
   range=(v2-v1);
   sum=MathFloor(MathLog(fractal/range)/MathLog(2));
   octave=fractal*(MathPow(0.5,sum));
   mn=MathFloor(v1/octave)*octave;
   if( (mn+octave)>v2 )
   mx=mn+octave; 
   else
     mx=mn+(2*octave);


// calculating xx
//x2
    if( (v1>=(3*(mx-mn)/16+mn)) && (v2<=(9*(mx-mn)/16+mn)) )
    x2=mn+(mx-mn)/2; 
    else x2=0;
//x1
    if( (v1>=(mn-(mx-mn)/8))&& (v2<=(5*(mx-mn)/8+mn)) && (x2==0) )
    x1=mn+(mx-mn)/2; 
    else x1=0;

//x4
    if( (v1>=(mn+7*(mx-mn)/16))&& (v2<=(13*(mx-mn)/16+mn)) )
    x4=mn+3*(mx-mn)/4; 
    else x4=0;

//x5
    if( (v1>=(mn+3*(mx-mn)/8))&& (v2<=(9*(mx-mn)/8+mn))&& (x4==0) )
    x5=mx; 
    else  x5=0;

//x3
    if( (v1>=(mn+(mx-mn)/8))&& (v2<=(7*(mx-mn)/8+mn))&& (x1==0) && (x2==0) && (x4==0) && (x5==0) )
    x3=mn+3*(mx-mn)/4; 
    else x3=0;

//x6
    if( (x1+x2+x3+x4+x5) ==0 )
    x6=mx; 
    else x6=0;

     finalH = x1+x2+x3+x4+x5+x6;
// calculating yy
//y1
    if( x1>0 )
    y1=mn; 
    else y1=0;

//y2
    if( x2>0 )
    y2=mn+(mx-mn)/4; 
    else y2=0;

//y3
    if( x3>0 )
    y3=mn+(mx-mn)/4; 
    else y3=0;

//y4
    if( x4>0 )
    y4=mn+(mx-mn)/2; 
    else y4=0;

//y5
    if( x5>0 )
    y5=mn+(mx-mn)/2; 
    else y5=0;

//y6
    if( (finalH>0) && ((y1+y2+y3+y4+y5)==0) )
    y6=mn; 
    else y6=0;

    finalL = y1+y2+y3+y4+y5+y6;

    for( i=0; i<OctLinesCnt; i++) {
         mml[i] = 0;
         }
         
   dmml = (finalH-finalL)/8;

   mml[0] =(finalL-dmml*2); //-2/8
   for( i=1; i<OctLinesCnt; i++) {
        mml[i] = mml[i-1] + dmml;
        }
   for( i=0; i<OctLinesCnt; i++ ){
        buff_str = "mml"+i;
        if(ObjectFind(buff_str) == -1) {
           ObjectCreate(buff_str, OBJ_HLINE , 0,Time[0], mml[i]);
           ObjectSet(buff_str, OBJPROP_STYLE, STYLE_DOT);
           ObjectSet(buff_str, OBJPROP_COLOR, mml_clr[i]);
           ObjectSet(buff_str, OBJPROP_WIDTH, mml_wdth[i]);
       ObjectMove(buff_str, 0, Time[0],  mml[i]);
           }
        else {
      ObjectMove(buff_str, 0, Time[0],  mml[i]);
           }
             
        buff_str = "mml_txt"+i;
        if(ObjectFind(buff_str) == -1) {
           ObjectCreate(buff_str, OBJ_TEXT, 0, Time[mml_shft], mml_shft);
           ObjectSetText(buff_str, ln_txt[i]+" "+DoubleToStr(mml[i],Digits), 11, "Verdana", mml_clr[i]);
           ObjectMove(buff_str, 0, Time[37],  mml[i]);
           }
        else {
           ObjectMove(buff_str, 0, Time[37],  mml[i]);
           }
        } // for( i=1; i<=OctLinesCnt; i++ ){

   nTime    = Time[0];
   CurPeriod= Period();
   
   string buff_str = "MML_LatestCulcBar";
   if(ObjectFind(buff_str) == -1) {
      ObjectCreate(buff_str, OBJ_ARROW,0, Time[StepBack], Low[StepBack]-2*Point );
      ObjectSet(buff_str, OBJPROP_ARROWCODE, MarkNumber);
      ObjectSet(buff_str, OBJPROP_COLOR, MarkColor);
      }
   else {
      ObjectMove(buff_str, 0, Time[StepBack], Low[StepBack]-2*Point );
      }

   }
//+------------------------------------------------------------------+ 
  double sup.res.frame.size=(fractal/(dmml/8));
   next.res = (MathCeil(price/(fractal/sup.res.frame.size))*(fractal/sup.res.frame.size));
   next.sup = (MathFloor(price/(fractal/(sup.res.frame.size)))*(fractal/(sup.res.frame.size)));
//+------------------------------------------------------------------+ 
//setting up our baby 4/8th & baby franka 1/3rd & 2/3rd lines 
double b202,b204;
double b222,b224,b226;
double b112,b114,b116;
double b02,b04,b06;
double b12,b14,b16;
double b22,b24,b26;
double b32,b34,b36;
double b42,b44,b46;
double b52,b54,b56;
double b62,b64,b66;
double b72,b74,b76;
double b82,b84,b86;
double b92,b94,b96;
double b902,b904;
//+------------------------------------------------------------------+
double x0=mml[0];
double x1=mml[1];
double x2=mml[2];
double x3=mml[3];
double x4=mml[4];
double x5=mml[5];
double x6=mml[6];
double x7=mml[7];
double x8=mml[8];
double x9=mml[9];
double x10=mml[10];
double x11=mml[11];
double x12=mml[12];
//+------------------------------------------------------------------+
b202 = x0-((x1-x0)/3);
b204 = x0-((x1-x0)/2);

b222 = ((x1-x0)/3)+x0;
b224 = ((x1-x0)/2)+x0;
b226 = ((x1-x0)/3)*2+x0;

b112 = ((x2-x1)/3)+x1;
b114 = ((x2-x1)/2)+x1;
b116 = ((x2-x1)/3)*2+x1;

b02 = ((x3-x2)/3)+x2;
b04 = ((x3-x2)/2)+x2;
b06 = ((x3-x2)/3)*2+x2;

b12 = ((x4-x3)/3)+x3;
b14 = ((x4-x3)/2)+x3;
b16 = ((x4-x3)/3)*2+x3;

b22 = ((x5-x4)/3)+x4;
b24 = ((x5-x4)/2)+x4;
b26 = ((x5-x4)/3)*2+x4;

b32 = ((x6-x5)/3)+x5;
b34 = ((x6-x5)/2)+x5;
b36 = ((x6-x5)/3)*2+x5;

b42 = ((x7-x6)/3)+x6;
b44 = ((x7-x6)/2)+x6;
b46 = ((x7-x6)/3)*2+x6;

b52 = ((x8-x7)/3)+x7;
b54 = ((x8-x7)/2)+x7;
b56 = ((x8-x7)/3)*2+x7;

b62 = ((x9-x8)/3)+x8;
b64 = ((x9-x8)/2)+x8;
b66 = ((x9-x8)/3)*2+x8;

b72 = ((x10-x9)/3)+x9;
b74 = ((x10-x9)/2)+x9;
b76 = ((x10-x9)/3)*2+x9;

b82 = ((x11-x10)/3)+x10;
b84 = ((x11-x10)/2)+x10;
b86 = ((x11-x10)/3)*2+x10;

b92 = ((x12-x11)/3)+x11;
b94 = ((x12-x11)/2)+x11;
b96 = ((x12-x11)/3)*2+x11;

b902 = x12+((x1-x0)/3);
b904 = x12+((x1-x0)/2);

//+------------------------------------------------------------------+   
double franka.plus = mml[10] + ((mml[10] - mml[2])*1/3);
double franka.minus = mml[2] - ((mml[10] - mml[2])*1/3);
//+------------------------------------------------------------------+   
double one.third = mml[2] + ((mml[10] - mml[2])*1/3);
double two.third = mml[2] + ((mml[10] - mml[2])*2/3);
//+------------------------------------------------------------------+ 
//+------------------------------------------------------------------+
if (franka.lines) {
ObjectCreate("33.33% Frame Line", OBJ_HLINE,0, CurTime(),one.third); ObjectSet("33.33% Frame Line",OBJPROP_COLOR,franka.color);
   ObjectSet("33.33% Frame Line",OBJPROP_STYLE,STYLE_DASHDOTDOT); ObjectSet("33.33% Frame Line",OBJPROP_WIDTH,3);
   ObjectCreate("franka.33_Text", OBJ_TEXT,0, Time[37],one.third); ObjectSetText("franka.33_Text"," 33% Frame Line", 11, "Verdana", franka.color);
   
   ObjectCreate("66.66% Frame Line", OBJ_HLINE,0, CurTime(),two.third); ObjectSet("66.66% Frame Line",OBJPROP_COLOR,franka.color);
   ObjectSet("66.66% Frame Line",OBJPROP_STYLE,STYLE_DASHDOTDOT); ObjectSet("66.66% Frame Line",OBJPROP_WIDTH,3);
   ObjectCreate("franka.66_Text", OBJ_TEXT,0, Time[37],two.third); ObjectSetText("franka.66_Text"," 66% Frame Line", 11, "Verdana", franka.color);
         
   ObjectCreate("plus 33.33% Frame Shift Line", OBJ_HLINE,0, CurTime(),franka.plus); ObjectSet("plus 33.33% Frame Shift Line",OBJPROP_COLOR,franka.color);
   ObjectSet("plus 33.33% Frame Shift Line",OBJPROP_STYLE,STYLE_DASHDOTDOT); ObjectSet("plus 33.33% Frame Shift Line",OBJPROP_WIDTH,3);
   ObjectCreate("franka.plus_Text", OBJ_TEXT,0, Time[37],franka.plus); ObjectSetText("franka.plus_Text","+33% Frame Shift Line "+DoubleToStr(franka.plus,Digits), 11, "Verdana Bold", franka.color);
   ObjectCreate("free.plus_Text", OBJ_TEXT,0, Time[37],franka.plus+Point*270); ObjectSetText("free.plus_Text","This Indicator is FREE from www.forex-tsd.com ", 20, "Verdana", White);
   
   ObjectCreate("minus 33.33% Frame Shift Line", OBJ_HLINE,0, CurTime(),franka.minus); ObjectSet("minus 33.33% Frame Shift Line",OBJPROP_COLOR,franka.color);
   ObjectSet("minus 33.33% Frame Shift Line",OBJPROP_STYLE,STYLE_DASHDOTDOT); ObjectSet("minus 33.33% Frame Shift Line",OBJPROP_WIDTH,3);
   ObjectCreate("franka.minus_Text", OBJ_TEXT,0, Time[37],franka.minus); ObjectSetText("franka.minus_Text","-33% Frame Shift Line "+DoubleToStr(franka.minus,Digits), 11, "Verdana Bold", franka.color);
   ObjectCreate("free.minus_Text", OBJ_TEXT,0, Time[37],franka.minus-Point*150); ObjectSetText("free.minus_Text","This Indicator is FREE from www.forex-tsd.com ", 20, "Verdana", White);
   }

if (baby.50.percent.lines) {
   ObjectCreate("b204 50% Line", OBJ_HLINE,0, CurTime(),b204); ObjectSet("b204 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b204 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b204 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b224 50% Line", OBJ_HLINE,0, CurTime(),b224); ObjectSet("b224 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b224 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b224 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b114 50% Line", OBJ_HLINE,0, CurTime(),b114); ObjectSet("b114 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b114 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b114 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b04 50% Line", OBJ_HLINE,0, CurTime(),b04); ObjectSet("b04 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b04 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b04 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b14 50% Line", OBJ_HLINE,0, CurTime(),b14); ObjectSet("b14 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b14 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b14 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b24 50% Line", OBJ_HLINE,0, CurTime(),b24); ObjectSet("b24 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b24 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b24 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b34 50% Line", OBJ_HLINE,0, CurTime(),b34); ObjectSet("b34 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b34 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b34 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b44 50% Line", OBJ_HLINE,0, CurTime(),b44); ObjectSet("b44 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b44 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b44 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b54 50% Line", OBJ_HLINE,0, CurTime(),b54); ObjectSet("b54 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b54 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b54 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b64 50% Line", OBJ_HLINE,0, CurTime(),b64); ObjectSet("b64 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b64 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b64 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b74 50% Line", OBJ_HLINE,0, CurTime(),b74); ObjectSet("b74 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b74 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b74 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b84 50% Line", OBJ_HLINE,0, CurTime(),b84); ObjectSet("b84 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b84 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b84 50% Line",OBJPROP_WIDTH,0);

   ObjectCreate("b94 50% Line", OBJ_HLINE,0, CurTime(),b94); ObjectSet("b94 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b94 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b94 50% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b904 50% Line", OBJ_HLINE,0, CurTime(),b904); ObjectSet("b904 50% Line",OBJPROP_COLOR,baby.50.color);
   ObjectSet("b904 50% Line",OBJPROP_STYLE,STYLE_DASH); ObjectSet("b904 50% Line",OBJPROP_WIDTH,0);
   }
//End of fifty.percent.line
//+------------------------------------------------------------------+
if (baby.33.percent.lines) {
   ObjectCreate("b202 66.66% Line", OBJ_HLINE,0, CurTime(),b202); ObjectSet("b202 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b202 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b202 66.66% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b222 33.33% Line", OBJ_HLINE,0, CurTime(),b222); ObjectSet("b222 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b222 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b222 33.33% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b226 66.66% Line", OBJ_HLINE,0, CurTime(),b226); ObjectSet("b226 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b226 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b226 66.66% Line",OBJPROP_WIDTH,0);
  
   ObjectCreate("b112 33.33% Line", OBJ_HLINE,0, CurTime(),b112); ObjectSet("b112 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b112 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b112 33.33% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b116 66.66% Line", OBJ_HLINE,0, CurTime(),b116); ObjectSet("b116 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b116 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b116 66.66% Line",OBJPROP_WIDTH,0);
  
   ObjectCreate("b02 33.33% Line", OBJ_HLINE,0, CurTime(),b02); ObjectSet("b02 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b02 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b02 33.33% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b06 66.66% Line", OBJ_HLINE,0, CurTime(),b06); ObjectSet("b06 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b06 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b06 66.66% Line",OBJPROP_WIDTH,0);
  
   ObjectCreate("b12 33.33% Line", OBJ_HLINE,0, CurTime(),b12); ObjectSet("b12 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b12 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b12 33.33% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b16 66.66% Line", OBJ_HLINE,0, CurTime(),b16); ObjectSet("b16 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b16 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b16 66.66% Line",OBJPROP_WIDTH,0);
  
   ObjectCreate("b22 33.33% Line", OBJ_HLINE,0, CurTime(),b22); ObjectSet("b22 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b22 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b22 33.33% Line",OBJPROP_WIDTH,0);
   
   /*ObjectCreate("b26_Line", OBJ_HLINE,0, CurTime(),b26); ObjectSet("b26_Line",OBJPROP_COLOR,DarkSlateGray);
   ObjectSet("b26_Line",OBJPROP_STYLE,STYLE_SOLID); ObjectSet("b26_Line",OBJPROP_WIDTH,0);*/
  
   ObjectCreate("b32 33.33% Line", OBJ_HLINE,0, CurTime(),b32); ObjectSet("b32 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b32 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b32 33.33% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b36 66.66% Line", OBJ_HLINE,0, CurTime(),b36); ObjectSet("b36 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b36 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b36 66.66% Line",OBJPROP_WIDTH,0);
  
   ObjectCreate("b42 33.33% Line", OBJ_HLINE,0, CurTime(),b42); ObjectSet("b42 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b42 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b42 33.33% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b46 66.66% Line", OBJ_HLINE,0, CurTime(),b46); ObjectSet("b46 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b46 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b46 66.66% Line",OBJPROP_WIDTH,0);
  
   /*ObjectCreate("b52_Line", OBJ_HLINE,0, CurTime(),b52); ObjectSet("b52_Line",OBJPROP_COLOR,DarkSlateGray);
   ObjectSet("b52_Line",OBJPROP_STYLE,STYLE_SOLID); ObjectSet("b52_Line",OBJPROP_WIDTH,0);*/
   
   ObjectCreate("b56 66.66% Line", OBJ_HLINE,0, CurTime(),b56); ObjectSet("b56 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b56 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b56 66.66% Line",OBJPROP_WIDTH,0);
  
   ObjectCreate("b62 33.33% Line", OBJ_HLINE,0, CurTime(),b62); ObjectSet("b62 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b62 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b62 33.33% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b66 66.66% Line", OBJ_HLINE,0, CurTime(),b66); ObjectSet("b66 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b66 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b66 66.66% Line",OBJPROP_WIDTH,0);
  
   ObjectCreate("b72 33.33% Line", OBJ_HLINE,0, CurTime(),b72); ObjectSet("b72 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b72 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b72 33.33% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b76 66.66% Line", OBJ_HLINE,0, CurTime(),b76); ObjectSet("b76 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b76 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b76 66.66% Line",OBJPROP_WIDTH,0);
  
   ObjectCreate("b82 33.33% Line", OBJ_HLINE,0, CurTime(),b82); ObjectSet("b82 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b82 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b82 33.33% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b86 66.66% Line", OBJ_HLINE,0, CurTime(),b86); ObjectSet("b86 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b86 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b86 66.66% Line",OBJPROP_WIDTH,0);
  
   ObjectCreate("b92 33.33% Line", OBJ_HLINE,0, CurTime(),b92); ObjectSet("b92 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b92 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b92 33.33% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b96 66.66% Line", OBJ_HLINE,0, CurTime(),b96); ObjectSet("b96 66.66% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b96 66.66% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b96 66.66% Line",OBJPROP_WIDTH,0);
   
   ObjectCreate("b902 33.33% Line", OBJ_HLINE,0, CurTime(),b902); ObjectSet("b902 33.33% Line",OBJPROP_COLOR,baby.33.color);
   ObjectSet("b902 33.33% Line",OBJPROP_STYLE,STYLE_DOT); ObjectSet("b902 33.33% Line",OBJPROP_WIDTH,0);
   }
   //End of Babylines
   
//+------------------------------------------------------------------+
if (show.price.info) {     
   ObjectCreate("X630", OBJ_LABEL, win, 0, 0);//HiLow LABEL
   ObjectSetText("X630",Symbol(), 30, "Arial Bold", Gray);
   ObjectSet("X630", OBJPROP_CORNER, 0);
   ObjectSet("X630", OBJPROP_XDISTANCE, 760+price.x.offset);
   ObjectSet("X630", OBJPROP_YDISTANCE, 160+price.y.offset);

   ObjectCreate("X629", OBJ_LABEL, win, 0, 0);//HiLow LABEL
   ObjectSetText("X629",DoubleToStr(next.res,Digits), 15, "Arial Bold", Blue);
   ObjectSet("X629", OBJPROP_CORNER, 0);
   ObjectSet("X629", OBJPROP_XDISTANCE, 770+price.x.offset);
   ObjectSet("X629", OBJPROP_YDISTANCE, 197+price.y.offset);
   
   ObjectCreate("X629b", OBJ_LABEL, win, 0, 0);//HiLow LABEL
   ObjectSetText("X629b",DoubleToStr(next.sup,Digits), 15, "Arial Bold", Magenta);
   ObjectSet("X629b", OBJPROP_CORNER, 0);
   ObjectSet("X629b", OBJPROP_XDISTANCE, 770+price.x.offset);
   ObjectSet("X629b", OBJPROP_YDISTANCE, 260+price.y.offset);                 
                     
   ObjectCreate("X631", OBJ_LABEL, win, 0, 0);//HiLow LABEL
   ObjectSetText("X631",DoubleToStr(price,Digits), 40, "Arial Bold", LightGray);
   ObjectSet("X631", OBJPROP_CORNER, 0);
   ObjectSet("X631", OBJPROP_XDISTANCE, 765+price.x.offset);
   ObjectSet("X631", OBJPROP_YDISTANCE, 210+price.y.offset);         
 
   ObjectCreate("X632", OBJ_LABEL, win, 0, 0);
   ObjectSetText("X632",DoubleToStr(H2DAILY,Digits), 15, "Arial Bold", LimeGreen);
   ObjectSet("X632", OBJPROP_CORNER, 0);
   ObjectSet("X632", OBJPROP_XDISTANCE, 860+price.x.offset);
   ObjectSet("X632", OBJPROP_YDISTANCE, 197+price.y.offset);
                     
   ObjectCreate("X634", OBJ_LABEL, win, 0, 0);
   ObjectSetText("X634",DoubleToStr(LDAILY,Digits), 15, "Arial Bold", Crimson);
   ObjectSet("X634", OBJPROP_CORNER, 0);
   ObjectSet("X634", OBJPROP_XDISTANCE, 860+price.x.offset);
   ObjectSet("X634", OBJPROP_YDISTANCE, 260+price.y.offset);    
   
  /* ObjectCreate("X634a", OBJ_LABEL, win, 0, 0);
   ObjectSetText("X634a",DoubleToStr(s,Digits-4), 15, "Arial Bold", Yellow);
   ObjectSet("X634a", OBJPROP_CORNER, 0);
   ObjectSet("X634a", OBJPROP_XDISTANCE, 900+price.x.offset);
   ObjectSet("X634a", OBJPROP_YDISTANCE, 280+price.y.offset);*/
   
   ObjectCreate("X634b", OBJ_LABEL, win, 0, 0);
   ObjectSetText("X634b",DoubleToStr(m,Digits-4)+" : "+DoubleToStr(s,Digits-4), 15, "Arial Bold", Yellow);
   ObjectSet("X634b", OBJPROP_CORNER, 0);
   ObjectSet("X634b", OBJPROP_XDISTANCE, 870+price.x.offset);
   ObjectSet("X634b", OBJPROP_YDISTANCE, 280+price.y.offset); 
   
   ObjectCreate("t634b", OBJ_LABEL, win, 0, 0);
   ObjectSetText("t634b","Time Left", 15, "Arial Bold", Gray);
   ObjectSet("t634b", OBJPROP_CORNER, 0);
   ObjectSet("t634b", OBJPROP_XDISTANCE, 765+price.x.offset);
   ObjectSet("t634b", OBJPROP_YDISTANCE, 280+price.y.offset);         
   }
//+------------------------------------------------------------------+   
   
//+------------------------------------------------------------------+  
  ObjectsRedraw();
//---- End Of Program
  return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

Series array that contains open time of each bar
Series array that contains the lowest prices of each bar
Series array that contains the highest prices of each bar


Indicator Curves created:


Indicators Used:

Moving average indicator
Relative strength index


Custom Indicators Used:

Order Management characteristics:

Other Features: