Волатильность стандартного отклонения DEV Торговая стратегия на основе индекса относительной силы RSI и скользящей средней SMA

RSI SMA DEV
Дата создания: 2024-05-28 10:57:06 Последнее изменение: 2024-05-28 10:57:06
Копировать: 1 Количество просмотров: 626
1
Подписаться
1617
Подписчики

Волатильность стандартного отклонения DEV Торговая стратегия на основе индекса относительной силы RSI и скользящей средней SMA

Обзор

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

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

  1. Вычислить скользящее среднее SMA и стандартное расхождение DEV за прошедшие 6 периодов.
  2. С SMA как центральная ось, SMA + thresholdEntry*DEV - вхождение в SMA-threshold*DEV спускается с рельсов и создает канал колебаний.
  3. При этом рассчитывается показатель RSI за закрытие цены за прошедшие циклы rsiLength.
  4. Сигнал открытия позиции появляется, когда цена выходит за пределы сверху и RSI меньше, чем превышает отметку rsiOversold.
  5. Сигнал открытия позиции появляется, когда цена прорывается вниз и RSI больше, чем превышает порог rsiOverbought.
  6. С SMA как центральная ось, SMA + thresholdExit*DEV - выйти на трассу, SMA-thresholdExit*DEV спускается с рельсов, чтобы построить другой, более узкий выход.
  7. При завышенной позиции, если цена выходит из-под контроля или RSI больше, чем превышает порог закупки, завышенная позиция будет погашена.
  8. При открытой позиции, если цена выходит из строя с прорывом вверх или RSI меньше, чем превышает проданный порог, открытая позиция.

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

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

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-05-20 00:00:00
end: 2024-05-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tmalvao

//@version=5
strategy("Estratégia de Desvio Padrão com RSI", overlay=true, margin_long=100, margin_short=100)

// Parâmetros
length = input.int(20, title="Período do Desvio Padrão")
thresholdEntry = input.float(1.5, title="Limite de Entrada")
thresholdExit = input.float(0.5, title="Limite de Saída")
rsiLength = input.int(14, title="Período do RSI")
rsiOverbought = input.int(70, title="RSI Overbought")
rsiOversold = input.int(30, title="RSI Oversold")

// Cálculo do Desvio Padrão
price = close
stdDev = ta.stdev(price, length)

// Média Móvel Simples
sma = ta.sma(price, length)

// Limites baseados no Desvio Padrão
upperLimit = sma + thresholdEntry * stdDev
lowerLimit = sma - thresholdEntry * stdDev
exitUpperLimit = sma + thresholdExit * stdDev
exitLowerLimit = sma - thresholdExit * stdDev

// Cálculo do RSI
rsi = ta.rsi(price, rsiLength)

// Condições de Entrada com RSI
longCondition = ta.crossover(price, lowerLimit) and rsi < rsiOversold
shortCondition = ta.crossunder(price, upperLimit) and rsi > rsiOverbought

// Condições de Saída com RSI
exitLongCondition = ta.crossunder(price, exitLowerLimit) or rsi > rsiOverbought
exitShortCondition = ta.crossover(price, exitUpperLimit) or rsi < rsiOversold

// Plotar Linhas
plot(upperLimit, color=color.red, title="Limite Superior")
plot(lowerLimit, color=color.green, title="Limite Inferior")
plot(exitUpperLimit, color=color.orange, title="Limite de Saída Superior")
plot(exitLowerLimit, color=color.blue, title="Limite de Saída Inferior")
plot(sma, color=color.gray, title="SMA")
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
plot(rsi, title="RSI", color=color.purple)

// Estratégia de Trade
if (longCondition)
    strategy.entry("Long", strategy.long)

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

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

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