Die Strategie kombiniert zwei Indikatoren, den Index Moving Average (EMA) und den Moving Average Convergence Divergence (MACD), um ein Handelssignal zu erzeugen, und verwendet Tracking Stop Losses, um das Risiko zu kontrollieren. Die Strategie ist für Trendbewegungen geeignet, um langfristige Positionen zu halten, die den mittleren Trend verfolgen.
Wenn die schnelle EMA-Linie die langsame EMA-Linie durchbricht und die MACD-Histogramm-Säule leer wird, wird die Strategie ausgeführt. Wenn eine mehrköpfige Position vorhanden ist, wird eine nach unten gerichtete Tracking-Stop-Line eingerichtet. Wenn der Preis über die Stop-Line fällt, wird der Stop-Loss aus der Mehrköpfige Position ausgetreten.
Die Strategie verwendet die 7-Tage-EMA und die 14-Tage-EMA, um eine schnelle EMA zu erstellen. Mit der 12-Tage-EMA minus der 26-Tage-EMA erhält man den MACD-Wert, und mit der 9-Tage-EMA erhält man die Signallinie. Wenn die 7-Tage-EMA die 14-Tage-EMA durchläuft und die MACD-Wert das Signal durchläuft, wird eine Position überschritten.
Die Strategie kombiniert EMA und MACD, um die falschen Durchbrüche effektiv zu filtern. Die EMA beurteilt die Richtung des Trends, die MACD beurteilt die Kauf- und Verkaufsposition, was die Signalqualität erhöht, während die Handelsfrequenz reduziert wird. Die Tracking-Stopps maximieren den Schutz der erzielten Gewinne und die rechtzeitige Beendigung von Verlusten im Falle einer erheblichen nachteiligen Situation.
Die Rückmeldung zeigt, dass die Strategie auch in Bärenmärkten bessere Erträge erzielen kann, was darauf hindeutet, dass die Strategie eine gewisse Robustheit hat. Die Strategie ist nicht sehr häufig gehandelt und eignet sich für mittlere und langfristige Positionen. Die EMA-Zyklusparameter können entsprechend angepasst werden, um die Trendfähigkeit der Strategie anzupassen.
Die Strategie basiert hauptsächlich auf den Indikatoren und besteht die Gefahr, eingesetzt zu werden. Wenn der Markt in der Phase der Erschütterung ist, können die EMA und der MACD viele falsche Signale erzeugen, was zu Überhandelungen und Verlusten führt.
Es ist möglich, falsche Signale zu reduzieren, indem die EMA-Zyklusparameter entsprechend erweitert werden. Es kann auch mit anderen Indikatoren kombiniert werden, um Filtersignale zu filtern, z. B. mit Quantitätsindikatoren, Volatilitätsindikatoren usw. Darüber hinaus kann die Stop-Loss-Ratio je nach Marktlage angepasst werden, um das Stop-Loss- und das Arbitrage-Risiko auszugleichen.
Verschiedene EMA-Periodenkombinationen können getestet werden, um die Periodenparameter zu finden, die besser für die Strategie geeignet sind.
Die Signalqualität kann durch die Filterung anderer Indikatoren wie RSI, KD usw. verbessert werden.
Die Stop-Loss-Ratio kann je nach Sorte angepasst werden und die Stop-Loss-Strategie kann dynamisch verfolgt werden.
Technische Kennzahlen wie Durchbruch und Form können kombiniert werden, um mehr Bedingungen für die Eröffnung und Bewahrung von Positionen festzulegen und die Strategie maßgeschneiderter zu machen.
Maschinelles Lernen kann eingesetzt werden, um die Richtung von Trendzyklen vorherzusagen und die EMA bei der Bestimmung des Gesamttrends zu unterstützen.
Die Strategie ist insgesamt robust und kann auch in Bärenmärkten gute Gewinne erzielen. Es besteht jedoch ein gewisses Arbitrage-Risiko, das die Optimierung der Parameter und Filterbedingungen erfordert. Die Wirksamkeit der Strategie wird besser sein, wenn die Optimierung durch weitere Methoden wie andere technische Indikatoren und maschinelles Lernen kombiniert werden kann. Insgesamt bietet die Strategie eine zuverlässige Vorlage für quantitative Handel.
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-19 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/
// © Coinrule
//@version=5
strategy('EMA and MACD with Trailing Stop Loss',
overlay=true,
initial_capital=1000,
process_orders_on_close=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=30,
commission_type=strategy.commission.percent,
commission_value=0.1)
showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0
// EMAs
fastEMA = ta.ema(close, 7)
slowEMA = ta.ema(close, 14)
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.green)
//buyCondition1 = ta.crossover(fastEMA, slowEMA)
buyCondition1 = fastEMA > slowEMA
// DMI and MACD inputs and calculations
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)
buyCondition2 = ta.crossover(macd_signal, macd)
// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01
// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
stopValue = close * (1 - longTrailPerc)
math.max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + shortTrailPerc)
math.min(stopValue, shortStopPrice[1])
else
999999
if (buyCondition1 and buyCondition2 and notInTrade and timePeriod)
strategy.entry(id="Long", direction = strategy.long)
strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)
//if (sellCondition1 and sellCondition2 and notInTrade and timePeriod)
//strategy.close(id="Close", when = sellCondition1 or sellCondition2)