Die Breakout-Regressionsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-03-01 11:58:56
Tags:

img

Übersicht

Dies ist ein systematischer Ansatz, um die Volatilität der Rohöl-Futures-Märkte zu nutzen. Es misst die durchschnittliche Bandbreite der Kerzen. Wenn der schnelle gleitende Durchschnitt über dem langsamen liegt, bedeutet dies, dass die Kerzen größer sind. Wenn der langsame gleitende Durchschnitt über dem schnellen liegt, bedeutet dies, dass die Kerzen kleiner sind.

Nach diesem Prinzip ermittelt er potenzielle lange und kurze Einstiegspunkte, wobei die Position nur für eine bestimmte Anzahl von Kerzen gehalten wird, die durch die Eingabe "Exit after bars" gesteuert wird.

Strategie Logik

  1. Berechnen Sie den höchsten Schlusskurs der letzten 9 Balken als Breakout-Benchmark
  2. Berechnen Sie den niedrigsten Schlusskurs der letzten 50 Balken als Breakout-Benchmark
  3. Vergleichen Sie die durchschnittliche Volatilität der letzten 5 und 20 Balken, um zu beurteilen, ob sich das Kerzenmuster ausdehnt oder schrumpft
  4. Identifizieren Sie lange und kurze Signale: Wenn schließen gleich dem höchsten Schließen und Kerzen Kontraktion, gehen lange; wenn schließen gleich dem niedrigsten Schließen und Kerzen Kontraktion, gehen kurz
  5. Schließposition nach einer festgelegten Anzahl von Balken nach dem Ausbruch: einstellbarer Parameter

Analyse der Vorteile

  1. Regressionsstrategie, richtung des Urteils durch Vergleich mit historischen Extremen
  2. Kombination mit Volatilität, vermeiden Sie falsche Ausbrüche
  3. Festgelegte Anzahl von Bars für Exit-Locks in gewissen Gewinn und Vermeidung von Drawdown

Risikoanalyse

  1. Historische Extreme ändern sich mit Veränderungen der Marktstruktur, die Signale können versagen
  2. Falsche Ausbrüche verursachen, dass man gefangen wird.
  3. Unzulässige Ausgangsintervalle können einen größeren Gewinn oder einen größeren Verlust verursachen

Optimierung

  1. Extreme Parameter können durch Marktstatistiken optimiert werden
  2. Hinzufügen von Volatilitätsmetriken, um die Wahrscheinlichkeit eines Ausbruchs zu bewerten
  3. Optimieren Sie die Anzahl der Ausgangssäulen durch das Backtestresultat

Zusammenfassung

Diese Strategie nutzt Breakout und Regression, um kurzfristige Trends zu bestimmen, die zu Volatilitätsstrategien gehören. Durch die Optimierung von Parametern und das Hinzufügen von Volatilitätsmetriken, um die Wahrscheinlichkeit eines falschen Breakouts zu bestimmen, kann sie die Rentabilität erhöhen.


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Celestial_Logic

//@version=5
strategy("Crudeoil Breakout strategy", overlay = true, initial_capital = 20000, default_qty_type = strategy.fixed, default_qty_value = 1)


highestCloseLookback = input(9 , title = 'Highest Close lookback')
lowestCloseLookback  = input(50, title = 'Lowest Close lookback'  ) 

exitAfter = input(10, title = 'Exit after bars')

hc = ta.highest(close,highestCloseLookback)
lc = ta.lowest(close,lowestCloseLookback)

rangeFilter = (ta.sma( (high - low), 5 ) > ta.sma((high-low), 20) ) // Candles getting bigger.

longCondition  = (close == hc ) and not rangeFilter
shortCondition = (close == lc ) and not rangeFilter
if  longCondition
    strategy.entry(id = 'long', direction = strategy.long) 
if shortCondition
    strategy.entry(id = 'short', direction = strategy.short)



var int longsince = 0 
var int shortsince = 0 

if strategy.position_size > 0 
    longsince += 1
else
    longsince := 0

if strategy.position_size < 0 
    shortsince += 1 
else 
    shortsince := 0

if longsince >= exitAfter 
    strategy.close(id = 'long', comment = 'long close')
if shortsince >= exitAfter
    strategy.close(id = 'short', comment = 'short close')



Mehr