Chiến lược biến động ATR

Tác giả:ChaoZhang, Ngày: 2024-01-12 13:50:44
Tags:

img

Tổng quan

Chiến lược này sử dụng một sự kết hợp của chiến lược trung bình di chuyển đơn giản, được bổ sung bằng chỉ số biến động ATR để xác định biến động thị trường. Khi đường trung bình ngắn hạn vượt qua đường trung bình dài hạn, nó được xác định là thị trường tăng và một vị trí dài được thực hiện. Khi đường trung bình ngắn hạn vượt qua đường trung bình dài hạn, nó được xác định là thị trường gấu và một vị trí ngắn được thực hiện. Đồng thời, độ tin cậy của tín hiệu trung bình di chuyển được đánh giá bằng cách kết hợp giá trung bình trọng khối lượng VWAP. Ngoài ra, chỉ số RSI được kết hợp để tránh đảo ngược. Chỉ số biến động ATR được sử dụng để xác định biến động thị trường để chọn giao dịch trong thời gian biến động thấp hơn.

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

Cốt lõi là chiến lược trung bình di chuyển kép. Chiến lược trung bình di chuyển kép thường chọn một trung bình di chuyển ngắn hạn và một trung bình di chuyển dài hạn, chẳng hạn như trung bình di chuyển 50 ngày và trung bình di chuyển 200 ngày. Một tín hiệu mua được tạo ra khi trung bình di chuyển ngắn hạn vượt qua trên trung bình di chuyển dài hạn. Một tín hiệu bán được tạo ra khi trung bình di chuyển ngắn hạn vượt qua dưới trung bình di chuyển dài hạn. Chiến lược trung bình di chuyển kép đánh giá những thay đổi trong xu hướng thị trường dài hạn và ngắn hạn, và sử dụng các bước đột phá trung bình di chuyển để nắm bắt các bước ngoặt xu hướng.

Chiến lược này chọn đường trung bình động 50 ngày làm đường trung bình động ngắn hạn và đường trung bình động 200 ngày làm đường trung bình động dài hạn. Kết hợp với giá trung bình VWAP theo trọng lượng khối lượng để xác định độ tin cậy của tín hiệu đường trung bình động. Nghĩa là, chỉ vào thị trường khi tín hiệu đường trung bình động phù hợp với VWAP. Điều này lọc ra một số tín hiệu sai.

Ngoài ra, chỉ số RSI được kết hợp để tránh mua quá mức và bán quá mức. Tránh mua khi RSI trên 70 và tránh bán khi RSI dưới 30.

Cuối cùng, kích thước dao động trung bình của chỉ số ATR được sử dụng để xác định mức độ biến động và rủi ro của thị trường. Khi giá trị ATR lớn hơn 1,18, nó được định nghĩa là biến động cao. Tại thời điểm này, bằng cách thay đổi màu nền, rủi ro cao hơn được nhắc và giao dịch có thể tránh tạm thời cho đến khi biến động giảm.

Phân tích lợi thế

Những lợi thế chính của chiến lược này được phản ánh trong ba khía cạnh:

  1. Trung bình di chuyển đôi nắm bắt điểm chuyển đổi của xu hướng trung và dài hạn trên thị trường và sử dụng giao dịch xu hướng để có được lợi nhuận tương đối lớn.

  2. Kết hợp VWAP để lọc tín hiệu sai và cải thiện độ tin cậy tín hiệu.

  3. Việc giới thiệu chỉ số RSI để tránh giao dịch chống lại thị trường, có thể làm giảm lỗ.

  4. Việc áp dụng chỉ số biến động ATR để xác định điều kiện rủi ro thị trường tránh các giai đoạn biến động cao, có thể làm giảm lỗ.

  5. Sự kết hợp của các chỉ số khác nhau là đơn giản và dễ hiểu và thực hiện, phù hợp với việc gia nhập giao dịch định lượng.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Khi đường trung bình động tạo ra tín hiệu, giá có thể đã thay đổi đáng kể, gây ra nguy cơ giao dịch quá mức.

  2. VWAP có thể có lỗi, dẫn đến việc lọc ra các tín hiệu giao dịch chính xác.

  3. Vào cuối xu hướng, chỉ số RSI có thể ở trong khu vực mua quá mức / bán quá mức trong một thời gian dài, bỏ lỡ bước ngoặt của sự đảo ngược xu hướng.

  4. ATR có thể chậm trễ khi đánh giá biến động thị trường. Giải pháp là kết hợp giá cao nhất, giá thấp nhất, v.v. để xác định biến động thị trường.

  5. Lợi nhuận có thể không đáp ứng mong đợi và các thông số cần phải được điều chỉnh phù hợp.

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

Vẫn còn rất nhiều chỗ để tối ưu hóa trong chiến lược này:

  1. Kiểm tra nhiều kết hợp trung bình động hơn để tìm các thông số tối ưu.

  2. Thêm thêm các chỉ số phụ vào các tín hiệu lọc như MACD, KDJ v.v.

  3. Tối ưu hóa các thông số dừng lỗ và lấy lợi nhuận để giảm lỗ và tăng lợi nhuận.

  4. Đánh giá sự khác biệt trong các chiến lược giao dịch giữa các cổ phiếu mạnh và cổ phiếu yếu để mô hình hóa phân loại.

  5. Kết hợp các thuật toán học máy như RNN để tự động tối ưu hóa các thông số và đánh giá các chiến lược.

  6. Phát triển các hệ thống giao dịch tự động và kết nối với giao dịch trực tiếp để kiểm tra lại.

Tóm lại

Nói chung, chiến lược này là một chiến lược theo dõi xu hướng tương đối đơn giản. Cốt lõi sử dụng trung bình di chuyển kép để xác định xu hướng dài và ngắn hạn. Kết hợp VWAP và RSI để xử lý tín hiệu và áp dụng ATR để đánh giá rủi ro. Ý tưởng chiến lược đơn giản và dễ hiểu và vận hành. Thông qua một số không gian tối ưu hóa, có thể có được lợi nhuận tốt. Là một lựa chọn cho việc nhập giao dịch định lượng, nó rất phù hợp.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple Moving Averages", overlay=true)

sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close)
rsi = ta.rsi(close, 14)
[diPlus, diMinus, adx_val] = ta.dmi(14, 14)
atr_val = ta.atr(14)

plot(sma50, color=color.new(color.green, 0))
plot(sma200, color=color.new(color.red, 0))
plot(vwap)

longCondition = ta.crossover(sma50, sma200) and vwap > close
shortCondition = ta.crossunder(sma50, sma200) and vwap < close

if (longCondition)
    strategy.entry("Long", strategy.long)
    
if (shortCondition)
    strategy.entry("Short", strategy.short)

barcolor = sma50 > sma200 ? (vwap < close ? (rsi < 70 ? color.green : color.blue) : color.yellow) : (sma50 < sma200 ? (vwap > close ? (rsi > 30 ? color.red : color.orange) : color.yellow) : na)
barcolor(barcolor)
bgcolor(adx_val > 25 and atr_val > 1.18 ? color.new(color.gray, 50) : color.new(color.black, 50), transp=90)

// ADX and ATR Label Box
// label.new(bar_index, high, "ADX: " + str.tostring(adx_val, "#.##") + "\nATR: " + str.tostring(atr_val, "#.##"), color=color.new(color.white, 0), textcolor=color.new(color.black, 0), style=label.style_labeldown, yloc=yloc.price, xloc=xloc.bar_index, size=size.small, textalign=text.align_left)

// Exit conditions (optional)
strategy.close("Long", when = ta.crossunder(sma50, sma200))
strategy.close("Short", when = ta.crossover(sma50, sma200))

// Take Profit and Stop Loss
takeProfitPercentage = 5
stopLossPercentage = 3

strategy.exit("Take Profit / Stop Loss", "Long", profit = takeProfitPercentage, loss = stopLossPercentage)
strategy.exit("Take Profit / Stop Loss", "Short", profit = takeProfitPercentage, loss = stopLossPercentage)

Thêm nữa