
Chiến lược này là một phương pháp có hệ thống nhằm tận dụng sự biến động của thị trường dầu thô. Nó đo lường phạm vi khoảng trung bình của các xu, nếu trung bình di chuyển nhanh cao hơn trung bình di chuyển chậm, điều này có nghĩa là xu lớn hơn; nếu trung bình di chuyển chậm cao hơn trung bình di chuyển nhanh, điều này có nghĩa là xu nhỏ hơn.
Theo nguyên tắc này, xác định các điểm tham gia dài và điểm tham gia ngắn tiềm năng. Các vị trí chỉ giữ một số lượng cụ thể của các thanh, và tham số này được kiểm soát bởi các đầu vào của Exit after bars.
Chiến lược này sử dụng phá vỡ và quay trở lại để đánh giá xu hướng ngắn hạn, thuộc chiến lược biến động. Bằng cách tối ưu hóa các tham số thiết lập và thêm các chỉ số biến động, bạn có thể làm giảm xác suất phá vỡ giả, nâng cao mức lợi nhuận. Trong khi đó, cơ chế ra đi nhanh chóng của dòng K gốc cố định có thể khóa một số lợi nhuận và kiểm soát rủi ro hiệu quả.
/*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')