Đây là một cách tiếp cận có hệ thống được thiết kế để tận dụng sự biến động của thị trường tương lai dầu thô. Nó đo phạm vi trung bình của các ngọn nến. Nếu đường trung bình di chuyển nhanh hơn đường trung bình chậm, có nghĩa là nến lớn hơn. Nếu đường trung bình di chuyển chậm hơn đường trung bình di chuyển nhanh, có nghĩa là nến nhỏ hơn.
Theo nguyên tắc này, nó xác định các điểm đầu vào dài và ngắn tiềm năng.
Chiến lược này sử dụng breakout và hồi quy để xác định xu hướng ngắn hạn, thuộc về các chiến lược biến động. Bằng cách tối ưu hóa các tham số và thêm các số liệu biến động để xác định xác suất breakout sai, nó có thể tăng lợi nhuận. Ngoài ra, cơ chế thoát nhanh khóa một số lợi nhuận và kiểm soát rủi ro hiệu quả. Nó có thể phục vụ như một công cụ phụ trợ cho giao dịch ngắn hạn, và cũng có thể tạo ra các tín hiệu giao dịch dài hạn thông qua điều chỉnh tham số.
/*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')