
Strategi ini adalah kaedah sistematik yang bertujuan untuk memanfaatkan turun naik dalam pasaran niaga hadapan minyak mentah. Ia mengukur julat purata kelab yang lebih besar jika rata-rata bergerak cepat lebih tinggi daripada rata-rata bergerak perlahan, dan lebih kecil jika rata-rata bergerak perlahan lebih tinggi daripada rata-rata bergerak cepat.
Mengikut prinsip ini, untuk mengenal pasti titik masuk yang panjang dan titik masuk yang pendek. Posisi hanya mengekalkan jumlah batang tertentu, parameter ini dikawal oleh input batang Exit after bars.
Strategi ini menggunakan penembusan dan pengembalian untuk menilai trend jangka pendek, termasuk strategi turun naik. Dengan menetapkan parameter yang dioptimumkan dan penambahan penunjuk kadar turun naik, anda dapat mengurangkan kebarangkalian penembusan palsu dan meningkatkan tahap keuntungan. Pada masa yang sama, mekanisme keluar cepat dari garis K akar tetap dapat mengunci keuntungan tertentu dan mengawal risiko dengan berkesan.
/*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')