MACD-Roboter-Handelsstrategie


Erstellungsdatum: 2023-12-18 17:30:15 zuletzt geändert: 2023-12-18 17:30:15
Kopie: 0 Klicks: 722
1
konzentrieren Sie sich auf
1621
Anhänger

MACD-Roboter-Handelsstrategie

Überblick

Diese Strategie wird als MACD-Roboter-Trading-Strategie bezeichnet. Die Strategie beurteilt die Kauf- und Verkaufszeit des Marktes durch die Berechnung der Beziehung zwischen der schnellen und der langsamen Linie des MACD-Indikators und verfolgt die Stop-Loss-Strategie, um das Risiko zu kontrollieren.

Strategieprinzip

Die Strategie basiert hauptsächlich auf der Entwicklung des MACD-Indikators. Der MACD-Indikator besteht aus einer schnellen und einer langsamen Linie, wobei die schnelle Linie der kurzfristige Durchschnitt und die langsame Linie der langfristige Durchschnitt ist. Die Beziehung zwischen den beiden spiegelt die Kauf- und Verkaufssituation des Marktes wider.

In dieser Strategie werden die schnellen und langsamen Linien mit EMA-Algorithmen berechnet, wobei die Perioden individuell angepasst werden können. Um die Signalqualität zu verbessern, wurden die Signallinien hinzugefügt, um die MACD-Werte mit EMA-Algorithmen erneut zu verarbeiten.

Bei der Entscheidung, wann ein Kauf erfolgen soll, muss nicht nur die Schnell- und Langzeitschnur geprüft werden, sondern auch, ob der MACD-Absolute größer ist als die benutzerdefinierte Kauflinie. Wenn dies der Fall ist, wird ein Kaufsignal ausgesendet, um das Risiko mit einem Stop-Loss-Tracking zu kontrollieren.

Bei der Beurteilung der Verkaufsmoment, um gleichzeitig die Bedingungen der schnellen und langsamen Linie Todesfurche und Signallinie positiv zu erfüllen, senden Sie ein Verkaufssignal und ebnen Sie die Position.

Analyse der Stärken

Die Strategie hat folgende Vorteile:

  1. Die MACD-Indikatoren sind sehr zuverlässig, um zu bestimmen, wann ein Kauf oder Verkauf stattfindet.
  2. Erhöhung der Signalleitung zur Verbesserung der Signalqualität
  3. Verfolgung von Stop Losses und effektive Risikokontrollen
  4. Die Strategie-Sensitivität der Buy-in-Line kann angepasst werden
  5. Bedingungen basieren ausschließlich auf Kennzahlen und sind nicht von außen beeinflusst

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. MACD-Indikatoren liegen zurück und könnten Short Line-Operationsmöglichkeiten verpassen
  2. Unzureichende Einstellungen des Stop-Loss-Punktes können zu unnötigen Verlusten führen
  3. Parameter-Tuning erfordert viel Zeit für Tests und Anpassungen
  4. Auswirkungen von Transaktionskosten und Slippings

Diese Risiken können durch geeignete Anpassungen der Parameter und Kombinationen anderer Indikatoren verringert werden.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Filtersignale in Kombination mit anderen Indikatoren wie KDJ, RSI usw.
  2. Das ist eine neue Methode, um die Verkaufsposition zu bestimmen.
  3. Dynamische Stopps statt statischer
  4. Testoptimierung für MACD-Parameter und Kauflinien
  5. Anpassungsstrategien, die die Auswirkungen der Transaktionskosten berücksichtigen

Zusammenfassen

Diese Strategie ist insgesamt eine sehr zuverlässige Trend-Tracking-Strategie. Durch MACD-Indikatoren Trends zu beurteilen, zu verfolgen Stop-Loss-Kontrolle Risiken, kann eine stabile Rendite erzielt werden.

Strategiequellcode
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle = "GBPUSD MACD", title = "GBPUSD MACD")
fastMA = input(title="Fast moving average",  defval = 12, minval = 7)
slowMA = input(title="Slow moving average",  defval = 26, minval = 7)
lastColor = yellow
[currMacd,_,_] = macd(close[0], fastMA, slowMA, 9)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9)
plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red
plot(currMacd, style = histogram, color = plotColor, linewidth = 3)
plot(0, title = "Zero line", linewidth = 1, color = gray)

//MACD
// Getting inputs
fast_length = input(title="Fast Length",  defval=12)
slow_length = input(title="Slow Length",  defval=26)
src = input(title="Source", defval=close)
signal_length = input(title="Signal Smoothing",  minval = 1, maxval = 50, defval =9)
sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=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

//plot(hist, title="Histogram", 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)
///END OF MACD

//Long and Close Long Lines
linebuy = input(title="Enter Long", type=float, defval=-0.00045)
linesell = input(title="Close Long", type=float, defval=0.0001)

//Plot Long and Close Long Lines
plot(linebuy,color=green),plot(linesell,color=red)


//Stop Loss Input
sl_inp = input(0.05, title='Stop Loss %', type=float)/100


//Order Conditions
longCond = crossover(currMacd, linebuy)
exitLong = crossover(currMacd, signal) and signal > 0
stop_level = strategy.position_avg_price * (1 - sl_inp)


//Order Entries
strategy.entry("long", strategy.long,  when=longCond==true)
strategy.close("long", when=exitLong==true)
strategy.exit("Stop Loss", stop=stop_level)