Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
YZ_Summer_Time - библиотека для MetaTrader 5
- Просмотров:
- 2784
- Рейтинг:
- Опубликован:
- 2014.10.06 14:57
- Обновлен:
- 2016.11.22 07:33
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Проверка даты на принадлежность к зимнему или летнему времени. Функция определяет время (летнее или зимнее).
Перевод часов на зимнее время проводится в ночь последнего воскресенья октября, а летнее время включают в ночь последнего воскресенья марта.
Более надежного варианта вычисления летнего или зимнего времени не существует.
Код разработан для отладки новостных событий.
// // Доработал алгоритм 2014.10.09 // // YURAZ yzh@mail.ru // функция определяет летнее или зимнее время // перевод часов на зимнее время проводится в ночь последнего воскресенья октября // а летнее время включают в ночь последнего воскресенья марта // более надежного варианта вычисления летнего или зимнего времени не существует // возврат 0 - летнее время // возврат 1 - зимнее время // int YZ_summer_time(datetime pdt) { MqlDateTime dt; TimeToStruct(pdt,dt); int code=1; if(dt.mon>=11 || dt.mon<=2) // ЗИМА { code=1; } if(dt.mon>=4 && dt.mon<=9) // ЛЕТО { code=0; } datetime tSeek; MqlDateTime dtf; if(dt.mon==10) // октябрь { if(dt.day<25) // ночью в последнее воскресенье октября - переход на зимнее время code=0; // еще лето else { TimeToStruct(pdt,dtf); tSeek=StringToTime(IntegerToString(dtf.year)+".10.31 02:00"); // установим последний день октября TimeToStruct(tSeek,dtf); for(int i=31; i>=25; i--) { if(dtf.day_of_week==0 ) // Необходимо найти именно ночь с субботы на воскресенье break; tSeek=tSeek-86400; // ( НАХОДИТЬ именно 2 часа ночи т е сам переход не имеет смысла так как рынок форекс с субботы на воскроесенье закрыт ) TimeToStruct(tSeek,dtf); } if(pdt<tSeek) { code=0; // лето } else code=1; // зима } } if(dt.mon==3) // март { if(dt.day<25) // ночью в последнее воскресенье марта - переход на летнее время code=1; // еще зима else { TimeToStruct(pdt,dtf); tSeek=StringToTime(IntegerToString(dtf.day_of_year)+".03.31 03:00"); // установим последний день марта for(int i=31; i>=25; i--) { if(dtf.day_of_week==0 ) // Необходимо найти именно ночь с субботы на воскресенье break; tSeek=tSeek-86400; // ( НАХОДИТЬ именно 3 часа ночи т е сам переход не имеет смысла так как рынок форекс с субботы на воскроесенье закрыт ) TimeToStruct(tSeek,dtf); } if(pdt>tSeek) { code=0; // лето } else code=1; // зима } } return( code); }
Цветная версия индикатора Linear Regression.
LRMA Linear Regression fot MT5Индикатор использует метод наименьших квадратов для построения «наиболее подходящей» прямой линии, проходящей через ряд точек ценовых значений.
Библиотека расчета требуемого залога для открытия позиции в MetaТrader 5.
FractalsTrendLinesИндикатор чертит бычью и медвежью линии тренда на основании показаний индикатора iFractals от ближайшего экстремума до последнего непробитого фрактала.