
Die Strategie basiert auf dem Goldfork-Prinzip des Moving Averages. Die Strategie verwendet zwei Moving Averages, die ein Kaufsignal erzeugen, wenn der kurzfristige Moving Average den langfristigen Moving Average von unten durchbricht. Die Strategie erzeugt ein Verkaufsignal, wenn der Preis einen anderen Moving Average unterbricht.
Die Strategie verwendet benutzerdefinierte Kurz- und Langzeit-Moving-Average-Perioden, Ausstiegs-Moving-Average-Perioden und die Berechnungsmethode für die einzelnen Moving-Averages.
Ein Kaufsignal wird erzeugt, wenn der kurzfristige gleitende Durchschnitt den langfristigen gleitenden Durchschnitt von unten durchbricht. Dies bedeutet, dass der kurzfristige Trend in einen Aufwärtstrend umgewandelt wird und ein Kauf möglich ist.
Wenn der Schlusskurs den Moving Average überschreitet, wird ein Verkaufssignal erzeugt. Dies bedeutet, dass der Trend umgekehrt ist und die Position beendet werden sollte.
Die Handelssignale für diese Strategie stammen daher aus der Kreuzung von kurzfristigen und langfristigen Moving Averages sowie aus der Beziehung zwischen dem Schlusskurs und dem Ausstieg aus dem Moving Average.
Diese Strategie hat folgende Vorteile:
Einfach zu verstehen, einfach umzusetzen.
Anpassbare Parameter für unterschiedliche Marktbedingungen.
Filtern Sie mit einem beweglichen Durchschnitt den Lärm, um die wichtigsten Trends zu erfassen.
Technische Indikatoren wie Trends, Resistenz und Unterstützung können weiter optimiert werden.
Die Gewinn- und Verlustquote ist kontrollierbar und verfügt über einen Stop-Loss-Mechanismus.
Die Strategie birgt auch folgende Risiken:
In einem nicht so tendenziellen Abschlussmarkt kann es zu falschen Signalen kommen.
Eine falsche Parameter-Einstellung kann zu Trends führen oder zu viele ungültige Trades erzeugen.
Unvernünftige Stop-Loss-Positions können die Verluste vergrößern.
Ein erfolgloser Durchbruch kann zu Verlusten führen.
Die Parameter müssen zeitnah angepasst werden, um den Markt zu verändern.
Die Risikolösungen umfassen: Optimierung der Parameter-Einstellungen, Filtersignale in Verbindung mit anderen Indikatoren, Anpassung der Stop-Loss-Position, Einbeziehung nach Trend-Ermittlung usw.
Diese Strategie kann optimiert werden durch:
Entwickeln Sie Trend-Bestimmungsmechanismen, um Trends zu identifizieren und Handelssignale zu erzeugen.
In Kombination mit Handelsvolumen oder Schwankungsindikatoren filtern Sie die Signale.
Dynamische Optimierung der Periodenparameter für Moving Averages.
Optimierung der Stop-Loss-Mechanismen, um eine mobile Stop-Loss zu realisieren.
In Kombination mit Unterstützung, Widerstand und anderen Indikatoren bestätigen die Handelssignale weiter.
Parameter für verschiedene Sorten und Perioden.
Die Moving Average Gold Fork Trading Strategie ist insgesamt eine einfache und praktische Trend-Tracking-Strategie. Sie kann die Parameter an die Marktbedingungen anpassen, um die Haupttrendrichtung in der Trendbewegung zu erfassen.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 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/
// © TwoChiefs
//@version=4
strategy("John EMA Crossover Strategy", overlay=true)
////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
////////////////////////////////////////////////////////////////////////////////
//CREATE USER-INPUT VARIABLES
periodShort = input(13, minval=1, title="Enter Period for Short Moving Average")
smoothingShort = input(title="Choose Smoothing Type for Short Moving Average", defval="EMA", options=["RMA", "SMA", "EMA", "WMA", "VWMA", "SMMA", "DEMA", "TEMA", "HullMA", "LSMA"])
periodLong = input(48, minval=1, title="Enter Period for Long Moving Average")
smoothingLong = input(title="Choose Smoothing Type for Long Moving Average", defval="EMA", options=["RMA", "SMA", "EMA", "WMA", "VWMA", "SMMA", "DEMA", "TEMA", "HullMA", "LSMA"])
periodExit = input(30, minval=1, title="Enter Period for Exit Moving Average")
smoothingExit = input(title="Choose Smoothing Type for Exit Moving Average", defval="EMA", options=["RMA", "SMA", "EMA", "WMA", "VWMA", "SMMA", "DEMA", "TEMA", "HullMA", "LSMA"])
src1 = close
pivot = (high + low + close) / 3
//MA CALCULATION FUNCTION
ma(smoothing, src, length) =>
if smoothing == "RMA"
rma(src, length)
else
if smoothing == "SMA"
sma(src, length)
else
if smoothing == "EMA"
ema(src, length)
else
if smoothing == "WMA"
wma(src, length)
else
if smoothing == "VWMA"
vwma(src, length)
else
if smoothing == "SMMA"
na(src[1]) ? sma(src, length) : (src[1] * (length - 1) + src) / length
else
if smoothing == "HullMA"
wma(2 * wma(src, length / 2) - wma(src, length), round(sqrt(length)))
//ASSIGN A MOVING AVERAGE RESULT TO A VARIABLE
shortMA=ma(smoothingShort, pivot, periodShort)
longMA=ma(smoothingLong, pivot, periodLong)
exitMA=ma(smoothingExit, pivot, periodExit)
//PLOT THOSE VARIABLES
plot(shortMA, linewidth=4, color=color.yellow,title="The Short Moving Average")
plot(longMA, linewidth=4, color=color.blue,title="The Long Moving Average")
plot(exitMA, linewidth=1, color=color.red,title="The Exit CrossUnder Moving Average")
//BUY STRATEGY
buy = crossover(shortMA,longMA) ? true : na
exit = crossunder(close,exitMA) ? true : na
strategy.entry("long",true,when=buy and time_cond)
strategy.close("long",when=exit and time_cond)
if (not time_cond)
strategy.close_all()