
Chiến lược đột phá dao động đường trung bình kép là một chiến lược giao dịch đường ngắn sử dụng hệ thống đường trung bình kép. Chiến lược này xây dựng tín hiệu giao dịch dựa trên kênh giá và băng tần kép, hỗ trợ bởi chỉ số RSI nhanh để đánh giá quá mua quá bán, để tạo ra tín hiệu vào và ra. Chiến lược này nhằm mục đích nắm bắt sự phá vỡ xu hướng giá đường ngắn và thực hiện lợi nhuận.
Phương pháp phá vỡ dao động đường trung bình kép sử dụng đường giá dài 20 chu kỳ và dải Brinh làm chỉ số giao dịch chính. Đường giá được tạo thành từ đường trung bình của giá cao nhất và giá thấp nhất, đại diện cho vùng dao động của giá hiện tại. Dải Brinh được tạo thành từ trục trung tâm và chênh lệch tiêu chuẩn của đường giá, khu vực dạng dải mô tả trực quan hơn phạm vi dao động của giá.
Cụ thể, khi RSI nhanh thấp hơn 5 được coi là khu vực bán tháo, khi RSI nhanh hơn 99 được coi là khu vực mua quá. Ngoài ra, cũng cần kết hợp các yếu tố như định hướng thực thể K-line, giá sáng tạo cao (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Ưu điểm lớn nhất của chiến lược phá vỡ biến động đường trung bình kép là nắm bắt các điểm chuyển đổi của xu hướng giá đường trung và đường ngắn, để đạt được lợi nhuận. So với đường trung bình đơn và đường ống, các dải Brin kép phản ánh trực quan hơn sự biến động giá và dung lượng. So với các chỉ số có chu kỳ dài hơn, chẳng hạn như đường trung bình 20 ngày, 60 ngày, nó phản ứng nhanh hơn với sự thay đổi giá và có tỷ lệ thành công cao hơn trong việc nắm bắt các bước chuyển đổi. Ngoài ra, kết hợp với chỉ số RSI nhanh có thể lọc hiệu quả các bước phá vỡ giả.
Chiến lược phá vỡ xung đột hai đường trung bình có một số rủi ro. Thứ nhất, giao dịch đường ngắn trung bình tự nó có nguy cơ dừng lỗ cao hơn. Trong một xu hướng mạnh, chỉ số đường ngắn trung bình có thể có nhiều lần phá vỡ đầu giả tạo gây ra lỗ. Thứ hai, hiệu quả của chỉ số RSI nhanh trên phán quyết mua quá bán sẽ bị ảnh hưởng bởi cảm xúc của thị trường.
Phản ứng là điều chỉnh đúng mức độ dừng lỗ, nới lỏng điểm dừng lỗ khi thị trường tăng và thu hẹp trong thị trường giảm. Ngoài ra, xem xét đầy đủ các chỉ số phụ trợ hơn, tránh chỉ phụ thuộc vào một hoặc hai chỉ số. Khi hiệu quả phán đoán giảm, giảm thiểu rủi ro tránh vị trí thích hợp.
Chiến lược phá vỡ chấn động đường trung bình kép còn có không gian để tối ưu hóa hơn nữa. Thứ nhất, tối ưu hóa tham số. Bạn có thể kiểm tra nhiều tham số chu kỳ hơn để tìm các cặp tham số tối ưu. Thứ hai, tối ưu hóa mô hình.
Chiến lược đột phá dao động đường trung bình kép là một chiến lược theo dõi xu hướng hiệu quả. Chiến lược này có tỷ lệ thành công cao, phản ứng nhanh và có thể kiếm lợi nhuận hiệu quả.
/*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)