Стратегия бэктестинга SSL-канала на основе ATR и управления капиталом


Дата создания: 2023-11-23 10:26:58 Последнее изменение: 2023-11-23 10:26:58
Копировать: 1 Количество просмотров: 731
1
Подписаться
1617
Подписчики

Стратегия бэктестинга SSL-канала на основе ATR и управления капиталом

Обзор

Эта стратегия основана на показателях SSL-каналов, а также включает в себя такие функции, как ATR-стоп, ATR-стоп и управление средствами, чтобы более полно протестировать эффективность стратегии SSL-каналов.

Стратегический принцип

Индекс SSL-каналов

SSL-канальный показатель состоит из средней линии каналов и полосы каналов. Средняя линия каналов представляет собой простое движущееся среднее, разделенное на верхнюю и нижнюю полосы, обычно принимая простое движущееся среднее в период высоких точек в качестве верхней полосы, а в период низких точек в качестве нижней полосы.

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

В этой политике параметры индикатора SSL-каналов установлены так:ssl_period=16

ATR остановка

ATR означает среднюю реальную волну. Она может быть использована для оценки волатильности рынка и определения стоп-стоп-позиции.

Эта стратегия использует параметрыatr_period=14В сочетании сatr_stop_factor=1.5иatr_target_factor=1.0В качестве динамического кратного стопа и стоп-стопа реализуется стоп-стоп, основанный на волатильности рынка.

Кроме того, для адаптации к различным видам, в стратегию включены:two_digitПараметры, определяющие контракт с 2-битной точностью (например, золото, иена), позволяют гибко регулировать стоп-стоп.

Управление деньгами

Управление капиталом в основном осуществляется через параметрыposition_size(Фиксированные позиции) иrisk(процент рискового отверстия) реализация.use_mm=trueВключается модуль “Управление деньгами”.

Основная цель управления капиталом - контролировать размер позиции при открытии каждой позиции. При использовании фиксированной процентной модели риска, рисковый пробел, рассчитанный в соответствии с учетными записями, будет переведен в количество контрактов, что позволит сдерживать убытки.

Анализ преимуществ

  • Использование SSL-каналов для определения направления тренда имеет определенный эффект для захвата конверсии тренда
  • Применение ATR для динамического расчета стоп-стоп-позиций, которые могут адаптироваться к рыночным колебаниям
  • Использование принципов управления капиталом помогает контролировать риски в долгосрочной перспективе

Анализ рисков

  • Хотя SSL-каналы могут определить обратный тренд, они не стопроцентно надежны и могут подавать ошибочные сигналы.
  • ATR может быть слишком мягким или слишком жестким, чтобы следовать за рыночными колебаниями и установить стоп-стоп
  • Неправильная настройка параметров управления капиталом также может привести к слишком большой или неэффективной позиции.

Эти риски можно уменьшить следующими способами:

  1. Подтверждение в сочетании с другими показателями, чтобы избежать ошибочных сигналов
  2. Правильная корректировка ATR-циклических параметров для достижения оптимального баланса уровня стоп-стоп
  3. Тестирование различных параметров управления капиталом, чтобы найти оптимальную позицию

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизация параметров SSL-каналов для поиска оптимального сочетания параметров
  2. Оптимизация или замена механизма ATR Stop Damage Stop, чтобы сделать его более совершенным
  3. Добавление дополнительных фильтров, чтобы избежать ненужных сделок
  4. Добавление модуля контроля позиций для максимизации прибыли и убытка
  5. Повышение адаптивности стратегии с помощью корректировки параметров для различных сортов
  6. Добавление количественных инструментов для более полного отбора и оптимизации

С помощью тестирования и оптимизации системы эта стратегия может стать надежной и стабильной системой количественных сделок.

Подвести итог

Эта стратегия объединяет три механизма: определение тенденций по показателям SSL-каналов, установление ATR-стоп-лост-стоп и управление рисками по управлению деньгами. Эффективность этой стратегии может быть проверена с помощью всесторонней обратной связи и может служить основополагающей структурой для оптимизации количественной стратегии торговли. В то же время в этой стратегии есть место для улучшения, например, добавление других показателей фильтрации, параметров оптимизации и расширения функций.

Исходный код стратегии
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © comiclysm

//@version=4
strategy("SSL Backtester", overlay=false)

//--This strategy will simply test the effectiveness of the SSL using
//--money management and an ATR-derived stop loss

//--USER INPUTS

two_digit = input(false, "Check this for 2-digit pairs (JPY, Gold, Etc)")
ssl_period = input(16, "SSL Period")
atr_period = input(14, "ATR Period")
atr_stop_factor = input(1.5, "ATR Stop Loss Factor")
atr_target_factor = input(1.0, "ATR Target Factor")
use_mm = input(true, "Check this to use Money Management")
position_size = input(1000, "Position size (for Fixed Risk)")
risk = input(0.01, "Risk % in Decimal Form")

//--INDICATORS------------------------------------------------------------

    //--SSL
    
sma_high = sma(high, ssl_period)
sma_low = sma(low, ssl_period)
ssl_value = 0
ssl_value := close > sma_high ? 1 : close < sma_low ? -1 : ssl_value[1]
ssl_low = ssl_value < 0 ? sma_high : sma_low
ssl_high = ssl_value < 0 ? sma_low : sma_high

    //--Average True Range
    
atr = atr(atr_period)

//--TRADE LOGIC----------------------------------------------------------

signal_long = ssl_value > 0 and ssl_value[1] < 0
signal_short = ssl_value < 0 and ssl_value[1] > 0

//--RISK MANAGMENT-------------------------------------------------------
strategy.initial_capital = 50000
balance = strategy.netprofit + strategy.initial_capital
risk_pips = atr*10000*atr_stop_factor
if(two_digit)
    risk_pips := risk_pips / 100
risk_in_value = balance * risk
point_value = syminfo.pointvalue
risk_lots = risk_in_value / point_value / risk_pips
final_risk = use_mm ? risk_lots * 10000 : position_size

//--TRADE EXECUTION-----------------------------------------------------

if (signal_long)
    stop_loss = close - atr * atr_stop_factor
    target = close + atr * atr_target_factor
    strategy.entry("Long", strategy.long, final_risk)
    strategy.exit("X", "Long", stop=stop_loss, limit=target)
if (signal_short)
    stop_loss = close + atr * atr_stop_factor
    target = close - atr * atr_target_factor
    strategy.entry("Short", strategy.short, final_risk)
    strategy.exit("X", "Short", stop=stop_loss, limit=target)
    
//--PLOTTING-----------------------------------------------------------

plot(ssl_low, "SSL", color.red, linewidth=1)
plot(ssl_high, "SSL", color.lime, linewidth=1)