Chiến lược giao dịch theo đà


Ngày tạo: 2023-11-21 16:57:07 sửa đổi lần cuối: 2023-11-21 16:57:20
sao chép: 1 Số nhấp chuột: 564
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch theo đà

Tổng quan

Chiến lược này dựa trên các chỉ số Bollinger Bands, kết hợp với các chỉ số động lực, để thực hiện chiến lược giao dịch kết hợp để thực hiện sự trở lại của Bollinger Bands và phá vỡ động lực. Khi giá vượt qua đường trung bình từ bên dưới Bollinger Bands, hãy làm cho nó trống khi giá vượt qua đường trung bình từ phía trên Bollinger Bands, và theo dõi các lệnh dừng lỗ, sau khi đạt được tỷ lệ thua lỗ mục tiêu.

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

Chiến lược này sử dụng đường trung tâm của băng thông Brin là đường trung bình, băng thông thông qua tham số mult*Điều chỉnh động lực stdev. Khi giá phá vỡ đường trung bình từ bên dưới, cho thấy giá có hành động lên, khi đó làm nhiều; Khi giá phá vỡ đường trung bình từ phía trên, cho thấy giá có hành động xuống, khi đó làm trống. Sau khi làm trống nhiều, thiết lập tham số dừng lỗ để theo dõi lợi nhuận và kiểm soát rủi ro.

Cụ thể, tính toán của Brin được thực hiện thông qua hai tham số length và mult, length length quyết định chu kỳ của đường trung tâm, mult quyết định kích thước của băng thông. EnterLong và enterShort xác định thời gian đột phá, exitLong và exitShort tính toán giá dừng lỗ dựa trên giá vào và tỷ lệ dừng lỗ mục tiêu.

Lợi thế chiến lược

Chiến lược này kết hợp sự hồi phục đường trung bình và các chỉ số động lực, có thể nắm bắt được tình hình lớn hơn trong giai đoạn bắt đầu xu hướng. So với chỉ đơn giản theo dõi đường trung bình, tăng phán đoán động lực dựa trên băng thông Brin, có thể lọc một số phá vỡ giả.

Rủi ro chiến lược

  • Brin đã bị chậm trễ trong việc kết hợp giá cả và có thể đã bỏ lỡ một số hoạt động.
  • Cài đặt dừng lỗ quá lỏng lẻo sẽ làm tăng rủi ro mất mát
  • Có thể nhận được tín hiệu kém trong trường hợp nhiều đầu.

Có thể được tối ưu hóa bằng cách điều chỉnh chu kỳ đường trung tâm của Brin, tham số băng thông và phạm vi dừng để chiến lược phù hợp hơn với các tình huống thị trường khác nhau.

Tối ưu hóa chiến lược

  • Thêm số lượng giao dịch hoặc chỉ số biến động để tránh phá vỡ giả thấp
  • param tối ưu hóa chiều dài chu kỳ Brinh, hệ số chiều rộng, stop loss
  • Chỉ làm nhiều hoặc chỉ làm rỗng trong một giai đoạn thị trường nhất định
  • Tham gia mô hình học máy để xác định xu hướng

Tóm tắt

Chiến lược này tích hợp các ưu điểm của chỉ số hồi phục và động lực của Brin, có thể bắt một phần của thị trường khi xu hướng bắt đầu, có thể thích ứng với thị trường ở các giai đoạn khác nhau thông qua điều chỉnh tham số, là một hệ thống đột phá phổ biến hơn. Cài đặt dừng lỗ trực tiếp từ tính toán giá có thể giảm sự can thiệp của con người. Chiến lược này cũng có một số không gian cải tiến, chẳng hạn như thêm các chỉ số phán quyết hỗ trợ, v.v., sẽ được hoàn thiện hơn trong nghiên cứu và tối ưu hóa tiếp theo.

Mã nguồn chiến lược
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BURATINO", overlay=true)

// Входные параметры
length = input(20, minval=1, title="Length")
mult = input(2.0, minval=0.1, maxval=5, title="Multiplier")
target_percent = input(0.5, minval=0.1, title="Target Percent")
stop_loss_percent = input(95, minval=0.1, title="Stop Loss Percent")

// Расчет полос Боллинджера
basis = sma(close, length)
dev = mult * stdev(close, length)
upper = basis + dev
lower = basis - dev

// Переворот снизу вверх через среднюю линию Боллинджера для открытия лонга
enterLong = cross(close, basis) and close[1] < basis[1]

// Переворот сверху вниз через среднюю линию Боллинджера для открытия шорта
enterShort = cross(basis, close) and close[1] > basis[1]

// Закрытие лонга после роста цены на указанный процент или падения на указанный процент
exitLong = close >= strategy.position_avg_price * (1 + (target_percent / 100)) or close <= strategy.position_avg_price * (1 - (stop_loss_percent / 100))

// Закрытие шорта после падения цены на указанный процент или роста на указанный процент
exitShort = close <= strategy.position_avg_price * (1 - (target_percent / 100)) or close >= strategy.position_avg_price * (1 + (stop_loss_percent / 100))

// Управление позициями и ограничениями на открытие противоположных позиций
strategy.entry("Long", strategy.long, when = enterLong and strategy.position_size == 0)
strategy.entry("Short", strategy.short, when = enterShort and strategy.position_size == 0)

strategy.close("Long", when = exitLong)
strategy.close("Short", when = exitShort)

// Визуализация полос Боллинджера
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper")
plot(lower, color=color.green, title="Lower")