//+------------------------------------------------------------------+
//| SRDC Fibo AHA V0_1.mq4 |
//| Copyright ?2006, AHA |
//| |
//+------------------------------------------------------------------+
#property copyright "Copyright ?2006, AHA"
#property link ""
#property indicator_chart_window
extern color dailyfibocolor=Purple;
string fiboobjname="Daily Fibo from SRDC Fibo AHA";
bool startup;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
startup=true;
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
void drawdailyfibo()
{
if(TimeDay(Time[0])==TimeDay(Time[1])&&!startup) return;
ObjectDelete(fiboobjname);
datetime aday=iTime(NULL,PERIOD_D1,1);
int bar=iBarShift(NULL,0,aday);
double dailyhigh=0.0, dailylow=100000.0;
int highbar, lowbar, i=bar;
while(TimeDay(iTime(NULL,0,i))==TimeDay(iTime(NULL,0,bar)))
{
if(iHigh(NULL,0,i)>dailyhigh)
{
dailyhigh=iHigh(NULL,0,i);
highbar=i;
}
if(iLow(NULL,0,i)<dailylow)
{
dailylow=iLow(NULL,0,i);
lowbar=i;
}
i--;
}
if (highbar>lowbar)
ObjectCreate(fiboobjname, OBJ_FIBO, 0, Time[lowbar], dailylow, Time[highbar], dailyhigh);
else if (highbar<lowbar)
ObjectCreate(fiboobjname, OBJ_FIBO, 0, Time[highbar], dailyhigh, Time[lowbar], dailylow);
else
{
if (Close[highbar]>Open[highbar])
ObjectCreate(fiboobjname, OBJ_FIBO, 0, Time[highbar], dailyhigh, Time[lowbar], dailylow);
else if (Close[highbar]>Open[highbar])
ObjectCreate(fiboobjname, OBJ_FIBO, 0, Time[lowbar], dailylow, Time[highbar], dailyhigh);
}
ObjectSet(fiboobjname, OBJPROP_LEVELCOLOR, dailyfibocolor);
ObjectSet(fiboobjname, OBJPROP_FIBOLEVELS, 11);
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+1, 0.236);
ObjectSetFiboDescription(fiboobjname,1,"23.6");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+2, 0.382);
ObjectSetFiboDescription(fiboobjname,2,"38.2");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+3, 0.50);
ObjectSetFiboDescription(fiboobjname,3,"50.0");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+4, 0.618);
ObjectSetFiboDescription(fiboobjname,4,"61.8");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+5, 0.764);
ObjectSetFiboDescription(fiboobjname,5,"76.4");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+6, 1.000);
ObjectSetFiboDescription(fiboobjname,6,"100.0");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+7, 1.214);
ObjectSetFiboDescription(fiboobjname,7,"121.4");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+8, 1.382);
ObjectSetFiboDescription(fiboobjname,8,"138.2");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+9, 1.618);
ObjectSetFiboDescription(fiboobjname,9,"161.8");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+10, 2.000);
ObjectSetFiboDescription(fiboobjname,10,"200.0");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+11, 2.618);
ObjectSetFiboDescription(fiboobjname,11,"261.8");
ObjectsRedraw();
return;
}//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//int counted_bars=IndicatorCounted();
//----
drawdailyfibo();
startup=false;
//----
return(0);
}
//+------------------------------------------------------------------+
Comments