Nen делал QTA 3, 4 - Quik Time Analizir
Там время от хай(лоу) - модификации - 1.0-1.618-2.618 и т д, думаю он бы помог
Юра, ты все делаешь правильно. Ты считаешь секунды и строишь зоны. и это не твоя ошибка. это глюк терминала, а конкретно глюки отрисовки графической линии. На скрине ниже - через мкул4, была команда на отрисовку горизонтальной жирной голубой линии. с 00-часов до хх часов. Свойства линии тоже указывают что она была нарисована с 00 часов. Хотя физически мы видим, что она выведена на экран на бар раньше.
скорее всего ошибка (две ошибки) в расчетах..
укажите пож. какие ?
//+------------------------------------------------------------------+ //| Zoltan_V0.mq4 | //| Yuriy Tokman | //| http://www.mql-design.ru | //+------------------------------------------------------------------+ #property copyright "Yuriy Tokman" #property link "http://www.mql-design.ru" extern color color_RAY = Gold; extern string time_start = "2010.05.24 01:30"; extern string time_finish = "2010.05.24 01:35"; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- GetDellName(); //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- GetStartLine("fibo1","luch1",color_RAY);//строим и управляем вертикальными линиями //---- return(0); } //функция строит вертикальную линию void GetVLINE(string name_label,datetime t1,color c = Red) { if (ObjectFind(name_label)<0)// ObjectDelete(name_label); ObjectCreate(name_label,OBJ_VLINE,0,t1,0,0,0); ObjectSet(name_label,OBJPROP_COLOR,c); } //-----+функция удаляет все объекты с заданным именем void GetDellName (string name_n = "ytg_") { string vName; for(int i=ObjectsTotal()-1; i>=0;i--) { vName = ObjectName(i); if (StringFind(vName,name_n) !=-1) ObjectDelete(vName); } } //----+функция строит все линии void GetStartLine(string n, string l, color c ) { GetDellName (l); GetVLINE(n+"ytg_zoltan1",StrToTime(time_start),c); GetVLINE(n+"ytg_zoltan2",StrToTime(time_finish),c); datetime time_s =0, time_f =0, time_c = 0; if(ObjectFind(n+"ytg_zoltan1")!=-1) time_s = ObjectGet(n+"ytg_zoltan1",OBJPROP_TIME1); if(ObjectFind(n+"ytg_zoltan2")!=-1) time_f = ObjectGet(n+"ytg_zoltan2",OBJPROP_TIME1); datetime delta_time = time_f - time_s; Comment(TimeToStr(time_s)," ",TimeToStr(time_f)," ",time_f," - ",time_s,"=",delta_time); time_c = time_f+delta_time; GetVLINE(l+"ytg_zoltan3",time_c,c); time_c = time_c+delta_time; GetVLINE(l+"ytg_zoltan4",time_c,c); time_c = time_c+delta_time*2; GetVLINE(l+"ytg_zoltan5",time_c,c); time_c = time_c+delta_time*3; GetVLINE(l+"ytg_zoltan6",time_c,c); time_c = time_c+delta_time*5; GetVLINE(l+"ytg_zoltan7",time_c,c); time_c = time_c+delta_time*8; GetVLINE(l+"ytg_zoltan8",time_c,c); time_c = time_c+delta_time*13; GetVLINE(l+"ytg_zoltan9",time_c,c); time_c = time_c+delta_time*21; GetVLINE(l+"ytg_zoltan10",time_c,c); time_c = time_c+delta_time*34; GetVLINE(l+"ytg_zoltan11",time_c,c); time_c = time_c+delta_time*55; GetVLINE(l+"ytg_zoltan12",time_c,c); }
Строю графический объект
OBJ_FIBOTIMES | 11 | Временные зоны Фибоначчи. Использует 2 координаты. Для установки количества уровней (свойство OBJPROP_FIBOLEVELS) и значения уровней (свойство OBJPROP_FIRSTLEVEL+n) используется функция ObjectSet() |
extern color color_RAY = Gold; extern string time_start = "2008.10.13 11:26"; extern string time_finish = "2008.10.13 11:27"; string name_label = "ytg_timefibo"; if (ObjectFind(name_label)<0)// ObjectDelete(name_label); int bars = iBarShift(Symbol(),1,StrToTime(time_start)); double price = iClose(Symbol(),1,bars); ObjectCreate(name_label,OBJ_FIBOTIMES,0,StrToTime(time_start),price,StrToTime(time_finish),price); ObjectSet(name_label,OBJPROP_FIBOLEVELS,16); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+1,1); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+2,2); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+3,3); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+4,5); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+5,8); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+6,13); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+7,21); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+8,34); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+9,55);// ObjectSet(name_label,OBJPROP_FIRSTLEVEL+10,89); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+11,144); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+12,233); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+13,377); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+14,610); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+15,987); ObjectSet(name_label,OBJPROP_FIRSTLEVEL+16,1597); int time_s = 0; if(ObjectFind(name_label)!=-1) time_s = ObjectGet(name_label,OBJPROP_FIRSTLEVEL+10); Comment(time_s);
Между основными линиями время составляет одну минуту. Следующие уровни времени строятся через два года.
Хотя если время между основными линиями умножать на числа фибоначчи, то этих линий не должно быть, они все построятся в дыре.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Буду признателен за совет, если кто сталкивался с этим чудом.
Советник построил графический объект
Временные зоны Фибоначчи.
Как вытянуть время каждого построенного уровня, всего их 15.
функция
возвращает число Фибоначчи на этом уровне.
Если строить эти зоны вертикальными линиями, отдельно каждый уровень
всплывает новая проблема, из пропуска времени на выходных или отсутствия бара
или нескольких, отображение некорректное, и расчет времени не верный