Свойства стратегий

Каждая написанная на Pine стратегия по умолчанию имеет ряд свойств, которые определяют ее поведение. 

  1. Исходный капитал
  2. Основная валюта
  3. Объем заявки
  4. Пирамидинг
  5. Комиссия
  6. Проверка Цены Для Исполнения Лимитных Заявок
  7. Проскальзывание
  8. Маржа
  9. Пересчет

Они доступны в настройках стратегии, в пункте Свойства:

Каждое свойство, указанное в данном меню, может быть изменено с помощью редактирования параметров в вызове функции 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) стратегия будет пересчитываться в реальном времени при каждом изменении цены (на каждом тике) на текущем баре (на исторических данных стратегия всё равно будет вычисляться при закрытии). Обратите внимание: т.к. при обновлении страницы все тиковые данные будут потеряны и стратегия будет пересчитана на исторических данных, стратегии с этой опцией будут перерисовываться.