Author: Copyright � 2006, Eli hayun
Fib SR
Price Data Components
Series array that contains close prices for each barSeries array that contains the lowest prices of each barSeries array that contains the highest prices of each bar
0 Views
0 Downloads
0 Favorites
Fib SR
//+------------------------------------------------------------------+
//|                                                       Fib SR.mq4 |
//|                                      Copyright © 2006, Eli hayun |
//|                                          http://www.elihayun.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Eli hayun"
#property link      "http://www.elihayun.com"

#property indicator_chart_window

#define FIB_SUP1 "FIB_SUP_1"
#define FIB_SUP2 "FIB_SUP_2"
#define FIB_RES1 "FIB_RES_1"
#define FIB_RES2 "FIB_RES_2"

extern color clrSup1 = DeepSkyBlue;
extern color clrSup2 = Aqua;
extern color clrRes1 = Coral;
extern color clrRes2 = Tan;

double A, B, C, D, E;
double A1, B1, D1, E1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
      Recalc();

      ObjectDelete(FIB_SUP1);
      ObjectDelete(FIB_SUP2);
      ObjectDelete(FIB_RES1);
      ObjectDelete(FIB_RES2);
      
         
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   static datetime dt = 0;
   if (dt != iTime(NULL, PERIOD_D1,0))
   {
      Recalc();
      dt = iTime(NULL, PERIOD_D1,0);
   }  
   if (NewBar())
   {
      ObjectDelete(FIB_SUP1);
      ObjectDelete(FIB_SUP2);
      ObjectDelete(FIB_RES1);
      ObjectDelete(FIB_RES2);

      ObjectCreate(FIB_SUP1, OBJ_RECTANGLE, 0, iTime(NULL, PERIOD_D1, 0), B, Time[0], B1);  ObjectSet(FIB_SUP1, OBJPROP_COLOR, clrSup1);    
      ObjectCreate(FIB_SUP2, OBJ_RECTANGLE, 0, iTime(NULL, PERIOD_D1, 0), A, Time[0], A1);  ObjectSet(FIB_SUP2, OBJPROP_COLOR, clrSup2);    
      ObjectCreate(FIB_RES1, OBJ_RECTANGLE, 0, iTime(NULL, PERIOD_D1, 0), D, Time[0], D1);  ObjectSet(FIB_RES1, OBJPROP_COLOR, clrRes1);    
      ObjectCreate(FIB_RES2, OBJ_RECTANGLE, 0, iTime(NULL, PERIOD_D1, 0), E, Time[0], E1);  ObjectSet(FIB_RES2, OBJPROP_COLOR, clrRes2);    
   }

   return(0);
  }
//+------------------------------------------------------------------+

bool NewBar()
{
   static datetime dt = 0;
   if (dt != Time[0])
   {
      dt = Time[0];
      return(true);
   }
   return(false);
}

void Recalc()
{
      double C = iClose(NULL, PERIOD_D1, 1); // Yesterday close
      double L = iLow(NULL, PERIOD_D1, 1); // Yesterday Low
      double H = iHigh(NULL, PERIOD_D1, 1); // Yesterday High
      
      double R = (H-L);
      
      C = (H+L+C) / 3;
      D = (R/2) + C;
      B = C - (R/2);
      E = R + C;
      A = C - R;
      
      B1 = C - ( R * 0.618 );
      A1 = C - ( R * 1.382 );
      
      D1 = C + ( R * 0.618 );
      E1 = C + ( R * 1.382 );
}

Comments