Добавлен динамический режим в CEquilibrium: после пробоя BOS/MSS
линия Equilibrium автоматически обновляется по новым экстремумам цены
(running max/min), пока не появится следующий BOS/MSS.
Изменения:
- Новые поля: m_dynamic_mode, m_break_dir, m_track_high/low, m_break_bar
- Calculate() принимает price_high/price_low для трекинга
- Backfill от бара пробоя до текущего при каждом обновлении экстремума
- AdjustShift корректирует m_break_bar при новом баре (AS_SERIES)
- Геттеры также обновляются в dynamic mode
- CSwingDetector передаёт high[bar]/low[bar] в Calculate()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Корневая причина бага: уровень Equilibrium вычислялся через i_high/i_low
(неподтверждённые экстремумы), которые нестабильны и сбрасываются после
BOS/MSS (Step 9). Триггер обновления bar_eq != m_bar_eq_prev не срабатывал
когда MathMax возвращал тот же старый свинг.
Исправления:
1. Разделение расчёта: геттеры (Entry сигналы) используют динамические
i_high/i_low, буферы — только подтверждённые in_high/in_low
2. Триггер отрисовки: ch_in_h || ch_in_l вместо bar_eq != m_bar_eq_prev
3. Backfill от ИЗМЕНЁННОГО свинга (bar_in_high/bar_in_low), не от MathMax
4. Добавлен AdjustShift для синхронизации m_bar_eq_prev при новом баре
5. Удалены неиспользуемые поля m_eq_level/m_eq_level2_p/m_eq_level2_d
6. Добавлены m_fixed_eq/m_fixed_prem2/m_fixed_disc2 для фиксации уровней
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Изменения в CEquilibrium.mqh:
3 случая расчёта вместо одного:
Case 1 (cf_in_low && !cf_in_high): Range = i_high - In_Low → Discount + Discount2
Case 2 (cf_in_high && !cf_in_low): Range = In_High - i_low → Premium + Premium2
Case 3 (оба подтверждены): полный расчёт, выбор по тренду
Исправлен баг: MathMin → MathMax в retroactive fill (AS_SERIES: больший индекс = старший бар)
2 новых буфера: buf_premium2[] и buf_discount2[] с отдельной отрисовкой и retroactive fill
2 новых метода: IsInDiscountZone(ifvg_bottom) и IsInPremiumZone(ifvg_top) для будущих Entry условий
Трекинг уровней: m_eq_level2_p / m_eq_level2_d для корректного retroactive fill второго уровня
Изменения в CSwingDetector.mqh:
Проброс buf_premium2[] и buf_discount2[] через Calculate() в CEquilibrium
Изменения в Ind_Aleks_ICT_Entry_V2_TS_Indie.mq5:
indicator_buffers 20, indicator_plots 12
2 новых плота: Premium2 и Discount2 (clrOrchid, STYLE_DOT, width 1)
CALCULATIONS буферы сдвинуты на индексы 12-19
Полная инициализация новых буферов (FullReset, new bar, AS_SERIES)
Визуальное поведение:
При inp_eq_con=false — только Equilibrium линия (как раньше)
При inp_eq_con=true — появляются Premium2 (сверху) и Discount2 (снизу) линии orchid цвета