
Chiến lược giao dịch phá vỡ nhằm mục đích nắm bắt giá phá vỡ gây ra bởi sự gia tăng biến động của thị trường. Chiến lược này sử dụng các chỉ số biến động của tài sản trong một chu kỳ cụ thể bằng cách sử dụng phạm vi biến động thực trung bình (ATR). Khi giá phá vỡ hai đường phá vỡ trên và dưới được quyết định bởi ATR, sẽ tạo ra tín hiệu mua nhiều và mua ít.
Chiến lược này đầu tiên tính ATR trong một chu kỳ được chỉ định. Sau đó, dựa trên ATR, tính lên và xuống đường. Khi giá đóng cửa phá vỡ đường lên, tạo ra tín hiệu nhiều; Khi giá đóng cửa rơi xuống đường, tạo ra tín hiệu dừng.
Khi giá đóng cửa phá vỡ đường lên và đường xuống, hãy lấp đầy các màu sắc phá vỡ theo hướng phá vỡ. Đặc điểm này giúp xác định nhanh chóng hướng xu hướng hiện tại.
Khi có nhiều tín hiệu và không có vị trí hiện tại, chiến lược mở nhiều vị trí. Khi có tín hiệu và không có vị trí hiện tại, chiến lược mở vị trí.
Các tham số Length quyết định độ dài của chu kỳ đo lường biến động. Giá trị Length cao hơn có nghĩa là chú ý đến biến động giá dài hơn. Ví dụ, khi Length là 20, mỗi giao dịch vượt qua khoảng 100 đường K, bao gồm nhiều biến động.
Giảm giá trị Length có thể tập trung vào biến động giá ngắn hơn, tăng tần suất giao dịch. Không có mối quan hệ chặt chẽ giữa giá trị Length và độ dài giao dịch trung bình, cần phải tìm ra giá trị Length tối ưu bằng cách thử và sai.
Chiến lược này sử dụng nguyên tắc phá vỡ để nắm bắt tình hình lớn hơn do biến động thị trường. ATR chỉ số tính toán động mức phá vỡ, tránh sử dụng tham số cố định.
Sử dụng tín hiệu xác nhận đường K thực tế, có thể lọc phá vỡ giả. Lấp đầy khoảng trống phá vỡ màu sắc hiển thị trực quan hướng xu hướng.
Các tham số Length cung cấp sự linh hoạt trong việc điều chỉnh chiến lược, có thể tối ưu hóa các tham số theo điều chỉnh thị trường cụ thể.
Các giao dịch phá vỡ có nguy cơ bị mạo hiểm. Bạn có thể thiết lập dừng lỗ để kiểm soát tổn thất đơn lẻ.
Các tín hiệu đột phá có thể gây ra báo cáo sai dẫn đến giao dịch đường siêu ngắn. Các tham số Length có thể được điều chỉnh thích hợp để loại bỏ báo cáo sai.
Tối ưu hóa tham số cần tích lũy đủ dữ liệu giao dịch để hỗ trợ. Việc chọn tham số ban đầu không đúng có thể dẫn đến hiệu suất giao dịch kém.
Brinband có thể được giới thiệu trong chu kỳ ATR, như là một cách tính toán bit đột phá mới. Brinband đột phá có thể làm giảm tỷ lệ báo cáo sai.
Có thể tiếp tục theo dõi xu hướng sau khi phá vỡ mà không dừng lại ngay lập tức. Ví dụ: tham gia xu hướng đi cùng với dừng lại.
Có thể xem xét sử dụng các tham số khác nhau hoặc không giao dịch hoàn toàn trong thị trường chấn động để tránh bị đặt cược.
Chiến lược giao dịch phá vỡ sử dụng sự biến động của thị trường, vào xu hướng khi giá tạo ra một sự phá vỡ lớn. Động thái của chỉ số ATR xác định điểm phá vỡ, vật thể K-line lọc phá vỡ giả. Các tham số Length cung cấp sự linh hoạt trong việc điều chỉnh chu kỳ chiến lược. Chiến lược này phù hợp để theo dõi xu hướng đường dài trung bình, nhưng cần chú ý đến rủi ro của giao dịch phá vỡ và tối ưu hóa tham số.
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
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/
//@version=5
strategy("Volatility Breakout Strategy [Angel Algo]", overlay = true)
// Inputs
length = input(title="Length", defval=20)
// Calculate the average true range (ATR)
atr = ta.atr(length)
// Plot the ATR on the chart
plot(atr, color=color.blue, linewidth=2, title="ATR")
// Calculate the upper and lower breakouts
upper_breakout = high + atr
lower_breakout = low - atr
// Plot the upper and lower breakouts on the chart
ul = plot(upper_breakout[1], color = color.new(color.green, 100), linewidth=2, title="Upper Breakout Level")
ll = plot(lower_breakout[1], color = color.new(color.red, 100), linewidth=2, title="Lower Breakout Level")
// Create the signals
long_entry = ta.crossover(close, upper_breakout[1]) and barstate.isconfirmed
short_entry = ta.crossunder(close, lower_breakout[1]) and barstate.isconfirmed
active_signal_color =ta.barssince(long_entry) < ta.barssince(short_entry) ?
color.new(color.green,85) : color.new(color.red,85)
// Plot the signals on the chart
plotshape(long_entry and ta.barssince(long_entry[1]) > ta.barssince(short_entry[1]), location=location.belowbar, style=shape.triangleup,
color=color.green, size=size.normal, text = "Bullish breakout", textcolor = color.green)
plotshape(short_entry and ta.barssince(long_entry[1]) < ta.barssince(short_entry[1]), location=location.abovebar, style=shape.triangledown,
color=color.red, size=size.normal,text = "Bearish breakout", textcolor = color.red)
// Fill the space between the upper and lower levels with the color that indicates the latest signal direction
fill(ul,ll, color=active_signal_color)
long_condition = long_entry and strategy.position_size <= 0 and barstate.isconfirmed
short_condition = short_entry and strategy.position_size >= 0 and barstate.isconfirmed
if long_condition
strategy.entry("Volatility Breakout Long", strategy.long)
if short_condition
strategy.entry("Volatility Breakout Short", strategy.short)