Quantitative Handelsstrategie basierend auf gleitendem Durchschnitt


Erstellungsdatum: 2024-01-26 16:29:23 zuletzt geändert: 2024-01-26 16:29:23
Kopie: 0 Klicks: 555
1
konzentrieren Sie sich auf
1617
Anhänger

Quantitative Handelsstrategie basierend auf gleitendem Durchschnitt

Überblick

Die Moving Average Crossover Strategie ist eine quantitative Handelsstrategie, die auf Moving Averages basiert. Die Strategie erzeugt Handelssignale, um Profit zu erzielen, indem sie den Durchschnittspreis einer Wertpapiere über einen bestimmten Zeitraum berechnet und die Kreuzung der Moving Averages der Preise nutzt.

Strategieprinzip

Die Strategie nutzt hauptsächlich die Kreuzung von schnellen und langsamen Moving Averages, um Preistrends zu ermitteln und Handelssignale zu erzeugen. Konkret handelt es sich um Moving Averages mit zwei unterschiedlichen Periodenlängen, z. B. 10-Tage- und 20-Tage-Linien.

Wenn der schnelle gleitende Durchschnitt von unten den langsamen gleitenden Durchschnitt durchbricht, wird davon ausgegangen, dass der Markt von unten nach unten umschaltet und ein Kaufsignal erzeugt. Wenn der schnelle gleitende Durchschnitt von oben nach unten den langsamen gleitenden Durchschnitt durchbricht, wird davon ausgegangen, dass der Markt von oben nach unten umschaltet und ein Verkaufssignal erzeugt.

Durch die Erfassung von Wendepunkten in der Preisentwicklung kann die Strategie bei guten und schlechten Zeiten gekauft und verkauft werden, um Gewinne zu erzielen.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Einfache Konzepte, leicht zu verstehen und umzusetzen
  2. Anpassungsfähige Parameter, wie z.B. die Periode des Moving Averages
  3. Die Rückmeldung wirkt besser und eignet sich besonders für trendige Situationen.
  4. Einbindung in die Stop-Loss-Logik, um Risiken zu kontrollieren

Risikoanalyse

Die Strategie birgt auch folgende Risiken:

  1. Das Unternehmen ist in der Lage, seine Kunden zu überzeugen, dass es sich um eine erfolgreiche Lösung handelt.
  2. Die Parameter müssen deaktiviert werden, unterschiedliche Parameterkombinationen haben eine unterschiedliche Wirkung.
  3. Die Einführung eines solchen Systems ist unwahrscheinlich, da es sich um eine sehr komplexe Lösung handelt.
  4. Es gibt eine Zeitverschiebung, die eine schnelle Preisumkehr verpassen könnte.

Diese Risiken können durch geeignete Optimierungen verringert werden.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. In Kombination mit anderen Indikatoren Filtersignale, wie z. B. Quantifizierung Indikator, Schwingung Indikator usw., um Fehltrading bei der Berechnung zu vermeiden
  2. Hinzufügen von Adaptive Moving Averages, um die dynamischen Änderungen der Periodiparameter zu ermöglichen und die Preise besser zu verfolgen
  3. Optimierung der Periodizität von Moving Averages und Suche nach der optimalen Kombination
  4. Einrichtung von Wiedereintrittsbedingungen, um häufige Transaktionen zu vermeiden
  5. Berücksichtigung der tatsächlichen Transaktionskosten und der Gleitpunkte, Anpassung der Stop-Loss-Punkte

Durch diese Optimierung kann die Wirksamkeit der Strategie im Live-Stream erheblich verbessert werden.

Zusammenfassen

Die Moving-Average-Cross-Strategie ist insgesamt eine leicht zu erlernende und umsetzbare quantitative Handelsstrategie. Sie nutzt das Prinzip der Kreuzung des Preisdurchschnitts, um die Marktentwicklung einfach und intuitiv zu beurteilen und Handelssignale zu erzeugen. Durch die Optimierung der Parameter und die Kombination mit anderen technischen Indikatoren kann die reale Wirkung der Strategie verstärkt werden, was sie zu einem zuverlässigen Instrument für quantitative Gewinne macht.

Strategiequellcode
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © HPotter
//  Simple SMA strategy
//
// WARNING:
//      - For purpose educate only
//      - This script to change bars colors
//@version=4
strategy(title="Simple SMA Strategy Backtest", shorttitle="SMA Backtest", precision=6, overlay=true)
Resolution = input(title="Resolution", type=input.resolution, defval="D")
Source = input(title="Source", type=input.source, defval=close)
xSeries = security(syminfo.tickerid, Resolution, Source)
Length = input(title="Length", type=input.integer, defval=14, minval=2)
TriggerPrice = input(title="Trigger Price", type=input.source, defval=close)
TakeProfit = input(50, title="Take Profit", step=0.01)
StopLoss = input(20, title="Stop Loss", step=0.01)
UseTPSL = input(title="Use Take\Stop", type=input.bool, defval=false)
BarColors = input(title="Painting bars", type=input.bool, defval=true)
ShowLine = input(title="Show Line", type=input.bool, defval=true)
UseAlerts = input(title="Use Alerts", type=input.bool, defval=false)
reverse = input(title="Trade Reverse", type=input.bool, defval=false)
pos = 0
xSMA = sma(xSeries, Length)
pos := iff(TriggerPrice > xSMA, 1,
         iff(TriggerPrice < xSMA, -1, nz(pos[1], 0)))
nRes = ShowLine ? xSMA : na
alertcondition(UseAlerts == true and pos != pos[1] and pos == 1, title='Signal Buy', message='Strategy to change to BUY')
alertcondition(UseAlerts == true and pos != pos[1] and pos == -1, title='Signal Sell', message='Strategy to change to SELL')
alertcondition(UseAlerts == true and pos != pos[1] and pos == 0, title='FLAT', message='Strategy get out from position')
possig =iff(pos[1] != pos,
         iff(reverse and pos == 1, -1,
           iff(reverse and pos == -1, 1, pos)), 0)
if (possig == 1)
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)
    
if (UseTPSL)    
    strategy.close("Long", when = high > strategy.position_avg_price + TakeProfit, comment = "close buy take profit")
    strategy.close("Long", when = low < strategy.position_avg_price - StopLoss, comment = "close buy stop loss")
    strategy.close("Short", when = low < strategy.position_avg_price - TakeProfit, comment = "close buy take profit")
    strategy.close("Short", when = high > strategy.position_avg_price + StopLoss, comment = "close buy stop loss")
nColor = BarColors ? strategy.position_avg_price != 0  and pos == 1 ? color.green :strategy.position_avg_price != 0 and pos == -1 ? color.red : color.blue : na
barcolor(nColor)
plot(nRes, title='SMA', color=#00ffaa, linewidth=2, style=plot.style_line)