Doppelte gleitende Durchschnitts-Crossover-Pfeil-Strategie


Erstellungsdatum: 2023-11-21 17:00:49 zuletzt geändert: 2023-11-21 17:00:49
Kopie: 0 Klicks: 604
1
konzentrieren Sie sich auf
1617
Anhänger

Doppelte gleitende Durchschnitts-Crossover-Pfeil-Strategie

Überblick

Die Strategie beurteilt, wann es Zeit ist, zu kaufen und zu verkaufen, indem sie die doppelte Gleichgewichtskreuzung des MACD-Indikators berechnet. Sie zeichnet einen Pfeil auf der Grafik, um ein Handelssignal zu erhalten.

Grundsätze

Die Strategie berechnet zunächst die Schnelllinie (EMA 12), die Schnelllinie (EMA 26) und die MACD-Differenz. Dann werden die Kauf- und Verkaufszeiten basierend auf den Gold- und Goldforken der Schnelllinie und der Schnelllinie sowie den Positiv-Negativ-Deferenzen der MACD-Differenz berechnet:

  1. Als Kaufsignal, wenn die Schnelllinie die Langslinie überschreitet (Goldfork) und die MACD-Differenz 0 überschreitet
  2. Als Verkaufsignal wird verwendet, wenn die Schnelllinie unter der langsamen Linie ((Dead Fork) und die MACD-Differenz unter 0 durchläuft

Um falsche Signale zu filtern, beurteilt der Code auch die Signalverhältnisse der vorherigen K-Linie. Das aktuelle Signal wird nur ausgelöst, wenn die aktuelle K-Linie ein umgekehrtes Signal ist (Kauf in Verkauf oder Verkauf in Kauf).

Darüber hinaus ist ein Pfeil im Code gezeichnet, der den Zeitpunkt des Kaufs und Verkaufs auf der K-Linie anzeigt.

Vorteile

Diese Strategie hat folgende Vorteile:

  1. Die Verwendung von biuniversalem Querverurteilungsverfahren kann Marktlärm effektiv filtern und Trends erkennen.
  2. Durch die Kombination von MACD-Unterschiede- und Fehlentscheidungen werden Auslassungen und Fehlentscheidungen vermieden.
  3. Mit dem Pfeil wird die Zeit für den Kauf und Verkauf angezeigt und die Handlung wird klarer.
  4. Die Regeln sind einfach, klar und leicht zu verstehen und zu kopieren.

Risiken und Lösungen

Die Strategie birgt auch einige Risiken:

  1. Bei einer doppelten Durchschnittslinie kann leicht ein falsches Signal erzeugt werden, was zu Überhandelungen führen kann. Die Durchschnittslinieparameter können entsprechend angepasst oder andere Filterbedingungen hinzugefügt werden, um falsche Signale zu reduzieren.
  2. Es ist unmöglich, die Schwankungen in den Trends zu beurteilen und es kann zu Verlusten kommen. Dies kann mit einem Trendindikator wie dem ADX vermieden werden.
  3. Feste Kauf- und Verkaufskonditionen mechanisieren Strategien, die sich nicht an Marktveränderungen anpassen können. Anpassungsmethoden wie maschinelles Lernen können versucht werden, um zu optimieren

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Verschiedene Parameterkombinationen testen, um die besten Schnell-, Langspiel- und MACD-Parameter zu finden
  2. Erhöhung der Einstiegsvoraussetzungen, wie zum Beispiel Durchbruch der Transaktionsmenge, um Signale zu filtern
  3. Erhöhung der Stop-Loss-Mechanismen zur Kontrolle von Einzelschäden
  4. Risikopräferenzen in Kombination mit Volatilitätsindikatoren wie VIX
  5. Versuche mit maschinellen Lernmodellen anstelle von festgelegten Regeln, um eine adaptiven Optimierung der Strategien zu ermöglichen

Zusammenfassen

Die Doppel-Even-Linien-Kreuz-Pfeil-Strategie ist insgesamt relativ einfach und praktisch. Durch die Doppel-Even-Linien-Kreuz-Urteil und MACD-Differenz-Filterung können Kauf- und Verkaufspunkte in den mittleren und langen Trends identifiziert werden, um verpasste Preiswechsel zu vermeiden. Die Pfeil-Hinweise machen die Bedienung auch klarer und klarer.

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

//@version=3
//Daniels stolen code
strategy(shorttitle="Daniels Stolen Code", title="Daniels Stolen Code", overlay=true, calc_on_order_fills=true, pyramiding=0)

//Define MACD Variables
fast = 12, slow = 26
fastMACD = ema(hlc3, fast)
slowMACD = ema(hlc3, slow)
macd = fastMACD - slowMACD
signal = sma(macd, 9)
hist = macd - signal
currMacd = hist[0]
prevMacd = hist[1]
currPrice = hl2[0]
prevPrice = hl2[1]

buy = currPrice > prevPrice and currMacd > prevMacd
sell = currPrice < prevPrice and currMacd < prevMacd
neutral = (currPrice < prevPrice and currMacd > prevMacd) or (currPrice > prevPrice and currMacd < prevMacd)
//Plot Arrows

timetobuy = buy==1 and (sell[1]==1 or (neutral[1]==1 and sell[2]==1) or (neutral[1]==1 and neutral[2]==1 and sell[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and sell[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and sell[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and sell[6]==1))
timetosell = sell==1 and (buy[1]==1 or (neutral[1]==1 and buy[2]==1) or (neutral[1]==1 and neutral[2]==1 and buy[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and buy[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and buy[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and buy[6]==1))

plotshape(timetobuy, color=blue, location=location.belowbar, style=shape.arrowup)
plotshape(timetosell, color=red, location=location.abovebar, style=shape.arrowdown)
//plotshape(neutral, color=black, location=location.belowbar, style=shape.circle)


//Test Strategy
// strategy.entry("long", true, 1, when = timetobuy and time > timestamp(2017, 01, 01, 01, 01)) // buy by market if current open great then previous high
// strategy.close("long", when = timetosell and time > timestamp(2017, 01, 01, 01, 01))

strategy.order("buy", true, 1, when=timetobuy==1 and time > timestamp(2019, 01, 01, 01, 01))
strategy.order("sell", false, 1, when=timetosell==1 and time > timestamp(2019, 01, 01, 01, 01))



// strategy.entry(id = "Short", long = false, when = enterShort())
// strategy.close(id = "Short", when = exitShort())

//strategy.entry("long", true, 1, when = open > high[1]) // enter long by market if current open great then previous high
// strategy.exit("exit", "long", profit = 10, loss = 5) // ge