Индикатор торговых сессий - страница 2

 
Ivan Titov #:

Разумеется. Проблема-то как раз в том, чтобы привести(в том числе на истории) время начала и конца сессии(например американской) к серверному времени терминала.

В терминале этой инфы нет, только вручную забить. 2 переменные на год) Или 4. Надо смотреть даты перехода  времени страны сервера и страны биржи, они могут быть разными на неделю. Автомата точно нет, еще Сабер сокрушался по этому поводу)))

 
Valeriy Yastremskiy #:

В терминале этой инфы нет, только вручную забить. 2 переменные на год) Или 4. Надо смотреть даты перехода  времени страны сервера и страны биржи, они могут быть разными на неделю. Автомата точно нет, еще Сабер сокрушался по этому поводу)))

Вместо 4-х дат на год лучше забивать 4 алгоритма, типа такого (для EET): W0D0M3H1 – последнее воскресенье марта в 01:00.

Также иногда надо забивать дату начала (когда начали переводить) или конца (когда отменили перевод) - еще 4 (по факту максимум 2) даты.

 

По теме

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Особенности языка mql5, тонкости и приёмы работы

fxsaber, 2023.01.07 23:01

Есть два типа брокеров, которые переводят время по США/Европе. Из-за этого, в частности, сдвигается время ролловера.

Тип брокера можно определять автоматически.

// Вычисление типа брокера (USA/Europe).

bool IsEuropeBroker()
{
  MqlCalendarValue Value[1];
  
  CalendarValueHistoryByEvent(840030016, Value, D'2022.11.03', D'2022.11.05');
  
  return(Value[0].time == ChartNewsTime(Value[0].time)); // https://www.mql5.com/ru/forum/357793/page5#comment_44225999
}

void OnStart()
{
  Print(AccountInfoString(ACCOUNT_SERVER) + " - " + (IsEuropeBroker() ? "Europe" : "USA"));
}


Результаты запуска на некоторых брокерах.

RannForex-Server - Europe
MetaQuotes-Demo - Europe
FXOpen-MT5 - USA
Alpari-MT5 - Europe
Tickmill-Live - USA
ICMarketsSC-MT5-2 - USA
Darwinex-Live - USA