Chiến lược giao dịch kết hợp dựa trên Dải Bollinger, Đường trung bình động và MACD


Ngày tạo: 2024-02-04 15:42:23 sửa đổi lần cuối: 2024-02-04 15:42:23
sao chép: 0 Số nhấp chuột: 815
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch kết hợp dựa trên Dải Bollinger, Đường trung bình động và MACD

Tổng quan về chiến lược

Chiến lược này kết hợp ba chỉ số Bollinger Bands, Moving Average và MACD để tạo thành một hệ thống giao dịch hoàn chỉnh hơn. Nó cũng có thể nắm bắt một số cơ hội đảo ngược trong khi đánh giá xu hướng thị trường.

Tên và nguyên tắc của chiến lược

Chiến lược này được gọi là chiến lược theo dõi xu hướng định vị tam giác . Tên này nhấn mạnh tính năng của nó trong việc sử dụng ba chỉ số kỹ thuật đồng thời trong việc xác định hướng xu hướng và định vị vị trí vào thị trường.

Các giao dịch cơ bản của nó là:

  1. Xác định hướng xu hướng. Xác định thị trường hiện tại ở giai đoạn nhiều đầu hay giai đoạn trống bằng cách so sánh trục không của đường trung tâm của băng tần Brin, trung bình di chuyển EMA và MACD.

  2. Tìm thời gian ra thị trường. Sau khi xác định xu hướng đa đầu (hoặc vô đầu), chiến lược sẽ đánh giá ra thị trường dựa trên liệu trung bình di chuyển EMA có phá vỡ đường trung tâm của Brin hay không, và liệu đường trục MACD có dương (hoặc âm) với đường tín hiệu phá vỡ hay không.

  3. Cài đặt điểm dừng lỗ. Khi vào sân, bạn sẽ cài đặt điểm dừng cố định và điểm dừng lỗ.

Phân tích lợi thế chiến lược

Ưu điểm lớn nhất của chiến lược này là sử dụng ba loại chỉ số kỹ thuật khác nhau để hướng dẫn quyết định cùng một lúc: xu hướng, đường trung bình và MACD. Điều này giúp nó có thể đánh giá chính xác hơn về xu hướng thị trường và có lợi hơn trong việc nắm bắt một số cơ hội đảo ngược.

Đầu tiên, đường quỹ đạo giữa vành đai Brin có thể phản ánh rõ ràng các hướng xu hướng chính trong giai đoạn hiện tại. Chức năng của đường trung bình EMA là theo dõi xu hướng hoạt động. So sánh và kết hợp chúng có thể đánh giá chính xác hơn về tình trạng đa đầu và trống hiện tại.

Thứ hai, các dải Brin tự nó có tính bao quát tương đối mạnh. Một số điểm áp lực hỗ trợ cũng được phản ánh gần đường quỹ đạo trung tâm, do đó, sự phá vỡ của đường EMA có giá trị tín hiệu nhất định.

Ngoài ra, việc bổ sung MACD cũng cho thấy sự tiêu thụ năng lượng không gian. Kích thước giá trị tuyệt đối của nó đại diện cho sự lạc quan của quần chúng hoặc vô cảm, cũng có thể gợi ý khả năng đảo ngược.

Cuối cùng, chiến lược đặt trước các điều kiện dừng lỗ để kiểm soát rủi ro và lợi nhuận của mỗi giao dịch, do đó đảm bảo hoạt động ổn định tổng thể.

Phân tích rủi ro chiến lược

Mặc dù có nhiều công cụ phân tích được sử dụng trong chiến lược tổng hợp này, những rủi ro chính là:

  1. Các tham số của các vùng Brin được đặt không đúng cách, và đường quỹ đạo không thể phản ánh rõ ràng xu hướng chính.

  2. Hệ thống đồng tuyến phát ra tín hiệu đa đầu, nhưng MACD không rõ ràng điều chỉnh, lực không đầu có thể mở rộng.

  3. Giới hạn dừng lỗ được thiết lập quá lớn, một lỗ đơn lẻ có thể mở rộng.

Các giải pháp chính là:

  1. Điều chỉnh tham số của vùng Brin để đảm bảo đường quỹ đạo trung tâm phản ánh hiệu quả xu hướng chính.

  2. Tiến hành thêm các chỉ số kỹ thuật để đánh giá năng lượng không khí.

  3. Đánh giá lịch sử giao dịch, tối ưu hóa các tham số dừng lỗ.

Hướng tối ưu hóa chiến lược

Chiến lược này có thể được tối ưu hóa hơn nữa bằng cách:

  1. Tham gia vào nhiều chỉ số hơn trong việc đánh giá xu hướng. Các đánh giá phụ trợ như KDJ, ATR, để cải thiện độ chính xác của đánh giá.

  2. Thiết lập các phương thức dừng chi tiết hơn ở cấp độ hoạt động. Ví dụ: dừng di chuyển, tăng tỷ lệ dừng sau khi phá vỡ cao mới (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  3. Đánh giá hiệu quả hoạt động của các giống khác nhau. Điều chỉnh các tham số để phù hợp với nhiều đặc điểm của thị trường.

  4. Hiệu quả thử nghiệm và đánh giá các kết quả phản hồi của các khung thời gian và thị trường khác nhau. Điều chỉnh các tham số cho phù hợp.

  5. Thêm các thuật toán học máy, thực hiện tối ưu hóa tự động các tham số và cập nhật động các quy tắc chiến lược.

Tóm tắt

Chiến lược này sử dụng ba chỉ số kỹ thuật lớn của Brinband, Moving Average và MACD. Nó đánh giá xu hướng rõ ràng, có một số tính bao quát, cũng có thể nắm bắt một số cơ hội đảo ngược. Bằng cách giới thiệu nhiều công cụ hỗ trợ để đánh giá và tối ưu hóa chiến lược dừng lỗ, có thể đạt được hiệu suất giao dịch ổn định hơn. Chiến lược này đáng được đánh giá và cải thiện hơn nữa, có khả năng trở thành một công cụ mạnh mẽ cho các quyết định định lượng.

Mã nguồn chiến lược
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Combined Strategy", overlay=true, shorttitle="Comb Strat", default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Precio de beneficio y Stop Loss
takeProfitTicks = 87636
stopLossTicks = 53350

// Bollinger Bands + EMA
length_bb = input(150, title="BB Length")
src_bb = input(close, title="BB Source")
mult = input(2.0, title="BB StdDev")
basis = ta.sma(src_bb, length_bb)
dev = mult * ta.stdev(src_bb, length_bb)
upper = basis + dev
lower = basis - dev

len_ema = input(34, title="EMA Length")
src_ema = input(close, title="EMA Source")
out_ema = ta.ema(src_ema, len_ema)

typeMA = input("SMA", title="Method")
smoothingLength = input(5, title="Length")

var float smoothingLine = na
if (typeMA == "SMA")
    smoothingLine := ta.sma(out_ema, smoothingLength)
else if (typeMA == "EMA")
    smoothingLine := ta.ema(out_ema, smoothingLength)

// MACD
fast_length = input(title="Fast Length", defval=9)
slow_length = input(title="Slow Length", defval=17)
src_macd = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

fast_ma = sma_source == "SMA" ? ta.sma(src_macd, fast_length) : ta.ema(src_macd, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src_macd, slow_length) : ta.ema(src_macd, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Condiciones de compra y venta
longCondition = (out_ema > basis) and (macd > signal) and (signal > 0)
shortCondition = (out_ema < basis) and (macd < signal) and (signal < 0)

// Variables de estado
var bool longExecuted = na
var bool shortExecuted = na

// Estrategia
if (longCondition and not longExecuted)
    strategy.entry("Long", strategy.long)
    longExecuted := true
    shortExecuted := na
if (shortCondition and not shortExecuted)
    strategy.entry("Short", strategy.short)
    shortExecuted := true
    longExecuted := na

// Take Profit y Stop Loss para Compras y Ventas Cortas
strategy.exit("Take Profit/Close Long", from_entry="Long", profit=takeProfitTicks, loss=stopLossTicks)
strategy.exit("Take Profit/Close Short", from_entry="Short", profit=takeProfitTicks, loss=stopLossTicks)

// Cierre de posiciones cuando la dirección cambia
if ((out_ema < basis) and (macd < signal))
    strategy.close("Long")
    longExecuted := na
if ((out_ema > basis) and (macd > signal))
    strategy.close("Short")
    shortExecuted := na

// Plots
plot(basis, "BB Basis", color=#FF6D00)
plot(upper, "BB Upper", color=color.new(#2962FF, 0.5))
plot(lower, "BB Lower", color=color.new(#2962FF, 0.5))

plot(smoothingLine, title="Smoothing Line", color=#f37f20, linewidth=2)

hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist[1] < hist ? color.green : color.red) : (hist[1] < hist ? color.red : color.green)))
plot(macd, title="MACD", color=color.blue)
plot(signal, title="Signal", color=color.orange)