Tài nguyên đang được tải lên... tải...

Bollinger Breakout với Mean Reversion 4H Chiến lược giao dịch định lượng

Tác giả:ChaoZhang, Ngày: 2024-12-12 11:24:28
Tags:BBANDSSMASDTPSL

img

Tổng quan

Chiến lược này là một hệ thống giao dịch định lượng thời gian 4 giờ dựa trên Bollinger Bands, kết hợp các khái niệm giao dịch đột phá xu hướng và đảo ngược trung bình. Chiến lược nắm bắt đà thị trường thông qua Bollinger Bands breakouts trong khi sử dụng giá trung bình đảo ngược để lấy lợi nhuận và thực hiện dừng lỗ để kiểm soát rủi ro. Nó sử dụng đòn bẩy 3 lần, đảm bảo lợi nhuận trong khi xem xét kỹ lưỡng quản lý rủi ro.

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

Logic cốt lõi dựa trên các yếu tố chính sau:

  1. Sử dụng đường trung bình động 20 giai đoạn như dải giữa, với 2 độ lệch chuẩn cho phạm vi biến động
  2. Các tín hiệu đầu vào: dài khi thân nến (trung bình của mở và đóng) phá vỡ trên dải trên, ngắn khi phá vỡ dưới dải dưới
  3. Các tín hiệu thoát: Đóng các vị trí dài khi hai ngọn nến liên tiếp có cả giá mở và đóng dưới dải trên và đóng dưới mở; logic ngược cho các vị trí ngắn
  4. Kiểm soát rủi ro: Thiết lập stop-loss tại các điểm cao / thấp của nến hiện tại để đảm bảo rủi ro được kiểm soát cho mỗi giao dịch

Ưu điểm chiến lược

  1. Logic giao dịch rõ ràng: Kết hợp các phương pháp giao dịch xu hướng và đảo ngược để có hiệu suất tốt trong các điều kiện thị trường khác nhau
  2. Kiểm soát rủi ro toàn diện: Thực hiện stop-loss động dựa trên biến động nến để kiểm soát rút tiền hiệu quả
  3. lọc tín hiệu giả: xác nhận breakout bằng cách sử dụng vị trí thân nến thay vì chỉ đóng giá để giảm tổn thất breakout giả
  4. Quản lý tài chính lành mạnh: Điều chỉnh kích thước vị trí theo cách năng động dựa trên vốn chủ sở hữu tài khoản, lợi nhuận cân bằng và rủi ro

Rủi ro chiến lược

  1. Rủi ro thị trường bên cạnh: Có thể gây ra các tín hiệu đột phá sai thường xuyên trong các thị trường khác nhau, dẫn đến việc dừng liên tục
  2. Rủi ro đòn bẩy: đòn bẩy 3x có thể gây ra tổn thất đáng kể trong thời điểm biến động cực kỳ
  3. Rủi ro thiết lập stop-loss: Sử dụng các điểm cao / thấp của nến để dừng có thể quá lỏng lẻo, làm tăng tổn thất cho mỗi giao dịch
  4. Tùy thuộc vào khung thời gian: khung thời gian 4 giờ có thể phản ứng quá chậm trong một số điều kiện thị trường nhất định, bỏ lỡ cơ hội

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

  1. Thực hiện bộ lọc xu hướng: Thêm các chỉ số xu hướng dài hạn để giao dịch theo hướng xu hướng chính
  2. Tối ưu hóa phương pháp dừng lỗ: Xem xét sử dụng ATR hoặc chiều rộng băng tần Bollinger cho khoảng cách dừng lỗ động
  3. Cải thiện quản lý vị trí: Điều chỉnh đòn bẩy theo động dựa trên sự biến động hoặc sức mạnh xu hướng
  4. Thêm phân tích điều kiện thị trường: Kết hợp các chỉ số khối lượng hoặc biến động để xác định tình trạng thị trường cho việc tham gia chọn lọc

Tóm lại

Chiến lược này kết hợp các đặc điểm theo xu hướng và đảo ngược trung bình của Bollinger Bands, đạt được lợi nhuận ổn định ở cả thị trường xu hướng và dao động thông qua các điều kiện nhập / xuất nghiêm ngặt và các biện pháp kiểm soát rủi ro.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger 4H Follow", overlay=true, initial_capital=300, commission_type=strategy.commission.percent, commission_value=0.04)
// StartYear = input(2022,"Backtest Start Year") 
// StartMonth = input(1,"Backtest Start Month") 
// StartDay = input(1,"Backtest Start Day")

// testStart = timestamp(StartYear,StartMonth,StartDay,0,0)

// EndYear = input(2023,"Backtest End Year")
// EndMonth = input(12,"Backtest End Month")
// EndDay = input(31,"Backtest End Day")

// testEnd = timestamp(EndYear,EndMonth,EndDay,0,0)

lev = 3

// Input parameters
length = input.int(20, title="Bollinger Band Length")
mult = input.float(2.0, title="Bollinger Band Multiplier")

// Bollinger Bands calculation
basis = ta.sma(close, length)
upperBand = basis + mult * ta.stdev(close, length)
lowerBand = basis - mult * ta.stdev(close, length)

// Conditions for Open Long
openLongCondition = strategy.position_size == 0 and close > open and (close + open) / 2 > upperBand

// Conditions for Open Short
openShortCondition = strategy.position_size == 0 and close < open and (close + open) / 2 < lowerBand

// Conditions for Close Long
closeLongCondition = strategy.position_size > 0 and strategy.position_size > 0 and (close < upperBand and open < upperBand and close < open)

// Conditions for Close Short
closeShortCondition = strategy.position_size < 0 and strategy.position_size < 0 and (close > lowerBand and open > lowerBand and close > open)


// Long entry
if openLongCondition
    strategy.entry("Long", strategy.long, qty=strategy.equity * lev / close)
    strategy.exit("Long SL", from_entry="Long", stop=low)  // Set Stop-Loss

// Short entry
if openShortCondition
    strategy.entry("Short", strategy.short, qty=strategy.equity * lev / close)
    strategy.exit("Short SL", from_entry="Short", stop=high)  // Set Stop-Loss

// Long exit
if closeLongCondition
    strategy.close("Long", comment = "TP")

// Short exit
if closeShortCondition
    strategy.close("Short", comment = "TP")

// Plot Bollinger Bands
plot(upperBand, color=color.yellow, title="Upper Band")
plot(lowerBand, color=color.yellow, title="Lower Band")

Có liên quan

Thêm nữa