//+------------------------------------------------------------------+
//|                                               mn Shaggy piv .mq4 |
//+------------------------------------------------------------------+
#property copyright "mn"
#property link      ""

#property indicator_chart_window

//--------------------------------------------------------------------
int init()
{
 for(int i = 1; i < 3; i++)
  { 
   ObjectCreate("Piv"+i, OBJ_TREND, 0, 0, 0, 0);
   ObjectSet("Piv"+i, OBJPROP_STYLE, STYLE_SOLID);
   ObjectSet("Piv"+i, OBJPROP_WIDTH, 1);
   ObjectSet("Piv"+i, OBJPROP_COLOR, White);
   ObjectSet("Piv"+i, OBJPROP_RAY, false);

   ObjectCreate("Fib1"+i, OBJ_TREND, 0, 0, 0, 0);
   ObjectSet("Fib1"+i, OBJPROP_STYLE, STYLE_SOLID);
   ObjectSet("Fib1"+i, OBJPROP_WIDTH, 1);
   ObjectSet("Fib1"+i, OBJPROP_COLOR, White);
   ObjectSet("Fib1"+i, OBJPROP_RAY, false);
   
   ObjectCreate("Fib2"+i, OBJ_TREND, 0, 0, 0, 0);
   ObjectSet("Fib2"+i, OBJPROP_STYLE, STYLE_SOLID);
   ObjectSet("Fib2"+i, OBJPROP_WIDTH, 1);
   ObjectSet("Fib2"+i, OBJPROP_COLOR, White);
   ObjectSet("Fib2"+i, OBJPROP_RAY, false);
   
  } 
   return(0);
}

//--------------------------------------------------------------------
int deinit()
{
  ObjectsDeleteAll(0, 2);
  
   return(0);
}

//--------------------------------------------------------------------
int start()
{
   double mRange = 0, mHigh = 0, mLow = 0, mPiv = 0, mFib1 = 0, mFib2 = 0;
   double mRange1 = 0, mHigh1 = 0, mLow1 = 0, mPiv1 = 0, mFib11 = 0, mFib21 = 0;
   datetime mTime = 0;
   
   if(Time[0] > mTime)
     {
         mHigh = High[0]; 
         mLow = Low[0];  

         mPiv = ( mHigh + mLow) / 2;   
         mRange = mHigh - mLow;         
         mFib1 = mLow + mRange * 0.382;                           
         mFib2 = mLow + mRange * 0.618; 
         
         ObjectSet("Piv1", OBJPROP_PRICE1, mPiv);
         ObjectSet("Piv1", OBJPROP_PRICE2, mPiv);
         ObjectSet("Piv1", OBJPROP_TIME1, Time[0]);
         ObjectSet("Piv1", OBJPROP_TIME2, Time[1]);

         ObjectSet("Fib11", OBJPROP_PRICE1, mFib1);
         ObjectSet("Fib11", OBJPROP_PRICE2, mFib1);
         ObjectSet("Fib11", OBJPROP_TIME1, Time[0]);
         ObjectSet("Fib11", OBJPROP_TIME2, Time[1]);

         ObjectSet("Fib21", OBJPROP_PRICE1, mFib2);
         ObjectSet("Fib21", OBJPROP_PRICE2, mFib2);
         ObjectSet("Fib21", OBJPROP_TIME1, Time[0]);
         ObjectSet("Fib21", OBJPROP_TIME2, Time[1]);

         mHigh1 = High[1]; 
         mLow1 = Low[1];  

         mPiv1 = ( mHigh1 + mLow1) / 2;   
         mRange1 = mHigh1 - mLow1;         
         mFib11 = mLow1 + mRange1 * 0.382;                           
         mFib21 = mLow1 + mRange1 * 0.618; 
         
         ObjectSet("Piv2", OBJPROP_PRICE1, mPiv1);
         ObjectSet("Piv2", OBJPROP_PRICE2, mPiv1);
         ObjectSet("Piv2", OBJPROP_TIME1, Time[1]);
         ObjectSet("Piv2", OBJPROP_TIME2, Time[2]);
         
         ObjectSet("Fib12", OBJPROP_PRICE1, mFib11);
         ObjectSet("Fib12", OBJPROP_PRICE2, mFib11);
         ObjectSet("Fib12", OBJPROP_TIME1, Time[1]);
         ObjectSet("Fib12", OBJPROP_TIME2, Time[2]);

         ObjectSet("Fib22", OBJPROP_PRICE1, mFib21);
         ObjectSet("Fib22", OBJPROP_PRICE2, mFib21);
         ObjectSet("Fib22", OBJPROP_TIME1, Time[1]);
         ObjectSet("Fib22", OBJPROP_TIME2, Time[2]);
         
         mTime = Time[0];
      } 

   return(0);
}

