MACD, RSI und EMA Strategie

Schriftsteller:ChaoZhang, Datum: 2024-03-01 12:23:38
Tags:

img

Übersicht

Diese Strategie kombiniert den einfachen gleitenden Durchschnitt (SMA), den durchschnittlichen wahren Bereich (ATR), den Commodity Channel Index (CCI) und Bollinger Bands, um kurz- und mittelfristige Preistrends zu identifizieren und Handelsentscheidungen zu unterstützen.

Strategieprinzip

Die Strategie verwendet vier SMA-Linien mit verschiedenen Perioden, um die Kursentwicklungsrichtung zu erkennen, einschließlich 5-Tage-, 10-Tage-, 50-Tage- und 200-Tage-Linien. ATR wird verwendet, um die Marktvolatilität zu messen und Stop-Loss-Punkte zu setzen. CCI wird verwendet, um Überkauf- und Überverkaufszustände zu identifizieren. Die oberen und unteren Schienen der Bollinger-Bänder können als Unterstützungs-/Widerstandsniveaus dienen.

Gehen Sie lang, wenn die kurzfristige SMA (5- und 10-Tage-Linien) über die langfristige SMA (50- und 200-Tage-Linien) kreuzt. Gehen Sie kurz, wenn die kurzfristige SMA unter die langfristige SMA kreuzt. Verkaufen Sie, wenn der CCI größer als 100 ist; Kaufen Sie, wenn der CCI kleiner als -100 ist. Setzen Sie einen Stop-Loss basierend auf den ATR-Werten.

Analyse der Vorteile

Durch die Kombination des Trendbeurteilens von gleitenden Durchschnittslinien und des Überkauf-/Überverkaufsbeurteilens von CCI kann diese Strategie Marktchancen effektiv nutzen. Sie funktioniert besonders gut für den mittelfristigen und kurzfristigen Handel. Darüber hinaus ist die Risikokontrolle relativ wissenschaftlich, was die Vermeidung von Verlusten maximieren kann.

Risikoanalyse

Diese Strategie ist relativ konservativ und verfehlt wahrscheinlich Handelssignale. Wenn es einen Bereichsmarkt oder eine Trendumkehr gibt, kann die Gewinnnahme vorzeitig ausgelöst werden. Darüber hinaus können unsachgemäße Parameter-Einstellungen auch die Performance beeinträchtigen.

Optimierungsrichtlinien

Versuchen Sie, die Parameter des SMA zu optimieren, um sie näher an die aktuellen Marktbedingungen zu bringen. Die Standardabweichung der Bollinger Bands kann auch für eine bessere Leistung als Support / Resistance-Level angepasst werden. Darüber hinaus sollten Sie andere Indikatoren hinzufügen, um das Urteil zu unterstützen, wie KDJ, MACD usw. Dies kann die Gewinnrate der Strategie verbessern.

Zusammenfassung

Durch die Integration einer Vielzahl von analytischen Tools zur Beurteilung des Marktes kann diese Strategie bei angemessener Einstellung der Parameter zufriedenstellende Anlageerträge erzielen.


/*backtest
start: 2023-02-23 00:00:00
end: 2024-02-29 00:00:00
period: 1d
basePeriod: 1h
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/
// © maizirul959

//@version=4
strategy("MACD,RSI & EMA strategy with MA+PSAR by MAM", overlay=true)

//Input Data
_ema_len1 = input(5, title="EMA1 length")
_ema_len2 = input(20, title="EMA2 length")

_macd_fast = input(12, title="MACD Fast")
_macd_slow = input(26, title="MACD Slow")
_macd_signal_len = input(20, title="MACD Signal length")

//MAM add SMA
_sma_len1 = input(5, title="SMA1 Length")
_sma_len2 = input(10, title="SMA2 Length")
_sma_len3 = input(50, title="SMA3 Length")
_sma_len4 = input(200, title="SMA4 Length")

lineWidth = input(1, minval=1, title="Line width")

src = input(close, title="Source")

SMA1 = if _sma_len1 != 0
    sma(src, _sma_len1)
SMA2 = if _sma_len2 != 0
    sma(src, _sma_len2)
SMA3 = if _sma_len3 != 0
    sma(src, _sma_len3)
SMA4 = if _sma_len4 != 0
    sma(src, _sma_len4)


//__________________________________________________________________________

_rsi_len = input(14, title="RSI length")
_rsi_signal_len = input(20, title="RSI signal length")

//_________________________________________________________________________
//MAM Add PSAR
PSAR_start = input(0.02)
PSAR_increment = input(0.02)
PSAR_maximum = input(0.2)

psar = sar(PSAR_start, PSAR_increment, PSAR_maximum)
//_________________________________________________________________________

_ema1 = ema(close, _ema_len1)
_ema2 = ema(close, _ema_len2)

//_________________________________________________________________________
//MAM add SMA
//_sma1 = ema(close, _sma_len1)
//_sma2 = ema(close, _sma_len2)
//_________________________________________________________________________

_macd = ema(close, _macd_fast) - ema(close, _macd_slow)
_macd_signal = ema(_macd, _macd_signal_len)

_rsi = rsi(close, _rsi_len)
_rsi_signal = ema(_rsi, _rsi_signal_len)


//PLOT SMA
plot(SMA1, color=#B71C1C, title="SMA1", linewidth=lineWidth)
plot(SMA2, color=#FFFF00, title="SMA2", linewidth=lineWidth)
plot(SMA3, color=#5b34ff, title="SMA3", linewidth=lineWidth)
plot(SMA4, color=#d7d7d7, title="SMA4", linewidth=lineWidth)


//PLOT PSAR
plot(psar, "ParabolicSAR", style=plot.style_cross, color=#3A6CA8)

//plot(_rsi, color=color.yellow)
//plot(_rsi_signal, color=color.green)
//plot(_macd, color=color.blue)
//plot(_macd_signal, color=color.red)


longCondition = close > _ema1 and close > _ema2 and _macd > _macd_signal and _rsi > _rsi_signal 
if (longCondition)
    strategy.entry("Buy",strategy.long)
    
shortCondition = close < _ema1 and close <_ema2 and _macd < _macd_signal and _rsi < _rsi_signal
if (shortCondition)
    strategy.entry("Sell",strategy.short)


Mehr