Bitcoin - MA Crossover-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-04 13:55:45
Tags:

img

Übersicht

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.

Strategieprinzip

Die Strategie beruht hauptsächlich auf zwei Indikatoren:

  1. Moving Average (MA): Berechnet den durchschnittlichen Schlusskurs über einen bestimmten Zeitraum, um Preistrends und Umkehrsignale zu ermitteln.

  2. 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.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Das Prinzip ist einfach und leicht zu verstehen und umzusetzen.
  2. Zuverlässige Handelssignale vermeiden einen irrationalen Einstieg.
  3. Weniger Parameter und leicht zu optimieren.
  4. Reife gleitende Durchschnittstechnik mit breiter Anwendung.
  5. Der RSI-Indikator kann überkaufte und überverkaufte Phänomene effektiv erkennen.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Bei einer Umkehrung der Preise sind Trendstrategie anfällig für große Verluste.
  2. Die gleitenden Durchschnittswerte liegen hinterher und können Preisumkehrungen nicht rasch erfassen.
  3. Eine falsche Parameterwahl kann zu einer Verschlechterung der Handelssignalqualität führen.
  4. Die Strategie berücksichtigt nur technische Indikatoren ohne grundlegende Faktoren.

Zur Verringerung der Risiken wird empfohlen, die Periodenparameter des gleitenden Durchschnitts zu optimieren, Stop-Loss-Positionen anzupassen und die Positionsgrößen angemessen zu verkleinern.

Optimierungsrichtlinien

Zu den wichtigsten Optimierungsrichtungen dieser Strategie gehören:

  1. Optimieren Sie die gleitenden Durchschnittsperiodenparameter, um die optimale Parameterkombination durch inkrementelle Suche, genetische Algorithmen usw. zu finden.

  2. Erhöhung anderer technischer Indikatoren für die Filtration, wie KDJ, MACD usw., um die Qualität der Handelssignale zu verbessern.

  3. Überwachen Sie die Kursschwankungen und passen Sie Positionen entsprechend an und stoppen Sie Verluste.

  4. Einbeziehen des Handelsvolumens, um falsche Ausbrüche zu vermeiden, und nur Signale ausstellen, wenn das Handelsvolumen wächst.

  5. Entwicklung von Mechanismen zur Selbstausrichtung von Parametern, die es den Strategien ermöglichen, die Parameterwerte automatisch anhand verschiedener Marktumgebungen anzupassen.

Schlussfolgerung

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)

Mehr