Ausbruchsbasierte Regressionsstrategie


Erstellungsdatum: 2024-03-01 11:58:56 zuletzt geändert: 2024-03-01 11:58:56
Kopie: 2 Klicks: 651
1
konzentrieren Sie sich auf
1617
Anhänger

Ausbruchsbasierte Regressionsstrategie

Überblick

Die Strategie ist eine systematische Methode, die darauf abzielt, die Volatilität der Rohöl-Futures-Märkte zu nutzen. Sie misst die durchschnittliche Bandbreite der Kurve, die größer ist, wenn der schnell bewegende Durchschnitt höher ist als der langsam bewegende Durchschnitt, was bedeutet, dass die Kurve größer ist; wenn der langsam bewegende Durchschnitt höher ist als der schnell bewegende Durchschnitt, was bedeutet, dass die Kurve kleiner ist.

Nach diesem Prinzip identifiziert man potenzielle Long-Entry-Punkte und Short-Entry-Punkte. Die Position behält nur eine bestimmte Anzahl von Bars, die von den Eingaben der Exit after bars-Punkte gesteuert werden.

Strategieprinzip

  1. Berechnung des höchsten Schlusskurses der letzten 9 K-Linien als Kriterium für den Durchbruch
  2. Berechnung des niedrigsten Schlusskurses für die letzten 50 K-Linien als Kriterium für den Durchbruch
  3. Berechnen Sie die Wellenlängen der letzten 5 und 20 K-Linien im Vergleich, um zu beurteilen, ob die K-Linienform allmählich wächst oder schrumpft
  4. Identifizieren Sie die Long- und Short-Line-Break-Signale: Machen Sie mehr, wenn der Schlusskurs den höchsten Schlusskurs entspricht und die K-Linie schrumpft; machen Sie mehr, wenn der Schlusskurs den niedrigsten Schlusskurs entspricht und die K-Linie schrumpft
  5. Nach dem Durchbruch der Fixwurzel K-Linien-Gleichgewichtung: Anpassbare Parameter zur Änderung des Gleichgewichtungsintervalls

Analyse der Stärken

  1. Regressionsstrategien, um die Richtung der Entwicklung durch Vergleich mit historischen Höchstwerten zu bestimmen
  2. In Kombination mit schwankenden Beurteilungen können falsche Durchbrüche vermieden werden
  3. Fixed-Root-K-Line-Ausstieg, kann einen gewissen Gewinn verhindern und den Rückzug vermeiden

Risikoanalyse

  1. Historische Höchstwerte ändern sich mit Veränderungen der Marktstruktur und können zu Signalversagen führen
  2. Falsche Einbrüche führten zu Haft
  3. Fehlende Parameter für die Abstandszeit können zu größeren Gewinnverlusten oder Verlusten führen.

Optimierungsrichtung

  1. Extreme Parameter können durch Praxisstatistik optimiert werden
  2. Die Wahrscheinlichkeit eines echten Durchbruchs kann mit einem Volatilitätsindikator bewertet werden.
  3. Optimierung der Abwurzel durch strategische Rückmessungen

Zusammenfassen

Die Strategie nutzt die Breakout- und Regression-Betrachtung für kurzfristige Trends und gehört zu den Volatilitätsstrategien. Durch die Optimierung der Parameter-Einstellungen und die Hinzufügung von Volatilitätsindikatoren kann die Wahrscheinlichkeit für falsche Breakouts verringert und die Gewinnspanne erhöht werden. Gleichzeitig kann der schnelle Ausstiegsmechanismus der festen K-Wurzel-Linie bestimmte Gewinne sperren und die Risiken wirksam kontrollieren.

Strategiequellcode
/*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')