Что в индикаторе делает модель машинного обучения?
Модель относит текущий бар к классу по тому, на какие прошлые бары он похож. Какой алгоритм стоит внутри, зависит от реализации, единого устройства у таких инструментов нет. Ниже один наглядный вариант - классификатор по ближайшим соседям. На нём удобно разобрать три части: признаки, историю с метками и результат.
Признаки - это числа, которыми описан каждый бар. В открытом индикаторе Machine Learning: Lorentzian Classification на TradingView их выбирают из четырёх вариантов: RSI, WT, CCI и ADX. Сколько признаков участвует, задаёт настройка Feature Count: от 2 до 5, по умолчанию 5. Варианты могут повторяться: по умолчанию RSI стоит и первым, и пятым признаком. Что значат сами числа, разобрано в ответах про значения RSI и про то, как пользоваться ADX.
История с метками - вторая часть. Метка описывает известный исход прошлого бара, например «следующий бар закрылся выше». Документация scikit-learn пишет про классификацию по соседям так: метод не пытается построить общую внутреннюю модель и просто хранит примеры обучающих данных.
Результат - класс текущего бара. В базовом варианте его назначают простым большинством голосов ближайших соседей, а число соседей задаёт пользователь. У Lorentzian Classification за это отвечает настройка Neighbors Count: по умолчанию 8, минимум 1, максимум 100. Свой поиск автор называет приближённым поиском ближайших соседей, а расстояние между барами считает по Лоренцу.
Как получается сигнал на примере пяти соседей?
Сигнал получается подсчётом голосов: каких меток среди отобранных соседей больше, такой класс и получает текущий бар. Возьмём пять соседей, которые уже отобраны. Поиск соседей и обучение здесь не выполнялись, пример придуман ради одного шага - голосования. Метка у каждого соседа простая: следующий бар закрылся выше или ниже. Веса равные, один сосед даёт один голос.
| Сосед | Что было на следующем баре | Голос |
|---|---|---|
| A | закрытие выше | вверх |
| B | закрытие ниже | вниз |
| C | закрытие выше | вверх |
| D | закрытие выше | вверх |
| E | закрытие ниже | вниз |
Итог: 3 голоса «вверх» против 2 голосов «вниз», класс текущего бара - «вверх». Доля 3/5 = 0,6 описывает только эту придуманную выборку. Результатом реального индикатора она не служит и о будущей цене ничего не обещает.
Учебный пример: пять соседей голосуют за класс текущего бара
учебная схема · не котировка и не сигнал
Учебные бары: соседи A-E и текущий
- AСоседи A, C и D: следующий бар закрылся выше, три голоса «вверх»
- BСоседи B и E: следующий бар закрылся ниже, два голоса «вниз»
- ?Текущий бар: 3 голоса против 2, класс «вверх». Это итог подсчёта, а продолжение графика неизвестно
Контрольный вариант: заменим метку соседа C на «вниз». Получится 2 голоса против 3, и класс сменится на «вниз». Один сосед из пяти перевернул ответ, поэтому число соседей и способ счёта влияют на результат. По документации scikit-learn удачное число соседей сильно зависит от данных: большее число обычно гасит шум, но делает границы классов менее чёткими. Там же описан второй способ счёта, где ближние соседи весят больше дальних.
В Lorentzian Classification оценка видна прямо на графике: настройка Show Bar Prediction Values показывает её для каждого бара целым числом. По смыслу это обычный торговый сигнал, повод открыть график и проверить условия своей идеи.
Что проверить перед доверием к результату?
Проверяют три вещи: признак был известен до сигнала, метка описывает уже случившийся исход, контрольный отрезок истории не участвовал в подборе настроек. Причину называет документация scikit-learn. Утечка данных возникает, когда при построении модели использовали сведения, которых в момент прогноза не было бы. Оценки качества тогда выходят слишком оптимистичными, и на новых данных модель работает хуже.
| Что смотрим | Вопрос к индикатору | Признак утечки |
|---|---|---|
| Признак | Значение посчитано по барам, закрытым до сигнала? | В расчёт попал бар, который ещё не закрылся или стоит позже сигнала |
| Метка | Исход относится к прошлому бару и уже известен? | Исход текущего бара попал в данные раньше, чем наступил |
| Контрольный отрезок | Настройки подбирали на другом куске истории? | Настройки подгоняли на том же отрезке, по которому показывают результат |
Правило из той же документации короткое: тестовые данные нельзя использовать, когда принимают решения о модели, включая её настройки. У Lorentzian Classification есть настройка Show Backtest Results, она выводит долю выигрышных сделок для выбранной конфигурации. Если крутить настройки и смотреть, как растёт это число, оно перестаёт быть контрольным: подбор шёл по тем же данным.
Слова о преимуществах расстояния Лоренца и о подходящих таймфреймах в описании принадлежат автору индикатора. Проверки на вашем инструменте и таймфрейме там нет, её делают сами. Как устроен бэктест с разделением данных, разобрано в материале про алготрейдинг и проверку алгоритма. Место таких инструментов среди остальных видно в обзоре индикаторов технического анализа.
Что должно входить в проверяемый торговый сигнал?
В проверяемый торговый сигнал входят шесть вещей: инструмент и таймфрейм, условие входа, момент фиксации сигнала (на закрытии бара), уровень отмены, условие выхода и способ проверить всё это на истории. Сигнал индикатора на машинном обучении проверяют по тем же пунктам, что и любой другой. Класс бара «вверх» закрывает только один из них - условие входа, остальные пять задаёт правило вокруг индикатора. Если хотя бы один пункт не записан заранее, результат нельзя ни повторить, ни опровергнуть: непонятно, какой бар считать сигналом и в какой момент идея перестала действовать.
| Элемент сигнала | Что должно быть указано | Как проверить |
|---|---|---|
| Инструмент и таймфрейм | Конкретный тикер и интервал баров | Открыть тот же график и убедиться, что сигнал стоит на том же баре |
| Условие входа | Правило без слов «примерно» и «похоже»: какой класс или какое значение считается сигналом | Два человека по одному правилу отмечают одни и те же бары |
| Момент фиксации | Сигнал засчитан после закрытия бара, а не внутри него | Сравнить отметку в реальном времени с тем, что осталось на графике после обновления страницы |
| Уровень отмены | Условие, при котором идея считается несостоявшейся | Условие записано до сигнала и не сдвигается после него |
| Условие выхода | Правило закрытия: по уровню, по времени или по обратному сигналу | На истории у каждого сигнала есть однозначный исход |
| Проверка на истории | Отрезок истории, число сигналов, способ подсчёта | Пересчитать сигналы вручную на отрезке, который не участвовал в подборе настроек |
Почему момент фиксации стоит отдельной строкой, объясняет справка TradingView о перерисовке (проверено 12.10.2026). В исторических данных нет записи движения цены внутри бара, а на баре реального времени цена обычно меняется много раз, прежде чем установятся его итоговые максимум, минимум и закрытие. Поэтому часть скриптов считается на исторических барах иначе, чем в реальном времени, и справка называет это не ошибкой, а следствием разницы в данных. Сигнал, который появился внутри бара, к закрытию может исчезнуть, а на истории его уже не будет видно.
Порядок проверки сигнала до использования:
- Записать правило целиком: инструмент, таймфрейм, условие входа, уровень отмены, условие выхода.
- Выяснить, когда индикатор фиксирует сигнал. Если расчёт идёт по незакрытому бару, считать сигналом только значение на закрытии.
- Понаблюдать за несколькими сигналами в реальном времени, затем обновить страницу и сравнить: отметки должны остаться на тех же барах.
- Пройти отрезок истории бар за баром. В TradingView для этого есть симулятор рынка: он воспроизводит прошлое движение цены и не показывает бары правее выбранной точки.
- Выписать каждый сигнал на отрезке вместе с исходом по своему правилу выхода, включая неудачные.
- Повторить на другом отрезке и на другом инструменте, не меняя настроек. Если картина сильно расходится, правило было подогнано под первый отрезок.
Такая проверка показывает, что сигнал однозначен и не меняется задним числом. Она не говорит о том, каким окажется следующий исход: правило, которое аккуратно отработало на истории, на новом отрезке рынка может вести себя иначе. Пройти эти шаги проще всего на своих графиках: за 7 дней демо Midas можно посмотреть, как сигналы ведут себя на закрытых барах привычного инструмента и таймфрейма.
Риски и ограничения. Таблица голосов и схема учебные: соседи и метки придуманы, это не расчёт по реальным ценам и не тест стратегии. Пример объясняет механизм и торговую эффективность не доказывает. Индикаторы машинного обучения устроены по-разному, описанная схема подходит не каждому из них. Класс бара не обещает ни направления цены, ни результата сделки, прошлые результаты не гарантируют будущих. Рынок волатилен, торговля связана с риском потери капитала. Материал образовательный, это не индивидуальная инвестиционная рекомендация.
Источники
- TradingView, индикатор Machine Learning: Lorentzian Classification - описание автора, признаки, настройки числа соседей, оценки бара и результатов на истории.
- scikit-learn, раздел Nearest Neighbors - классификация большинством голосов ближайших соседей, число соседей, равные веса и веса по расстоянию.
- scikit-learn, раздел Common pitfalls and recommended practices - утечка данных и правило про тестовые данные.
- TradingView, справка: Script or strategy gives different results after refreshing the page (repainting) - разница расчёта на исторических барах и на баре реального времени, проверено 12.10.2026.
- TradingView, справка: Симулятор рынка - воспроизведение прошлого движения цены для проверки на истории, проверено 12.10.2026.
Частые вопросы
Что должно входить в проверяемый торговый сигнал?
В проверяемый торговый сигнал входят инструмент и таймфрейм, условие входа, момент фиксации на закрытии бара, уровень отмены, условие выхода и способ проверки на истории. Если хотя бы один пункт не записан заранее, результат нельзя ни повторить, ни опровергнуть. Сигнал индикатора на машинном обучении проверяют по тем же пунктам: класс бара закрывает только условие входа.
Почему сигнал нужно фиксировать на закрытии бара?
Потому что до закрытия бара его значения ещё меняются, и сигнал внутри бара может исчезнуть. По справке TradingView о перерисовке (проверено 12.10.2026) в исторических данных нет записи движения цены внутри бара, поэтому часть скриптов считается на истории иначе, чем в реальном времени. Сигнал, засчитанный на закрытии, остаётся на том же баре после обновления графика.





