Trend nach der auf EMA-Crossover basierenden Strategie

Schriftsteller:ChaoZhang, Datum: 2023-09-15 11:51:34
Tags:

Dieser Artikel erklärt detailliert eine Trendfolgestrategie, bei der der EMA-Crossover zur Erzeugung von Handelssignalen verwendet wird.

I. Strategische Logik

Die Grundregeln sind:

  1. Einrichtung einer schnellen EMA und einer langsamen EMA, mit einer schnellen EMA für die Preisveränderungsempfindlichkeit und einer langsamen EMA für den Trend.

  2. Bei einer schnellen EMA-Kreuzung über einer langsamen EMA gehen Sie lang und bei einer unteren EMA-Kreuzung kurz.

  3. Bei einer langsamen Periode ≥ 3 mal schnellen Periode EMA-Verhältnis setzen, um falsche Signale zu reduzieren.

  4. Option für nur langen Modus, um gegentrendische Trades zu vermeiden.

  5. Anpassbarer Backtestzeitraum für die Parameteroptimierung.

Durch die Anpassung der EMA-Parameter können Empfindlichkeit und Stabilität ausgeglichen werden, um Trends zu nutzen.

II. Vorteile der Strategie

Der größte Vorteil ist die Einfachheit der Benutzerfreundlichkeit, die für Zeitbeschränkte Trader geeignet ist.

Ein weiterer Vorteil ist die Fähigkeit, Whipsaws durch Parameteroptimierung zu reduzieren.

Schließlich vermeidet der Long Only-Modus gegentrendige Trades und eignet sich für bestimmte Märkte wie Aktien.

III. Mögliche Schwächen

Es gibt jedoch einige Probleme:

Erstens haben EMAs von Natur aus Verzögerungsprobleme, was zu fehlenden optimalen Einträgen führt.

Zweitens können falsche Einstellungen zu viel Filter auslösen, was zu fehlenden Trades führt.

Schließlich müssen die Stop-Loss- und Take-Profit-Mechanismen verbessert werden.

IV. Zusammenfassung

Zusammenfassend wurde in diesem Artikel eine Trend-Nachstrategie auf der Grundlage von EMA-Crossovers erklärt. Sie zielt darauf ab, die Robustheit durch Anpassung der EMA-Parameter zu verbessern. Mit einfachen und klaren Regeln ist sie einfach umzusetzen, aber Risiken wie EMA-Lag müssen verhindert werden.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// 
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gregoirejohnb
//
// Moving average crossover systems measure drift in the market. They are great strategies for time-limited people.
// So, why don't more people use them?
// 
// I think it's due to poor choice in choosing EMA lengths: Market Wizard Ed Seykota has a guideline for moving average crossovers: the slow line should be at least 3x the fast line.
// This removes a lot of the whipsaws inherent in moving average systems, which means greater profitability.
// His other piece of advice: long-only strategies are best in stock markets where there's a lot more upside potential.
//
// Using these simple rules, we can reduce a lot of the whipsaws and low profitability trades! This strategy was made so you can see for yourself before trading.
//
// === HOW TO USE THIS INDICATOR ===
// 1) Choose your market and timeframe.
// 2) Choose the length.
// 3) Choose the multiplier.
// 4) Choose if the strategy is long-only or bidirectional. 
//
// Don't overthink the above! We don't know the best answers, that's why this strategy exists! We're going to test and find out.
//  After you find a good combination, set up an alert system with the default Exponential Moving Average indicators provided by TradingView.
//
// === TIPS ===
// Increase the multiplier to reduce whipsaws (back and forth trades).
// Increase the length to take fewer trades, decrease the length to take more trades.
// Try a Long-Only strategy to see if that performs better.
//
strategy(title="EMA Crossover Strategy", shorttitle="EMA COS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=10, currency=currency.USD,commission_type=strategy.commission.percent,commission_value=0.1)

// === GENERAL INPUTS ===
//strategy start date
start_year = input(defval=2020, title="Backtest Start Year")

// === LOGIC ===
length = input(type=input.integer,defval=20,minval=1,title="Length")
ratio = input(type=input.integer,defval=3,title="Multiplier (3x length, 4x length, etc)",options=[3,4,5,6,7,8,9,10])
longOnly = input(type=input.bool,defval=false,title="Long Only")
fast = ema(hl2,length)
slow = ema(hl2,length * ratio)
plot(fast,linewidth=2,color=color.orange,title="Fast")
plot(slow,linewidth=2,color=color.blue,title="Slow")

longEntry = crossover(fast,slow)
shortEntry = crossunder(fast,slow)

plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle")
plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle")
plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign")

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() =>
    crossover(fast,slow) and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitLong() =>
    longOnly and crossunder(fast,slow)
strategy.entry(id="Long", long=strategy.long, when=enterLong())
strategy.close(id="Long", when=exitLong())
// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() =>
    not longOnly and crossunder(fast,slow) and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitShort() =>
    false
strategy.entry(id="Short", long=strategy.short, when=enterShort())
strategy.close(id="Short", when=exitShort())

Mehr