Стратегия дневной торговли с несколькими фильтрами, объединяющая MACD и RSI

RSI MACD SMA
Дата создания: 2024-06-07 15:20:13 Последнее изменение: 2024-06-07 15:20:13
Копировать: 1 Количество просмотров: 861
1
Подписаться
1617
Подписчики

Стратегия дневной торговли с несколькими фильтрами, объединяющая MACD и RSI

Обзор

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

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

  1. MACD: когда MACD-линия пересекает сигнальную линию снизу вверх, образуется многосигнал; когда MACD-линия пересекает сигнальную линию снизу вверх, образуется пустой сигнал.
  2. RSI: только тогда, когда RSI ниже уровня перекупа ((70), рассматривается лишний; только тогда, когда RSI выше уровня перепродажи ((30), рассматривается пробел. Это помогает избежать входа в то время, когда уже перекупили или перепродали.
  3. SMA: 50-циклический SMA и 200-циклический SMA используются для подтверждения направления тренда. Только когда 50-циклический SMA находится выше 200-циклического SMA, считается лишний; только когда 50-циклический SMA находится ниже 200-циклического SMA, считается пустой.

Условия входа и выхода из стратегии следующие:

  • Продолжайте: когда MACD-линия пересекает сигнальную линию вверх, RSI находится ниже уровня перекупа (70), а 50-циклический SMA находится выше 200-циклического SMA (что указывает на тенденцию к повышению).
  • Плюс: когда MACD-линия пересекает сигнальную линию вниз или RSI превышает уровень перекупа ((70)), позиции находятся в покое.
  • Пробой: вход в пробой происходит, когда MACD-линия пересекает сигнальную линию вниз, RSI выше уровня oversold (<30) и 50-циклический SMA ниже 200-циклического SMA (<), что указывает на нисходящую тенденцию.
  • Прямой: когда линия MACD пересекает линию сигнала вверх или RSI падает ниже уровня перепродажи ((30), то позиция является плоской.

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

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

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

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

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

  1. Введение дополнительных фильтров, таких как объем сделок, волатильность и т.д., для дальнейшего повышения надежности сигнала.
  2. Использование различных комбинаций параметров для различных состояний рынка (например, тенденции, колебания) повышает адаптивность стратегии.
  3. Установление разумных уровней стоп-лосса и стоп-стопа для контроля риска и прибыли от отдельных сделок.
  4. Проведение обратной связи и тестирования стратегий на практике, постоянная оптимизация и корректировка параметров, повышение устойчивости стратегий.

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

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

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

//@version=5
strategy("Day Trading Strategy", overlay=true)

// Parametrii pentru MACD
macdLength = input.int(12, title="MACD Length")
signalSmoothing = input.int(9, title="MACD Signal Smoothing")
src = input(close, title="Source")

// Calculul MACD
[macdLine, signalLine, _] = ta.macd(src, macdLength, 26, signalSmoothing)
macdHist = macdLine - signalLine

// Parametrii pentru RSI
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")

// Calculul RSI
rsi = ta.rsi(src, rsiLength)

// Filtru suplimentar pentru a reduce semnalele false
longFilter = ta.sma(close, 50) > ta.sma(close, 200)
shortFilter = ta.sma(close, 50) < ta.sma(close, 200)

// Conditii de intrare in pozitie long
enterLong = ta.crossover(macdLine, signalLine) and rsi < rsiOverbought and longFilter

// Conditii de iesire din pozitie long
exitLong = ta.crossunder(macdLine, signalLine) or rsi > rsiOverbought

// Conditii de intrare in pozitie short
enterShort = ta.crossunder(macdLine, signalLine) and rsi > rsiOversold and shortFilter

// Conditii de iesire din pozitie short
exitShort = ta.crossover(macdLine, signalLine) or rsi < rsiOversold

// Adaugarea strategiei pentru Strategy Tester
if (enterLong)
    strategy.entry("BUY", strategy.long)
if (exitLong)
    strategy.close("BUY")

if (enterShort)
    strategy.entry("SELL", strategy.short)
if (exitShort)
    strategy.close("SELL")

// Plotarea MACD si Signal Line
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
hline(0, "Zero Line", color=color.gray)
plot(macdHist, color=color.red, style=plot.style_histogram, title="MACD Histogram")