Методика расчёта дневного торгового плана
Методика описывает, как из ежедневных свечных данных строятся однодневные торговые планы по шести акциям и индексу МосБиржи. Этот файл — источник истины: страница /methodology.html на сайте генерируется из него при каждой публикации. Код реализации: scripts/plan_levels.py (расчёт) и scripts/publish_plan.py (публикация). Параметры и проверки риск-менеджмента (раздел 11) — константы в scripts/plan_levels.py.
1. Назначение и горизонт
План составляется на каждый календарный день — на ближайшую сессию, следующую за базовой. Субботние и воскресные сессии Мосбиржи (проводятся по расписанию биржи) — полноценные дни планирования: ночная публикация всегда готовит план на следующий календарный день, без скипов выходных (ред. 2026-10-19). На следующий день план пересчитывается заново по свежим данным. Ценовые уровни (вход, стоп, цели) строятся по линиям поддержки и сопротивления — см. раздел 6.
2. Данные и первоисточники
| Что | Источник | Ссылка |
|---|---|---|
Сделки (дневные бары OHLCV, тикеры вида TICKER@MISX) | Finam Trade API (REST), метод v1/marketdata/candles, timeframe D, глубина выгрузки 365 дней | api.finam.ru, документация REST, получение токена |
| Первичный рынок котировок | Московская биржа (АО «Московская биржа», срочный и фондовый рынки). Финам предоставляет те же данные торгов; котировки можно сверить по открытому интерфейсу ISS | iss.moex.com (например, свечи: /iss/engines/stock/markets/shares/boards/TQBR/securities/SBER/candles.json) |
| Хранилище | PostgreSQL, база marketdata, таблица daily_bars(symbol, timeframe='D', ts, open, high, low, close, volume); загрузка scripts/load_bars_pg.py (апсерт по ключу symbol+timeframe+ts) | локально на сервере |
Инструменты: SBER, VTBR, GAZP, ROSN, MAGN, GMKN (обыкновенные акции, MOEX) и IMOEX2@MISX — индекс МосБиржи по всем сессиям (значения за весь торговый день, включая дополнительные и выходные сессии); по нему определяются общий сценарий дня и календарь планов. Ред. 2026-10-19: заменён на IMOEX2@MISX с IMOEX@MISX, который считается только по основной торговой сессии и не видит торгов выходных дней. Акции из плана не исключаются ни при каких условиях (см. раздел 7 о серых пометках).
Данные загружаются каждую рабочую публикацию: cron 00:05 MSK запускает scripts/publish_nightly.sh — подгрузка последних 30 дней и пересчёт всех страниц сайта.
3. Базовая сессия
План на дату D строится по последней закрытой сессии индекса IMOEX2@MISX с датой строго раньше D (для прошлых дат — по сессии непосредственного предыдущего дня). Эта сессия называется базовой; её параметры обозначены ниже через C0, H0, L0. Расчёт требует не менее 16 дневных баров (для устойчивого ATR14) с последним баром ровно в базовую дату; иначе план на дату не строится.
3.1 Сессии выходных дней (утверждён 2026-10-19)
Мосбиржа проводит торговые сессии в субботу и воскресенье (по отдельному расписанию). Бары этих сессий — полноценные дневные бары: они образуют даты публикаций, могут быть базовой сессией (план понедельника строится по воскресенью — новости выходных учтены), участвуют в CLV, move и вердиктах. В шапке плана базовая сессия выходного дня помечается явно («базовая сессия — суббота/воскресенье, выходная»).
Два исключения — бары выходных занижают волатильность (укороченная сессия) и дают ненадёжные уровни (тонкий стакан):
1. в расчёт ATR(14) TR баров выходных сессий не включаются (§4.1); 2. экстремумы баров выходных сессий не порождают свинг-уровней (§6.1), но такие бары участвуют в проверке крыльев WING и в ценовом окне круглых уровней (§6.3).
Пивот-точки (§6.2) считаются от базовой сессии всегда — включая случай, когда базовая сессия пришлось на выходной день.
4. Индикаторы
4.1 ATR(14) — средний истинный диапазон по Уайлдеру
Истинный диапазон дня:
TR = max(H − L, |H − C_prev|, |L − C_prev|)
Первое значение — среднее арифметическое первых 14 TR; далее сглаживание Уайлдера (RMA):
ATR_i = (ATR_(i−1) · 13 + TR_i) / 14
TR баров субботних и воскресных сессий в последовательность не включаются (§3.1).
Первоисточник: Wilder J. W. New Concepts in Technical Trading Systems (1978, стр. 18–21) — автор метода и стандартного периода 14. Обзор: Average true range — Wikipedia. В расчёте используется ATR базовой сессии и обозначается A.
4.2 CLV — положение закрытия в диапазоне (closing location value)
CLV = (C − L) / (H − L); если H = L, принимается CLV = 0.5.
Диапазон [0; 1]: 1 — закрытие на максимуме дня (сессия осталась за покупателями), 0 — на минимуме (за продавцами). Методическая родословная — «линия накопления/распределения» (Money Line) Гребелского и Макклеллана: знак и величина дневного CLV используются в построении балансового объёма (OBV/CML). Обзор формулы CLV: On-balance volume — Wikipedia; книга: Grabelsky A., McClellan R. Advanced Trading Methods (1993).
4.3 Нормированное изменение цены
move = (C − C_prev) / ATR14
Величина изменения закрытия относительно предыдущего закрытия, измеренная в единицах волатильности ATR14. Нужна, чтобы сопоставлять «силу» дня у инструментов с разной ценой шага.
5. Вердикт сессии
Вердикт вычисляется отдельно по индексу (задаёт сценарий дня) и по каждой акции (задаёт направление её плана):
- ЛОНГ — если
CLV ≥ 0.65иmove ≥ +0.15; - ШОРТ — если
CLV ≤ 0.35иmove ≤ −0.15; - НЕЙТР — во всех остальных случаях.
Пороги 0.65 / 0.35 по CLV и 0.15 по нормированному изменению — авторские параметры методики (не отраслевой стандарт); зафиксированы в коде как константы CLV_LONG, CLV_SHORT, MIN_MOVE и меняются только вместе с пересмотром методики.
6. Линии поддержки и сопротивления и ценовые уровни (утверждён 2026-10-16; ред. 2026-10-16 — круглые уровни; ред. 2026-10-19 — правило стопа; ред. 2026-10-19 — бары выходных сессий; ред. 2026-10-19 — отмена нижнего клампа стопа и правило входа за пробой сильной поддержки (§6.6))
Ценовые уровни плана (зона входа, стоп, цели T1/T2) строятся по линиям поддержки и сопротивления. Линии трёх прирождений — классическая классификация из Support and resistance — Wikipedia: ценовые свинги (price swing highs/lows) — «реактивные» уровни, сформированные самой ценой; pivot-уровни — «расчётные» (proactive) уровни от параметров базовой сессии; *круглые (психологические) уровни — «магнитные» ориентиры круглых цен (psychological levels). Параметры раздела — авторские, зафиксированы константами в scripts/plan_levels.py (LOOKBACK, WING, MERGE, ZONE, BUF, MAX_STOP, MIN_T, FAR, MAX_LINES, ROUND_ATR, STRONG_NEAR) и меняются только вместе с пересмотром методики. Расчёт всех линий и ценовых уровней ведётся только по дневным барам (timeframe = D, раздел 2); внутридневные данные в расчёте уровней не участвуют.
6.1 Свинг-уровни (реактивные)
Ищутся по дневным барам самой бумаги за последние LOOKBACK = 120 сессий (включая базовую):
- свинг-хай — бар, high которого строго больше high всех
WING = 5баров слева и всех 5 баров справа; - свинг-лоу — зеркально: low строго меньше low всех 5 баров с обеих сторон.
Бары субботних и воскресных сессий свинг-уровней не порождают (§3.1), но участвуют в проверке левого и правого крыла.
Последние 5 баров перед базовой (включая её) не дают завершённого правого крыла и свингов не образуют. Идея локальных экстремумов (фрактал) — Williams W. Trading Chaos (1995), там крыло 2 бара; здесь окно расширено до 5, чтобы отсеивать шум одиночных дневных баров. Многократные касания уровня придают ему значимость (там же, раздел «Identifying support and resistance levels»).
6.2 Дневные пивот-точки (расчётные)
Считаются по параметрам базовой сессии H0, L0, C0 по классической схеме флор-трейдеров:
P = (H0 + L0 + C0) / 3 R1 = 2P − L0, S1 = 2P − H0 R2 = P + (H0 − L0), S2 = P − (H0 − L0) R3 = R1 + (H0 − L0), S3 = S1 − (H0 − L0)
Первоисточник формул: Pivot point (technical analysis) — Wikipedia (проверено 2026-10-16). Заметим, что S3 < L0 ≤ C0 < H0 ≤ R3 — пивоты гарантируют хотя бы одну линию строго под и строго над закрытием базовой сессии.
6.3 Круглые (психологические) уровни
Круглые цены исторически служат поддержкой/сопротивлением: участники ставят ордера «на круглых» — психологические уровни (там же, раздел «Identifying support and resistance levels»). В методику введены сеткой: шаг — минимальное число из ряда 1/2/5·10^k, не меньшее ROUND_ATR = 1.0·A; уровнями считаются все кратные шагу цены внутри ценового окна поиска свингов (min low … max high за LOOKBACK баров). Пример: A = 3.7 → шаг 5 (275, 280, 285 …); A = 9.4 → шаг 10.
Круглые уровни участвуют в слиянии (§6.4) и обычно «округляют» цену линии, но не увеличивают её силу: сила считает только протестированные ценой уровни — свинги и пивоты. Линия, состоящая только из круглых уровней, помечается меткой «круглая» и рисуется на графике мелким пунктиром.
6.4 Сведение уровней в линии
Все уровни (свинги + пивоты + круглые) сортируются по цене; соседние уровни, отличающиеся не более чем на MERGE = 0.25·A (A — ATR14 базовой сессии), сливаются в одну линию. Значение линии — среднее арифметическое вошедших уровней; сила линии — число протестированных уровней (свингов и пивотов; сила ≥ 2 — «сильная» линия, на графике жирнее). Линия, в которую вошёл хотя бы один пивот, помечается меткой пивота (P, R1…R3, S1…S3).
6.5 Уровни плана: вход, стоп, T1/T2
По бумаге с вердиктом ЛОНГ (раздел 5):
- вход — линия поддержки строго под C0, ближайшая к закрытию (с максимальной ценой); зона входа —
вход ± ZONE = 0.1·A; - стоп — за «телом» входной линии: нижняя граница линии входа (минимум из вошедших в неё уровней) минус буфер
BUF = 0.25·A; дистанция стопа ограничена только сверху —MAX_STOP = 1.5·A(при необходимости стоп сдвигается к входу до этой границы). Нижнего клампа нет (ред. 2026-10-19: прежнийMIN_STOP = 0.5·Aотодвигал стоп от уровня недействительности сценария и сам произвольно менял логику плана); - T1 — ближайшая линия строго выше входа на расстоянии не менее
MIN_T = 0.5·A; если такой нет —вход + 1.0·A; - T2 — ближайшая линия выше T1; если такой нет —
T1 + 1.0·A.
По вердикту ШОРТ — зеркально: вход по ближайшей линии сопротивления строго над C0 (с учётом §6.6), стоп — над верхней границей «тела» входной линии плюс буфер BUF с тем же верхним ограничением дистанции, T1/T2 — линии ниже входа. При вердикте НЕЙТР уровни не строятся («нет сигнала»).
Стоп и уровень недействительности сценария совмещены с самой входной линией: закрытие за стопом означает пробой линии входа — сценарий больше не «переживает» закрытие за входной линией, как это допускала привязка стопа к следующей линии за входом (требование §11.7 о 3× достигается развитием профита (T2), а не фиксированным стопом). Серые пометки блока уровней (в стиле раздела 7, расчёт не отменяются): входная линия далее FAR = 1.5·A от закрытия — «линия далеко от закрытия, вход не подтверждён»; нарушения риск-менеджмента — раздел 11. Сценарий считается отменённым, если закрытие дня плана окажется за уровнем «стоп». На график (раздел 8) выводятся до MAX_LINES = 10 линий, ближайших к C0.
6.6 Сильная поддержка и вход шорта (добавлено 2026-10-19)
Пробой уровня меняет логику сценария: покупать стоит только выше значимой поддержки, продавать — только ниже неё. Поэтому для вердикта ШОРТ:
- сильная поддержка — линия строго под C0, ближайшая к закрытию, если она находится не далее
STRONG_NEAR = 1.0·Aот C0 и является «жирной» (сила ≥ 2) либо содержит круглый уровень (§6.3: круглые уровни силы не дают, но решением автора считаются сильными); - если сильная поддержка лежит ниже входной линии сопротивления, вход шорта переносится на линию поддержки; зона входа — та же
±ZONE, но действует условие пробоя: вход разрешён только после закрытия первого 5-минутного бара ниже нижней границы «тела» поддержки (ценаarm_belowв расчёте), на рестест линии снизу; сам бар пробоя входа не даёт; - стоп считается по новым правилам §6.5 от перенесённой входной линии (её «тело» + буфер
BUF, не болееMAX_STOP); цели T1/T2 — линии ниже нового входа.
Логика: шорт от сопротивления над живой поддержкой — сделка «в стену»: стоп над телом линии стоит прямо над поддержкой, и её удержание делает вход убыточным по замыслу. Пробой поддержки вниз — подтверждение того, что уровень больше не держит; шорт после него — по направлению слома. Правило симметрично по смыслу (лонг — только после пробоя сопротивления вверх), но в текущей реализации применено только к шортам (решение автора от 2026-10-19; для лонгов — наблюдение по архиву).
Правило меняет только вход, стоп и цели плана — вердикт, линии и серые пометки остаются; в примечании блока уровней и таблицы дня выводится описание класса входа по образцу: «точка входа ХХ при пробое поддержки YY (закрытие M5-бара ниже), стоп сразу за линией поддержки — ZZ». При симметричном распространении правила на лонги (наблюдение) — аналогично для сопротивления: «точка входа ХХ при пробое сопротивления YY, стоп сразу за линией сопротивления — ZZ». В контроле исполнения (§12) неподтверждённый пробой даёт итог «нет входа (пробой не подтверждён)».
7. Серые пометки (никто не исключается)
- Строка акции в таблице дня и вся её страница помечаются серым, если вердикт акции не совпал с вердиктом индекса или её собственный вердикт — НЕЙТР. План при этом всё равно строится и публикуется по собственному вердикту акции; серый — только маркер расхождения с общим фоном дня (или отсутствия сигнала).
- Серым также помечается план/сделка, не соответствующая риск-менеджменту (раздел 11): расчёт продолжается в полном объёме, в пометке указываются расчётный убыток, лимит, превышение (₽ и %) и причина. Акция/сделка при этом из плана не исключается.
- При вердикте акции НЕЙТР страница акции сохраняется с пометкой «нет сигнала».
- Серые пометки блока уровней (входная линия далее 1.5 ATR от закрытия; нарушения риск-менеджмента) — разделы 6.5 и 11.1 п. 6.
8. Графики
Дневной график на 30 баров до базовой сессии включительно — OHLC-бары: вертикальная линия high–low; засечка слева от линии — цена открытия, засечка справа — цена закрытия. Зелёный бар — закрытие не ниже открытия, красный — ниже. Поверх баров — линии поддержки/сопротивления (до 10 ближайших к C0, в ценовом диапазоне графика): сплошные — свинговые, пунктирные — содержащие пивоты (с метками P/R1…S3), мелким пунктиром — только круглые уровни (метка «круглая»); ниже C0 зелёные, выше — красные; сила ≥ 2 — толщина больше. Жёлтая полоса — зона входа; сплошные линии с подписями — стоп (красная) и цели T1/T2 (зелёные); серый пунктир — цена закрытия базовой сессии C0. Подписи уровней справа нумеруются без наложений (близкие по цене подписи пропускаются). Масштаб по цене подбирается автоматически: нижняя граница — минимум из low всех баров, верхняя — максимум из high, плюс 6 % запаса; ценовая область занимает 246 из 300 px высоты графика, подпись дат — нижнюю полосу.
9. Публикация и структура сайта
- Главная — список дат; страница дня (
/plans/<дата>.html) — таблица по 6 акциям с вердиктом, закрытием C0 и примечаниями и график индекса; у каждой акции — отдельная страница/plans/<дата>/<TICKER>.htmlс собственным OHLC-графиком и деталями расчёта. - Чек-лист плана (вход / стоп / T1 / T2) — чекбоксы на странице бумаги. Отметки чек-листов хранятся в localStorage браузера (ключ — адрес страницы + тикер + пункт), прежние отметки сохранены.
- Сайт отдаётся Apache из каталога
site/этого репозитория; пересчёт всей истории —python3 scripts/publish_plan.py --days 120.
10. Ограничения и дисклеймер
Методика описывает механический алгоритм по закрытым дневным данным; она не учитывает новости, ликвидность, гэпы открытия и внутридневные движения. Пороги и коэффициенты — предмет настройки и тестирования. Материалы сайта носят информационный характер и не являются индивидуальной инвестиционной рекомендацией.
11. Риск-менеджмент (утверждён 2026-10-16)
Правила и формулы блока утверждены автором. Реализация в коде: константы RISK_PER_TRADE, COMMISSION_SELL, MAX_TRADES_PER_DAY, RISK_REWARD_TARGET и функции unit_loss(), max_units(), gross_ratio() в scripts/plan_levels.py. Рабочие материалы, обсуждение и полные источники блока — RISK_MANAGEMENT.md, ревью — RISK_REVIEW.md. Оговорка автора: значения параметров могут пересматриваться.
11.1 Правила
1. Полнота плана. Каждая планируемая сделка обязана иметь точку входа, стоп-лосс и уровень прибыли; торговый план всегда составляется с учётом риск-менеджмента. 2. Лимит убытка — сумма моральной готовности к потере, по умолчанию RISK_PER_TRADE = 300 ₽. Это самостоятельный изменяемый параметр автора. Расчёт допустимого убытка как процент от размера счёта не применяется. 3. Комиссия. Фактический тариф Финама: 0.3% от суммы продажи позиции (покупка без комиссии). Комиссия входит в бюджет убытка: COMMISSION_SELL = 0.003. 4. Возможный убыток сделки (лонг): L = N·(Δстоп + 0.003·P_стоп), Δстоп = P_вход − P_стоп; просадка до стопа плюс комиссия с продажи по цене стопа. Для шорта комиссия берётся с суммы открытия-продажи: L = N·(Δстоп + 0.003·P_вход). Проскальзывание и гэпы при составлении плана не учитываются (осознанное ограничение): расчётный убыток — нижняя граница фактического; фактическую статистику проскальзывания накапливать при разборе результатов. 5. Объём входа подбирается из условия L ≤ RISK_PER_TRADE: N ≤ RISK_PER_TRADE / (Δстоп + 0.003·P_стоп). 6. Превышение не отменяет расчёт. Если возможный убыток превышает лимит (например, из-за стоимости минимального лота), расчёт продолжается в полном объёме, а план помечается серым (расчётный убыток, лимит, превышение в ₽ и %, причина) — в едином стиле раздела 7; сделка из плана не исключается. 7. Требование доходности — валовое: ожидаемая валовая прибыль (ценовой профиль до вычета комиссии) ≥ 3 × возможного убытка (убыток — с комиссией). Для планов с фиксированной целью это g ≥ 3·s + 0.9 п.п. (s — стоп, g — цель, доли цены от входа). Неравенство не является вето на узкие стопы: ширина стопа привязана к точке недействительности сценария, а 3× достигается развитием профита сверх минимальной цели (трейл / частичная фиксация — будущая часть методики). 8. Не более MAX_TRADES_PER_DAY = 3 сделок за торговый день — общее число, включая повторные входы в тот же инструмент. Все шесть инструментов плана рассчитываются и публикуются без исключений — лимит касается сделок. Дневной риск структурой правил ограничен ≈ 3 × 300 ₽ = 900 ₽ плюс задокументированные превышения; отдельный динамический дневной лимит не вводится. В плане выводится суммарный расчётный риск дня (сумма L по ≤3 сделкам, включая превышения). 9. Риск-менеджмент первичен: приоритет в описании плана — вес → объём → проверка риска → серая пометка; риск-менеджмент не подчиняется весу. 10. Веса по сделкам будут определены отдельно (открытый вопрос методики); при их описании соблюдать приоритет из п. 9.
11.2 Статистические ориентиры
Валовая трактовка «3×» даёт фактическое нетто-соотношение ≈ 2.8:1 при стопах ≥ 1%; порог безубыточного винрейта ≈ 26–27% (25% — без издержек при 1:3). Доля комиссии в бюджете убытка: стоп 1% → ~23%, 2% → ~13%, 3% → ~9% (убывает с ростом стопа). Ложный пробой уровня при стопе 0.1% стоит ≈ 0.4% цены (стоп + комиссия) — лимит 300 ₽ ограничивает стоимость каждой попытки; профиль узких стопов — «много малых убытков / редкие крупные прибыли».
12. Исполнение планов по M5 (справочный контроль)
Каждая страница бумаги и таблица плана показывают фактическое исполнение направление-кандидата планового дня по пятиминутным барам (Finam, timeframe='M5'). Раздел — справочный: он не меняет вердикты, линии, серые пометки и расчёты разделов 5–11; это ретроспективная проверка «что дал план, если действовать по нему».
Правила оценки (реализация — scripts/plan_exec.py):
1. Окно: только бары M5 самой плановой сессии (день плана, МСК). 2. Вход: лимитная заявка по линии с зоной допуска ±0,1·ATR (лонг — если low ≤ вход + 0,1·ATR; шорт — если high ≥ вход − 0,1·ATR); цена исполнения считается ровно по линии. Для планов с переносом входа по §6.6 вход дополнительно разрешён только после закрытия первого M5-бара ниже цены пробоя arm_below (сам бар пробоя входа не даёт — ждём рестест линии снизу). 3. Конфликт в баре входа: если тот же бар достал и стоп — считаем стоп. 4. Дальше по барам: проверяется стоп раньше цели; если один бар достал и стоп, и цель — считаем стоп (консервативная трактовка). 5. Выход: иначе — по close последнего M5-бара сессии (план дневной, позиция закрывается до конца дня). 6. R = валовое расстояние вход→выход, делённое на расстояние вход→стоп (цель T1 = 3R по §11.3; без комиссии — комиссия учтена в вердиктах §11.7). 7. Итоги: ЦЕЛЬ / СТОП / ЗАКРЫТИЕ (±R) / НЕТ ВХОДА (для планов §6.6 — с уточнением, что пробой не подтверждён); если сессия ещё не торговалась или M5 недоступны (глубина истории Finam для M5 — 30 дней), показывается соответствующая пометка без графика.
На странице бумаги приводится M5-график сессии с точкой входа (▲) и точкой выхода (✕), зонами входа, линиями стоп/T1/T2 и итогом в единицах риска.
Данные M5 в БД пополняются ночным прогодом (scripts/publish_nightly.sh, load_bars_pg.py --timeframe M5 --days 3) с теми же оговорками §2, что и дневные бары: бары формируются по данным Finam, торговые сессии выходных включают моновыводы ликвидности (§3.1); историческая глубина M5 ограничена 30 календарными днями, поэтому планы старше этого окна показывают «нет M5-данных».
13. Сила плана — модель TradingAgents (добавлено 2026-10-19)
Раздел справочный: он не меняет вердикты, линии, точки входа, стопы и расчёты разделов 5–12. По каждой бумаге планового дня показывается дополнительная оценка «сила» — вероятность того, что плановая сделка данного направления закончится в плюсе, по модели переработанной надстройки TradingAgents (scripts/ta_strength.py).
Итоговая вероятность: P = 0,45·P_эмп + 0,55·P_тех.
1. P_эмп — эмпирическая доля плюсов по архиву планов сайта (site/plans/*.html, исполнение по M5 из §12): бумага засчитывается в «свою» выборку, если по ней данного направления накоплено ≥10 сделок с вердиктом цель/стоп/закрыто; иначе берётся пул по всем бумагам того же направления. Нейтральные исходы (R = 0) считаются за пол-победы. Для архивных дат P_эмп считается по всей накопленной истории, включая исходы будущих сессий (backtest-подглядывание) — поэтому раздел подан как «справочно, не сигнал». 2. P_тех — техническая согласованность направления по дневным барам (stockstats, БД daily_bars, timeframe D): база 0,5; +0,07 если цена по эту сторону EMA10; +0,10 если цена и наклон 50 SMA в направлении; +0,08 если гистограмма MACD в направлении (−0,05, если она движется против); ±0,07 за RSI (≥55 для лонга / ≤45 для шорта — за, зеркально — против); +0,04 если цена по эту сторону VWMA; импульс 5 дней ±0,02·(импульс/ATR) с клампом ±0,04; ±0,06 за совпадение/противоречие с вердиктом индекса IMOEX2 в плане; ±0,05 за T1/risk ≥ 2. Кламп результата: [0,15; 0,85] для плановых направлений, [0,15; 0,90] для теневых. 3. Фильтр дистанции (§11): если цена закрытия предыдущей сессии дальше точки входа, чем на 1,5·ATR, бумага помечается «вход дальше 1,5·ATR — без сделки», P = 0 и в рейтинг не попадает. 4. ТЕНЬ: для бумаг с вердиктом НЕЙТР (направления в плане нет) считается теневая оценка по направлению технического консенсуса (4 признака: цена/EMA10, цена+наклон 50 SMA, гистограмма MACD, цена/VWMA); направление показывается приглушённо с пометкой ТЕНЬ — это не сигнал к сделке. 5. Класс силы: высокая ≥65%, средняя 50–64%, низкая <50%. Порядок строк — по убыванию силы.
Отображение на сайте. Расчёт пишет _ta/strength/<дата>.json (плюс текстовый отчёт _ta/reports/STRENGTH_<дата>.md); публикация (scripts/publish_plan.py) встраивает таблицу «Сила плана (данные TradingAgents)» в дневную страницу плана и на страницу каждой бумаги (рядом с уровнями). Ночной прогон (scripts/publish_nightly.sh): публикация плана → ta_strength.py --plan <дата> → повторная публикация этой же даты, чтобы таблица силы попала на страницы.
Модель — эвристика поверх собственной статистики исполнений и стандартных технических индикаторов; параметры (веса, шаги, пороги) — авторские, не оптимизировались. Раздел не является индивидуальной инвестиционной рекомендацией (§10).
Источники
1. Wilder, J. W. New Concepts in Technical Trading Systems. — Trendsmith, 1978. (ATR, TR, сглаживание RMA, период 14.) 2. Average true range — Wikipedia. (Описание ATR и формул сглаживания; проверено при публикации.) 3. Grabelsky, A., McClellan, R. Advanced Trading Methods. — The Best Ideas, 1993. (Position value / Money Line — основа метрики CLV.) 4. On-balance volume — Wikipedia. (Формула дневного положения закрытия (C−L)/(H−L) в составе CML/OBV.) 5. Finam Trade API — основной источник данных сделок; REST-документация, токены доступа. 6. Московская биржа, интерфейс ISS — первичные данные торгов, доступны для независимой сверки. 7. Стоп-лосс — Википедия — механика стоп-заявок; основание для учёта риска исполнения (раздел 11). 8. Quantra — Размер позиции в трейдинге и калькулятор размера позиции — модель фиксированной суммы риска; расчёт объёма с включением комиссии в бюджет убытка (раздел 11). 9. abnpro — Ошибки при выставлении стоп-заявок в QUIK Pro — проскальзывание стоп-заявок на МосБирже (1–3 пункта у стоп-рыночных), риск неисполнения стоп-лимита на гэпе (раздел 11). 10. broker-forex.fr — Gestion du risque en trading (фр.) и TradeSizing — Risk-reward ratio, break-even win rate, expectancy (англ.) — сравнение фиксированного рублёвого риска с процентом от капитала; пороги безубыточности с учётом издержек (раздел 11; дополнительные источники — RISK_MANAGEMENT.md §6). 11. Pivot point (technical analysis) — Wikipedia — классическая схема дневных пивот-точек P, R1–R3, S1–S3 (раздел 6.2; проверено при публикации). Формулы сверены с иноязычными версиями и совпадают: Punto pivote — Wikipedia (исп.), Punkt zwrotny — Wikipedia (пол.) (проверено 2026-10-16). 12. Support and resistance — Wikipedia — классификация реактивных (свинги) и расчётных (пивоты) уровней, значимость многократных касаний, психологические (круглые) уровни (разделы 6.1, 6.3, 6.4; проверено при публикации). 13. Williams, W. Trading Chaos — TradeSmith School of Technical Trading, 1995. (Фракталы — локальные экстремумы как основа свинг-уровней; крыло окна расширено до 5 — авторский параметр.)