Trend des EMA-Oszillators nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-06 09:53:27
Tags:

img

Übersicht

Diese Strategie verwendet den EMA-Indikator, um Preistrends zu identifizieren und kombiniert Standardabweichung, um Kauf- und Verkaufssignale für den Trend nach dem Handel zu berechnen.

Strategie Logik

Die Strategie berechnet zunächst die Differenz v zwischen dem Schlusskurs und der EMA der Länge ema_length. Dann berechnet sie die Standardabweichung dev von v über ema_length-Perioden. Als nächstes bestimmt sie den Richtungskoeffizienten k, wobei k=1 für lang und k=-1 für kurz ist. Die Kaufsignalschwelle dev_limit wird durch k * dev * Faktorlimit berechnet. Wenn v über dem dev_limit überschreitet, wird ein Kaufsignal ausgelöst. Das Ausstiegssignal ist, wenn v 0 überschreitet.

Die Strategie sieht zwei Möglichkeiten vor:

  1. Kaufen Sie kurz, gehen Sie lang, wenn v unter negative dev_limit geht, um einem Abwärtstrend zu folgen.

  2. Kaufen Sie lang, gehen Sie lang, wenn v über die positive Dev_limit geht, um einem Aufwärtstrend zu folgen.

Zusammenfassend berechnet die Strategie dynamisch die Standardabweichung der Differenz zwischen Preis und EMA, um den Schwellenwert festzulegen und Trends zu verfolgen. Der Faktor steuert die Empfindlichkeit der Kaufsignale. ema_length bestimmt die EMA-Periode. Der Kaufmodus steuert die Orderrichtung.

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Die EMA identifiziert die Trendrichtung gut, indem sie die Preise ausgleicht.

  2. Eine dynamische Schwelle, die auf der Standardabweichung beruht, passt sich besser an als feste Schwellenwerte.

  3. Zwei Kaufmodi ermöglichen es, dem Aufwärtstrend oder dem Abwärtstrend zu folgen.

  4. Der Faktor bietet Flexibilität bei der Abstimmung der Kaufempfindlichkeit. ema_length ermöglicht die Optimierung der EMA-Periode.

  5. Die Logik ist einfach und leicht zu verstehen und zu ändern.

  6. Die Positionsgröße kann flexibel für aggressive Trendfolgen konfiguriert werden.

Risikoanalyse

Die Risiken der Strategie:

  1. Die EMA hat Verzögerungen und kann Trendwendepunkte verpassen.

  2. Es beruht auf Parameteroptimierung. Falsche Einstellungen führen zu einer unzureichenden oder überempfindlichen Empfindlichkeit.

  3. Wenn man dem Trend folgt, droht bei einer Trendumkehr ein größerer Verlust.

  4. Häufige Long/Short-Switches erhöhen die Handelsfrequenz.

  5. Häufige Signale in unterschiedlichen Märkten erhöhen die Kosten.

Um die Risiken abzuwenden, sollten Sie Stop-Loss hinzufügen, Parameter optimieren, Filter hinzufügen, um Überhandelungen zu vermeiden, usw.

Optimierungsrichtlinien

Die Strategie kann optimiert werden, indem:

  1. Verschiedene EMA-Perioden testen, um die optimale Länge zu finden.

  2. Verschiedene Faktorwerte testen, um die beste Empfindlichkeit zu finden.

  3. Optimierung von Positionsgrößenstrategien, z.B. Pyramiden.

  4. Filter hinzufügen, um falsche Geschäfte in unruhigen Märkten zu vermeiden.

  5. Einbeziehung von Stop Loss zur Kontrolle von Einzelhandelsverlusten.

  6. Optimierung der Parameter für die beiden Kaufmodi getrennt.

  7. Ich erforsche Trendumkehrsignale, um den Trend zu stoppen.

Schlussfolgerung

Die Strategie identifiziert Trends mit EMA und erzeugt dynamische Schwellenordnungen, um Trends zu folgen. Die Logik ist einfach und klar. Die Positionsgröße kann aggressiv für die Trendverfolgung sein. Sie hat Risiken, die durch Parameteroptimierung und Stop-Loss angegangen werden müssen. Sie dient als gutes Beispiel, um Indikatorenkombinationen und Parameter-Tuning zu lernen.


/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
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/
// © Azzrael

// Based on EMA and EMA Oscilator https://www.tradingview.com/script/qM9wm0PW-EMA-Oscilator-Azzrael/

// (EMA - close) + Std Dev + Factor = detecting oversell/overbuy
// Long only!
// Pyramiding - sometimes, depends on ...
// There 2 enter strategies in one script 
// 1 - Classic, buy on entering to OverSell zone (more profitable ~> 70%)
// 2 - Crazy, buy on entering to OverBuy zone (catching trend and pyramiding, more net profit)
// Exit - crossing zero of (EMA - close)

//@version=5
strategy("STR:EMA Oscilator [Azzrael]", overlay=false, 
 margin_long=100, 
 margin_short=100, 
 currency=currency.USD,
 default_qty_type=strategy.percent_of_equity,
 default_qty_value=30,
 pyramiding=3)

entry_name="Buy"

ema_length = input.int(200, "Period", minval=2, step=10)
limit = input.float(1.7, "Factor", minval=1, step=0.1, maxval=10)
dno = input.string(defval="Buy on enter to OverSell", title="Model", options=["Buy on enter to OverSell", "Buy on enter to OverBuy"]) == "Buy on enter to OverSell"

v = close - ta.ema(close, ema_length)
dev = ta.stdev(v, ema_length)
k = dno ? -1 : 1
dev_limit = k*dev*limit

cond_long = dno ? ta.crossunder(v, dev_limit) : ta.crossover(v, dev_limit)
cond_close = ta.cross(v, 0) 

// dev visualization
sig_col = (dno and v <= dev_limit) or (not dno and v >= dev_limit) ? color.green : color.new(color.blue, 80)
plot(dev_limit, color=color.green)
plot(k*dev, color=color.new(color.blue, 60))
plot(v, color=sig_col )
hline(0)

// Make love not war
strategy.entry(entry_name, strategy.long, when=cond_long)
strategy.close(entry_name, when=cond_close)


Mehr