Chiến lược đột phá phạm vi bên trong thanh

Tác giả:ChaoZhang, Ngày: 2023-12-11 15:16:53
Tags:

img

Tổng quan

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 logic

Chiến lược sử dụng các chỉ số và biến số sau:

  • Dải thực trung bình (ATR): Dải thực trung bình trong N thanh trước được tính bằng hàm ATR.
  • Phạm vi: Sự khác biệt giữa mức cao và thấp của thanh hiện tại.
  • insideBar: Một biến boolean đúng nếu phạm vi của thanh hiện tại nhỏ hơn thanh trước, chỉ ra thanh bên trong.
  • breakoutUp: Một biến boolean là đúng nếu gần cao hơn mức cao của thanh trước, cho thấy sự đột phá lên.
  • breakoutDown: Một biến boolean là true nếu close thấp hơn mức thấp của thanh trước, cho thấy breakout giảm.
  • LiquidityUp: Tối cao nhất so với các thanh N trước đây, đại diện cho một khu vực kháng cự tiềm năng.
  • LiquidityDown: Tốc độ thấp nhất so với các thanh N trước đây, đại diện cho một khu vực hỗ trợ tiềm năng.

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.

Phân tích lợi thế

Những lợi thế của chiến lược này bao gồm:

  1. Bắt được cơ hội giao dịch từ việc mở rộng phạm vi sau khi củng cố thanh bên trong.
  2. Ngăn chặn bị mắc kẹt kết hợp hướng thoát và mức độ thanh khoản.
  3. Các quy tắc dừng lỗ và lấy lợi nhuận rõ ràng, dễ thực hiện.
  4. Định hướng mạnh mẽ, cơ hội cao để đạt được mục tiêu lợi nhuận sau khi phá vỡ động lực.

Phân tích rủi ro

Rủi ro của chiến lược này:

  1. Sử dụng stop loss hợp lý để giới hạn số tiền mất mát.
  2. Điều chỉnh thời gian ATR để đảm bảo khoảng cách dừng đúng.
  3. Mức thanh khoản không chính xác dẫn đến nhập khẩu sai. tối ưu hóa thời gian xem lại để tinh chỉnh các tiêu chí nhập khẩu.
  4. Không đạt được mục tiêu lợi nhuận, giảm nhân lợi nhuận cho mục tiêu hợp lý.

Hướng dẫn tối ưu hóa

Các lĩnh vực tối ưu hóa:

  1. Tìm thời gian ATR tối ưu cho hiệu suất tối đa.
  2. Kiểm tra các nhân stop loss khác nhau cho khoảng cách dừng lý tưởng.
  3. Kiểm tra các nhân lợi nhuận khác nhau để cân bằng kích thước và xác suất.
  4. Tối ưu hóa thời gian xem lại để có độ chính xác tốt hơn về mức độ thanh khoản.
  5. Thêm các bộ lọc như âm lượng để cải thiện thời gian nhập.
  6. Bao gồm các chỉ số xu hướng để thêm xu hướng theo dõi.

Tóm lại

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)

Thêm nữa