Diese Strategie kombiniert MACD-, EMA- und RSI-Indikatoren, um Trendfolgen und Umkehrhandel umzusetzen. Sie erzeugt Kaufsignale, wenn der MACD durch die Signallinie steigt und der Schlusskurs über der EMA liegt; und Verkaufssignale, wenn der MACD unter die Signallinie fällt und der Schlusskurs unter der EMA liegt, um Trends zu erfassen. In der Zwischenzeit handelt sie um Umkehrungen, wenn der RSI überkaufte oder überverkaufte Niveaus erreicht.
Berechnen Sie MACD-Differenzen und EMA.
fastMA = ema(close, fast)
slowMA = ema(close, slow)
macd = fastMA - slowMA
signal = sma(macd, 9)
ema = ema(close, input(200))
Kaufsignal erzeugen: Der MACD-Diff (macd - Signal) geht über 0 und der Schlusskurs liegt über der EMA.
delta = macd - signal
buy_entry= close>ema and delta > 0
Erzeugen Sie ein Verkaufssignal: Der MACD-Diff unter 0 fällt und der Schlusskurs liegt unter der EMA.
sell_entry = close<ema and delta<0
Handelsumkehrungen, wenn der RSI überkauft oder überverkauft ist.
if (rsi > 70 or rsi < 30)
reversal := true
Lösungen:
Diese Strategie kombiniert MACD, EMA und RSI, um den Trend folgend und Umkehrhandel organisch umzusetzen. MACD beurteilt Trendrichtungen, EMA filtert Lärm und RSI erfasst Umkehrpunkte. Eine solche Kombination aus mehreren Indikatoren kann Marktbewegungen besser bestimmen, die Rentabilität verbessern und gleichzeitig falsche Signale reduzieren. Parameteroptimierung und Stop-Loss-Management könnten weiter verbessert werden, um unnötige Verluste zu reduzieren. Insgesamt ist dies ein solider Strategierahmen mit Potenzial für stetige Gewinne.
/*backtest start: 2023-11-17 00:00:00 end: 2023-12-17 00:00:00 period: 1h basePeriod: 15m 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/ // © mbuthiacharles4 //Good with trending markets //@version=4 strategy("CHARL MACD EMA RSI") fast = 12, slow = 26 fastMA = ema(close, fast) slowMA = ema(close, slow) macd = fastMA - slowMA signal = sma(macd, 9) ema = ema(close, input(200)) rsi = rsi(close, input(14)) //when delta > 0 and close above ema buy delta = macd - signal buy_entry= close>ema and delta > 0 sell_entry = close<ema and delta<0 var bought = false var sold = false var reversal = false if (buy_entry and bought == false and rsi <= 70) strategy.entry("Buy",true , when=buy_entry) bought := true strategy.close("Buy",when= delta<0 or rsi > 70) if (delta<0 and bought==true) bought := false //handle sells if (sell_entry and sold == false and rsi >= 30) strategy.entry("Sell",false , when=sell_entry) sold := true strategy.close("Sell",when= delta>0 or rsi < 30) if (delta>0 and sold==true) sold := false if (rsi > 70 or rsi < 30) reversal := true placing = rsi > 70 ? high :low label.new(bar_index, placing, style=label.style_flag, color=color.blue, size=size.tiny) if (reversal == true) if (rsi < 70 and sold == false and delta < 0) strategy.entry("Sell",false , when= delta < 0) sold := true reversal := false else if (rsi > 30 and bought == false and delta > 0) strategy.entry("Buy",true , when= delta > 0) bought := true reversal := false