Diese Strategie ist eine typische EMA-Trend-Tracking-Strategie. Sie verwendet die Goldforke der schnellen EMA und der langsamen EMA, um zu beurteilen, ob der Kurs in einen Aufwärtstrend eingetreten ist, und die Todesforke der schnellen EMA und der langsamen EMA, um zu beurteilen, ob der Kurs in einen Abwärtstrend eingetreten ist.
Die Kernlogik der Strategie lautet:
Durch die Berechnung von EMAs mit unterschiedlichen Geschwindigkeiten können Änderungen der Markttrends effektiv erkannt werden. Schnelle EMAs sind empfindlicher auf Preisänderungen und helfen, neue Trends frühzeitig zu entdecken. Langsame EMAs können falsche Signale filtern und sicherstellen, dass Trends bestätigt wurden.
Wenn zwei EMAs Goldfork auftreten, zeigt, dass der Preis beginnt zu steigen, sollte mehrere Richtungen eingerichtet werden; wenn ein Todesfork auftritt, beginnt der Preis zu sinken, sollte eine Leerrichtung eingerichtet werden. Durch die Wiederherstellung des Todesforks des schnellen EMAs, um aus der aktuellen Position auszusteigen, kann der Verlust rechtzeitig gestoppt werden, um die Verluste zu vermeiden.
Wie man damit umgeht:
Die Strategie kann in folgenden Bereichen erweitert und optimiert werden:
Automatische Optimierung der EMA-Parameter mit Hilfe von Machine Learning-Methoden zur Verbesserung der Adaptabilität der Parameter
Erhöhung der Volatilitäts-basierten Positionsanpassungen, Anpassung der Positionen an die Marktvolatilität
Zeitpunkte für lokale Anpassungen, um Einstiegsplätze zu optimieren
Stop-Loss-Strategien wie die Erhöhung der mobilen Stop-Loss-Strategien und die Anpassung der Stop-Loss-Strategien nach Gewinn
Analyse der Veränderung der Transaktionsvolumen, um die Ein- und Ausflüsse zu ermitteln und Trends zu bestimmen
Kombination mit anderen nicht relevanten Strategien zur Verringerung der Rückgänge und zur Steigerung der Stabilität der Gesamteinnahmen
Die EMA-Trend-Tracking-Strategie ist eine einfache und praktische Trend-Follow-Strategie. Sie nutzt die langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen langfristigen lang
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
basePeriod: 1m
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/
// © HomoDeus666
//@version=5
strategy("EMA12/26 with date backtest range (BTCpair)", overlay=true,initial_capital = 1,commission_type = strategy.commission.percent,currency = currency.BTC)
//input date and time
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2021"),
title="Start Date", group="Backtest Time Period",
tooltip="This start date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Jan 2022"),
title="End Date", group="Backtest Time Period",
tooltip="This end date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
//check date and time option
inTradeWindow = true
/// plot and indicator
fastEMA = ta.ema(close,12), slowEMA=ta.ema(close,26)
plot(fastEMA,color=color.green,linewidth = 2)
plot(slowEMA,color=color.red,linewidth=2)
//entry when condition
longCondition = ta.crossover(fastEMA,slowEMA)
if (longCondition) and inTradeWindow
strategy.entry("buy", strategy.long)
if ta.crossunder(ta.ema(close, 12), ta.ema(close, 26)) and inTradeWindow
strategy.close("buy")
// trades and cancel all unfilled pending orders
if not inTradeWindow and inTradeWindow[1]
strategy.cancel_all()
strategy.close_all(comment="Date Range Exit")