Quantitative Handelsstrategie auf der Grundlage von gleitenden Durchschnitten von hohen bis niedrigen Punkten

Schriftsteller:ChaoZhang, Datum: 19.9.2023
Tags:

Übersicht

Diese Strategie verwendet einfache gleitende Durchschnitte von Höchst- und Tiefpunkten im Vergleich zum aktuellen Schlusskurs, um Ein- und Ausstiege zu bestimmen.

Strategie Logik

  1. Berechnen Sie den einfachen gleitenden Durchschnitt der hohen Preise für vier Perioden.

  2. Berechnen Sie den einfachen gleitenden Durchschnitt der niedrigen Preise für vier Perioden.

  3. Gehen Sie lang, wenn der Schlusskurs über den SMA-Hochpunkt bricht.

  4. Gehen Sie kurz, wenn der Schlusskurs unter den niedrigen SMA-Punkt fällt.

  5. Verwenden Sie einen festen Stop-Loss und nehmen Sie Gewinne für das Risikomanagement.

Analyse der Vorteile

  1. Benutzt einfache Indikatoren, die leicht zu verstehen und umzusetzen sind.

  2. Timely erfasst Preisbrechungssignale von SMA-Crossovers.

  3. Kann schnell Geräusche filtern und Trends erkennen.

  4. Leichte Berechnungen reduzieren die Strategie-Overhead.

  5. Als Basisstrategie für Erweiterungen geeignet.

Risikoanalyse

  1. Erfordert angemessene Parameter, um eine Überempfindlichkeit zu vermeiden.

  2. Unfähig, mit Risiken von riesigen Ausbrüchen umzugehen.

  3. Möglichkeiten von Whipsaw-Verlusten im Bereich.

  4. Kann nicht automatisch anhalten und Grenzen einstellen.

  5. Es ist schwer, den langfristigen Trend zu beurteilen.

Optimierungsrichtlinien

  1. Versuche verschiedene Parameter auf Auswirkungen auf die Signalqualität.

  2. Fügen Sie Filter hinzu, um die Wirksamkeit der Ausbrüche zu überprüfen.

  3. Verwenden Sie eine Trendanalyse, um Fallen zu vermeiden.

  4. Entwicklung dynamischer Stopps und Grenzwerte.

  5. Optimieren Sie Stopps, um die Gewinnrate zu verbessern.

  6. Test der Robustheit in verschiedenen Zeitrahmen.

Zusammenfassung

Diese Strategie verwendet einfache Indikatoren, um die Kursdynamik zu messen und bietet einen grundlegenden Trendhandel-Rahmen. Mit weiteren Verbesserungen wie Parameteroptimierung und Risikokontrolle ist die Handelslogik sehr erweiterbar in ein robustes Quantensystem. Insgesamt eine einfach zu bedienende Strategie, die für Anfänger geeignet ist, Quant-Handel zu beginnen.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("HiLo", overlay=true)

// Testing a specific period
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2017, "Backtest Stop Year")
testStopMonth = input(5, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false


//HiLo Strategy
length = input(4, minval=0)
displace = input(0, minval=0)
highsma = sma(high, length)
lowsma = sma(low, length)

longCondition = close > highsma[displace]
if (longCondition)
    strategy.entry("long", true)

shortCondition = close < lowsma[displace]
if (shortCondition)
    strategy.entry("short", false)

// Exit seems with a problem. it keeps saying the order's limit (2000) was reached even if I back test it just for a day. 
// If the two lines bellow are commented, then it it works. Anyone? Any idea what's wrong?

// strategy.exit("exit", "long", profit=10, loss=5)
// strategy.exit("exit", "short", profit=10, loss=5)






    

Mehr