Die Ressourcen sind geladen. Beförderung...

Dynamischer gleitender Durchschnitts-Kreuzungstrend nach einer Strategie mit adaptiven Risikomanagement

Schriftsteller:ChaoZhang, Datum: 2024-12-27 15:08:40
Tags:SMA- Nein.TPSL

img

Übersicht

Diese Strategie ist ein Trend-Folgende System, das auf doppelten gleitenden Durchschnitts-Crossover-Signalen basiert und einen dynamischen Take-Profit- und Stop-Loss-Mechanismus beinhaltet. Sie verwendet 5-Perioden- und 12-Perioden-Simple Moving Averages (SMA) zur Erzeugung von Handelssignalen und optimiert das Risiko-Rendite-Verhältnis durch dynamische Anpassung der Take-Profit- und Stop-Loss-Level. Der Anfangs-Take-Profit beträgt 10% und der Stop-Loss 5%, wobei sich die Niveaus bei günstigen Kursbewegungen auf 20% bzw. 2,5% anpassen.

Strategieprinzipien

Die Kernlogik beruht auf der Crossover-Beziehung zwischen schnellen (5-Perioden) und langsamen (12-Perioden) gleitenden Durchschnitten. Ein Kaufsignal wird generiert, wenn der schnelle MA über den langsamen MA überschreitet, während Positionen geschlossen werden, wenn der schnelle MA unter den langsamen MA überschreitet. Die Einzigartigkeit der Strategie liegt in ihrem dynamischen Risikomanagementmechanismus: Nach dem Positionsbeitrag überwacht das System kontinuierlich die Preisbewegung und passt dynamisch Take-Profit- und Stop-Loss-Level an, um Gewinne zu maximieren und gleichzeitig das Risiko zu kontrollieren.

Strategische Vorteile

  1. Verwendet klassische Doppel-MA-Crossover-Strategie mit klaren Signalen, die leicht zu verstehen und umzusetzen sind
  2. Ein dynamischer Profit-/Stop-Loss-Mechanismus schützt die erzielten Gewinne wirksam und verhindert Abzüge
  3. Strategieparameter können flexibel an unterschiedliche Marktmerkmale angepasst werden
  4. Ein umfassender Risikomanagementmechanismus kontrolliert das einheitliche Handelsrisiko wirksam
  5. Eine klare Codestruktur erleichtert Wartung und Optimierung

Strategische Risiken

  1. Kann falsche Signale in unterschiedlichen Märkten erzeugen, was zu häufigen Geschäften führt
  2. Potenzielle signifikante Abzüge bei Szenarien einer schnellen Umkehrung
  3. Falsche Einstellungen von Parametern können die Strategieleistung beeinträchtigen
  4. Marktliquiditätsprobleme können Auswirkungen auf die Ausführung von Stop-Loss haben Empfehlungen für das Risikomanagement:
  • Hinzufügen von Trendfiltern
  • Optimierung der Parameterwahl
  • Überwachung der Marktliquidität in Echtzeit
  • Ein umfassendes Geldmanagement-System schaffen

Optimierungsrichtlinien

  1. Einführung von Indikatoren für die Trendstärke zur Filterung von Marktsignalbereichen
  2. Erwägen Sie die Einbeziehung von Volumenfaktoren zur Verbesserung der Signalzuverlässigkeit
  3. Optimierung der Profit-/Stop-Loss-Parameter zur Steigerung des Risikoverhältnisses
  4. Hinzufügen eines Anpassungsmechanismus für die Marktvolatilität
  5. Verbesserung des Positionsgrößensystems

Zusammenfassung

Diese Strategie erfasst effektiv Trends und steuert das Risiko dynamisch, indem sie klassische gleitende Durchschnitts-Crossover-Signale mit innovativem dynamischem Risikomanagement kombiniert.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("My Moving Average Crossover Strategy with Take Profit and Stop Loss", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//risk_free_rate = float(request.security("IRUS", "D", close)/request.security("IRUS", "D", close[1]) - 1  ))




// MA periods
fastLength = input.int(5, title="Fast MA Length")
slowLength = input.int(12, title="Slow MA Length")




// Take Profit and Stop Loss
takeProfitLevel = input(10, title="Take Profit (пункты)") // Take profit % from the last price
stopLossLevel = input(5, title="Stop Loss (пункты)") // Stop loss  % from the last price
takeProfitLevel_dyn = input(20, title="Dynamic Take Profit (пункты)") // Move TP if current_price higher buy_px
stopLossLevel_dyn =  input(2.5, title="Dynamic Stop Loss (пункты)") // S Move SL if current_price higher buy_px


// Вычисление скользящих средних
fastMA = ta.sma(close, fastLength)
slowMA= ta.sma(close, slowLength)


// Conditions for Sell and Buy
longCondition = ta.crossover (fastMA, slowMA) // покупаем, если короткая MA персекает длинную снизу-вверх
shortCondition = ta.crossunder(fastMA, slowMA) // продаем, если короткая MA персекает длинную сверху-вниз




// Buy position condition
if (longCondition)
    strategy.entry("Buy", strategy.long)






// Dynamic TP SL leveles
takeProfitPrice = strategy.position_avg_price * (1+ takeProfitLevel / 100)
stopLossPrice = strategy.position_avg_price * (1-stopLossLevel / 100)


entryPrice = strategy.position_avg_price




if (strategy.position_size > 0) // если есть открытая позиция




    // takeProfitPrice := entryPrice * (1+ takeProfitLevel / 100)
    // stopLossPrice := entryPrice * (1-stopLossLevel / 100)


    // // Перемещение Stop Loss и Take Profit
    if (close > entryPrice)
   
        takeProfitPrice := close * (1+ takeProfitLevel_dyn / 100)
        stopLossPrice := close * (1- stopLossLevel_dyn/ 100)






if (shortCondition)
    strategy.close("Buy")




strategy.exit("Take Profit/Stop loss", "Buy", limit=takeProfitPrice, stop=stopLossPrice)


// Drawing MA lines
plot(fastMA, color=color.blue, title="Fast Moving Average")
plot(slowMA, color=color.orange, title="Slow Moving Average")




// Визуализация
plot(longCondition ? na : takeProfitPrice, title="Take Profit Level", color=color.green, linewidth=1, style=plot.style_line)
plot(longCondition ? na: stopLossPrice, title="Stop Loss Level", color=color.red, linewidth=1, style=plot.style_line)







Verwandt

Mehr