Chiến lược giao dịch dải Bollinger nhiều bộ lọc


Ngày tạo: 2024-01-17 15:12:57 sửa đổi lần cuối: 2024-01-17 15:12:57
sao chép: 1 Số nhấp chuột: 592
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch dải Bollinger nhiều bộ lọc

Tổng quan

Chiến lược giao dịch Binary Binary nhiều chọn là một chiến lược giao dịch định lượng kết hợp các chỉ số Binary, chỉ số đường trung bình, chỉ số RSI và các đặc điểm đồ thị K để lọc nhiều điều kiện và phát ra tín hiệu giao dịch khi các điều kiện được đáp ứng. Đây là một chiến lược theo dõi xu hướng điển hình để kiếm lợi nhuận bằng cách nắm bắt các biến động xu hướng giá của đường dài và đường trung.

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

Tính toán chỉ số

Chiến lược này chủ yếu sử dụng ba chỉ số Brin, đường trung bình và RSI. Trong đó, đường trung bình của Brin là đường trung bình di chuyển đơn giản n ngày của giá, đường trung bình trên và đường trung bình dưới là đường trung bình + 2 lần chênh lệch chuẩn và đường trung bình -2 lần chênh lệch chuẩn. Chỉ số RSI là các giá trị trong phạm vi từ 0 đến 100 được tính dựa trên sự sụt giảm trong một khoảng thời gian nhất định.

Tín hiệu giao dịch

Chiến lược này tạo ra tín hiệu giao dịch dựa trên ba điều kiện chính sau:

(1) Brin mang theo phá vỡ đường ray & K đường thực thể phản đối. Khi giá đóng cửa vượt qua đường ray, và màu sắc của thực thể đường K ngược lại với hướng xu hướng hiện tại, hãy làm nhiều hơn.

(2) Brin đai phá vỡ đường ray & K đường thực thể phản đối. Khi giá đóng cửa đi vào đường ray, và màu sắc của K đường thực thể ngược lại với hướng xu hướng hiện tại, làm cho trống.

(3) Cụ thể K-line chuyển hướng. Nếu hướng giữ vị trí phù hợp với màu sắc của thực thể K-line chuyển hướng, thì vị trí bằng phẳng.

Ngoài ra, chiến lược này còn thiết lập các điều kiện phụ trợ như bộ lọc đồng tuyến, bộ lọc thực thể K-line, bộ lọc RSI để kiểm soát chặt chẽ nhập cảnh.

Phân tích lợi thế

  • Kiểm soát chặt chẽ các điều kiện đa dạng để giảm nguy cơ đột phá giả
  • Theo dõi xu hướng làm giảm tần suất giao dịch
  • Chỉ số RSI hỗ trợ phán đoán để tránh bẫy đảo ngược

Phân tích rủi ro

  • Thiết lập tham số băng tần Brin không đúng có thể dẫn đến tín hiệu ít hơn
  • Thâm nhập thất bại có thể gây thiệt hại lớn
  • Tỷ lệ giao dịch thấp, có thể bỏ lỡ một số cơ hội giao dịch

Bạn có thể giảm rủi ro bằng cách điều chỉnh tham số Brinh và kiểm soát chặt chẽ stop loss.

Hướng tối ưu hóa

  • Có thể thử nghiệm hiệu suất của các chiến lược với các tham số khác nhau để tìm các tham số tối ưu
  • Có thể thêm thuật toán học máy để các chiến lược tự động tối ưu hóa các tham số
  • Có thể thêm nhiều yếu tố và bộ lọc để tăng sự ổn định của chiến lược

Tóm tắt

Chiến lược này nói chung là một chiến lược theo dõi xu hướng đường dài trung bình điển hình. Bằng cách lọc nhiều điều kiện, kiểm soát chặt chẽ thời gian nhập cảnh và xuất cảnh, sử dụng phương pháp giao dịch xu hướng, có thể giảm giao dịch không cần thiết, nắm bắt xu hướng đường dài trung bình của thị trường.

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

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.4", shorttitle = "Bollinger str 1.4", overlay = true )

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(1, defval = 1, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

usebf = input(true, defval = true, title = "Use body-filter")
usecf = input(true, defval = true, title = "Use color-filter")
userf = input(true, defval = true, title = "Use RSI-filter")

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
showbands = input(true, defval = true, title = "Show Bollinger Bands")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebf == false

//Color filter
bar = close > open ? 1 : close < open ? -1 : 0 
gb = bar == 1 or usecf == false
rb = bar == -1 or usecf == false

//RSI Filter
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
ursi = rsi > 70 or userf == false
drsi = rsi < 30 or userf == false

//Signals
up = close <= lower and rb and body and drsi and (close < strategy.position_avg_price or strategy.position_size == 0)
dn = close >= upper and gb and body and ursi and (close > strategy.position_avg_price or strategy.position_size == 0)
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if  exit
    strategy.close_all()