MACD 200 Дневная скользящая средняя кроссоверная стратегия торговли

Автор:Чао Чжан, Дата: 2024-01-03 11:50:56
Тэги:

img

Обзор

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

Принцип стратегии

В этой стратегии есть два ключевых момента:

  1. Быстрые и медленные перекрестки линий MACD генерируют сигналы покупки и продажи. Когда быстрая линия проходит через медленную линию вверх, генерируется сигнал покупки. Когда быстрая линия проходит через медленную линию вниз, генерируется сигнал продажи.

  2. 200-дневная скользящая средняя оценивает общую тенденцию рынка. Цены выше 200-дневной скользящей средней указывают на бычий рынок, а ниже указывают на медвежий рынок. Сигналы покупки действуют только на бычьем рынке, а сигналы продажи только на медвежьем рынке.

Согласно этим двум пунктам, конкретными правилами торговли этой стратегии являются:

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

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

  1. Двойная подтверждение улучшает стабильность и уровень успеха стратегии. MACD оценивает сигналы покупки и продажи, а 200-дневная скользящая средняя оценивает тенденцию рынка. Двойная подтверждение может отфильтровать некоторые торговые сигналы с большей неопределенностью.

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

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

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

  1. Эта стратегия довольно чувствительна к настройкам параметров. Неправильные настройки параметров индикатора MACD могут вызвать ложные сигналы.

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

  3. Когда цены находятся в длительном периоде консолидации, эта стратегия не может определить четкое направление тренда, что приводит к увеличению колебаний прибыли/убытка и более длительным срокам вывода.

Оптимизация

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

  2. Рассмотреть возможность добавления подтверждения от других технических индикаторов, таких как RSI и KD, чтобы сформировать консенсус из нескольких индикаторов, тем самым повышая надежность стратегии.

  3. Немедленно прекратите потерю, когда цены совершают значительное изменение, что может эффективно избежать увеличения потерь.

Заключение

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


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © x11joe

//@version=4
//This strategy is based on a youtube strategy that suggested I do this...so I did!

strategy(title="MacD 200 Day Moving Average Signal Crossover Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

moving_avg_length = input(title="Moving Average Length", type=input.integer, defval=200)
moving_avg = sma(close,moving_avg_length)

moving_avg_normalized = close - moving_avg
plot(moving_avg_normalized, title="Moving Average Normalized", style=plot.style_line, color=color.orange,linewidth=3)

plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)

if(macd>signal and macd<0 and close>moving_avg)
    strategy.entry("buy",strategy.long)

if(close<moving_avg and macd<signal and macd>0)
    strategy.entry("sell",strategy.short)

Больше