Стратегия оценки тренда на основе гауссовского канала и фильтрации стохастического индекса относительной силы

GC RSI SMA K D
Дата создания: 2025-02-21 11:42:36 Последнее изменение: 2025-02-21 11:42:36
Копировать: 0 Количество просмотров: 425
2
Подписаться
319
Подписчики

Стратегия оценки тренда на основе гауссовского канала и фильтрации стохастического индекса относительной силы Стратегия оценки тренда на основе гауссовского канала и фильтрации стохастического индекса относительной силы

Обзор

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

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

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

  1. Вычисление каналов Гауста: средняя линия рассчитывается с помощью фильтра Гауста, а полоса каналов вверх-вниз на основе множественной настройки. Фильтр Гауста использует методы индексного сглаживания, что позволяет эффективно снизить уровень шума.
  2. Stochastic RSI: использует преимущества RSI и случайного индикатора, чтобы идентифицировать перепродажи через две скользкие линии %K и %D.
  3. Условия участия:
    • Большое количество: цена пробилась вниз по Гаусскому каналу и Stochastic RSI в зоне перепродажи
    • Пустота: цены упали за пределы Гаусского канала и Stochastic RSI находится в зоне перекупа
  4. Условия участия:
    • Когда цены пересекают среднюю линию Гаосского канала
    • Стохастический RSI достиг обратного уровня перекупа и перепродажи.

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

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

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

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

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

  1. Оптимизация динамических параметров:
    • Приспосабливание ширины канала к рыночным колебаниям
    • Параметры RSI стохастического типа, динамически скорректированные на основе рыночных циклов
  2. Механизм подтверждения сигнала:
    • Добавление показателя подтверждения транзакций
    • Введение фильтра интенсивности тренда
  3. Усиление управления рисками:
    • Реализация динамического стоп-стоп
    • Присоединение к модулю управления позициями
  4. Определение рыночной среды:
    • Разработка классификатора состояния рынка
    • Применение параметров стратегии в зависимости от состояния рынка

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

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

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

//@version=6
strategy("Gaussian Channel + Stochastic RSI Filter", overlay=true, margin_long=100, margin_short=100)

// === INPUTS ===
input_length = input.int(100, title="Gaussian Channel Length", minval=1)
input_mult = input.float(2.0, title="Gaussian Channel Multiplier", minval=0.1, step=0.1)
stoch_rsi_period = input.int(14, title="Stochastic RSI Period", minval=1)
stoch_rsi_smoothK = input.int(3, title="Stochastic RSI Smooth K", minval=1)
stoch_rsi_smoothD = input.int(3, title="Stochastic RSI Smooth D", minval=1)
stoch_rsi_overbought = input.float(80.0, title="Stochastic RSI Overbought Level", minval=0, maxval=100)
stoch_rsi_oversold = input.float(20.0, title="Stochastic RSI Oversold Level", minval=0, maxval=100)

// === GAUSSIAN CHANNEL ===
// Gaussian filter calculation with proper initialization
gauss(src, len) =>
    b = math.exp(-1.414 * 3.14159 / len)
    a0 = 1 - b
    var float f = na
    f := na(f[1]) ? src : a0 * src + b * f[1]

// Calculate Gaussian channel
gaussian_channel_mid = gauss(close, input_length)
gaussian_channel_high = gaussian_channel_mid + gaussian_channel_mid * input_mult / 100
gaussian_channel_low = gaussian_channel_mid - gaussian_channel_mid * input_mult / 100

// Plot Gaussian Channel
plot(gaussian_channel_mid, color=color.blue, linewidth=2, title="Gaussian Channel Midline")
plot(gaussian_channel_high, color=color.green, linewidth=1, title="Gaussian Channel Upper Band")
plot(gaussian_channel_low, color=color.red, linewidth=1, title="Gaussian Channel Lower Band")

// === STOCHASTIC RSI ===
k = ta.sma(ta.stoch(close, high, low, stoch_rsi_period), stoch_rsi_smoothK)
d = ta.sma(k, stoch_rsi_smoothD)
is_oversold = k < stoch_rsi_oversold and d < stoch_rsi_oversold
is_overbought = k > stoch_rsi_overbought and d > stoch_rsi_overbought

// Plot Stochastic RSI
hline(stoch_rsi_overbought, "Overbought", color=color.red, linestyle=hline.style_dotted)
hline(stoch_rsi_oversold, "Oversold", color=color.green, linestyle=hline.style_dotted)
plot(k, color=color.blue, title="Stochastic RSI %K")
plot(d, color=color.orange, title="Stochastic RSI %D")

// === ENTRY AND EXIT LOGIC ===
// Long entry: Price crosses above Gaussian Channel lower band and Stochastic RSI is oversold
long_condition = ta.crossover(close, gaussian_channel_low) and is_oversold

// Short entry: Price crosses below Gaussian Channel upper band and Stochastic RSI is overbought
short_condition = ta.crossunder(close, gaussian_channel_high) and is_overbought

// Exit logic
long_exit = ta.crossunder(close, gaussian_channel_mid) or is_overbought
short_exit = ta.crossover(close, gaussian_channel_mid) or is_oversold

// Execute trades
if (long_condition)
    strategy.entry("Long", strategy.long)

if (short_condition)
    strategy.entry("Short", strategy.short)

if (long_exit)
    strategy.close("Long")

if (short_exit)
    strategy.close("Short")

// === SETTINGS ===
// Backtest date range
start_date = timestamp(2023, 1, 1, 0, 0)
end_date = timestamp(2069, 1, 1, 0, 0)
if (time < start_date or time > end_date)
    strategy.close_all()