
Cette stratégie est une méthode systématique visant à tirer profit de la volatilité des marchés à terme du pétrole brut. Elle mesure la portée moyenne de la courbe, ce qui signifie que si la moyenne mobile rapide est supérieure à la moyenne mobile lente, la courbe est plus grande; si la moyenne mobile lente est supérieure à la moyenne mobile rapide, la courbe est plus petite.
Selon ce principe, identifier les potentiels points d’entrée longs et points d’entrée courts. La position ne conserve qu’un certain nombre de bars, ce paramètre étant contrôlé par l’entrée de la barre Exit after bars.
Cette stratégie utilise les ruptures et les retours pour juger des tendances à court terme et appartient à la stratégie de volatilité. En optimisant les paramètres de réglage et en ajoutant des indicateurs de volatilité, il est possible de réduire la probabilité de fausses ruptures et d’améliorer le niveau de profit.
/*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')