
Chiến lược này được thiết kế dựa trên các chỉ số Brin Belt để tạo ra một chiến lược giao dịch đột phá động. Nó kết hợp các điều kiện lọc thực thể K-line và lọc màu để tìm cơ hội đột phá entry gần đường ray Brin Belt. Exit dựa trên lọc thực thể.
Đầu tiên, tính theo điểm thấp, đường cơ sở và đường ray dưới của vùng Brin:
src = low
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
Trong đó src là điểm thấp, length là chu kỳ tính toán, basis là đường trung bình, dev là độ lệch tiêu chuẩn, lower là đường ray dưới.
Thường mult được đặt là 2, đại diện cho đường ray dưới là một chênh lệch tiêu chuẩn.
Chiến lược này bao gồm hai điều kiện lọc:
Bộ lọc thực thể K Sử dụng kích thước thực thể nbody và giá trị trung bình abody, chỉ khi nbody lớn hơn một nửa abody mới tạo ra tín hiệu giao dịch.
Bộ lọc màu Khi kết thúc k-line ((close > open), không làm nhiều lần. Đây là cách để tránh hbox head bị phá vỡ.
Tín hiệu đa tần được tạo ra khi đáp ứng các điều kiện sau:
low < lower // 价格突破下轨
close < open or usecol == false // 色彩过滤
nbody > abody / 2 or usebod == false // 实体过滤
Khi kích thước của thực thể lớn hơn một lần nữa so với một nửa giá trị trung bình, tạo ra vị thế bằng phẳng:
close > open and nbody > abody / 2
Chiến lược tự động tính toán số lượng giao dịch để tăng chỉ số:
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
Điều kiện năm, tháng, ngày tham gia, giới hạn giao dịch chỉ trong phạm vi ngày được chỉ định:
when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))
Brin theo đường ray là một vùng hỗ trợ năng động, có thể nắm bắt cơ hội phục hồi sau xu hướng thị trường.
Kết hợp với thực thể K-line và phán đoán màu sắc, có hiệu quả trong việc lọc các đột phá giả.
Các vị trí tăng theo chỉ số đến 100%, tự động quản lý rủi ro.
Thiết lập phạm vi ngày để giảm rủi ro của biến động thị trường tại một thời điểm nhất định.
Khi thị trường là thị trường bò kéo dài, đường ray trung và đường ray trên của Brin nhanh chóng di chuyển, dễ bị trống quá lâu.
Bạn có thể kết hợp các chỉ số xu hướng để đánh giá, tạm dừng chiến lược khi đường trung và dài được đánh giá là thị trường bò, tránh vị trí trống quá dài.
Sau khi phá vỡ đường ray, có thể có sự điều chỉnh lại và thử lại đường ray.
Thêm đường dừng lỗ, dừng một tỷ lệ nhất định bên dưới hỗ trợ. hoặc thêm logic phán đoán thất bại thử lại, dừng nhanh.
Đặt điểm dừng dưới mức hỗ trợ hợp lý, dựa trên dữ liệu đo đạc.
Điều chỉnh chu kỳ abody của bộ lọc thực thể, sử dụng bộ lọc COLOR, v.v.; tìm các tham số tối ưu nhất.
Tăng khả năng đánh giá xu hướng đường dài và đường trung bình, dừng chiến lược khi đánh giá thị trường bò. Giảm thời gian trống.
Chiến lược này kết hợp với sự hỗ trợ của Brin, thiết kế các logic chiến lược của bộ lọc thực thể, bộ lọc màu sắc và giao dịch đột phá để tìm cơ hội bounce có xác suất cao. Trong ứng dụng thực tế, các tham số có thể được tối ưu hóa liên tục dựa trên kết quả phản hồi và thêm các mô-đun đánh giá dừng lỗ và xu hướng để kiểm soát rủi ro, để có được hiệu suất tốt hơn.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Wizard Strategy v1.0", shorttitle = "Wizard str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10)
//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(25, defval = 25, minval = 1, maxval = 200, title = "BB Period")
usebod = input(false, defval = false, title = "Use Body-Filter")
usecol = input(false, defval = false, title = "Use Color-Filter")
showar = input(false, defval = false, title = "Show Arrows")
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")
//Bollinger
src = low
mult = 2
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
plot(lower, color = lime, linewidth = 3, title="Bottom Line")
//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebod == false
//Signals
up1 = low < lower and (close < open or usecol == false) and body
exit = close > open and nbody > abody / 2
//Arrows
needar = up1 and showar
plotarrow(needar ? 1 : na)
//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if up1
if strategy.position_size < 0
strategy.close_all()
strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
strategy.close_all()