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