Chiến lược theo dõi thông minh Double B


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

Chiến lược theo dõi thông minh Double B

Đây là một chiến lược sử dụng chỉ số BRI để giao dịch. Chiến lược này nhằm mục đích sử dụng chỉ số BRI để xác định thời điểm biến động mạnh của giá và đưa ra quyết định mua hoặc bán phù hợp.

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

Chiến lược này tính toán đường viền trên, đường viền giữa và đường viền dưới của vòng Brin để xác định liệu giá hiện tại có nằm trong phạm vi dao động để xác định thời gian để đặt hoặc bán. Khi giá gần đường viền trên, chiến lược được coi là khu vực giới hạn đa đầu, chiến lược chọn bán vị trí đồng; Khi giá gần đường viền dưới, nó được coi là khu vực giới hạn đầu trống, chiến lược chọn mua và đặt.

Ngoài ra, chiến lược cũng đưa ra các yếu tố đảo ngược xu hướng, nếu có tín hiệu đảo ngược, nó cũng sẽ kích hoạt quyết định mua hoặc bán tương ứng. Cụ thể, logic chiến lược như sau:

  1. Tính toán đường lên, đường giữa và đường xuống của dải Brin
  2. Xác định giá phá vỡ quỹ đạo và tín hiệu đảo ngược
    1. Bước ra khỏi đường băng trung tâm như một tín hiệu xu hướng
    2. Hướng lên hoặc xuống đường ray gần như là một tín hiệu đảo ngược
  3. Đưa ra lệnh mua, bán hoặc thanh toán

Đây là logic giao dịch cơ bản của chiến lược này. Bằng cách sử dụng đặc tính của Brin Band, kết hợp xu hướng và yếu tố đảo ngược, chiến lược cố gắng nắm bắt điểm đảo ngược để giao dịch khi biến động tăng lên.

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

Chiến lược này có một số ưu điểm so với chiến lược trung bình di chuyển thông thường:

  1. Các nhà đầu tư cũng sẽ có thể sử dụng các công cụ này để tạo ra các sản phẩm có giá cả cao hơn.
  2. Trong khi đó, kết hợp xu hướng và các yếu tố đảo ngược để tránh thiệt hại do đảo ngược quá sớm
  3. Có hiệu ứng FILTER, tránh mua bán trong khu vực không biến động
  4. Giảm số lần giao dịch bằng cách đánh giá xu hướng chính
  5. Thêm điều kiện lọc ngược để giảm khả năng sai lệch

Nhìn chung, chiến lược này kết hợp tốt hơn giữa BRI và giá trị thực thể, giao dịch tại các điểm đảo ngược hợp lý, đảm bảo một mức độ lợi nhuận nhất định và kiểm soát rủi ro.

Rủi ro và tối ưu hóa

Tuy nhiên, chiến lược này cũng có một số rủi ro, đặc biệt là:

  1. Các tham số của Brin không được thiết lập đúng để nắm bắt được sự biến động của giá cả
  2. Đánh giá tín hiệu đảo ngược không chính xác, bỏ lỡ hoặc đánh giá sai
  3. Các tín hiệu trung tuyến không hiệu quả khi xu hướng không rõ ràng

Theo đó, trong tương lai, có thể tối ưu hóa các khía cạnh sau:

  1. Tích hợp các tham số Brin theo các tham số khác nhau
  2. Tăng khả năng phản hồi của mô hình học máy
  3. Chuyển sang các chỉ số khác khi không rõ xu hướng
  4. Phân tích các tín hiệu giao dịch với nhiều hình thức giá khác nhau

Tóm tắt

Chiến lược này nói chung là một mẫu chiến lược giao dịch Brin-belt điển hình. Nó tránh được những nhược điểm của việc chỉ sử dụng Brin-belt dễ dàng tạo ra nhiều giao dịch không hiệu quả, bằng cách đưa ra phán đoán đảo ngược xu hướng để lọc tín hiệu hiệu quả, về mặt lý thuyết có thể đạt được hiệu suất chiến lược tốt hơn. Tuy nhiên, việc thiết lập tham số và lọc tín hiệu vẫn cần được tối ưu hóa và cải thiện hơn nữa để làm cho tham số chiến lược trở nên tinh tế và giảm tỷ lệ phán đoán sai.

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

//Noro
//2018

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

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

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

uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")

fromyear = input(2018, defval = 2018, 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
body = abs(close - open)
abody = ema(body, 30)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0 
up1 = bar == -1 and close >= basis and close < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and close <= basis and close > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2

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

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