Momentum-Tracking-Doppel-EMA-Crossover-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-02-26 16: 40:29
Tags:

img

Übersicht

Diese Strategie ist eine trendfolgende algorithmische Handelsstrategie. Sie berechnet zwei EMA-Linien mit unterschiedlichen Parametern und erzeugt Handelssignale, wenn das Goldene Kreuz und das Todekreuz zwischen den beiden EMAs auftreten. Die Strategie kombiniert auch mehrere EMA-Linien für den Gewinn-Ausgang und setzt Stop-Loss-Punkte zur Risikokontrolle.

Strategieprinzip

Die Strategie verwendet 4 EMA-Linien, darunter eine schnelle EMA und eine langsame EMA, deren Crossover verwendet wird, um Kauf- und Verkaufssignale zu generieren.

Speziell wird ein Kaufsignal erzeugt, wenn die schnelle EMA über die langsame EMA überschreitet. Wenn die schnelle EMA unter die langsame EMA überschreitet, wird ein Verkaufssignal erzeugt. Dies ist eine typische Dual-EMA-Crossover-Strategie. Um Trends besser zu verfolgen und die Rentabilität zu erhöhen, wird die Strategie nach dem Eintritt in eine Position selektiv einen Teil oder die gesamte Position verlassen, wenn die schnelle EMA über die zweite EMA-Linie überschreitet oder wenn die schnelle EMA unter die dritte EMA-Linie überschreitet.

Darüber hinaus setzt die Strategie sowohl lange als auch kurze Stop-Loss-Punkte fest, um übermäßige Verluste zu vermeiden.

Analyse der Vorteile

Im Vergleich zu einer typischen Crossover-Strategie mit doppelter EMA umfassen die Hauptvorteile dieser Strategie:

  1. Durch die Einrichtung mehrerer EMA-Linien für den Gewinn-Ausgang können die Gewinne besser festgehalten und eine Gewinnschrumpfung bei nachfolgenden Rückzügen verhindert werden.

  2. Die Short-Position hat einen kleineren Stop-Loss, der größeren normalen Marktschwankungen standhält und häufige Stop-Loss verhindert.

  3. Die Festlegung von EMA-Linien mit unterschiedlichen Parametern für den Gewinn-Ausgang ermöglicht die Wahl des optimalen Ausgangspunkts basierend auf den Marktbedingungen.

  4. Die Gesamtstrategie hat eine gute Trendverfolgungsfähigkeit, um größere Gewinne aus mittelfristigen bis langfristigen Trends zu erzielen.

Risikoanalyse

Zu den wichtigsten Risiken dieser Strategie gehören:

  1. Auf den Märkten mit Bandbreiten sind die von den EMA-Linien erzeugten Handelssignale häufig, was zu einem Überhandel führen kann.

  2. Der Short-Stop-Loss kann nur extreme Marktbedingungen verhindern und kann keine erheblichen Abzüge im Strategie-Konto verhindern.

  3. Die Gefahr von Abzügen besteht weiterhin, und bei einer langfristigen Anpassung können sich die Gewinne erheblich verringern.

  4. Die Strategie ist empfindlich gegenüber Parameter-Tuning. Eine unsachgemäße Konfiguration kann zu einem Strategieversagen führen.

Optimierung

Angesichts der genannten Risiken kann die Strategie in folgenden Aspekten optimiert werden:

  1. Erhöhung der Maschinellen Lernalgorithmen zur Unterstützung der Trendbeurteilung und Verringerung der Wahrscheinlichkeit von Fehltrades.

  2. Erhöhung des anpassungsfähigen Stop-Loss-Mechanismus zur dynamischen Anpassung des Stop-Loss-Mechanismus anhand der Marktvolatilität.

  3. Festlegen der Kapitalnutzung, um eine übermäßige Kapitalbesetzung zu vermeiden und den Positionsmanagementmechanismus zu verbessern.

  4. Wählen Sie Handelsprodukte mit offensichtlichen Trends und hohen Schwankungen aus.

  5. Erhöhung des Parameteroptimierungsmoduls zur automatischen Optimierung und Aktualisierung der Parameter.

Schlussfolgerung

Insgesamt ist die Dual-EMA-Crossover-Strategie eine kostengünstige Trendfolgestrategie. Sie hat Vorteile wie mehrere EMA-Linien für die Gewinnentnahme, kleine Short-Stops und eine gute Trendfolgekapazität. Allerdings gibt es bei dieser Strategie immer noch einige Risiken. Sie erfordert eine weitere Optimierung des Parameter-Tuning und die Einbeziehung von Machine-Learning-Algorithmen, um die Stabilität zu verbessern. Im Allgemeinen ist diese Strategie für Anleger mit etwas Handelserfahrung geeignet, um Algorithmenhandel durchzuführen.


/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RealTraderAkeme

//@version=5
strategy("AKEME_EMA_CROSS_V6", overlay=true)

////////////////////////////////////////////////////////////PARAMETERS/////////////////////////////////////////////////////////////////
emaFast_op = input(title="Fast_EMA", defval=6)
emaSlow_op = input(title="Slow_EMA", defval=26)
emaExit_op = input(title="Sell_EMA_Exit",defval=10)
emabuyExit_op = input(title="Buy_EMA_Exit",defval=20)
Order_Value = input(defval=1000, title="Order_Value in Pounds") 
Direction_Of_Trade = input(title="Trade Direction", defval="Both")


////////////////////////////////////////////////////////////INPUTS//////////////////////////////////////////////////////////////////

fastEMA = ta.ema(close, emaFast_op)
slowEMA = ta.ema(close,emaSlow_op)
emaExit = ta.ema(close,emaExit_op)
emabuyExit = ta.ema(close,emabuyExit_op)
Entry_Ratio = strategy.openprofit/Order_Value


//////////////////////////////////////////////////////////GRAPHS//////////////////////////////////////////////////////////////////

plot(fastEMA, color=color.orange, linewidth = 2)
plot(slowEMA,color = color.blue, linewidth = 2)
plot(emaExit,color = color.gray, linewidth = 2)
plot(series=emabuyExit, color= color.rgb(210, 74, 235), linewidth=2)


/////////////////////////////////////////////////////Conditions//////////////////////////////////////////////////////////////////////
longOK  = (Direction_Of_Trade == "Long") or (Direction_Of_Trade == "Both")
shortOK = (Direction_Of_Trade == "Short") or (Direction_Of_Trade == "Both")


///////////////////////////////////////////////////////////ENTRIES&EXITS///////////////////////////////////////////////////////////////
longCondition = ta.crossover(fastEMA, slowEMA) and longOK 
if (longCondition)  
    strategy.entry("Buy", strategy.long) 

shortCondition = ta.crossunder(fastEMA, slowEMA) and shortOK
if (shortCondition)
    strategy.entry("Sell", strategy.short)

if (strategy.position_size > 0 and shortCondition)
    strategy.exit(id="exit Buy", stop=close)
    
if (strategy.position_size < 0 and longCondition)
    strategy.exit(id="exit Sell", stop=close)


/////////////////////////////////////////////////////TAKE PROFIT CONDITIONS////////////////////////////////////////////////////////

if  ta.crossunder(fastEMA, emabuyExit) and Entry_Ratio > 0.08333
    strategy.close("Buy",comment = "Exit")

if  ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.016666
    strategy.close("Sell",comment = "Exit")


if Entry_Ratio > 0.4166666 //0.4166666 
    strategy.close("Buy",comment = "Exit", qty_percent = 100)

if Entry_Ratio > 0.0833333//0.0833333
    strategy.close("Sell",comment = "Exit")//50

if Entry_Ratio > 0.1111111//4000
    strategy.close("Sell",comment = "Exit", qty_percent = 50)

if ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.278 //Percentage 
    strategy.close("Sell",comment = "Exit")

////////////////////////////////////////////STOP LOSS AS PERCENTAGE OF ENTRY CONDITIONS///////////////////////////////////////////

if Entry_Ratio < -0.05555555555
    strategy.close("Buy",comment = "Exit")
if Entry_Ratio < -0.027777777777
    strategy.close("Sell",comment = "Exit")// The Sell Stoloss is half the buying stoploss.



Mehr