Chiến lược phá vỡ dao động trung bình động kép

Tác giả:ChaoZhang, Ngày: 2024-01-08 14:43:48
Tags:

img

Tổng quan

Chiến lược phá vỡ dao động trung bình động kép là một chiến lược giao dịch ngắn hạn sử dụng hệ thống trung bình động kép. Chiến lược tạo ra các tín hiệu giao dịch dựa trên các kênh giá và Bollinger Bands kép, được hỗ trợ bởi các chỉ số RSI nhanh để xác định điều kiện mua quá mức và bán quá mức. Nó nhằm mục đích nắm bắt các sự phá vỡ trong xu hướng giá trung hạn để kiếm lợi nhuận.

Chiến lược logic

Chiến lược Breakout dao động trung bình di chuyển kép sử dụng các kênh giá 20 giai đoạn và Bollinger Bands làm chỉ số giao dịch chính. Kênh giá bao gồm các đường trung bình di chuyển của giá cao nhất và thấp nhất, đại diện cho phạm vi dao động giá hiện tại. Bollinger Bands được hình thành bởi đường giữa của kênh giá và độ lệch chuẩn, mô tả trực quan phạm vi dao động của giá. Khi giá tiếp cận các đường ray trên và dưới của kênh, nó chỉ ra rằng giá có thể vượt qua phạm vi dao động và hình thành một xu hướng mới. Tại thời điểm này, kết hợp với chỉ số RSI nhanh để đánh giá các điều kiện mua quá hoặc bán quá, hướng xu hướng có thể được xác định và các quyết định giao dịch có thể được thực hiện.

Cụ thể, khi chỉ số RSI nhanh dưới 5, nó được coi là vùng bán quá mức, và khi chỉ số RSI nhanh vượt quá 99, nó được coi là vùng mua quá mức. Ngoài ra, các yếu tố như hướng của các thực thể đường K và mức cao mới (mức thấp) trong giá cũng nên được xem xét để tránh đột phá sai. Khi các điều kiện trên được đáp ứng, các tín hiệu mua và bán được tạo ra.

Ưu điểm

Lợi thế lớn nhất của chiến lược Breakout dao động trung bình động kép là nó nắm bắt các điểm uốn cong của xu hướng giá trung hạn để kiếm lợi nhuận. So với các đường trung bình và kênh động đơn, Bollinger Bands đôi phản ánh nhịp độ dao động giá và khối lượng một cách trực quan hơn. Và so với các chỉ số chu kỳ dài hơn như đường trung bình động 20 ngày và 60 ngày, nó phản ứng nhanh hơn với những thay đổi giá và có tỷ lệ thành công cao hơn trong việc nắm bắt các lượt. Ngoài ra, kết hợp chỉ số RSI nhanh có thể lọc hiệu quả các breakout sai. Do đó, chiến lược này có thể tối đa hóa xác suất lợi nhuận.

Rủi ro

Chiến lược Breakout dao động trung bình động kép có một số rủi ro. Thứ nhất, giao dịch trung hạn có rủi ro dừng lỗ cao hơn. Trong một xu hướng mạnh, các đột phá sai có thể xảy ra nhiều lần trên các chỉ số trung hạn, gây ra dừng. Thứ hai, hiệu quả của các chỉ số RSI nhanh trong việc đánh giá các khu vực mua quá mức và bán quá mức sẽ bị ảnh hưởng bởi tâm lý thị trường. Khi thay đổi cấu trúc xảy ra trên thị trường, tính hữu ích của các chỉ số phụ trợ như vậy sẽ giảm. Cuối cùng, kết hợp các yếu tố khác như giá đóng, khối lượng và doanh thu có thể cải thiện độ chính xác quyết định.

Phương pháp đối phó là điều chỉnh phù hợp phạm vi dừng lỗ, nới lỏng điểm dừng lỗ trong xu hướng tăng và thắt chặt nó trong xu hướng giảm. Ngoài ra, hãy xem xét đầy đủ các chỉ số phụ để tránh chỉ dựa vào một hoặc hai chỉ số. Khi hiệu ứng phán đoán giảm, giảm đúng vị trí để tránh rủi ro.

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

Còn có chỗ cho việc tối ưu hóa thêm chiến lược Breakout dao động trung bình động kép. Thứ nhất, tối ưu hóa tham số. Nhiều tham số chu kỳ có thể được thử nghiệm để tìm ra sự kết hợp tham số tối ưu. Thứ hai, tối ưu hóa mô hình. giới thiệu các mô hình học máy để đánh giá chính xác hơn các khu vực mua quá mức và bán quá mức. Thứ ba, tối ưu hóa khung thời gian. Thử nghiệm theo các khung thời gian khác nhau như hàng ngày và 60 phút riêng biệt để xác định kịch bản ứng dụng tốt nhất. Thứ tư, tối ưu hóa điều kiện. Thêm nhiều chỉ số khối lượng và giá vào các tín hiệu lọc, chẳng hạn như xu hướng mở rộng khối lượng và chỉ số DMI.

Kết luận

Chiến lược phá vỡ dao động trung bình động kép nắm bắt các sự phá vỡ giá trung hạn bằng cách xây dựng một hệ thống băng Bollinger hai, đó là một chiến lược theo dõi xu hướng hiệu quả. Chiến lược có tỷ lệ thành công cao và phản ứng nhanh, và có thể kiếm lợi nhuận hiệu quả. Bằng cách tối ưu hóa tham số, tối ưu hóa mô hình, lựa chọn khung thời gian và các phương tiện khác, hiệu suất chiến lược có thể được cải thiện hơn nữa. Chiến lược này phù hợp cho các nhà giao dịch định lượng có kinh nghiệm để tiến hành cải tiến và ứng dụng định lượng.


/*backtest
start: 2023-01-07 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Strategy v1.4", shorttitle = "NoroBands str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, "Use ColorBar")
usecb = input(true, "Use CryptoBottom")
usersi = input(true, "Use RSI")
usemm = input(true, "Use min/max")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
needlo = input(false, defval = false, title = "Show Locomotive")
src = close

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//CryptoBottom
mac = sma(close, 10)
lencb = abs(close - mac)
sma = sma(lencb, 100)
max = max(open, close)
min = min(open, close)

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")
plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Signals
up = trend == 1 and ((close < open or color == false) or close < hd) and (min < min[1] or usemm == false) ? 1 : 0
dn = trend == -1 and ((close > open or color == false) or close > ld) and (max > max[1] or usemm == false) ? 1 : 0 
up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0 //CryptoBottom
//dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom
up3 = fastrsi < 5 ? 1 : 0
//dn3 = fastrsi > 99 ? 1 : 0

//Locomotive
uploco = trend == 1 and close < open and min < min[1] and close < center ? 1 : 0
plotarrow(needlo == true and uploco == 1 ? 1 : 0, colorup = black, colordown = black, transp = 0)

longCondition = up == 1 or (up2 == 1 and usecb == true) or (up3 == 1 and usersi == true)
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

Thêm nữa