Настройки скрипта стратегии TradingView

Настройки скрипта стратегии TradingView

Автор: Noro
08.08.2019

 

На сервисе TradingView.com, который для нас очень даже полезен, имеются скрипты. Скрипты бывают только двух видов: индикаторы и стратегии. Так же их можно разделить по авторству: есть встроенные скрипты, сделанные создателями сервиса TradingView, а есть пользовательские, которые может создавать любой желающий даже с бесплатным аккаунтом. По большей части стратегии и индикаторы схожи, но тестирование торговли на данных прошлого можно производить только скриптом стратегии, но не скриптом индикатора. У скрипта стратегии, в отличии от скрипта индикатора, есть дополнительные настройки (см. картинку ниже).

 

Вкладки скрипта стратегии

Обычно первая вкладка это «Аргументы». Там создатель скрипта стратегии (программист) создает свои собственные параметры. И там может быть всё что угодно, что ему вздумалось. Однако, вкладки «Аргументы» может не быть совсем, если создатель не сделал никаких настроек. Рассматривать вкладку «Аргументы» в этой статье смысла нет, так у каждого скрипта там всё по разному. Но вкладку «Свойства» программист изменить не может, и поэтому она у всех скриптов стратегий одинаковая. Разберём её по порядку, сверху вниз.

 

Свойства

Исходный капитал ИМЕЕТ значение! Если Вы укажите слишком маленькую сумму, то из-за особенностей округления количества тестирование торговли может оказаться очень не точным. Поэтому лучше всего поставить туда большую сумму капитала. Не важно что у Вас реальный капитал в реальной торговле может быть в разы меньше. Для криптовалют лучше ставить капитал не меньше 100.000 единиц (это не всегда доллары), можно больше. Тестирование на данных прошлого на сервисе TradingView в принципе не понимает проблему нехватки ликвидности на бирже (об этом подробнее будет ниже), поэтому слишком уж большую сумму тут и не сделать.

Основную валюту лучше всего не задавать. Оставить «не задано». Потому что скрипт стратегии может не понимать правильно это изменение (не учтено программистом — чаще всего так и есть), из-за чего тестирование будет не правильным. Если оставите «Не задано», то всё будет работать правильно.

Объём заявки это и есть сумма ордера. Причём, скрипт стратегии может учитывать этот параметр, а может и не учитывать (смотря как программист сделал). Например, скрипты стратегий «Robot WhiteBox ShiftMA» и «Robot WhiteBox MultiMA» НЕ учитывают этот параметр. Почему? Сервис не позволяет установить здесь значение больше чем на 100%, то есть не позволяет тестировать торговлю с использованием кредитного плеча. Поэтому для этих скриптов пришлось сделать свой параметр, который бы позволял устанавливать размер заявки (он же «Сумма ордера», он же «Лот») больше чем 100%.

Пирамидинг тоже может учитываться, а может и не учитываться, смотря как сделал программист. Пирамидинг — это когда позиция набирается не одним ордером, а несколькими ордерами. Параметр задаёт максимальное количество ордеров для набора одной позиции. Если значение, например, 3, то это значит что скрипту при бэктесте торговли можно 1 раз купить и только 2 раза докупить (итого 3 ордера). В третий раз докупить ему уже нельзя, и он это делать не будет, даже если сигнал на докупку. Если поставить значение 0, то это понимается как 1. То есть купить можно, а докупать потом нельзя.

Комиссия, к сожалению, не учитывает премию мейкера ордера (rebate), которую платят некоторые биржи (явление это есть только у криптовалютных бирж). То есть туда нельзя поставить поставить отрицательное значение.

Проверка цены для исполнения лимитных заявок очень поможет учесть, так назваемые случаи «касания» ценой Вашего лимитного ордера. Касание ценой это когда Вы поставили ордер на покупку (или на продажу) по цене, скажем, в 10.000 долларов ровно, цена доходила до 10.000 ровно, но не уходила ниже, а потом цена стала расти. В этом случае, как повезет, либо Вам продадут, либо нет. Кому-то не хватит. Несколько трейдеров разместили свои лимитные ордеры на покупку по цене 10.000 долларов, но продавцы продали не всем, не всем хватило. Это и есть проблема нехватки ликвидности. Сервис TradingView не хранит данные по книгам заявок (стаканов), и поэтому бэктест не может определить что было при касании, продали бы Вам или нет. Это создает неточности при расчете бэктеста. «Касания» можно полностью исключить при бэктесте, если поставить значение 1, а не 0. Значение 1 означает что Ваш ордер будет бэктестом считаться сработавшим, только если цена пересекла цену Вашего ордера как минимум на 1 тик (минимальный шаг цены на паре, а он зависит от пары). 1 тик — всегда достаточно чтобы исключить касания совсем. Однако, это тоже не точный метод, ведь при касании Вам либо не повезло (позиция не набрана) либо повезло (позиция была набрана). А если мы ставим тик 1 — значит Вам всегда не везет (на практике же 50 на 50). Если ставим тик 0 — то значит Вам всегда везет. И то и то — не точный расчёт уже. Лучше тестировать со значением тик 1 чтобы обезопасить себя. Но и держать в голове, что при реальном трейдинге при касаниях везти то всё же будет, хоть и не всегда, а значит сделок в реальной торговле окажется чуть больше, чем на бэктесте. Увы, но бэктесты абсолютной точности на дают никогда, это всегда лишь примерная эмуляция реальной торговли.

Проскальзывание имеет значение только при использовании рыночных ордеров (в том числе рыночных стоп-ордеров). Проскальзывание не может произойти при использовании лимитных ордеров. Например, в стратегиях ShiftMA и MultiMA в роботе WhiteBox используются только лимитные ордеры, и поэтому проскальзывания там быть не может. Надо ставить 0%. А другая моя стратегия ZZ-2 торгует не лимитными ордерами, а рыночными стоп-ордерами, и там проскальзывание чаще всего бывает.

Пересчитать после заполнения заявки — тогда текущие значения любых индикаторов в стратегии будут пересчитываться каждый раз после срабатывания любого ордера и при каждом закрытии свечи. Если галку не ставить, то пересчитываться будет только при закрытии свечи. Для тестирования стратегий робота WhiteBox эту галку ставить нельзя, потому что робот пересчитывает индикаторы только при закрытии свечи. Чтобы бэктест робота WhiteBox был точнее галку ставить не нужно.

Пересчитать на каждом тике — тогда на последней свече тоже будут текущие значения индикатора. На бэктест не влияет, но может быть полезна если хотите посмотреть значение индикатора на текущей свече, которая пока еще не закрылась.