
Die Triple EMA Trend-Tracking Strategie ist eine Strategie, die sehr gut geeignet ist, um Markttrends zu verfolgen. Sie verwendet drei verschiedene EMA-Perioden als Positionssignale, um Über- oder Leerpositionen zu erstellen, wenn eine ausreichende Trendbestätigung vorliegt.
Der Vorteil dieser Strategie besteht darin, dass sie die Falschsignale reduziert und sicherstellt, dass der Trend stark genug ist, um dann wieder einzutreten. Gleichzeitig verfügt sie über ein adaptives Stop-Loss-System, das dem Stop-Loss entsprechend der Marktvolatilität folgen kann, um eine bessere Risikomanagementwirkung zu erzielen.
Die Strategie nutzt die drei EMAs der Zeiten 7, 14 und 21 als Positionssignale. Die spezifische Logik ist, wenn der Preis die drei EMAs gleichzeitig hochläuft, zu machen; wenn der Preis die drei EMAs gleichzeitig unterläuft, zu machen.
Diese Konstruktion reduziert Falschsignale und stellt sicher, dass Trends klar genug sind, um dann wieder eingegeben zu werden. Gleichzeitig können die drei EMA-Zyklen, die richtig eingestellt sind, das Auftreten von Markttrends rechtzeitig erfassen.
Die Strategie verwendet ein anpassungsfähiges Stop-Loss-System basierend auf ATR und maximaler Rücknahme. Es berechnet die Preisschwankungen in Echtzeit und setzt eine Stop-Line entsprechend. Konkret wird ein bestimmtes Multiplikator des ATR als Stop-Buffer berechnet.
Während des Anstiegs kann die Stop-Line mit neuen Höhen aufwärts bewegt werden, um eine bessere Nachhaltigkeit zu erzielen. Wenn der Preis zurück zum Tiefpunkt der Pufferzone fällt, wird die Stop-Line aktiviert, um die Stop-Position zu platzieren. Dies kann das Stop-Loss-Risiko je nach der jeweiligen Marktlage steuern.
Die Strategie verwendet eine Stop-Line mit einem festen Prozentsatz. Nach dem Aufnehmen der Position wird eine Stop-Line eingerichtet, die einen bestimmten Prozentsatz höher als der Einstiegspreis ist. Wenn der Preis an der Stop-Line liegt, wird der Profit aus der Position aktiviert.
Der Vorteil dieser festen Stop-Rate ist, dass man die Zielgewinnspanne festlegen kann, und wenn man sie erreicht hat, kann man aussteigen. Gleichzeitig wird das Risiko vermieden, dass der Preis wieder zurückfällt. Die Stop-Rate kann je nach Bedarf angepasst werden.
Es ist möglich, eine blinde Haltung in einem bewegten Umfeld zu vermeiden, indem Trends mit Indikatoren kombiniert werden. Es ist auch möglich, die Stop-Off-Methode mit mobilen Stop-Off-Methoden oder Verlust-Verlust-Verhältnissen flexibler zu gestalten. Im Allgemeinen ist die Anwendung der Strategie durch künstliche Beurteilung erforderlich.
Die Strategie kann auch in folgenden Bereichen optimiert werden:
Es gibt mehr Indikatoren, die den Einstieg bestimmen, wie MACD, KD usw., um zu vermeiden, dass Sie in einem Erschütterungssituation erwischt werden.
Versuchen Sie, den Stopper zu bewegen oder den Stopper zu verringern, um den Stopper flexibler zu machen.
Die Aufnahme eines Abwärtsverfolgungsmechanismus in die Stop-Loss-Methode ermöglicht es, die niedrigsten Punkte erneut zu verfolgen, wenn der Preis erneut fällt, um das Risiko zu kontrollieren.
Anpassung der EMA-Zyklusparameter an die Eigenschaften der verschiedenen Sorten, um Trends zu beurteilen.
Ein zusätzliches Modul zur Positionsverwaltung ermöglicht die Anpassung der einzelnen Positionen an die Verwendungsquote.
Die Triple EMA Trend-Tracking-Strategie ist eine sehr praktische Trend-Tracking-Strategie. Sie verfügt über eine starke Trend-Erkenntnis und verfügt über ein anpassungsfähiges Stop-Loss-System, mit dem die Bestellungen automatisch verwaltet werden können. Aus Sicht der Optimierung können die Stop-Loss-Systeme weiter verbessert werden, so dass sie sich an Echtzeit-Marktbedingungen anpassen können.
/*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)