Bollinger Bands và Chiến lược giao dịch Fibonacci

Tác giả:ChaoZhang, Ngày: 2023-09-21 21:04:38
Tags:

Tổng quan

Chiến lược này kết hợp các chỉ số Bollinger Bands và Fibonacci để tạo ra một phương pháp đa chỉ số. Nó thuộc loại chiến lược chỉ số kết hợp điển hình. Các Bollinger Bands xác định hướng xu hướng và các mức Fibonacci xác định các vùng hỗ trợ và kháng cự chính để tạo ra tín hiệu giao dịch.

Chiến lược logic

Chiến lược dựa trên hai chỉ số chính:

  1. Bollinger Bands

    Tính toán các dải trên, giữa và dưới. Giá phá vỡ trên dải dưới là tín hiệu dài, và phá vỡ dưới dải trên là tín hiệu ngắn.

  2. Fibonacci Retracements

    Tính toán mức khôi phục 0% và 100% dựa trên mức cao và thấp trong lịch sử.

Logic giao dịch cụ thể là:

Tín hiệu dài: Giá phá vỡ trên dải trên và trên hỗ trợ Fibonacci 0%.

Tín hiệu ngắn: Giá phá vỡ dưới dải dưới, và dưới 100% kháng cự Fibonacci.

Các lối ra là xung quanh dải giữa để lấy lợi nhuận hoặc dừng lỗ.

Ưu điểm

  • Kết hợp Bollinger Bands và chỉ số Fibonacci
  • Dải đánh giá xu hướng, Fibonacci xác định các mức chính
  • Khả năng kết hợp của tín hiệu sai thấp hơn
  • Phạm vi trung bình thoát ra kiểm soát rút
  • Các quy tắc nhập cảnh và xuất cảnh rõ ràng, dễ thực hiện

Rủi ro

  • Các chỉ số dựa trên MA có thể chậm lại, thiếu mức tốt nhất
  • Chỉ đơn thuần dựa trên chỉ số, phản ứng chậm đối với các sự kiện lớn
  • Các bộ lọc kép giới hạn tần suất giao dịch
  • Các thông số không chính xác ảnh hưởng tiêu cực đến các dải và khôi phục
  • Các thông số cần tối ưu hóa cho các sản phẩm khác nhau

Các rủi ro có thể được giảm bằng cách:

  • Tối ưu hóa cho kết hợp tham số tốt nhất
  • Thư giãn các tiêu chí nhập cảnh như thêm các mẫu nến
  • Cải thiện lối ra với các điểm dừng
  • Kiểm tra tham số riêng biệt theo sản phẩm
  • Hệ thống điều chỉnh kích thước vị trí

Hướng dẫn cải thiện

Chiến lược có thể được cải thiện bằng cách:

  1. Tối ưu hóa các thông số Bollinger Bands

    Tìm tỷ lệ tối ưu cho các dải trên/dưới

  2. Tối ưu hóa thời gian khôi phục Fibonacci

    Kiểm tra các khoảng thời gian xem lại khác nhau cho các lần truy cập lại

  3. Điều kiện nhập cảnh nới lỏng

    Quan sát các mô hình nến trên các đoạn phá vỡ

  4. Cải thiện lối ra

    Xem xét các cơ chế ngăn chặn kéo dài

  5. Kiểm tra tham số cụ thể sản phẩm

    Các thông số cần điều chỉnh cho các sản phẩm khác nhau

Tóm lại

Chiến lược này kết hợp các điểm mạnh của Bollinger Bands và Fibonacci Retracements cho tín hiệu chất lượng cao hơn. Nhưng những thách thức như tối ưu hóa tham số khó có tồn tại. Những cải tiến có thể được thực hiện thông qua điều chỉnh tham số, thư giãn các tiêu chí nhập cảnh, tăng cường lối ra vv để tinh chỉnh chiến lược trong khi vẫn giữ được lợi thế của nó. Sự điều chỉnh liên tục dựa trên kết quả backtest cũng là chìa khóa cho độ bền.


/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands & Fibonacci Strategy", shorttitle="BB & Fib Strategy", overlay=true)

// Initialize position variables
var bool long_position = false
var bool short_position = false

// Bollinger Bands settings
length = input.int(20, title="Bollinger Bands Length")
src = input(close, title="Source")
mult = input.float(2.0, title="Standard Deviation Multiplier")

basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)

upper_band = basis + dev
lower_band = basis - dev

// Fibonacci retracement levels
fib_0 = input.float(0.0, title="Fibonacci 0% Level", minval=-100, maxval=100) / 100
fib_100 = input.float(1.0, title="Fibonacci 100% Level", minval=-100, maxval=100) / 100

// Plotting Bollinger Bands
plot(upper_band, color=color.red, title="Upper Bollinger Band")
plot(lower_band, color=color.green, title="Lower Bollinger Band")

// Calculate Fibonacci levels
fib_range = ta.highest(high, 50) - ta.lowest(low, 50)
fib_high = ta.highest(high, 50) - fib_range * fib_0
fib_low = ta.lowest(low, 50) + fib_range * fib_100

// Plot Fibonacci retracement levels
plot(fib_high, color=color.blue, title="Fibonacci High")
plot(fib_low, color=color.orange, title="Fibonacci Low")

// Entry conditions
long_condition = ta.crossover(close, upper_band) and low > fib_low
short_condition = ta.crossunder(close, lower_band) and high < fib_high

// Plot arrows on the chart
plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Entry and exit logic
if long_condition and not short_position
    strategy.entry("Long", strategy.long)
    long_position := true
    short_position := false

if short_condition and not long_position
    strategy.entry("Short", strategy.short)
    short_position := true
    long_position := false

// Exit conditions (you can customize these)
long_exit_condition = ta.crossunder(close, basis)
short_exit_condition = ta.crossover(close, basis)

if long_exit_condition
    strategy.close("Long")
    long_position := false

if short_exit_condition
    strategy.close("Short")
    short_position := false



Thêm nữa