Chiến lược phá vỡ phạm vi thanh bên trong là một chiến lược hành động giá đưa ra quyết định giao dịch dựa trên các mô hình thanh bên trong. Nó xảy ra khi phạm vi của thanh hiện tại, được đo bằng sự khác biệt giữa mức cao và thấp, nhỏ hơn mức của thanh trước, cho thấy sự củng cố hoặc bất quyết định trên thị trường. Một sự phá vỡ trên hoặc dưới mức cao hoặc thấp của thanh trước cung cấp một tín hiệu vào tiềm năng theo hướng phá vỡ.
Chiến lược sử dụng các chỉ số và biến số sau:
Các quyết định nhập vào dựa trên sự đột phá phạm vi vượt quá mức cao / thấp của các thanh trước. Cụ thể, bước vào dài khi đột phá tăng và mức thấp hiện tại nằm trên thanh khoảnDown, và bước vào ngắn khi đột phá giảm và mức cao hiện tại nằm dưới thanh khoảnUp.
Stop loss sử dụng ATR nhân Range. Take profit sử dụng ATR nhân Range.
Những lợi thế của chiến lược này bao gồm:
Rủi ro của chiến lược này:
Các lĩnh vực tối ưu hóa:
Chiến lược phá vỡ phạm vi thanh bên trong tận dụng sự mở rộng phạm vi từ việc củng cố bằng cách vào khi giá vượt ra khỏi phạm vi thanh trước. Mức độ thanh khoản tránh bị mắc kẹt. Cài đặt dừng lỗ và lấy lợi nhuận hợp lý cho phép lái động lực sau khi phá vỡ để đạt được mục tiêu lợi nhuận. Chiến lược có thể mang lại kết quả tốt trên các khung thời gian trung gian. Tăng cường thêm lợi thế và độ bền hệ thống có thể đạt được thông qua tối ưu hóa tham số và cải thiện bộ lọc nhập cảnh.
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ilikelyrics560 //@version=5 strategy("Inside Bar Range Breakout Strategy", overlay=true) // Inputs lookback = input.int(20, "Lookback Period", minval=1) atrMult = input.float(1.5, "ATR Multiplier", step=0.1) atrLen = input.int(14, "ATR Length", minval=1) slMult = input.float(2, "Stop Loss Multiplier", step=0.1) tpMult = input.float(3, "Take Profit Multiplier", step=0.1) // Variables atr = ta.atr(atrLen) Range = high - low insideBar = Range < Range[1] breakoutUp = close > high[1] breakoutDown = close < low[1] liquidityUp = ta.highest(high, lookback) liquidityDown = ta.lowest(low, lookback) longEntry = breakoutUp and low > liquidityDown shortEntry = breakoutDown and high < liquidityUp longExit = close < low[1] shortExit = close > high[1] // Plotting plot(liquidityUp, "Liquidity Up", color.new(color.green, 30), 1) plot(liquidityDown, "Liquidity Down", color.new(color.red, 30), 1) bgcolor(longEntry ? color.new(color.green, 30) : na, title="Long Entry") bgcolor(shortEntry ? color.new(color.maroon, 30) : na, title="Short Entry") // Trading if (longEntry) strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", stop=low - slMult * atr, limit=high + tpMult * atr) if (shortEntry) strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", stop=high + slMult * atr, limit=low - tpMult * atr)