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.
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.
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.
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.
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.
Die Strategie kann auch in folgenden Aspekten optimiert werden:
Verwenden Sie mehr Indikatoren, um den Einstiegszeitpunkt zu bestimmen, wie MACD, KD usw., um nicht in volatilen Märkten gefangen zu bleiben.
Versuchen Sie zu bewegen, nehmen Sie Profit, oder Profit-Ratio nehmen Sie Profit-Methoden, um die Gewinn-Methoden flexibler zu machen.
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.
Anpassung der EMA-Periodenparameter anhand der Merkmale verschiedener Produkte, um die Trendbeurteilung zu optimieren.
Zusätzliche Positionsgrößenmodul, kann je Handelsgröße auf der Grundlage der Verwendungsquote von Fonds anpassen.
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)