Dreifache EMA-Trend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-20 15:00:44
Tags:

img

Übersicht

Die Triple EMA Trend Following Strategie ist eine Strategie, die sehr gut für die Verfolgung von Markttrends geeignet ist.

Der Vorteil dieser Strategie besteht darin, dass sie falsche Signale reduzieren und vor dem Eintritt in eine Position eine ausreichende Trendstärke gewährleisten kann.

Strategie Logik

Eintrittslogik

Die Strategie verwendet 7--, 14- und 21-Perioden-EMA als Einstiegssignalindikatoren. Die spezifische Logik lautet, wenn der Preis gleichzeitig über alle drei EMAs geht, geht er lang; wenn der Preis gleichzeitig unter alle drei EMAs geht, geht er kurz.

Diese Konstruktion kann falsche Signale reduzieren und sicherstellen, dass der Trend vor dem Eintritt klar genug ist.

Stop-Loss-Methode

Die Strategie verwendet ein anpassungsfähiges Stop-Loss-System, das auf ATR und maximalem Drawdown basiert. Es berechnet die Kursvolatilität in Echtzeit und setzt entsprechend Stop-Loss-Linien. Insbesondere berechnet es ein bestimmtes Vielfaches von ATR als Stop-Loss-Pufferzone.

Während eines Aufwärtstrends bewegt sich die Stop-Loss-Linie mit neuen Höchstständen mit einem guten Jagd-Effekt nach oben. Wenn der Preis wieder auf den Tiefpunkt der Pufferzone fällt, wird die Stop-Loss-Linie ausgelöst, um Positionen zu schließen. Dies kann das Stop-Loss-Risiko entsprechend den Marktbedingungen kontrollieren.

Gewinnspielweise

Die Strategie verwendet eine feste Prozentsatz-Take-Profit-Methode. Nach Eröffnung einer Position wird eine Take-Profit-Linie auf einen bestimmten Prozentsatz über dem Einstiegspreis gesetzt. Wenn der Preis auf die Take-Profit-Linie steigt, wird die Position geschlossen, um Gewinne zu erzielen.

Der Vorteil dieses festen Prozentsatzes des Gewinns besteht darin, dass ein Zielgewinnniveau festgelegt werden kann, das nach Erreichen des Ausstiegs erfüllt wird.

Analyse der Vorteile

  • Kann falsche Signale reduzieren und einen relativ starken Kurstrend nach Eröffnung von Positionen gewährleisten
  • Verwenden Sie die Überlagerung von EMA-Perioden, um Markttrends schnell zu erfassen
  • Adaptives Stop-Loss-System kann das Risiko anhand der Volatilität kontrollieren
  • Festverzinsungssatz erfüllt das Gewinnziel vor dem Ausgang
  • Stop-Loss-Methode basierend auf ATR und maximaler Drawdown kann anhand der Marktbedingungen optimiert werden
  • Einfache Anpassung des Strategie-Stils durch Änderung der Parameter

Risikoanalyse

  • In verschiedenen Märkten können die EMAs häufige Kreuzungen erzeugen und leicht in die Falle geraten.
  • Festverzinsung kann nicht anhand der Marktbedingungen angepasst werden, kann größere Gewinne verpassen oder Verluste erhöhen
  • Nach dem Stop-Tracking-Stop-Loss, der nicht in der Lage ist, wieder neue Höchststände zu verfolgen, können Preisrückgänge die Verluste erhöhen
  • Bei einseitigen explosiven Trends kann der feste Gewinnanteil zu konservativ sein und nicht genügend Gewinn erzielen.

Kann Blindöffnung von Positionen in volatilen Märkten vermeiden, indem sie mit Trendbeurteilungsindikatoren kombiniert wird; kann auch bewegliche Take-Profit- oder Profit-Ratio-Methoden verwenden, um Take-Profit-Methoden flexibler zu machen.

Optimierungsrichtlinien

Die Strategie kann auch in folgenden Aspekten optimiert werden:

  1. Verwenden Sie mehr Indikatoren, um den Einstiegszeitpunkt zu bestimmen, wie MACD, KD usw., um nicht in volatilen Märkten gefangen zu bleiben.

  2. Versuchen Sie zu bewegen, nehmen Sie Profit, oder Profit-Ratio nehmen Sie Profit-Methoden, um die Gewinn-Methoden flexibler zu machen.

  3. Das Hinzufügen eines Abwärts-Trailing-Mechanismus zur Stop-Loss-Methode ermöglicht es, wieder niedrigere Punkte zu verfolgen, wenn der Preis wieder fällt, wodurch das Risiko kontrolliert wird.

  4. Anpassung der EMA-Periodenparameter anhand der Merkmale verschiedener Produkte, um die Trendbeurteilung zu optimieren.

  5. Zusätzliche Positionsgrößenmodul, kann je Handelsgröße auf der Grundlage der Verwendungsquote von Fonds anpassen.

Schlussfolgerung

Die Triple EMA Trend Following Strategie ist eine sehr praktische Trend Following Strategie. Sie verfügt über starke Trendbeurteilungsfähigkeiten und verfügt gleichzeitig über adaptive Take Profit- und Stop Loss-Mechanismen, die Aufträge automatisch verwalten können. Aus der Optimierungsperspektive können die Take Profit- und Stop Loss-Systeme weiter verbessert werden, um sich anhand von Echtzeitmarktbedingungen anzupassen.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle='Three EMAs Trend-following Strategy',title='Three EMAs Trend-following Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)


//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

ema_1 = ema(close, input(7))
ema_2 = ema(close, input(12))
ema_3 = ema(close, input(21))

Take_profit= ((input (4))/100)

longTakeProfit = strategy.position_avg_price * (1 + Take_profit)


length = input(20, "Length", minval = 2)
src = input(close, "Source")
factor = input(3.0, "Multiplier", minval = 0.25, step = 0.25)
volStop(src, atrlen, atrfactor) =>
    var max     = src
    var min     = src
    var uptrend = true
    var stop    = 0.0
    atrM        = nz(atr(atrlen) * atrfactor, tr)
    max         := max(max, src)
    min         := min(min, src)
    stop        := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src)
    uptrend     := src - stop >= 0.0
    if uptrend != nz(uptrend[1], true)
        max    := src
        min    := src
        stop   := uptrend ? max - atrM : min + atrM
    [stop, uptrend]

[vStop, uptrend] = volStop(src, length, factor)

go_long = crossover(close, ema_1) and crossover(close, ema_2) and crossover(close, ema_3)



closeLong = close > longTakeProfit or crossunder(close, vStop)



//Entry 
strategy.entry(id="long", long = true, when = go_long and window())



//Exit
strategy.close("long", when = closeLong and window())

plot(vStop,"Vstop", color.black, linewidth=2)
plot(ema_1,"EMA Short", color.green, linewidth=1)
plot(ema_2,"EMA Mid", color.purple, linewidth=1)
plot(ema_3,"EMA Long", color.red, linewidth=1)



Mehr