Strategie für den Trend des gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 2024-01-12 10:56:57
Tags:

img

Übersicht

Diese Handelsstrategie basiert auf einem einfachen gleitenden Durchschnitt und einem gleitenden Durchschnitts-Crossover-System zur Trendverfolgung. Sie verwendet das Crossover von schnellen und langsamen gleitenden Durchschnitten mit verschiedenen Perioden als Signale, um lang oder kurz zu gehen. Wenn der schnelle MA über den langsamen MA von unten geht, gehen Sie lang; wenn der schnelle MA unter den langsamen MA von oben geht, gehen Sie kurz. Diese Strategie funktioniert gut für Produkte mit offensichtlichen Trends.

Strategie Logik

Die Strategie verwendet einen schnellen einfachen gleitenden Durchschnitt wie 60 Tage und einen langsamen wie 200 Tage. Der schnelle MA reagiert schneller auf Kursänderungen und spiegelt kurzfristige Trends wider; während der langsame MA langsamer reagiert und mittelfristige bis langfristige Trends zeigt.

Wenn der kurze MA über den langen MA von unten geht, signalisiert er, dass die kurzfristigen Preise steigen und in einen Bullenmarkt eintreten, also gehen Sie lang.

Die Strategie verwendet MA-Kreuzung, um die Trendrichtung zu bestimmen. Wenn die kurzfristigen Preise schneller steigen, drückt die kurze MA die lange MA nach oben und kreuzt sie von unten. Dies bedeutet, dass ein Aufwärtstrend entsteht und eine lange Position eingenommen werden sollte. Umgekehrt, wenn die kurzfristigen Preise schneller fallen, zieht die kurze MA die lange MA nach unten und kreuzt sie von oben, was einen Abwärtstrend impliziert und eine kurze Position eingenommen werden sollte.

Durch die Erfassung der Wendepunkte der Kursentwicklung mit Hilfe von schnellen und langsamen MA-Kreuzungen kann die Strategie die Long/Short-Positionen entsprechend anpassen.

Analyse der Vorteile

  • Verwenden Sie MA-Crossover, um die wichtigsten Trends zu bestimmen, und vermeiden Sie, dass Sie von kurzfristigen Marktgeräuschen irregeführt werden.
  • Es werden sowohl kurzfristige als auch mittel- bis langfristige Zeitrahmen als stabiler und zuverlässiger angesehen.
  • Implementiert eine einfache und effektive Trendverfolgung, z. B. bei Aufwärtstrends Long und bei Abwärtstrends Short.
  • Die gleitenden Durchschnitte sind weit verbreitet, leicht verständlich und die Parameter flexibel.
  • Die Risikomanagementparameter können für kontrollierte Risiken angepasst werden.

Risikoanalyse

  • Die Strategie stützt sich auf klare Preisentwicklungen, bei starken Marktschwankungen kann es zu Ausfällen kommen.
  • Whipsaws können viele falsche Signale während der Rangierungsmärkte erzeugen und häufige Eröffnungen und Schließungen von Positionen verursachen.
  • Die gleitenden Durchschnitte haben Verzögerungen, die möglicherweise Preiswendepunkte verpassen.
  • Bei falschen Parameter-Einstellungen, wie zum Beispiel einem zu engen Stop Loss oder einer zu breiten Gewinnübernahme, kann zu einem vorzeitigen Ausstieg aus oder dem Abwickeln von profitablen Positionen führen.
  • Vernünftige Parameter müssen entsprechend den Besonderheiten der verschiedenen Produkte optimiert werden.

Methoden wie die Anpassung von MA-Perioden anhand der Produkte Volatilitätsfrequenz, die Verbesserung von Stop-Loss/Take-Profit mit komplexeren Indikatoren, das Hinzufügen eines Volumenfilters usw. können diese Strategie optimieren und die Stabilität verbessern.

Optimierungsrichtlinien

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Schnelle und langsame MA-Perioden optimieren, um sich an Produkte mit unterschiedlichen Volatilitätsfrequenzen anzupassen.

  2. Verbessern Sie die Einstiegsbedingungen, indem Sie mehr Filter hinzufügen, wie Lautstärken, um falsche Signale zu reduzieren.

  3. Verbessern Sie den Stop Loss/Take Profit wie Trailing Stop oder Dynamic Take Profit, um die Rentabilität zu verbessern.

  4. Betrachten Sie Handelskosten wie Provisionen und fügen Sie Kostenbewertungsmodule für realistischere Backtests hinzu.

  5. Design Parameter Universe, um optimale Parameterkombinationen für verschiedene Produkte zu finden.

  6. Hinzufügen lokaler Musteridentifizierung, um Trendwendepunkte zu bestimmen und den Zeitpunkt der Ein- und Ausstiege zu verbessern.

Durch eine systematische Optimierung der Strategie können die Rentabilität, die Stabilität erheblich verbessert und die Abzüge verringert werden.

Zusammenfassung

Die Handelsstrategie bestimmt Trendverschiebungen mithilfe von MA-Crossovers, einer typischen Trendfolgestrategie. Sie verwendet Crossover zwischen schnellen und langsamen MAs, um lange/kurze Signale zu generieren und die Trendrichtung durch die Kombination der beiden zu identifizieren. Diese Strategie erfasst Trends stetig und zuverlässig und ist leicht zu verstehen und umzusetzen. Wenn sie optimiert wird, kann sie sich an die meisten Produkte anpassen und bildet eine grundlegende quantitative Handelsstrategie. Weitere Verbesserungen der Rentabilität und Gewinnrate können durch Kombination mit anderen technischen Indikatoren, Optimierung von Stop-Loss/Take-Profit-Strategien usw. erreicht werden.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © thebearfib
//
//@version=5
//

strategy("x-over 150d_200d_sma - Free", overlay = true)

repaint = input.bool(defval = false, title = "[RePaint] Uncheck to see real time results") //when you deselect it - it shows what would have happened in real time while trading the system
srcmc   = request.security(syminfo.tickerid, 'D', open, lookahead= repaint ? barmerge.lookahead_on : barmerge.lookahead_off, gaps=barmerge.gaps_off)

fast_length         = input(title="Fast Length", defval=60)
slow_length         = input(title="Slow Length", defval=275)

_fast               = ta.sma(srcmc,  fast_length)
_slow               = ta.sma(srcmc,  slow_length)

plot(_fast, 
  title="Fast SMA", 
  color=color.red,
  linewidth = 1) 

plot(_slow, 
  title="Slow SMA", 
  color=color.white,
  linewidth = 3)
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Calculating  —————————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//
longProfitPerc      = input.float(title="Long Take Profit (%)", minval=0.01, step=1.0, defval=42) * .01
longStopPerc        = input.float(title="Long Stop (%)",        minval=0.01, step=1.0, defval=13)  * .01
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Stop Conditions   ————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
longExitPrice  = strategy.opentrades > 0 ? strategy.position_avg_price * (1 + longProfitPerc) : srcmc *  (1 + longProfitPerc)
longStopPrice = strategy.opentrades  > 0 ? strategy.position_avg_price * (1 - longStopPerc)   : srcmc *  (1 - longStopPerc)
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Long Conditions   ————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
longCondition   = srcmc > _slow and  ta.crossover(_fast, _slow)
closeCondition  =  ta.crossover(srcmc, _slow)  

if (longCondition)
    strategy.entry("Entry (long)", strategy.long, comment="→ 𝗟𝗴 𝗘𝗻𝘁𝗿𝘆")

if (closeCondition)
    strategy.close("Entry (long)", comment=" 𝗟𝗴 𝗘𝘅𝗶𝘁 ←")

if (strategy.position_size > 0)
    strategy.exit(id="XL", limit=longExitPrice, stop = longStopPrice, comment_profit = "Take Profit", comment_loss = "Stop Loss")
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// —————————————————————————————————  Never the End Just the beginning    —————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//

Mehr