ФИБО Уровни для ДНЕВНЫХ интервалов

 

Добрый день.
В кодобазе есть не мало замечательных инструментов а именно "Авто фибо уровни" Но у них есть одинаковая одна проблема.
Если наносить их на дневной график D1 то получается бред !
Неужели нет авто-фибо адаптированного для дневных графиков.

 

потому что фибо сетку терминал почему то удаляет через раз, вот и остается лишнее с мелких ТФ

Вот вам индикатор мульти ТФ автофибо, первые три переменые - это параметры ЗЗ

параметр таймфреймов надо трактовать так :

1) если стоит "0" работаем с текущим ТФ

2)если "1" то ТФ на шаг старше текущего

3) если "2" то на два шага старше текущего ТФ и так до "4" включительно

4) если ставить "5", "15","30" и далее то он будет покзывать данные с жестко прописаного ТФ

Удачки :)

//+------------------------------------------------------------------+
//|                                                    Auto_fibo.mq4 |
//|                                Copyright © 2009, Xrust Solution. |
//|                                       http://www.opmarketvol.com |
//|                                                  xrustx@gmail.com|
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Xrust Solution."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 1
//#property indicator_color1 White
extern int         ExtDepth=18;
extern int         ExtDeviation=5;
extern int         ExtBackstep=3;
extern int         Timeframe_mn = 0;
extern color       Fibo_Color    = Teal;
extern color       AndrewColor   = Olive;
double ExtMapBuffer1[];int mno=1;int ind_Timeframe =0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void init(){
  if(Timeframe_mn==1){
    if(Period()==1){ind_Timeframe=5;}
    if(Period()==5){ind_Timeframe=15;}
    if(Period()==15){ind_Timeframe=30;}
    if(Period()==30){ind_Timeframe=60;}
    if(Period()==60){ind_Timeframe=240;}
    if(Period()==240){ind_Timeframe=1440;}
    if(Period()==1440){ind_Timeframe=PERIOD_W1;}
    if(Period()==PERIOD_W1){ind_Timeframe=PERIOD_MN1;}
  }
  if(Timeframe_mn==2){
    if(Period()==PERIOD_M1){ind_Timeframe=PERIOD_M15;}
    if(Period()==PERIOD_M5){ind_Timeframe=PERIOD_M30;}
    if(Period()==PERIOD_M15){ind_Timeframe=PERIOD_H1;}
    if(Period()==PERIOD_M30){ind_Timeframe=PERIOD_H4;}
    if(Period()==PERIOD_H1){ind_Timeframe=PERIOD_D1;}
    if(Period()==PERIOD_H4){ind_Timeframe=PERIOD_W1;}
    if(Period()==PERIOD_D1){ind_Timeframe=PERIOD_MN1;}
  } 
  if(Timeframe_mn==3){
    if(Period()==PERIOD_M1){ind_Timeframe=PERIOD_M30;}
    if(Period()==PERIOD_M5){ind_Timeframe=PERIOD_H1;}
    if(Period()==PERIOD_M15){ind_Timeframe=PERIOD_H4;}
    if(Period()==PERIOD_M30){ind_Timeframe=PERIOD_D1;}
    if(Period()==PERIOD_H1){ind_Timeframe=PERIOD_W1;}
    if(Period()==PERIOD_H4){ind_Timeframe=PERIOD_MN1;}
  }  
  if(Timeframe_mn==4){
    if(Period()==PERIOD_M1){ind_Timeframe=PERIOD_H1;}
    if(Period()==PERIOD_M5){ind_Timeframe=PERIOD_H4;}
    if(Period()==PERIOD_M15){ind_Timeframe=PERIOD_D1;}
    if(Period()==PERIOD_M30){ind_Timeframe=PERIOD_W1;}
    if(Period()==PERIOD_H1){ind_Timeframe=PERIOD_MN1;}
  }   
  if(Timeframe_mn>4){ind_Timeframe=Timeframe_mn;}
   SetIndexStyle(0,DRAW_SECTION,EMPTY,2,(200<<16)^(ind_Timeframe<<8)^(200));
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexEmptyValue(0,0.0);
   IndicatorShortName("Autofibo"+ind_Timeframe);
   if(ind_Timeframe==0 || ind_Timeframe<Period()){
     ind_Timeframe=Period();
     mno=1;
   }else{
     mno=ind_Timeframe/Period();
   }   
     int x=ObjectsTotal();
  for(int i=0;i<x;i++){
    if(StringSubstr(ObjectName(i), 0, 2) == "Ap"){ObjectDelete(ObjectName(i));}
    if(StringSubstr(ObjectName(i), 0, 2) == "Dn"){ObjectDelete(ObjectName(i));}
    if(StringSubstr(ObjectName(i), 0, 4) == "fibo"){ObjectDelete(ObjectName(i));}
    if(StringSubstr(ObjectName(i), 0, 6) == "endrws"){ObjectDelete(ObjectName(i));}
  } 
return;}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void deinit(){
  int x=ObjectsTotal();
  for(int i=0;i<x;i++){
    if(StringSubstr(ObjectName(i), 0, 2) == "Ap"){ObjectDelete(ObjectName(i));}
    if(StringSubstr(ObjectName(i), 0, 2) == "Dn"){ObjectDelete(ObjectName(i));}
    if(StringSubstr(ObjectName(i), 0, 4) == "fibo"){ObjectDelete(ObjectName(i));}
    if(StringSubstr(ObjectName(i), 0, 6) == "endrws"){ObjectDelete(ObjectName(i));}
  }
return;}
double nd(double in){return(NormalizeDouble(in,Digits));}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {double pr0,pr1,pr2,pr3,pr4;int a,n;
   ArrayInitialize(ExtMapBuffer1,0.0);
   for(int i=0;i<1000;i++){if(iCustom(Symbol(),ind_Timeframe,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,i)!=0){pr0=iCustom(Symbol(),ind_Timeframe,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,i);a=i;break;}}
   for(int x=i+1;x<1000;x++){if(iCustom(Symbol(),ind_Timeframe,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,x)!=0){pr1=iCustom(Symbol(),ind_Timeframe,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,x);break;}}
   for(int y=x+1;y<1000;y++){if(iCustom(Symbol(),ind_Timeframe,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,y)!=0){pr2=iCustom(Symbol(),ind_Timeframe,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,y);break;}}
   for(int z=y+1;z<1000;z++){if(iCustom(Symbol(),ind_Timeframe,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,z)!=0){pr3=iCustom(Symbol(),ind_Timeframe,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,z);break;}}
   a=a*mno;x=x*mno;y=y*mno;z=z*mno;//c=c*mno;
   if(ind_Timeframe>Period()){
     for( n=0;n<=a*2;n++){if(nd(iCustom(Symbol(),0,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,n))==nd(pr0)){a=n;break;}}
     for( n=10;n<=x*2;n++){if(nd(iCustom(Symbol(),0,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,n))==nd(pr1)){x=n;break;}}
     for( n=10;n<=y*2;n++){if(nd(iCustom(Symbol(),0,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,n))==nd(pr2)){y=n;break;}}
     for( n=10;n<=z*2;n++){if(nd(iCustom(Symbol(),0,"Zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,n))==nd(pr3)){z=n;break;}}
//----
   int limit;
   double tmp1,tmp2;
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
     for (i = limit;i>=0;i--){  
       if(ExtMapBuffer1[a]!=pr0){ExtMapBuffer1[a]=0;ExtMapBuffer1[a]=pr0;}
       ExtMapBuffer1[x]=pr1;
       ExtMapBuffer1[y]=pr2;
       ExtMapBuffer1[z]=pr3;
     }
   }
   fibo_standart("fibo"+ind_Timeframe,Fibo_Color,pr2,pr1,x,y);
   if(pr3>pr2&&pr3>pr1){
     if(pr1>pr2)fibo_standart("fibo"+ind_Timeframe,Fibo_Color,pr3,pr2,z,x);
     if(pr1<pr2)fibo_standart("fibo"+ind_Timeframe,Fibo_Color,pr3,pr1,z,y);
     SetTLine(Blue, "Ap"+ind_Timeframe, Time[z],pr3,Time[x],pr1, True);
   }
   if(pr3<pr2&&pr3<pr1){
     if(pr1<pr2)fibo_standart("fibo"+ind_Timeframe,Fibo_Color,pr3,pr2,z,x);
     if(pr1>pr2)fibo_standart("fibo"+ind_Timeframe,Fibo_Color,pr3,pr1,z,y);
     SetTLine(Red, "Dn"+ind_Timeframe, Time[z],pr3,Time[x],pr1, True);
   }
   Endruws(z,pr3,y,pr2,x,pr1);
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SetTLine(color cl, string nm="",
              datetime t1=0, double p1=0, datetime t2=0, double p2=0,
              bool ry=False, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (t1<=0) t1=Time[10];
  if (p1<=0) p1=Low[10];
  if (t2<=0) t2=Time[0];
  if (p2<=0) p2=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TREND, 0, 0,0, 0,0);
  ObjectSet(nm, OBJPROP_TIME1 , t1);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_TIME2 , t2);
  ObjectSet(nm, OBJPROP_PRICE2, p2);
  ObjectSet(nm, OBJPROP_COLOR , cl);
  ObjectSet(nm, OBJPROP_RAY   , ry);
  ObjectSet(nm, OBJPROP_STYLE , st);
  ObjectSet(nm, OBJPROP_WIDTH , wd);
}  
//+------------------------------------------------------------------+
//|  Вилы эндрюса                                                    |
//+------------------------------------------------------------------+
void Endruws(int br1,double pr1,int br2,double pr2,int br3,double pr3){
  string nm= "endrws"+ind_Timeframe;
  ObjectDelete(nm);
  ObjectCreate(nm,OBJ_PITCHFORK,0,0,0,0,0,0,0);
  ObjectSet(nm,OBJPROP_PRICE1,pr1);
  ObjectSet(nm,OBJPROP_TIME1,Time[br1]);
  ObjectSet(nm,OBJPROP_PRICE2,pr2);
  ObjectSet(nm,OBJPROP_TIME2,Time[br2]);
  ObjectSet(nm,OBJPROP_PRICE3,pr3);
  ObjectSet(nm,OBJPROP_TIME3,Time[br3]);    
  ObjectSet(nm,OBJPROP_COLOR,AndrewColor);
}  
//--------------------------------------------------------
// Фибы стандартные. Начало.
//--------------------------------------------------------
void fibo_standart(string nm,color Col,double fiboPrice,double fiboPrice1,int time1,int time2)
  {string nameObj=nm;
   ObjectDelete(nameObj);
   ObjectCreate(nameObj,OBJ_FIBO,0,Time[time1],fiboPrice,Time[time2],fiboPrice1);
   ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT);
   ObjectSet(nameObj,OBJPROP_LEVELCOLOR,Col);  
   ObjectSet(nameObj,OBJPROP_FIBOLEVELS,14);
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL,0);
   ObjectSet(nameObj,OBJPROP_RAY, false);
   //ObjectSet(nameObj,OBJPROP_COLOR,Blue);
   ObjectSetFiboDescription(nameObj, 0, "0");
   //ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+1,0.146);
   //ObjectSetFiboDescription(nameObj, 1, "14.6" );
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+2,0.236);
   ObjectSetFiboDescription(nameObj, 2, "23.6" );
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+3,0.382);
   ObjectSetFiboDescription(nameObj, 3, "38.2");
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+4,0.5);
   ObjectSetFiboDescription(nameObj, 4, "50.0" );
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+5,0.618);
   ObjectSetFiboDescription(nameObj, 5, "61.8");
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+6,0.764);
   ObjectSetFiboDescription(nameObj, 6, "76.4");
   //ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+7,0.854);
   //ObjectSetFiboDescription(nameObj, 7, "85.4");
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+8,1.0);
   ObjectSetFiboDescription(nameObj, 8, "100.0" );
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+9,1.382);
   ObjectSetFiboDescription(nameObj, 9, "138.2");
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+10,1.618);
   ObjectSetFiboDescription(nameObj, 10, "161.8");
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+11,2.618);
   ObjectSetFiboDescription(nameObj, 11, "261.8");
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+12,-0.618);
   ObjectSetFiboDescription(nameObj, 12, "161.8");
   ObjectSet(nameObj,OBJPROP_FIRSTLEVEL+13,-0.382);
   ObjectSetFiboDescription(nameObj, 13, "138.2");
   
   WindowRedraw();
//----
   return ;
  }
 

Это вовсе не негативные эмоции, просто у Вас слабо враженное чуство юмора.

И интонация моя нормальная, вон даже какую веселую картинку прикрепил.

Ну а если я кого обидел, в том числе и Вас Уважаемый AlexSTAL. то прошу прощения и низкий Вам поклон.

 

и в самом деле... не нервничайте, ВСЕ БУДЕТ ХОРОШО !!!

 
xrust:

потому что фибо сетку терминал почему то удаляет через раз, вот и остается лишнее с мелких ТФ

Вот вам индикатор мульти ТФ автофибо, первые три переменые - это параметры ЗЗ

параметр таймфреймов надо трактовать так :

1) если стоит "0" работаем с текущим ТФ

2)если "1" то ТФ на шаг старше текущего

3) если "2" то на два шага старше текущего ТФ и так до "4" включительно

4) если ставить "5", "15","30" и далее то он будет покзывать данные с жестко прописаного ТФ

Удачки :)

Спасибо:)

 
Любая цель - лучше, чем ее отсутствие. Можно сколь угодно остроумно и конструктивно спорить о содержательности выставления точек объективной прибыли по фибо или д- уровням, но факт тот, что, ставя цель (если это, конечно, не поддержание баланса!!!))), вы зарабатываете.
В своей ветке я как-то выкладывал индикатор, ктр. строит как фибо, так и д- уровни от любого луча. Работает достаточно стабильно и, что даже иногда пугает, точно.)))
 
Svinozavr:
..............
В своей ветке я как-то выкладывал индикатор, ктр. строит как фибо, так и д- уровни от любого луча. Работает достаточно стабильно и, что даже иногда пугает, точно.)))

Не нашел. Ссылочку можно? У меня после лекции Братухина аллергия на фибо :)) Но, вам верю.

 
Сергей, это было в ветке "В догонку", но там все разбросано по страницам, т.к. индикатор дорабатывался по ходу. Я причешу и выложу здесь удобоваримый вариант, ок?
 
Svinozavr:
Сергей, это было в ветке "В догонку", но там все разбросано по страницам, т.к. индикатор дорабатывался по ходу. Я причешу и выложу здесь удобоваримый вариант, ок?

ОК. Спасибо.
 


Надо еще что бы в названии индикатора было слово - "dayly"

А что, в ПТУ уже то же инет есть, вот отстал от жизни

Причина обращения: