Формирование свечей
Доступность: логика формирования свечей реализована в JForex4 версии 4.9.0 и позже
Почему это изменение важно
Переход от единой глобальной временной зоны платформы к торговым сессиям, специфичным для каждого инструмента, — одно из самых важных изменений в представлении данных в JForex4. Торговый день больше не является календарным днём в какой-то глобальной временной зоне. Это день торговой сессии самого инструмента. Это влияет на каждый инструмент, торгуемый в JForex4:
- Дневные и внутридневные свечи. Дневные свечи начинаются и заканчиваются на границах сессии инструмента. Внутридневные свечи (от M2 и выше) также выравниваются по открытию сессии, что сдвигает их относительно часовой привязки, когда сессия открывается в нецелое время. Свечи M1 не затронуты. Таким образом, графики соответствуют реальным часам работы каждого инструмента.
- Дневная статистика цен. Торговая сессия также влияет на дневную статистику цен каждого инструмента. Она относится к торговому дню инструмента, поэтому следует границам сессии, а не календарному дню или глобальному началу дня:
- Дневное чистое изменение цены и % изменение. Изменение измеряется относительно цены предыдущего закрытия, а предыдущее закрытие зависит от времени окончания торговой сессии.
- Дневной максимум. Самая высокая цена в пределах торговой сессии инструмента.
- Дневной минимум. Самая низкая цена в пределах торговой сессии инструмента.
- Правильные торговые недели. Форекс показывает ровно 5 торговых дней в неделю, без частичной свечи в воскресенье и без искусственных 6-дневных недель во время переходов на летнее время.
- Независимая обработка летнего времени. Каждый инструмент следует правилам летнего времени своего собственного рынка, поэтому смены времени в США и Европе больше не влияют друг на друга.
Поскольку сессия отличается для каждого инструмента, один и тот же календарный день может охватывать разные периоды для разных инструментов, поэтому при сравнении дневных свечей и дневной статистики это следует учитывать. Предыстория этого изменения описана в разделе 9.
С первого взгляда
- У каждого инструмента есть собственная торговая сессия: время открытия, время закрытия и временная зона.
- Свечи выравниваются по открытию сессии, а не по часам и не по UTC. D1 всегда начинается в момент открытия сессии. Внутридневные таймфреймы от M2 и выше смещаются только тогда, когда открытие сессии не кратно таймфрейму. M1 никогда не затронут (см. раздел 6).
- Сессия, которая не является целым числом таймфреймов, заканчивается более короткой финальной свечой.
- Торговая сессия также определяет дневную статистику цен каждого инструмента: дневное чистое и % изменение (предыдущее закрытие зависит от времени окончания сессии), дневной максимум и дневной минимум.
- Летнее время обрабатывается для каждого инструмента с использованием правил летнего времени его собственной временной зоны.
- Время расчёта (ролловер позиций) отделено от сессий: это 17:00 ET для всех инструментов (см. раздел 8).
| Инструмент | Сессия | Временная зона | Длительность сессии | D1 начинается | H1 свечей в день | Последняя H1 |
|---|---|---|---|---|---|---|
| EUR/USD | 17:00 – 17:00 | America/New_York | 24 ч | 17:00 | 24 | 60 мин |
| EUR/HUF | 02:00 – 17:00 | America/New_York | 15 ч | 02:00 | 15 | 60 мин |
| USA500.IDX | 17:00 – 15:15 | America/Chicago | 22 ч 15 мин | 17:00 | 23 | 15 мин |
| UK100.IDX | 08:00 – 16:30 | Europe/London | 8 ч 30 мин | 08:00 | 9 | 30 мин |
| SUGAR.CMD | 08:45 – 17:55 | Europe/London | 9 ч 10 мин | 08:45 | 10 | 10 мин |
| COCOA.CMD | 09:15 – 17:00 | Europe/London | 7 ч 45 мин | 09:15 | 8 | 45 мин |
| BTC/USD, ETH/USD | 00:00 – 00:00 | UTC | 24 ч | 00:00 | 24 | 60 мин |
Полный список сессий доступен на вики: Торговые сессии
1. Введение
Свечи формируются из индивидуальной торговой сессии каждого инструмента, а не из глобальной временной зоны платформы.
Это даёт:
- Свечи, которые соответствуют реальным часам работы каждого инструмента
- Правильную обработку летнего времени по регионам, независимо от других регионов
- Границы дневных свечей, выравненные с реальными торговыми днями
- Всегда 5 торговых дней в неделю для инструментов, торгующихся с понедельника по пятницу
- Никаких неудобных переходных периодов летнего времени
2. Что такое торговая сессия?
Торговая сессия определяет три вещи для инструмента:
- Когда рынок открывается и закрывается
- Какая временная зона используется для этих времён
- График свечей: когда свечи открываются и закрываются

2.1 Формат определения сессии
Пример для EUR/USD:
defaultTimezone "America/New_York"
MONDAY
start "17:00:00"
previousDayStart true
end "17:00:00"
previousDayEnd false
| Поле | Значение |
|---|---|
defaultTimezone |
Временная зона, в которой выражены все времена в определении. Применяются её правила летнего времени. |
start |
Местное время, в которое открывается сессия этого дня недели. |
previousDayStart |
true означает, что сессия открывается в предыдущий календарный день. |
end |
Местное время, в которое закрывается сессия этого дня недели. |
previousDayEnd |
true означает, что сессия закрывается в предыдущий календарный день. false означает, что она закрывается в сам день. |
Интерпретация примера: сессия понедельника открывается в 17:00 по нью-йоркскому времени в воскресенье и закрывается в 17:00 в понедельник. Каждая сессия названа в честь дня, в который она закрывается, поэтому понедельник-пятница даёт пять торговых дней и никаких свечей в субботу или воскресенье.
2.2 Ключевые моменты
- Сессии специфичны для инструмента, не универсальны.
- Открытие сессии определяет, когда начинаются дневные свечи и где начинается сетка внутридневных свечей (M1 не затронут, потому что открытия сессий всегда приходятся на целую минуту).
- Разные инструменты, таким образом, имеют разные времена начала свечей.
- Частичные свечи образуются, когда длительность сессии не кратна таймфрейму.
3. Как читать времена сессий
ИНСТРУМЕНТ: Открытие - Закрытие ВременнаяЗона
EUR/USD: 17:00 - 17:00 America/New_York
| Случай | Значение | Пример |
|---|---|---|
| Открытие = Закрытие | 24-часовая сессия, от одной границы к другой | 17:00 – 17:00 = 24 ч |
| Открытие < Закрытие | Сессия в пределах одного дня | 08:45 – 17:55 = 9 ч 10 мин |
| Открытие > Закрытие | Сессия работает ночью в следующий день | 17:00 – 15:15 = 22 ч 15 мин |
Длительность сессии = (Закрытие − Открытие), плюс 24 часа, если результат равен нулю или отрицателен.
4. Расчёт свечей в день
Для таймфрейма T и длительности сессии D (оба в минутах):
количество свечей = ceil(D / T)
длина последней свечи = D - (количество свечей - 1) * T
Если D делится нацело на T, нет частичной свечи и последняя свеча имеет полную длину T.
Отработанные примеры
| Инструмент | D (мин) | Таймфрейм | Полные свечи | Остаток | Всего | Последняя свеча |
|---|---|---|---|---|---|---|
| EUR/USD | 1440 | H1 | 24 | 0 | 24 | 60 мин |
| SUGAR.CMD | 550 | H1 | 9 | 10 | 10 | 10 мин |
| SUGAR.CMD | 550 | M5 | 110 | 0 | 110 | 5 мин |
| SUGAR.CMD | 550 | M15 | 36 | 10 | 37 | 10 мин |
| USA500.IDX | 1335 | H1 | 22 | 15 | 23 | 15 мин |
| UK100.IDX | 510 | H1 | 8 | 30 | 9 | 30 мин |
| EUR/HUF | 900 | H4 | 3 | 180 | 4 | 180 мин |
5. Формирование свечей по типу сессии
5.1 Стандартная сессия (открытие в целый час): EUR/USD
Сессия: 17:00 – 17:00 America/New_York
Воскресенье 17:00 NY -> Дневная свеча (торговый день "понедельник") ОТКРЫВАЕТСЯ
17:00 - 18:00 Свеча H1 1
18:00 - 19:00 Свеча H1 2
...
16:00 - 17:00 Свеча H1 24
Понедельник 17:00 NY -> Дневная свеча ЗАКРЫВАЕТСЯ, следующая дневная свеча ОТКРЫВАЕТСЯ
- Каждый торговый день ровно 24 часа.
- Ровно 24 свечи H1 в день, все по 60 минут.
- 5 торговых дней в неделю.
5.2 Нецелое открытие: SUGAR.CMD

Сессия: 08:45 – 17:55 Europe/London (550 минут)
| Свеча H1 | Начало | Конец | Длительность |
|---|---|---|---|
| 1 | 08:45 | 09:45 | 60 мин |
| 2 | 09:45 | 10:45 | 60 мин |
| 3 | 10:45 | 11:45 | 60 мин |
| 4 | 11:45 | 12:45 | 60 мин |
| 5 | 12:45 | 13:45 | 60 мин |
| 6 | 13:45 | 14:45 | 60 мин |
| 7 | 14:45 | 15:45 | 60 мин |
| 8 | 15:45 | 16:45 | 60 мин |
| 9 | 16:45 | 17:45 | 60 мин |
| 10 | 17:45 | 17:55 | 10 мин |
- День начинается в 08:45, а не в 00:00 или 08:00.
- Все свечи H1 начинаются в :45.
- Свечи M5 начинаются в 08:45, 08:50, 08:55, 09:00, 09:05, … (то же самое, что при часовой привязке, потому что 08:45 кратно 5 минутам).
- Свечи M2, M10 и M30 смещены относительно часовой привязки, например свечи M30 начинаются в 08:45, 09:15, 09:45, ….
- Дневная свеча закрывается в 17:55, и следующая открывается в 08:45 в следующий торговый день.
5.3 Ночная сессия с неполным финальным часом: USA500.IDX
Сессия: 17:00 – 15:15 America/Chicago (1335 минут = 22 ч 15 мин)
Сессия открывается в 17:00 в предыдущий календарный день и закрывается в 15:15 в сам торговый день.
| Свеча H1 | Начало | Конец | Длительность |
|---|---|---|---|
| 1 | 17:00 (предыдущий день) | 18:00 | 60 мин |
| 2 | 18:00 | 19:00 | 60 мин |
| … | … | … | 60 мин |
| 8 | 00:00 | 01:00 | 60 мин |
| … | … | … | 60 мин |
| 16 | 08:00 | 09:00 | 60 мин |
| … | … | … | 60 мин |
| 21 | 13:00 | 14:00 | 60 мин |
| 22 | 14:00 | 15:00 | 60 мин |
| 23 | 15:00 | 15:15 | 15 мин |
- 23 свечи H1 в день: 22 полные свечи плюс одна 15-минутная свеча.
- Сессия закрывается в 15:15, поэтому дневная свеча закрывается там.
- Следующая дневная свеча открывается в 17:00 в тот же день.
- Между 15:15 и 17:00 нет свечей.
6. Временные метки свечей
Временные метки выравниваются по открытию сессии, а не по часовому времени. Влияет ли это на конкретный таймфрейм, зависит от времени открытия сессии.
Сетка свечей таймфрейма смещена по сравнению с обычной часовой сеткой (например :00, :30 для M30) только когда открытие сессии не кратно этому таймфрейму. В противном случае свечи приходятся на те же времена, что и часовая привязка.
- M1 никогда не затронут. Открытия сессий всегда приходятся на целую минуту, поэтому свечи M1 начинаются в каждую минуту в любом случае.
- M2 и более долгие могут быть затронуты. Например, свечи M2 сессии, открывающейся в 08:45, начинаются в 08:45, 08:47, 08:49, …, в то время как часовая привязка дала бы 08:44, 08:46, 08:48, ….
- Дневные свечи всегда начинаются в момент открытия сессии.
Примеры М-таймфреймов по времени открытия сессии:
| Открытие сессии | M1 | M2 | M5 | M10 | M15 | M30 | H1 | D1 |
|---|---|---|---|---|---|---|---|---|
| 17:00 (EUR/USD) | то же | то же | то же | то же | то же | то же | то же | 17:00 |
| 08:45 (SUGAR.CMD) | то же | смещено | то же | смещено | то же | смещено | смещено | 08:45 |
| 09:15 (COCOA.CMD) | то же | смещено | то же | смещено | то же | смещено | смещено | 09:15 |
"то же" означает, что времена свечей совпадают с часовой привязкой. "смещено" означает, что свечи начинаются в времена, основанные на открытии сессии, такие как 08:45, 09:45, … для H1 или 08:45, 09:15, … для M30.
Времена начала свечей для двух инструментов:
| Инструмент | D1 | H1 | M5 |
|---|---|---|---|
| EUR/USD | 17:00 | 17:00, 18:00, … 16:00 | 17:00, 17:05, … |
| SUGAR.CMD | 08:45 | 08:45, 09:45, … 17:45 | 08:45, 08:50, 08:55, 09:00, … |
Все времена указаны в собственной временной зоне сессии инструмента.
7. Обработка летнего времени
Каждый инструмент использует правила летнего времени своей собственной временной зоны сессии:
| Временная зона | Начало летнего времени | Конец летнего времени |
|---|---|---|
| America/New_York, America/Chicago | 2-е воскресенье марта | 1-е воскресенье ноября |
| Europe/London | Последнее воскресенье марта | Последнее воскресенье октября |
| UTC | никогда | никогда |
Последствия:
- Поскольку времена сессии выражены в местном времени, EUR/USD всегда открывается в 17:00 по нью-йоркскому времени. В терминах UTC это 22:00 зимой и 21:00 летом.
- Смена летнего времени в США не сдвигает свечи инструментов, основанных в Лондоне, и европейская смена не сдвигает основанные на США.
- Между смещениями в США и Европе разница смещения UTC между двумя регионами отличается от нормальной. Это длится около 2–3 недель весной и около 1 недели осенью. Это больше не влияет на свечи, потому что каждый инструмент следует своей зоне.
- Криптовалюты используют UTC, поэтому они никогда не затронуты летним временем.
8. Время расчёта (важно)
Время расчёта — 17:00 ET (America/New_York) для всех инструментов.
Время расчёта — это момент ролловера позиций. Это глобальная процедура: она происходит в одно и то же время для каждого инструмента, независимо от торговой сессии инструмента.
8.1 Сессии vs. время расчёта
| Торговая сессия | Время расчёта | |
|---|---|---|
| Определено | Для каждого инструмента | Глобально, одно время для всех инструментов |
| Временная зона | Собственная инструмента (Нью-Йорк, Чикаго, Лондон, UTC, …) | America/New_York (ET) |
| Время | Варьируется (17:00, 08:45, 09:15, 02:00, …) | 17:00 ET |
| Определяет | Когда свечи открываются и закрываются | Когда позиции ролловятся (могут быть исключения) |
8.2 Что это означает на практике
- Время расчёта не смещает границы свечей. Свечи следуют сессии инструмента. Ролловер следует глобальному времени 17:00 ET.
- Для инструментов, сессия которых 17:00 – 17:00 America/New_York (таких как EUR/USD), граница дневной свечи и время расчёта совпадают.
- Для всех остальных инструментов они различаются. Например, свечи SUGAR.CMD начинаются в 08:45 по лондонскому времени, а его позиции всё ещё ролловятся в 17:00 ET.
- Поскольку 17:00 ET следует US DST, его эквивалент в UTC — 22:00 зимой и 21:00 летом.
9. Почему этот подход: эволюция
| Подход 1: UTC свечи | Подход 2: Глобальная "зона начала дня" | Подход 3: Сессии, специфичные для инструмента (текущий) | |
|---|---|---|---|
| Начало дневной свечи | 00:00 UTC | 00:00 в одной глобальной зоне (например EET) | Открытие собственной сессии каждого инструмента |
| Неделя форекса | 6 дней (частичная свеча в воскресенье) | 5 дней обычно, искусственные 6-дневные недели при несовпадении DST, если не исправлено | Всегда 5 дней |
| DST | Игнорируется | Нужны жестко закодированные US DST правила внутри определения EET | Обрабатывается нативно по временной зоне |
| Видимые побочные эффекты | Неправильный торговый календарь | Дневные свечи EUR/USD отображаются в 23:00 EET в переходные недели | Никаких |
| Подходит для всех инструментов | Нет | Нет | Да |
9.1 Подход 1: UTC свечи
Дневные свечи работали с 00:00 до 24:00 UTC для каждого инструмента. Форекс открывается в 17:00 по нью-йоркскому времени (примерно 22:00 UTC зимой), поэтому появилась частичная свеча в воскресенье, давая шесть торговых дней в неделю на графике.
9.2 Подход 2: глобальная зона начала дня
Одна временная зона была выбрана для всех инструментов (например EET), и дневные свечи строились из часовых свечей, начиная с 00:00 в этой зоне. Для EUR/USD 00:00 EET равно 17:00 нью-йоркскому, что исправило 6-дневную неделю. Его недостатки:
- Одна временная зона не подходит для каждого инструмента.
- Смены летнего времени в США и Европе происходят в разные дни. Чтобы избежать искусственных 6-дневных недель, правила US DST были жестко закодированы в определение EET, поэтому в переходные недели дневные свечи EUR/USD отображались в 23:00 EET и пользователи спрашивали почему.
9.3 Подход 3: сессии, специфичные для инструмента (текущий)
Каждый инструмент определяет, когда он торгуется и в какой временной зоне он торгуется. Дневные свечи поступают непосредственно из границ сессии, поэтому обходные пути не требуются, и изменение правил летнего времени временной зоны автоматически учитывается.
ЧЗВ и устранение неполадок
Почему дневное изменение, дневной максимум и дневной минимум отличаются от того, что я ожидаю для календарного дня? Они рассчитываются для торговой сессии инструмента. Предыдущая цена закрытия, используемая для чистого и % изменения, — это цена в момент окончания сессии, и максимум и минимум охватывают только цены в пределах сессии.
Почему мои свечи H1 начинаются в :45 (или :15)? Сессия инструмента открывается в эту минуту, и все свечи выравниваются по открытию сессии.
Изменяются ли свечи M1 с торговой сессией? Нет. Открытия сессий всегда приходятся на целую минуту, поэтому свечи M1 начинаются в каждую минуту ровно как раньше. Таймфреймы от M2 и выше могут смещаться, когда открытие сессии не кратно таймфрейму (см. раздел 6).
Почему последняя свеча дня короче остальных? Длительность сессии не кратна таймфрейму. Финальная свеча охватывает остаток (см. раздел 4).
Почему USA500.IDX имеет 23 свечи H1? Сессия длится 22 ч 15 мин: 22 полных часа плюс 15-минутная свеча.
Почему мои дневные свечи не начинаются в 00:00? Они начинаются в момент открытия сессии этого инструмента в его собственной временной зоне.
EUR/USD и индекс показывают разные "дни". Это ошибка? Нет. Каждый инструмент имеет свои границы сессии, поэтому дневные свечи и дневная статистика цен не сравнимы между инструментами по календарному дню.
После смены летнего времени я вижу свечи в неожиданное часовое время. Проверьте, какую временную зону используют график и инструмент. Сама сессия остаётся в одно и то же местное время, и только её UTC эквивалент смещается.
Дневная свеча моего инструмента не начинается в 17:00 ET. Время расчёта неправильное? Нет. Время расчёта всегда 17:00 ET для всех инструментов, и оно независимо от сессии инструмента и границ свечей (см. раздел 8).
Какая версия JForex4 имеет эту логику? JForex4 4.9.0 или позже.
Глоссарий
| Термин | Определение |
|---|---|
| Торговая сессия | Время открытия, время закрытия и временная зона инструмента |
| Открытие сессии | Опорная точка, к которой выравниваются все свечи |
| Частичная свеча | Свеча короче её таймфрейма, потому что сессия заканчивается до завершения свечи |
| Время расчёта | 17:00 ET, глобальное время ролловера позиций для всех инструментов |
| Ролловер | Процедура ролловера позиций, выполняемая в момент расчёта |
| DST | Летнее время |
| IANA временная зона | Идентификатор временной зоны на основе региона, такой как America/New_York или Europe/London |