Если вы хотите собрать свою торговую стратегию и тут же проверить её на истории, обе задачи закрываются в одном окне TradingView, где стратегия описывается на языке Pine Script, а считает её встроенный тестер. Ничего скачивать и устанавливать не придётся, всё работает в браузере, а отчёт со сделками, прибылью и просадкой появляется через несколько секунд после нажатия одной кнопки.
Pine Script это собственный язык программирования TradingView, придуманный специально для описания торговых правил. Он намеренно простой, в нём нет циклов ради циклов, работы с файлами и прочего тяжёлого багажа настоящих языков разработки. Строка кода здесь читается почти как фраза на английском, а «купи, когда быстрая средняя пересекла медленную снизу вверх» умещается в две строчки. Код выполняется на серверах платформы и хранится в вашем аккаунте, так что редактор открывается в том же окне браузера, а результат виден сразу на графике. Именно поэтому люди без опыта программирования доходят до первого рабочего теста за вечер, а не за месяц.
Набор правил подойдёт любой, если его можно записать числом и условием. Покупка на пересечении быстрой и медленной скользящих средних, вход при снижении RSI ниже 30, пробой максимума за 20 баров со стопом в 2% и фиксацией прибыли в 5%… – тестер одинаково спокойно посчитает каждый такой вариант.
Главное преимущество такого способа проверки в том, что вы перестаёте оценивать стратегию на глаз.
Пролистывая график руками, человек почти всегда запоминает удачные сигналы и не замечает десяток пропущенных, а тестер механически исполнит каждое условие на каждом баре и посчитает комиссию до копейки.
По сравнению с тестером MetaTrader экономия времени заметная, потому что не нужен ни терминал, ни отдельные котировки, ни компиляция файла, а один и тот же код запускается на акциях, фьючерсах, валюте и криптовалюте простым переключением инструмента на графике.
Как протестировать стратегию в TradingView
Порядок действий одинаковый для акций, валюты или криптовалюты, меняется только инструмент в верхнем левом углу графика.
1. Откройте график. Зайдите на TradingView, нажмите «График» в верхнем меню и введите тикер в поле поиска слева вверху, например SBER или BTCUSDT. Сразу выберите таймфрейм, потому что от него зависит каждая цифра будущего отчёта.

2. Откройте редактор Pine. На правой вертикальной панели с иконками найдите кнопку Pine, и справа раскроется панель «Редактор Pine». Это встроенный редактор кода, устанавливать ничего не нужно. Если удобнее работать с кодом под графиком, панель переносится вниз командой «Переместить скрипт вниз» в меню редактора.


3. Создайте новую стратегию. В левом верхнем углу редактора нажмите на название скрипта «Новый скрипт», в выпавшем меню выберите «Создать новый» и пункт «Стратегия». Откроется готовый шаблон со строкой strategy и парой учебных сделок, править такой каркас проще, чем писать всё с нуля.


4. Вставьте свой код. Выделите содержимое шаблона, удалите его и вставьте пример из следующего раздела. Первая строка сообщает версию языка, вторая описывает саму стратегию и её деньги, а дальше идут условия сделок.

5. Нажмите «Добавить на график». Кнопка находится в верхней части редактора. Скрипт скомпилируется, на графике появятся стрелки входов и выходов, а внизу откроется вкладка «Тестер стратегий» с отчётом. Если вместо стрелок появилось красное сообщение об ошибке, в нём указан номер строки, где опечатка.


6. Сохраните скрипт. Кнопка «Сохранить» рядом, придумайте понятное имя вроде «Пересечение средних, версия 1». Каждый следующий вариант сохраняйте отдельно, чтобы можно было вернуться к прошлому.
7. Задайте реальные условия торговли. Наведите курсор на название стратегии на графике, нажмите на шестерёнку и перейдите на вкладку «Свойства». Здесь укажите исходный капитал, объём заявки, комиссию своего брокера и проскальзывание. По умолчанию комиссия равна нулю, а это самая частая причина отчётов с фантастической прибылью.

8. Прочитайте отчёт. В тестере есть раздел с показателями и список сделок. Нажмите на любую сделку из списка, и график перепрыгнет на её бар, так удобно проверять, что вход случился именно там, где вы задумали, а не на бар позже.
9. Повторите тест на других данных. Тот же код прогоните на соседнем инструменте и на другом отрезке истории. Правила, которые дают прибыль только на одном тикере и только за один год, скорее всего подогнаны под этот кусок графика.
Готовый пример кода для копирования
Стратегия ниже покупает, когда быстрая скользящая средняя пересекает медленную снизу вверх, и закрывает позицию при обратном пересечении. Скопируйте её целиком, вставьте в редактор и нажмите «Добавить на график», всё заработает без правок.
//@version=6 strategy("Пересечение средних", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.05, slippage=2) fastLen = input.int(20, "Период быстрой средней") slowLen = input.int(50, "Период медленной средней") fastMa = ta.sma(close, fastLen) slowMa = ta.sma(close, slowLen) plot(fastMa, color=color.blue) plot(slowMa, color=color.orange) if ta.crossover(fastMa, slowMa) strategy.entry("Лонг", strategy.long) if ta.crossunder(fastMa, slowMa) strategy.close("Лонг")Запись //@version=6 говорит платформе, что код написан на шестой версии языка, и без неё скрипт может повести себя странно. Функция strategy задаёт имя стратегии, стартовый капитал 100 000 рублей или долларов в зависимости от инструмента, размер одной сделки в 10% от капитала, комиссию 0,05% и проскальзывание в 2 тика. Дальше input.int создаёт поля, которые потом можно менять мышкой на вкладке «Аргументы» без правки кода, а ta.sma считает среднюю цену закрытия за нужное число баров. Команда ta.crossover срабатывает ровно в тот бар, когда первая линия пересекла вторую снизу вверх, strategy.entry открывает позицию, а strategy.close её закрывает.
Стоп-лосс в этом примере не задан намеренно, чтобы код оставался коротким. Добавить его можно одной строкой, и тогда позиция закроется при падении на заданный процент от цены входа.
strategy.exit("Выход по стопу", from_entry="Лонг", stop=strategy.position_avg_price * 0.98)Если резюмировать, то чтобы протестировать свою стратегию, откройте график нужного инструмента на TradingView, справа раскройте редактор Pine, напишите или вставьте код стратегии, нажмите «Добавить на график» и прочитайте отчёт во вкладке «Тестер стратегий». До того как смотреть прибыль, задайте в настройках свою комиссию и проскальзывание, иначе цифры будут красивее реальности.
Весь смысл этой работы держится на одном условии. Правила должны быть сформулированы так, чтобы их понял калькулятор, а не только автор.
Фраза «покупаю на развороте после отката» для тестера пустой звук, а «покупаю, когда цена закрылась выше средней за 50 баров, а RSI при этом ниже 60» уже превращается в код. Если такого перевода нет, никакой инструмент не поможет, потому что проверять нечего.
Чем стратегия отличается от индикатора
В Pine Script есть два типа скриптов, и новички путают их чаще всего. Индикатор только рисует, то есть выводит линии, точки и стрелки, но сделок не совершает и отчёта не строит. Стратегия отправляет виртуальные заявки на покупку и продажу, ведёт учёт позиции и капитала и открывает тот самый тестер с результатами. Отличаются они одной строкой в самом начале файла, где вместо функции indicator стоит функция strategy.
Из этого следует практический вывод. Если вы скачали чужой скрипт из библиотеки сообщества и никакого тестера внизу не появилось, значит вам достался индикатор, и тестировать его в таком виде нельзя. Нужен код, объявленный как стратегия.
Настройки тестера, влияющие на результат
Одна и та же стратегия на одном и том же графике легко покажет прибыль или убыток в зависимости от того, что записано во вкладке «Свойства». Заполнять её нужно один раз, зато честными числами со своего брокерского счёта.
| Настройка | Что задаёт | Ориентир для первого теста |
|---|---|---|
| Исходный капитал | Сумму, с которой начинается расчёт всех сделок | Сумма, близкая к вашему реальному счёту |
| Объём заявки по умолчанию | Сколько уходит в одну сделку, в бумагах, деньгах или процентах от капитала | 5-10% от капитала на сделку |
| Комиссия | Плату брокера и биржи за каждую сделку | Ваш тариф, у российских брокеров обычно около 0,05% от оборота |
| Проскальзывание | Разницу между ценой сигнала и ценой реального исполнения, в тиках | 1-2 тика на ликвидных бумагах, больше на редко торгуемых |
| Пирамидинг | Сколько сделок в одну сторону разрешено держать одновременно | 1, пока правила не проверены полностью |
Отдельно стоит заглянуть в меню детализации баров. Тестер TradingView по умолчанию считает, что внутри одного бара цена шла по упрощённому маршруту, и на этом иногда строится ложная прибыль, когда стоп и тейк оказались внутри одной свечи. Режим с подробным просмотром внутренних движений цены доступен на платных тарифах и делает исполнение заявок ближе к реальному. Там же на тарифах уровня Plus и выше включается тестирование на глубокой истории, а на бесплатном аккаунте расчёт идёт примерно по последним 5 000 баров, чего на дневном графике хватает с запасом, а на пятиминутном хватит всего на пару месяцев.
Как читать отчёт тестера стратегий
Смотреть только на чистую прибыль бесполезно, потому что она ничего не говорит о том, какой ценой эта прибыль получена. В отчёте есть несколько показателей, по которым система оценивается за минуту.

- Общая прибыль, в отчёте она подписана как общие ПР/УБ. Итог по всем сделкам после комиссий, в деньгах и в процентах от стартового капитала.
- Максимальная просадка. Самое глубокое падение капитала от достигнутой вершины. Эту цифру примерьте на себя честно, ведь просадку в 40% придётся пережить с реальными деньгами.
- Фактор прибыли, его же называют профит-фактором. Сумма всех прибыльных сделок, делённая на сумму убыточных. Значение ниже 1 означает, что правила теряют деньги, а 1,5 и выше уже похоже на работающую систему.
- Всего сделок. По 10-20 сделкам отчёт не доказывает ничего, потому что такой результат мог сложиться случайно. Ориентируйтесь на сотню сделок и больше.
- Средняя сделка. Средний результат одной операции, который должен заметно превышать комиссию и спред, иначе весь доход уходит на издержки.
Список сделок полезен не меньше показателей. Пролистайте его и найдите самую крупную прибыльную операцию, а затем уберите её мысленно из отчёта. Если без одной удачной сделки вся прибыль стратегии исчезает, перед вами не система, а единичное совпадение, которое вряд ли повторится.

Проверка результата на честность
Красивая кривая доходности почти всегда получается с первого раза, если долго крутить параметры. Подбирая период средней и размер стопа под конкретный график, вы не улучшаете стратегию, а просто запоминаете прошлое, и на новых данных такая настройка рассыпается. Спасает от этого разделение истории на две части, настройте правила на первой половине, а потом запустите тот же код на второй, куда не заглядывали. Совпадение результатов хотя бы по порядку величины уже хороший знак.
Тестер показывает не будущую прибыль, а поведение конкретных правил на прошлых данных.
Вторая частая ловушка называется заглядыванием в будущее. Она возникает, когда скрипт берёт данные со старшего таймфрейма или пересчитывает сигнал внутри незакрытого бара, и в итоге стратегия принимает решение на основе цены, которой в тот момент ещё не существовало. Отчёт получается волшебным, а в реальной торговле повторить его невозможно. Признак простой, стрелки входов после каждого обновления страницы прыгают на другие бары. Лечится это тем, что все условия строятся на закрытых барах, а параметр calc_on_every_tick оставляют выключенным.
Учитывайте и то, что результат на зависит от периода.
Что делать со стратегией после теста
Прошедшие проверку правила рано выпускать на реальный счёт. Следующий шаг это форвард-тест, то есть наблюдение за той же стратегией на свежих данных в режиме реального времени, для чего в TradingView есть встроенный симулятор торговли с виртуальными деньгами. Двух-трёх недель обычно достаточно, чтобы увидеть расхождение между отчётом на истории и текущей работой, а заодно понять, комфортно ли вам вообще держать такие позиции.
Когда стратегия ведёт себя предсказуемо, на неё вешают оповещения через функцию alert, и дальше сигналы можно отправлять по вебхуку в торгового робота или просто получать на телефон. Тем, кому интересна полная автоматизация без написания кода, ближе окажется конструктор торговых роботов, а размер позиции и допустимый риск на сделку стоит определить заранее, опираясь на управление рисками в трейдинге. Тестер отвечает только на вопрос, как правила вели себя раньше, а сколько денег вы готовы отдать одной неудачной серии, решаете всё-таки вы.








