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