Chiến lược giao dịch đột phá biến động

Tác giả:ChaoZhang, Ngày: 2023-10-30 16:58:03
Tags:

img

Tổng quan

Chiến lược giao dịch đột phá biến động nhằm mục đích nắm bắt sự đột phá giá do biến động thị trường gia tăng. Chiến lược sử dụng chỉ số Average True Range (ATR) để đo biến động của tài sản trong một khoảng thời gian nhất định.

Chiến lược logic

Chiến lược này đầu tiên tính toán ATR trong một khoảng thời gian được chọn. Sau đó nó sử dụng ATR để tính toán mức đột phá trên và dưới. Khi giá đóng phá trên mức trên, một tín hiệu dài được tạo ra. Khi giá đóng phá dưới mức dưới, một tín hiệu ngắn được tạo ra. Để xác nhận thêm các tín hiệu, thanh hiện tại cần phải đóng cho phần cơ thể của nó.

Khi giá đóng phá vỡ các mức trên hoặc dưới, khu vực phá vỡ được lấp đầy với một màu cho thấy hướng phá vỡ.

Khi một tín hiệu dài được tạo ra và không có vị trí hiện tại, chiến lược sẽ dài. Khi một tín hiệu ngắn được tạo ra và không có vị trí hiện tại, chiến lược sẽ ngắn.

Trong trường hợp giao dịch được đặt ở mức 20 bar, mỗi giao dịch sẽ trải dài khoảng 100 bar, nắm bắt nhiều biến động.

Giảm giá trị Length cho phép nhắm mục tiêu các biến động giá ngắn hạn và có khả năng tăng tần suất giao dịch. Không có mối tương quan chặt chẽ giữa đầu vào Length và chiều dài giao dịch trung bình. Các giá trị Length tối ưu phải được tìm thấy thông qua thử nghiệm.

Phân tích lợi thế

Chiến lược này tận dụng các nguyên tắc đột phá để bắt được những động thái quan trọng phát sinh từ sự biến động của thị trường. Chỉ số ATR tính toán mức đột phá một cách năng động thay vì sử dụng các tham số cố định.

Sử dụng thanh rắn đóng để xác nhận các tín hiệu lọc ra các đột phá sai.

Nhập độ dài cung cấp tính linh hoạt để tối ưu hóa chiến lược cho các điều kiện thị trường cụ thể.

Phân tích rủi ro

Giao dịch đột phá mang lại rủi ro bị dừng lại.

Các tín hiệu đột phá có thể tạo ra các tín hiệu sai dẫn đến giao dịch quá mức. Các giá trị chiều dài có thể được điều chỉnh để lọc ra các tín hiệu sai.

Tối ưu hóa tham số đòi hỏi đủ dữ liệu giao dịch.

Cơ hội tối ưu hóa

Bollinger Bands có thể được giới thiệu trong thời gian ATR để tính mức đột phá mới.

Xu hướng có thể được theo dõi thêm sau khi phá vỡ thay vì dừng ngay lập tức.

Các thông số khác nhau hoặc tránh giao dịch hoàn toàn có thể được xem xét trong các thị trường giới hạn phạm vi để ngăn chặn whipsaws.

Kết luận

Chiến lược giao dịch đột phá biến động (Volatility Breakout Trading Strategy) tận dụng sự biến động tăng lên của thị trường để đi vào xu hướng khi giá đột phá đáng kể. Chỉ số ATR định mức đột phá và thanh rắn lọc các đột phá sai.


/*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)


Thêm nữa