Chiến lược giao dịch đường trung bình động ATR thích ứng


Ngày tạo: 2023-11-02 16:51:14 sửa đổi lần cuối: 2023-11-02 16:51:14
sao chép: 0 Số nhấp chuột: 763
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch đường trung bình động ATR thích ứng

Tổng quan

Chiến lược này kết hợp các chỉ số ATR tự điều chỉnh và theo dõi xu hướng để phát hiện xu hướng trong thị trường và giao dịch theo xu hướng. Chiến lược này sử dụng Hull Moving Average to smooth ATR, tạo ra đường trung bình ATR mịn, sau đó phát tín hiệu giao dịch dựa trên mối quan hệ của giá với đường trung bình ATR.

Nguyên tắc chiến lược

Chỉ số ATR là một công cụ quan trọng để đo lường sự biến động của thị trường và sự thay đổi thực tế của giá cổ phiếu. Chỉ số ATR là một chỉ số ATR được xử lý trơn tru, sau khi hình thành đường trung bình, sau đó so sánh với giá để đánh giá xu hướng giá.

Cụ thể, chiến lược này đầu tiên tính TR ((True Range), tức là chênh lệch giữa giá cao nhất và giá thấp nhất trong ngày, và lấy giá gần nhất giữa giá cao nhất và giá thấp nhất hiện tại vào ngày hôm trước. Sau đó áp dụng phương pháp trung bình di chuyển Hull để làm mịn TR, tính toán đường trung bình ATR tự điều chỉnh.

Sau khi tính ra đường trung bình ATR, chiến lược này so sánh giá với đường trung bình ATR. Khi giá vượt qua đường trung bình ATR, cho thấy giá bắt đầu đi vào xu hướng tăng, chiến lược này mở một vị trí dài; Khi giá vượt qua đường trung bình ATR, cho thấy giá bắt đầu đi vào xu hướng giảm, chiến lược này mở một vị trí ngắn.

Ngoài ra, chiến lược này cũng thiết lập một phạm vi dừng lỗ cố định. Sau mỗi lần mở vị trí, thiết lập điểm dừng lỗ và điểm dừng, dừng lỗ khi giá chạm điểm dừng lỗ và dừng khi chạm điểm dừng. Điều này có thể hạn chế tổn thất cho mỗi đơn và đồng thời khóa lợi nhuận.

Nói chung, chiến lược này kết hợp các chỉ số đường trung bình ATR tự điều chỉnh và các biện pháp quản lý rủi ro nghiêm ngặt nhằm nắm bắt xu hướng giá lớn hơn, đồng thời kiểm soát từng tổn thất và tăng trưởng lợi nhuận ổn định.

Phân tích lợi thế

Chiến lược này có những lợi thế chính như sau:

  1. Sử dụng chỉ số đường trung bình ATR tự điều chỉnh, có thể xác định hiệu quả xu hướng lớn hơn trong giá, lọc tiếng ồn thị trường, ngăn chặn bị che đậy.

  2. Sử dụng phương pháp trung bình di chuyển của Hull để tính toán đường trung bình ATR, làm cho đường trung bình ATR mịn hơn và tránh bị nhầm lẫn bởi các rung động tần số cao.

  3. Thiết lập điểm dừng lỗ cố định, có thể hạn chế tổn thất đơn lẻ, đồng thời khóa lợi nhuận, đảm bảo tỷ lệ lợi nhuận rủi ro cho mỗi giao dịch.

  4. Việc sử dụng phương thức giao dịch theo xu hướng có thể tiếp tục nắm bắt xu hướng giá và tăng khả năng lợi nhuận.

  5. Chiến lược logic đơn giản, rõ ràng, dễ hiểu, thiết lập tham số linh hoạt, phù hợp với các giống và môi trường thị trường khác nhau.

  6. Có thể theo dõi xu hướng trong bất kỳ giống nào, có khả năng thích ứng mạnh mẽ.

Phân tích rủi ro

Chiến lược này có những rủi ro:

  1. Khả năng ATR gửi tín hiệu sai đường trung bình. Giá có thể dao động mạnh, khiến ATR đánh giá sai đường trung bình, tạo ra tín hiệu sai.

  2. Điểm dừng quá nhỏ có thể làm tăng khả năng dừng được kích hoạt. Cần đảm bảo thiết lập điểm dừng hợp lý, cho giá đủ không gian dao động.

  3. Mục tiêu dừng cố định có thể dừng quá sớm và không thể tiếp tục nắm bắt xu hướng. Bạn có thể cân nhắc điều chỉnh điểm dừng theo động thái ATR.

  4. Các sự kiện bất ngờ khiến giá tăng mạnh, gây ra sự dừng lỗ.

  5. Khi xu hướng đảo ngược, bạn có thể bị nhốt ngược nếu không xóa vị trí kịp thời. Bạn cần phải đánh giá kịp thời các tín hiệu kết thúc xu hướng.

  6. Các tham số cần được tối ưu hóa cho các giống và môi trường thị trường khác nhau, nếu không sẽ ảnh hưởng đến hiệu suất của chiến lược.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Các tham số để tối ưu hóa đường trung bình ATR, bao gồm tính toán độ dài ATR và tham số trơn. Các kết hợp tham số khác nhau có thể ảnh hưởng đến đường trung bình ATR.

  2. Tối ưu hóa chiến lược dừng lỗ, bạn có thể xem xét điều chỉnh điểm dừng lỗ theo ATR động, thay vì thiết lập cố định.

  3. Thêm quy tắc đánh giá xu hướng, kết hợp với các chỉ số khác để đánh giá tín hiệu đảo ngược xu hướng, tránh bị đảo ngược.

  4. Kiểm tra và tối ưu hóa các tham số theo các giống và môi trường thị trường khác nhau để tìm các tham số tối ưu.

  5. Tăng khả năng đánh giá các sự kiện bất ngờ, tạm dừng giao dịch khi nhảy vọt, kiểm soát tổn thất.

  6. Tối ưu hóa lựa chọn thời gian nhập cảnh, bạn có thể xem xét nhập cảnh khi rút lui, thay vì nhập cảnh khi tăng vọt, giảm rủi ro.

  7. Tối ưu hóa các tham số, thử nghiệm các tham số có độ dài và độ mài khác nhau của ATR để tìm ra sự phù hợp tốt nhất.

Tóm tắt

Chiến lược này sử dụng các chỉ số đường trung bình ATR tự điều chỉnh để phát hiện xu hướng và theo dõi xu hướng bằng cách cố định điểm dừng lỗ. ATR có thể xác định xu hướng một cách hiệu quả, cố định điểm dừng lỗ để kiểm soát tỷ lệ lợi nhuận rủi ro. Ưu điểm của chiến lược này là logic đơn giản, rõ ràng và dễ hiểu; có thể điều chỉnh theo tham số cho các giống khác nhau.

Mã nguồn chiến lược
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("ATR(Hull)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= false, calc_on_every_tick=true, pyramiding=0)
length = input(title="Length", defval=14, minval=1)
price = input(close)
SL = input(50, title="Stop loss")
TP = input(150, title="Take profit")
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12) 
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) 
FromYear = input(defval = 2018, title = "From Year", minval = 2017) 
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) 
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) 
ToYear = input(defval = 9999, title = "To Year", minval = 2017) 
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) 
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) 
window() => true
p=price[1]
func_hma(style, length)=>
    return = wma((2*wma(p,length/2))-wma(p,length),round(sqrt(length)))
ATR=func_hma(tr(true), length)    
plot(ATR[0], title="ATR1",color=green,transp=0)
plot(ATR[1], title="ATR2",color=red,transp=0)
if (ATR>ATR[1])
    strategy.entry("long",strategy.long,comment="Long",when=window())
if (ATR<ATR[1])
    strategy.entry("short",strategy.short,comment="Short",when=window())
//strategy.close_all(when=strategy.openprofit<-eqSL and window())
//strategy.close_all(when=strategy.openprofit>eqTP and window())
strategy.exit("exit", "long", profit = TP, loss = SL)
strategy.exit("exit", "short", profit = TP, loss = SL)