
Chiến lược này sử dụng hệ thống đường thẳng để xác định xu hướng và kết hợp với chỉ số biến động để tránh thị trường xung đột có biến động thấp, sử dụng dừng rung để quản lý giao dịch.
Chiến lược này đánh giá hướng xu hướng bằng cách so sánh mối quan hệ vị trí giữa đường trung bình nhanh và đường trung bình chậm. Khi đường trung bình nhanh đi qua đường trung bình chậm, hãy nhìn nhiều hơn, nhìn xuống. Để tránh thị trường bị chấn động, chiến lược cũng giới thiệu chỉ số Brinh. Bằng cách tính toán tỷ lệ thay đổi chiều rộng của Brinh, giao dịch được tạo ra khi tỷ lệ thay đổi vượt quá ngưỡng thiết lập.
Cụ thể, chiến lược giao dịch của chúng tôi là như sau:
Tính toán đường trung bình nhanh (bằng 20 ngày) và đường trung bình chậm (bằng 50 ngày)
Tính toán tỷ lệ thay đổi chiều rộng của dải Brin (đặc định 40 ngày, chênh lệch tiêu chuẩn 2 lần).
Khi đường trung bình nhanh đi qua đường trung bình chậm, và tỷ lệ thay đổi băng thông của Brin vượt quá ngưỡng thiết lập ((% 9 mặc định), sẽ tạo ra tín hiệu đa đầu.
Khi tốc độ trung bình vượt qua tốc độ trung bình dưới và tỷ lệ thay đổi băng thông của Brin vượt quá ngưỡng thiết lập ((% 9 mặc định), sẽ tạo ra tín hiệu không đầu.
Tính toán đường hầm không khí Chandeli như là điểm dừng lỗ.
Cứ dừng nhiều đầu là giá cao nhất - ATR*Số nhân, lỗ hổng đầu không là giá tối thiểu + ATR*Tỷ lệ.
Sử dụng hệ thống đường trung bình để đánh giá xu hướng, có thể theo dõi xu hướng hiệu quả.
Việc giới thiệu tỷ lệ thay đổi băng thông Brin giúp tránh thị trường bị chấn động và giảm các giao dịch không cần thiết.
Sử dụng chống rung, có thể ngăn chặn thiệt hại và tránh bị mắc kẹt trong rung động.
Nhiều tham số có thể được điều chỉnh để tối ưu hóa cho các thị trường khác nhau.
Lập luận chiến lược rõ ràng và dễ hiểu, dễ học và sử dụng.
Hệ thống đồng tuyến có sự chậm trễ và có thể bỏ lỡ cơ hội quay ngược nhanh chóng.
Thiết lập tham số BRI không đúng có thể lọc các tín hiệu giao dịch có hiệu lực.
Các nhà giao dịch cho biết các giao dịch có thể bị ảnh hưởng bởi sự nhạy cảm của các cú sốc.
Không tối ưu hóa các tham số có thể dẫn đến rủi ro giữ vị trí.
Không thể thích nghi với sự thay đổi mạnh mẽ của thị trường do sự kiện lớn bất ngờ.
Bạn có thể thử nghiệm các kết hợp đường trung bình của các tham số khác nhau để tìm tham số tối ưu.
Bạn có thể thử nghiệm các tham số của băng tần Brin trong các chu kỳ khác nhau để tìm ra hiệu quả lọc dao động tốt nhất.
Có thể kết hợp với các chỉ số khác để xác nhận nhập cảnh, cải thiện chất lượng tín hiệu.
Có thể giới thiệu chiến lược dừng lỗ động để dừng lỗ theo dõi thị trường tốt hơn.
Có thể kết hợp các tham số tối ưu hóa tự động với công nghệ học máy để thích ứng với sự thay đổi của thị trường
Chiến lược này tích hợp hệ thống đường cân bằng, chỉ số Brin và kỹ thuật dừng rung, tạo thành một hệ thống theo dõi xu hướng tương đối ổn định. Hiệu quả chiến lược tốt có thể đạt được bằng cách tối ưu hóa tham số. Tuy nhiên, vẫn cần cảnh giác với nguy cơ đảo ngược xu hướng và biến động thị trường, ngoài ra, các kỹ thuật như học máy có thể nâng cao sự ổn định của chiến lược. Nhìn chung, chiến lược này vẫn rất phù hợp với chiến lược học tập.
/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © juanchez
//@version=4
strategy("CHI", overlay = true, close_entries_rule = "ANY")
n = input(title= "highest high o lowest low period", defval= 22)
f= input(title= "multiplicador", defval= 4)
long = highest(high, n) - atr(n)*f
short= lowest(low, n) + atr(n)*f
plot(long, color= color.red)
plot(short, color= color.green)
//moving averages
period= input(title= "moving averages period", defval= 50)
period2= input(title= "moving averages period2", defval= 20)
type= input(title= "moving averages type", options= ["sma", "ema"], defval= "ema")
//moving average function
mo(p, t) =>
if t == "sma"
sma(close[barstate.islast ? 1: 0], p)
else if t== "ema"
ema(close[barstate.islast ? 1: 0], p)
m= mo(period, type)
m2= mo(period2, type)
trend= m2 > m
plot(m, color = color.maroon, linewidth = 3)
plot(m2, linewidth= 3)
//BOLLINGER BANDS ENTRIES
bb1_period= input(title= "Bollinger bands 1 period", defval=40, minval=1)
bb1_source=input(title="Bollinger band 1 source", defval=close)
bb1_multi=input(title="Bollinger Bands 1 factor", defval=2, minval=1, step=0.1)
show_bb1= input(title="Show Bollinger bands 1", defval=false)
//BOLLINGER BANDS
_bb(src, lenght, multi)=>
float moving_avg= sma(src[barstate.islast? 1: 0], lenght)
float deviation= stdev(src[barstate.islast? 1: 0], lenght)
float lowerband = moving_avg - deviation*multi
float upperband = moving_avg + deviation*multi
[moving_avg, lowerband, upperband]
[bb1, lowerband1, upperband1]= _bb(bb1_source, bb1_period, bb1_multi)
//FIRST BAND
plot(show_bb1? bb1 : na, title="BB1 Moving average", linewidth= 3, color= color.fuchsia)
plot(show_bb1? upperband1 : na, title="BB1 Upper Band", linewidth= 3, color= color.green)
plot(show_bb1? lowerband1 : na, title="BB1 Lower Band", linewidth= 3, color= color.red)
//BB's Width threshold
thresh= input(title= "widen %", defval= 9, minval = 0, step = 1, maxval= 100)
widht= (upperband1 - lowerband1)/bb1
roc= change(widht)/widht[1]*100
cross=crossover(roc, thresh)
// entry
//long
elong= input(true, title= "enable long")
longcondition= m2 > m and cross and elong
//short
eshort= input(true, title= "enable short")
shortcondition= m2 < m and cross and eshort
plotshape(longcondition? true: false , location= location.belowbar, style= shape.labelup, size= size.small, color= color.green, text= "Buy", textcolor= color.white)
plotshape(shortcondition? true: false , location= location.abovebar, style= shape.labeldown, size= size.small, color= color.red, text= "Sell", textcolor= color.white)
out= crossunder(close, long)
outt= crossover(close, short)
strategy.entry("long", strategy.long, when = longcondition)
strategy.close("long", when = out)
strategy.entry("short", strategy.short, when = shortcondition)
strategy.close("short", when = outt)