потому что фибо сетку терминал почему то удаляет через раз, вот и остается лишнее с мелких ТФ
Вот вам индикатор мульти ТФ автофибо, первые три переменые - это параметры ЗЗ
параметр таймфреймов надо трактовать так :
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. то прошу прощения и низкий Вам поклон.
и в самом деле... не нервничайте, ВСЕ БУДЕТ ХОРОШО !!!
потому что фибо сетку терминал почему то удаляет через раз, вот и остается лишнее с мелких ТФ
Вот вам индикатор мульти ТФ автофибо, первые три переменые - это параметры ЗЗ
параметр таймфреймов надо трактовать так :
1) если стоит "0" работаем с текущим ТФ
2)если "1" то ТФ на шаг старше текущего
3) если "2" то на два шага старше текущего ТФ и так до "4" включительно
4) если ставить "5", "15","30" и далее то он будет покзывать данные с жестко прописаного ТФ
Удачки :)
Спасибо:)
В своей ветке я как-то выкладывал индикатор, ктр. строит как фибо, так и д- уровни от любого луча. Работает достаточно стабильно и, что даже иногда пугает, точно.)))
..............
В своей ветке я как-то выкладывал индикатор, ктр. строит как фибо, так и д- уровни от любого луча. Работает достаточно стабильно и, что даже иногда пугает, точно.)))
Не нашел. Ссылочку можно? У меня после лекции Братухина аллергия на фибо :)) Но, вам верю.
Сергей, это было в ветке "В догонку", но там все разбросано по страницам, т.к. индикатор дорабатывался по ходу. Я причешу и выложу здесь удобоваримый вариант, ок?
ОК. Спасибо.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день.
В кодобазе есть не мало замечательных инструментов а именно "Авто фибо уровни" Но у них есть одинаковая одна проблема.
Если наносить их на дневной график D1 то получается бред !
Неужели нет авто-фибо адаптированного для дневных графиков.