Свойства стратегий
Каждая написанная на Pine стратегия по умолчанию имеет ряд свойств, которые определяют ее поведение.
- Исходный капитал
- Основная валюта
- Объем заявки
- Пирамидинг
- Комиссия
- Проверка Цены Для Исполнения Лимитных Заявок
- Проскальзывание
- Маржа
- Пересчет
Они доступны в настройках стратегии, в пункте Свойства:
Каждое свойство, указанное в данном меню, может быть изменено с помощью редактирования параметров в вызове функции strategy() в Pine-коде соответствующей стратегии:
strategy(title, initial_capital, currency, default_qty_value, default_qty_type, pyramiding, commission_type, commission_value, backtest_fill_limits_assumption, slippage, process_orders_on_close, margin_long, margin_short, calc_on_order_fills, calc_on_every_tick)
Рассмотрим каждое свойство стратегий и соответствующий им параметр в языке Pine:
1 - Исходный капитал (параметр initial_capital) отвечает за количество средств, изначально доступных стратегии для торговли. Валюта определяется в пункте 2 - Основная Валюта. По умолчанию исходный капитал равен 100 000.
2 - Основная Валюта (параметр currency) - валюта, в которую конвертируются параметры стратегии и значения в тестере стратегий (прибыль, убытки, просадки и пр.). Валюта может принимать одно из следующих значений:
Не задано, USD, EUR, AUD, GBP, NZD, CAD, CHF, HKD, JPY, NOK, SEK, SGD, TRY, ZAR.
Если выбрана опция Не задано, то стратегия будет использовать ту валюту, которая используется данным символом по умолчанию. Конвертации валюты не происходит.
3 - Объём Заявки (параметры default_qty_value, default_qty_type). Настройка объёма заявки состоит из двух входных параметров. Первый параметр определяет количество, второй определяет тип, в котором вычисляется объём:
- Контракты (аргумент strategy.fixed) - стратегия будет входить на точное количество контрактов/акций/лотов, указанных в первом параметре
- Сумма в валюте (аргумент strategy.cash) - стратегия будет использовать основную валюту и входить на указанную в первом параметре сумму
- Процент от капитала (аргумент strategy.percent_of_equity) - стратегия будет пытаться входить на Х% от всех доступных ей средств, где Х - значение первого входного параметра.
4 - Пирамидинг (параметр pyramiding) определяет максимальное количество входов, которые стратегия может сделать в одном направлении. При отключенном пирамидинге стратегия может открывать только одну длинную или короткую позицию, остальные условия для входа в этом же направлении будут отклонены. Пирамидинг влияет только на входы, сделанные при помощи функции strategy.entry(); strategy.order() не принимает настройку пирамидинга во внимание.
5 - Комиссия (параметры commission_value, commission_type) - сумма, выплачиваемая в качестве торговых сборов брокеру. Комиссия состоит из двух входных параметров. Второй параметр (commission_type) определяет тип расчета комиссии:
- Процент от денежного объема сделки (аргумент strategy.commission.percent) - накладывает на каждую сделку комиссию, равную проценту, указанному в первом параметре.
- Валюта на контракт (аргумент strategy.commission.cash_per_contract) - накладывает на каждый контракт комиссию, равную абсолютному значению, указанному в первом параметре.
- Валюта на заявку (аргумент strategy.commission.cash_per_order) - накладывает на каждую заявку комиссию, равную абсолютному значению, указанному в первом параметре.
6 - Проверка Цены Для Исполнения Лимитных Заявок (параметр backtest_fill_limits_assumption) ужесточает условия на вход в позицию при помощи лимитных заявок. По умолчанию это значение равно 0, т.е. лимитные заявки заполняются на исторических данных, как только достигается указанная в заявке цена. Если параметр не равен нулю, то лимитные заявки могут войти в позицию внутри бара, только если рыночная цена превысила уровень лимитной заявки на указанное число тиков.
7 - Проскальзывание (параметр slippage) определяет количество тиков, которые добавляются к цене заполнения рыночной заявки или стоп-заявки.
8 - Маржа На Длинные и Короткие Позиции (параметры margin_long, margin_short) - при открытии любой позиции будет рассчитано маржинальное обеспечение, требуемое для поддержания позиции. Если средств не хватает, то наступает маржин колл - принудительное закрытие части или всех позиций рыночной заявкой так, чтобы средств снова хватало для поддержания позиций.
9 - Пересчет позволяет определить, как часто стратегия должна пересчитываться. По умолчанию стратегия пересчитывается на закрытии каждого бара, но при помощи указанных ниже опций она может пересчитываться также:
- После заполнения заявки (параметр calc_on_order_fills). Если эта опция включена, при заполнении заявки (например, входе в позицию) стратегия будет дополнительно пересчитываться ещё раз, посреди бара. Дополнительный пересчет происходит как на исторических барах, так и на текущем (реал тайм) баре.
- На каждом тике (параметр calc_on_every_tick) стратегия будет пересчитываться в реальном времени при каждом изменении цены (на каждом тике) на текущем баре (на исторических данных стратегия всё равно будет вычисляться при закрытии). Обратите внимание: т.к. при обновлении страницы все тиковые данные будут потеряны и стратегия будет пересчитана на исторических данных, стратегии с этой опцией будут перерисовываться.