Система оптимизации количественной торговой стратегии на основе гауссовского канала и стохастического RSI

RSI EMA stdev SMA
Дата создания: 2025-02-18 15:00:11 Последнее изменение: 2025-02-18 15:00:11
Копировать: 3 Количество просмотров: 460
1
Подписаться
1617
Подписчики

Система оптимизации количественной торговой стратегии на основе гауссовского канала и стохастического RSI

Обзор

Стратегия является количественной торговой системой, основанной на Гаусском канале и случайном RSI. Стратегия используется только для многоторговли, не используется для операций на пустом месте.

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

Основная логика стратегии основана на следующих ключевых расчетах:

  1. Строительство Гаусского канала: с использованием EMA в качестве средней полосы, в два раза больше стандартного отклонения в качестве ширины канала.
  2. Расчет случайного RSI: сначала рассчитывается RSI на 14 циклов, затем высчитываются максимальные и минимальные значения RSI в течение 14 циклов, и, наконец, рассчитывается относительная позиция текущего RSI в этом диапазоне.
  3. Входный сигнал: цена прорывается вниз по каналу, в то же время случайный индикатор RSI прорывается вверх от 20 и ниже.
  4. Выходный сигнал: цена пробивает канал вверх или случайный RSI пробивается вниз свыше 80.

Стратегические преимущества

  1. Механизм двойного подтверждения: снижает влияние ложных сигналов путем объединения ценового канала и динамического индикатора.
  2. Управление рисками: использование управления процентными позициями с учетом затрат на торговлю и факторов скольжения.
  3. Средневзвешенная регрессионная характеристика: Гаусский канал может эффективно улавливать диапазон колебаний цен, повышая точность торгов.
  4. Динамично адаптируемость: параметры стратегии могут быть оптимизированы и адаптированы в зависимости от различных рыночных условий.

Стратегический риск

  1. Риски на трендовых рынках: в сильных трендовых рынках может произойти преждевременное снижение позиций, что может привести к упущению большого рынка.
  2. Чувствительность к параметрам: настройка параметров RSI и кратности каналов имеет большое влияние на эффективность стратегии.
  3. Зависимость от рыночных условий: стратегия хорошо работает в условиях колебаний рынка, но может плохо работать в односторонних условиях.
  4. Расчет риска задержки: существует определенная задержка в расчете технических показателей, которая может повлиять на время торгов.

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

  1. Введение адаптивных параметров: можно динамически корректировать кратность каналов в зависимости от рыночных колебаний.
  2. Добавление идентификации рыночной среды: добавление индикатора силы тренда, использование различных параметров в различных рыночных условиях.
  3. Оптимизация управления капиталом: может быть изменена доля позиций в зависимости от силы сигнала.
  4. Совершенствование механизма погашения убытков: добавление функции отслеживания убытков и улучшение защиты прибыли.

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

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

Исходный код стратегии
/*backtest
start: 2024-02-18 00:00:00
end: 2025-01-30 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Gaussian Channel with Stochastic RSI", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=200, commission_type=strategy.commission.percent, commission_value=0.1, slippage=0)

// Gaussian Channel Parameters
gc_length = input.int(20, "Gaussian Channel Length", minval=1)
gc_mult = input.float(2.0, "Gaussian Channel Multiplier", minval=0.1)

middle = ta.ema(close, gc_length)
stdev = ta.stdev(close, gc_length)
upper = middle + gc_mult * stdev
lower = middle - gc_mult * stdev

// Plot Channels
plot(middle, "Middle Line", color=color.blue)
plot(upper, "Upper Channel", color=color.red)
plot(lower, "Lower Channel", color=color.green)

// Stochastic RSI Parameters
rsi_length = input.int(14, "RSI Length", minval=1)
stoch_length = input.int(14, "Stochastic Length", minval=1)
smooth_k = input.int(3, "Smooth %K", minval=1)
oversold = input.int(20, "Oversold Level", minval=0, maxval=100)
overbought = input.int(80, "Overbought Level", minval=0, maxval=100)

// Calculate Stochastic RSI
rsi = ta.rsi(close, rsi_length)
lowest_rsi = ta.lowest(rsi, stoch_length)
highest_rsi = ta.highest(rsi, stoch_length)
stoch_rsi = highest_rsi != lowest_rsi ? (rsi - lowest_rsi) / (highest_rsi - lowest_rsi) * 100 : 0
k = ta.sma(stoch_rsi, smooth_k)

// Entry/Exit Conditions
enterLong = ta.crossover(close, lower) and ta.crossover(k, oversold)
exitLong = ta.crossover(close, upper) or ta.crossunder(k, overbought)

// Strategy Execution
if (time >= timestamp(2018, 01, 01, 0, 0) and time < timestamp(2069, 01, 01, 0, 0))
    if enterLong
        strategy.entry("Long", strategy.long)
    if exitLong
        strategy.close("Long")