Стратегия прорыва стохастического колебания полосы MACD


Дата создания: 2023-12-11 11:48:27 Последнее изменение: 2023-12-11 11:48:27
Копировать: 0 Количество просмотров: 885
1
Подписаться
1621
Подписчики

Стратегия прорыва стохастического колебания полосы MACD

Обзор

Стратегия MACD Stochastics Oscillation Breakout Strategy - это количественная торговая стратегия, которая объединяет индикатор MACD и индикатор Stochastics. Стратегия пытается определить направление тренда цен на акции и войти в позицию, когда цена выходит из зоны колебаний.

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

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

Стратегия MACD Stochastics для волнового прорыва основана на следующих принципах:

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

В частности, эта стратегия использует пересечение линии DIFF и линии DEA в MACD-индикаторе в качестве сигнала для определения направления ценовой тенденции. Когда DIFF вверх нарушает DEA, генерируется многоголовый сигнал, а наоборот, генерируется пустой сигнал.

В то же время, пересечение линии K Stochastics вверх или вниз с линией D вблизи зоны перекупа и перепродажи (по умолчанию 30 и 70) также создает торговый сигнал.

Стратегия выбирает вход, когда MACD и Stochastics дают одновременные сигнала. В этот момент цена акций, скорее всего, будет иметь большой прорыв.

После входа в игру, стратегия устанавливает рациональные стоп-лосы и стоп-стопы. Рациональные стоп-лосы позволяют эффективно контролировать одноразовые потери, а стоп-стопы - блокировать прибыль.

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

Стратегия прорыва в волновом диапазоне MACD Stochastics имеет следующие преимущества:

  1. Комбинированные показатели улучшают качество сигнала

Эта стратегия использует одновременно MACD и Stochastics, чтобы отфильтровать ложные сигналы и улучшить качество записей.

  1. “Мы не можем позволить, чтобы это произошло”, - сказал он.

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

  1. Оптимизация механизма остановки убытков, эффективное управление рисками

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

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

Несмотря на тщательно разработанную стратегию прорыва в MACD Stochastics, существуют определенные риски:

  1. Пропущенный момент

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

  1. Прорыв провалился

Несмотря на то, что перед прорывом была сделана хорошая подготовка, существует вероятность того, что прорыв провалится. В этом случае будут понесены потери.

  1. Неправильная оптимизация параметров

Параметры стратегии могут иметь большое влияние на результаты. Если параметры не установлены должным образом, будет большая скидка.

Оптимизируйте эти риски следующими способами:

  1. Комбинация других показателей фильтрующих сигналов

  2. Человеческое вмешательство обеспечивает прорыв в позиции

  3. Тестирование на оптимизацию множественных параметров

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

В то же время, по мнению аналитиков, в случае с MACD Stochastics есть все основания оптимизировать стратегию прорыва в волновом диапазоне:

  1. Оптимизировать параметры MACD, чтобы найти оптимальную комбинацию параметров

  2. Оптимизируйте параметры Stochastics, чтобы найти оптимальную комбинацию параметров

  3. Добавление дополнительных комбинаций показателей, таких как KDJ, BOLL и т. Д., для дальнейшего повышения качества Entries

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

  5. Тестирование параметрической дифференциальности различных торговых показателей

  6. Добавление алгоритмов машинного обучения, автоматическая оптимизация параметров

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

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

Исходный код стратегии
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="macd stoch strategy", shorttitle="benzo MACD stoch",overlay=true)
// Getting inputs
fast_length = input(title = "Fast Length", defval = 180)
slow_length = input(title = "Slow Length", defval = 390)
src = input(title = "Source", defval = close)
signal_length = input.int(title = "Signal Smoothing",  minval = 1, maxval = 500, defval = 135)
sma_source = input.string(title = "Oscillator MA Type",  defval = "EMA", options = ["SMA", "EMA"])
sma_signal = input.string(title = "Signal Line MA Type", defval = "EMA", options = ["SMA", "EMA"])
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// hline(0, "Zero Line", color = color.new(#787B86, 50))
// plot(hist, title = "Histogram", style = plot.style_columns, color = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252)))
// plot(macd,   title = "MACD",   color = #2962FF)

// plot(signal, title = "Signal", color = #FF6D00)

periodK = input.int(14, title="%K Length", minval=1)
smoothK = input.int(1, title="%K Smoothing", minval=1)
periodD = input.int(3, title="%D Smoothing", minval=1)
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
// plot(k, title="%K", color=#2962FF)
// plot(d, title="%D", color=#FF6D00)
// h0 = hline(80, "Upper Band", color=#787B86)
// hline(50, "Middle Band", color=color.new(#787B86, 50))
// h1 = hline(20, "Lower Band", color=#787B86)
// fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")


// Make inputs that set the take profit % (optional)
longProfitPerc = input.float(3, title="Long Take Profit (%)", minval=0.0, step=0.1) * 0.01

shortProfitPerc = input.float(3, title="Short Take Profit (%)",minval=0.0, step=0.1) * 0.01

// Calculate trading conditions
enterLong  = macd>signal and ta.crossover(k,30)
enterShort = macd<signal and ta.crossunder(k,70)

// Figure out take profit price
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Plot take profit values for confirmation
plot(strategy.position_size > 0 ? longExitPrice : na,
     color=color.green, style=plot.style_circles,
     linewidth=3, title="Long Take Profit")

plot(strategy.position_size < 0 ? shortExitPrice : na,
     color=color.red, style=plot.style_circles,
     linewidth=3, title="Short Take Profit")

// Submit entry orders
if enterLong
    strategy.entry("long", strategy.long)

if enterShort
    strategy.entry("short", strategy.short)

// STEP 3:
// Submit exit orders based on take profit price
if strategy.position_size > 0
    strategy.exit("long TP", limit=longExitPrice)

if strategy.position_size < 0
    strategy.exit("short TP", limit=shortExitPrice)