рисуйте линии граф объектами, список и ссылки на функции найдете в файле.
рисуйте линии граф объектами, список и ссылки на функции найдете в файле.
Огромное вам спасибо, xrust!!!
Библиотека функций шикарная!!!
Разобрался с графобъектами, всё добавил. Теперь работает корректно
Возник, правда, такой вопрос:
можно ли время образования максимумов/минимумов на ЗигЗаге записать в файл?
примерно в таком виде:
2010.07.16 21:00, 1 - если образовался максимум
2010.07.17 12:00, 2 - если образовался минимум?
Посоветуйте, пожалуйста, если будет возможность.
можно ли время образования максимумов/минимумов на ЗигЗаге записать в файл?
примерно в таком виде:
2010.07.16 21:00, 1 - если образовался максимум
2010.07.17 12:00, 2 - если образовался минимум?
Посоветуйте, пожалуйста, если будет возможность.
Двигайтесь в этом направлении… https://www.mql5.com/ru/code/9781
читайте здесь http://xrust.ucoz.net/forum/8-14-1
//+------------------------------------------------------------------+ //| _ZZ_reseacher.mq4 | //| Copyright © 2008, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #include <stdlib.mqh> #include <stderror.mqh> #include <WinUser32.mqh> //---------------------------- extern int ExtDepth=12;// extern int ExtDeviation=5;// extern int ExtBackstep=3;// extern int Round=2;// //----------------------------- string Filename; static int pop=0,ind=0; double Procent[100000]; double ZZ_znach[100000]; double StartTime[100000]; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- Filename="Zz_research.csv"; ArrayInitialize(Procent,0); ArrayInitialize(ZZ_znach,0); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- ArrayResize(Procent,ind-1); int handle=FileOpen(Filename,FILE_CSV|FILE_READ|FILE_WRITE,','); for(int i=0;i<ind-1;i++){ string zap=DoubleToStr(Procent[i],0); FileWrite(handle,ZZ_znach[i],Procent[i],StartTime[i]);} FileClose(handle); //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- int ZZ0=GetExtremumZZBar("",0,0,ExtDepth,ExtDeviation,ExtBackstep); int ZZ1=GetExtremumZZBar("",0,1,ExtDepth,ExtDeviation,ExtBackstep); int ZZ2=GetExtremumZZBar("",0,2,ExtDepth,ExtDeviation,ExtBackstep); int ZZ3=GetExtremumZZBar("",0,3,ExtDepth,ExtDeviation,ExtBackstep); //---- double res0=GetZnachZZBar("",0,ZZ0,ExtDepth,ExtDeviation,ExtBackstep); double res1=GetZnachZZBar("",0,ZZ1,ExtDepth,ExtDeviation,ExtBackstep); double res2=GetZnachZZBar("",0,ZZ2,ExtDepth,ExtDeviation,ExtBackstep); double res3=GetZnachZZBar("",0,ZZ3,ExtDepth,ExtDeviation,ExtBackstep); bool Ap0,Ap1,Ap2,Ap3; double PercDec,RazmDec; //--------------- double Pesent=MathAbs((res2-res3)/100); if(Pesent==0){Pesent=1;} int pop1=MathAbs((res2-res1)/Pesent); if(pop1==0){pop1=1;} double zz_znach=MathAbs((res2-res3)/Point); if(zz_znach==0){zz_znach=1;} //------------------------------------------ if(pop==pop1){return;} pop=pop1; int StartHour=TimeHour(TimeCurrent()); //----- PercDec=MathRound(pop/Round)*Round; if(PercDec==0){PercDec=Round;} Procent[ind]=PercDec; RazmDec=MathRound(zz_znach/Round)*Round; if(RazmDec==0){RazmDec=Round;} ZZ_znach[ind]=RazmDec; StartTime[ind]=StartHour; ind++; //---- return(0); } //+------------------------------------------------------------------+ //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 07.10.2006 | //| Описание : Возвращает номер бара экстремума ЗигЗага по его номеру. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента (NULL или "" - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| ne - номер экстремума ( 0 - последний) | //| dp - ExtDepth | //| dv - ExtDeviation | //| bs - ExtBackstep | //+----------------------------------------------------------------------------+ int GetExtremumZZBar(string sy="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) { if (sy=="" || sy=="0") sy=Symbol(); double ap,dn; int i, k=iBars(sy, tf), ke=0; for (i=0; i<k; i++) { ap=iCustom(sy, tf,"Zigzag2_R_", dp, dv, bc, 0, i); dn=iCustom(sy, tf,"Zigzag2_R_", dp, dv, bc, 1, i); if (ap!=0||dn!=0) { ke++; if (ke>ne) return(i); } } Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден"); return(-1); } //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 07.10.2006 | //| Описание : Возвращает номер бара экстремума ЗигЗага по его номеру. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента (NULL или "" - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| ne - номер экстремума ( 0 - последний) | //| dp - ExtDepth | //| dv - ExtDeviation | //| bs - ExtBackstep | //+----------------------------------------------------------------------------+ double GetZnachZZBar(string sy="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) { if (sy=="" || sy=="0") sy=Symbol(); double ap,dn; ap=iCustom(sy, tf,"Zigzag2_R_", dp, dv, bc, 0, ne); dn=iCustom(sy, tf,"Zigzag2_R_", dp, dv, bc, 1, ne); if (ap!=0) {return(ap);} if (dn!=0) {return(dn);} Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден"); return(-1); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Друзья, добрый день.
Подскажите, пожалуйста, как модернизировать индикатор.
Есть индикатор, который проводит через максимумы и минимумы ЗигЗага вертикальные линии:
Но, хотелось бы сделать так, чтобы эти вертикальные линии "отражались на шкале времени" таким образом:
(т.е. чтобы показывалось время образования максимумов и минимумов ЗигЗага)
Посоветуйте, пожалуйста, как это сделать.
(Буду рад любым рекомендациям)
Заранее большое спасибо.
(к посту прикреплен код исходного индикатора)