Umkehrhandelsstrategie basierend auf 255 EMA und MACD


Erstellungsdatum: 2023-09-20 15:08:14 zuletzt geändert: 2023-09-20 15:08:14
Kopie: 0 Klicks: 748
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie nutzt die EMA und den MACD-Indikator für 255 Zyklen, um nach Umkehrmöglichkeiten zu suchen. Wenn der Preis von der 255 EMA entfernt ist, wird ein Umkehr-Eintritt durchgeführt, wenn der MACD Gold- oder Dead-Fork auftritt.

Strategieprinzip

  1. Die 255-Zyklus-EMA wird als Mittel- und Langzeit-Trend bewertet. Die Abweichung von der EMA bedeutet, dass die Preise in die Überkauf- und Überverkaufszone eingehen.

  2. Die EMA oben ist auf und die EMA unten ist ab, wobei die Bahnbreite durch den ATR-Indikator dynamisch angepasst wird.

  3. Wenn der Preis über der Oberbahn liegt, ist es eine Überkaufzone, wenn der Preis unter der Unterbahn liegt, ist es eine Überverkaufszone. In diesen Fällen warten Sie auf ein Umkehrsignal.

  4. Der MACD-Indikator verwendet die Standardparameter ((12,26,9)). Bei der MACD-Goldfalke handelt es sich um ein Mehrkopfsignal und bei der Todesfalke um ein Leerkopfsignal.

  5. In Kombination mit einem EMA-Überkauf-Überverkauf und einem MACD-Signal wird ein Rückschlag eingeleitet, wenn der Preis von der EMA entfernt ist und der MACD umgekehrt ist.

Analyse der Stärken

  1. Die Verwendung von 255-Zyklen-EMA kann eine bessere Bestimmung der mittelfristigen Trendrichtung ermöglichen.

  2. Die MACD Gold-Dead-Fork kann kurzfristige Umkehrmöglichkeiten empfindlicher erfassen.

  3. Die Auf- und Abwärtsbahn der EMA kann als Überkauf- und Überverkaufszone eingestellt werden, um eine Wellenfolge in der Tendenz zu vermeiden.

  4. Umkehrung der Handelsstrategie, die vor der Preisumkehr eingegeben werden kann, mit einer gewissen Planung.

  5. Die Verwendung von dynamischen ATR-Stoppschäden kann das Risiko wirksam kontrollieren.

Risikoanalyse

  1. Die MACD-Signale können sich falsch umdrehen, was zu unnötigen Verlusten führt.

  2. Bei starken Trends ist die Wahrscheinlichkeit, dass eine Umkehr fehlschlägt, höher. Eine blinde Umkehr ist zu vermeiden.

  3. Eine zu geringe Stop-Loss-Einstellung kann dazu führen, dass ein Stop-Loss ausgelöst wird, und eine zu hohe Einstellung kann zu wenig Risiken kontrollieren.

  4. Die falsche Einstellung der Parameter beeinträchtigt die Effektivität der Strategie und muss durch wiederholte Tests optimiert werden.

  5. Die Transaktionskosten beeinflussen auch die endgültigen Erträge und müssen die Auswirkungen auf die Strategie berücksichtigen.

Optimierungsrichtung

  1. Verschiedene EMA-Zyklusparameter können getestet werden, um geeignete mittelfristige und langfristige Trendbeurteilungsindikatoren zu finden.

  2. Andere Indikatoren können in Kombination mit EMAs verwendet werden, um überkaufte und überverkaufte Bereiche zu bestimmen, z. B. Brin-Band, KD, RSI usw.

  3. Die MACD-Parameter können auch optimiert werden, um eine empfindlichere oder stabilere Kombination von Parametern zu finden.

  4. Andere Stop-Methoden können getestet werden, z. B. Trailing Stop-Methoden, um Gewinne zu sichern.

  5. Parameteroptimierungen für verschiedene Sorten mit unterschiedlichen Zyklen können die Strategie anpassungsfähiger machen.

  6. Eine Umkehrung eines starken Trends kann in Kombination mit einem Trendstärke-Indikator vermieden werden.

Zusammenfassen

Die Strategie integriert langfristige Trendbeurteilungen in EMAs und kurzfristige Umkehrsignale des MACD und ist eine grundlegende Umkehrstrategie. Die Strategie hat einige Vorteile, aber es gibt auch einige Risiken, die vorgebeugt werden müssen. Durch die weitere Optimierung der Parameter und die Risikokontrolle kann die Strategie zu einer effektiven quantitativen Handelsstrategie werden.

Strategiequellcode
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-19 00:00:00
period: 15m
basePeriod: 5m
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/
// © bufirolas

//--- From 15 Trading Examples by Trader Alyx ---
// Seems like this strategy works better if we reverse the EMA filter logic.

// "Description: This basic scalping strategy allows you to enter the market based upon sentiment
// provided by the EMA, set at 255 periods. When price is trading below the 255 EMA, you would
// look to enter a LONG BUY positions, and when price is trading above the 255 EMA, you would
// look to enter a SELL SHORT position. The MACD lagging indicator will show you clear signals for
// when to do this. When the MACD lines cross in a bullish manner and price is below the 255
// EMA, buy. When the MACD lines cross in a bearish manner and price is above the 255 EMA,
// sell.
// NOTE: Make sure that price is trading away from the 255EMA before entering a LONG or SHORT
// position. As you can see in the chart below, the clearest signs for trade entry were presented
// when price was trading AWAY from the 255EMA"

//@version=4
// strategy("255 EMA Strategy", overlay=true, pyramiding=1, default_qty_type=strategy.cash, default_qty_value=100, commission_value = 0.04, initial_capital=100)

//Inputs
i_reverse=input(false, title="Trade Reverse")
i_EMAreverse=input(true, title="EMA Reverse Entry")
i_EMAlength=input(defval=255, title="EMA Length")
i_EMAexpander=input(defval=5, title="EMA Expander")
i_MACDmult=input(defval=1, minval=1, title="MACD Mult")

//SL & TP Calculations
i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLookback=input(20, title="Swing Lo/Hi Lookback")
i_SLExpander=input(defval=0, step=.2, title="SL Expander")*.01
i_TPExpander=input(defval=0, step=.2, title="TP Expander")*.01


//Strategy Variables
EMA=ema(close,i_EMAlength)
[macdLine, signalLine, histLine]=macd(close, 12*i_MACDmult, 26*i_MACDmult, 9*i_MACDmult)
EMAupper=EMA+((atr(100))*i_EMAexpander)
EMAlower=EMA-((atr(100))*i_EMAexpander)

//SL & TP Variables
SwingLow=lowest(i_SwingLookback)
SwingHigh=highest(i_SwingLookback)

//Calculations
EMAbuy=i_EMAreverse ? close > EMAupper : close < EMAlower
EMAsell=i_EMAreverse ? close < EMAlower : close > EMAupper
MACDbuy=crossover(macdLine, signalLine)
MACDsell=crossunder(macdLine, signalLine)

//SL & TP Calculations
bought=strategy.position_size != strategy.position_size[1]
lSL=valuewhen(bought, SwingLow, 0)*(1-i_SLExpander)
sSL=valuewhen(bought, SwingHigh, 0)*(1+i_SLExpander)
lTP=strategy.position_avg_price + (strategy.position_avg_price-(valuewhen(bought, SwingLow, 0))*(1-i_TPExpander))
sTP=strategy.position_avg_price - (valuewhen(bought, SwingHigh, 0) - strategy.position_avg_price)*(1+i_TPExpander*100)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? lSL : isshort ? sSL : na
TP= islong ? lTP : isshort ? sTP : na


//Entries
strategy.entry("long", long=not i_reverse?true:false, when=EMAbuy and MACDbuy)
strategy.entry("short", long=not i_reverse?false:true, when=EMAsell and MACDsell)

//Exits
if i_SL
    strategy.exit("longexit", "long", stop=SL, limit=TP)
    strategy.exit("shortexit", "short", stop=SL, limit=TP)

//Plots
plot(EMA, "EMA", color=color.white, linewidth=2)
plot(EMAupper, "EMA Upper Band")
plot(EMAlower, "EMA Lower Band")
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(i_SL ? TP : na, color=color.green, style=plot.style_cross, title="TP")