Diese Strategie ist eine Trend-Nachhandelsstrategie, die auf dem Crossover-Prinzip der gleitenden Durchschnittslinien von Bitcoin® basiert. Die Strategie verwendet das Crossover der schnellen gleitenden Durchschnittslinie und der langsam gleitenden Durchschnittslinie als Kauf- und Verkaufssignale. Wenn die schneller gleitende Durchschnittslinie über die langsam gleitende Durchschnittslinie kreuzt, gilt sie als goldenes Kreuz und geht lang; wenn die schneller gleitende Durchschnittslinie unter die langsam gleitende Durchschnittslinie kreuzt, gilt sie als Todeskreuz und geht kurz. Gleichzeitig enthält die Strategie auch den RSI-Indikator, um rücksichtslosen Eintritt zu vermeiden.
Die Strategie beruht hauptsächlich auf zwei Indikatoren:
Moving Average (MA): Berechnet den durchschnittlichen Schlusskurs über einen bestimmten Zeitraum, um Preistrends und Umkehrsignale zu ermitteln.
Relative Strength Index (RSI): Berechnet die Geschwindigkeit der Preissteigerungen und -rückgänge über einen bestimmten Zeitraum, um überkaufte und überverkaufte Bereiche zu beurteilen.
Wenn die schnelle Linie über die langsame Linie geht, zeigt sie an, dass sich der kurzfristige Kursanstieg beschleunigt und ein Kaufsignal erzeugt wird; wenn die schnelle Linie unter die langsame Linie geht, zeigt sie an, dass sich der kurzfristige Kursrückgang beschleunigt und ein Verkaufssignal erzeugt wird.
Gleichzeitig legt die Strategie auch einen Schwellenwert für den RSI fest, indem sie nur Kaufsignale erzeugt, wenn der RSI über 50 liegt, und nur Verkaufssignale erzeugt, wenn der RSI unter 50 liegt, um einen rücksichtslosen Eintritt zu vermeiden, wenn die Preise heftig schwanken.
Die Strategie weist folgende Vorteile auf:
Die Strategie birgt auch einige Risiken:
Zur Verringerung der Risiken wird empfohlen, die Periodenparameter des gleitenden Durchschnitts zu optimieren, Stop-Loss-Positionen anzupassen und die Positionsgrößen angemessen zu verkleinern.
Zu den wichtigsten Optimierungsrichtungen dieser Strategie gehören:
Optimieren Sie die gleitenden Durchschnittsperiodenparameter, um die optimale Parameterkombination durch inkrementelle Suche, genetische Algorithmen usw. zu finden.
Erhöhung anderer technischer Indikatoren für die Filtration, wie KDJ, MACD usw., um die Qualität der Handelssignale zu verbessern.
Überwachen Sie die Kursschwankungen und passen Sie Positionen entsprechend an und stoppen Sie Verluste.
Einbeziehen des Handelsvolumens, um falsche Ausbrüche zu vermeiden, und nur Signale ausstellen, wenn das Handelsvolumen wächst.
Entwicklung von Mechanismen zur Selbstausrichtung von Parametern, die es den Strategien ermöglichen, die Parameterwerte automatisch anhand verschiedener Marktumgebungen anzupassen.
Zusammenfassend ist dies eine typische Trendfolgestrategie. Basierend auf dem Prinzip des gleitenden Durchschnitts-Crossovers ist die Handelslogik einfach und klar, leicht zu verstehen und umzusetzen. Die Einbeziehung des RSI-Indikators kann irrationalen Handel vermeiden. Die Strategie birgt sowohl Risiken als auch Belohnungen, die für Anleger mit etwas Quant-Handelserfahrung geeignet sind, aber vor den potenziellen Verlustrisiken muss gewahrt werden. Wenn Entwickler mehr Filter hinzufügen, die Anpassungsfähigkeit der Parameter optimieren können, kann dies die stetige Rentabilität der Strategie weiter verbessern.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Trading Strategy Warning - Past performance may not equal future performance //Account Size Warning - Performance based upon default 10% risk per trade, of account size $100,000. Adjust before you trade to see your own drawdown. //Time Frame - D1 and H4, warning H4 has a lower profit factor (fake-outs, and account drawdown), D1 recommended //Trend Following System - Profitability of this system is dependent on a STRONG trend in Bitcoin, into the future strategy("Bitcoin - MA Crossover Strategy", overlay=true) // User Input usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=10,confirm=false) sma_fast = input(title="Fast MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=20,confirm=false) sma_slow = input(title="Slow MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=40,confirm=false) rsi_valu = input(title="RSI (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false) // Create Indicator's shortSMA = sma(close, sma_fast) longSMA = sma(close, sma_slow) rsi = rsi(close, rsi_valu) strategy.initial_capital = 50000 // Units to buy amount = usr_risk / 100 * (strategy.initial_capital + strategy.netprofit) units = floor(amount / close) // Specify entry conditions longEntry = crossover(shortSMA, longSMA) shortEntry = crossunder(shortSMA, longSMA) // Specify exit conditions longExit = crossunder(shortSMA, longSMA) shortExit = crossover(shortSMA, longSMA) // Execute long trade if (longEntry) strategy.entry("long", strategy.long, units, when = rsi > 50) // Exit long trade if(longExit and strategy.position_size > 0) strategy.order("exit long", strategy.short, abs(strategy.position_size)) // Execute short trade if (shortEntry) strategy.entry("short", strategy.short, units, when = rsi < 50) // Exit short trade if(shortExit and strategy.position_size < 0) strategy.order("exit short", strategy.long, abs(strategy.position_size)) // Plot Moving Average's to chart plot(shortSMA) plot(longSMA, color=color.black)