Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 2831
- Рейтинг:
- Опубликован:
- 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.

Индикатор использует метод наименьших квадратов для построения «наиболее подходящей» прямой линии, проходящей через ряд точек ценовых значений.

Библиотека расчета требуемого залога для открытия позиции в MetaТrader 5.

Индикатор чертит бычью и медвежью линии тренда на основании показаний индикатора iFractals от ближайшего экстремума до последнего непробитого фрактала.