Chiến lược này là một chiến lược đảo ngược trung bình dựa trên Bollinger Bands và Chỉ số cường độ trong ngày. Nó sử dụng sự đột phá giá của dải trên và dưới của Bollinger Bands, kết hợp với chỉ số Intensity Index Intraday để xác định thời gian nhập cảnh. Những lợi thế của chiến lược này bao gồm: kiếm lợi nhuận từ sự đảo ngược trung bình của giá, và lọc tín hiệu bằng các chỉ số khối lượng. Tuy nhiên, nó cũng có những rủi ro như giảm lớn và thời gian lợi nhuận dài.
Chiến lược này đầu tiên tính toán dải giữa, dải trên và dải dưới của Bollinger Bands. Dải giữa là trung bình di chuyển đơn giản hoặc trung bình di chuyển theo cấp số nhân của giá đóng cửa. Dải trên và dải dưới được xây dựng bằng cách cộng / trừ hai độ lệch chuẩn trên dải giữa. Khi giá vượt qua dải dưới, nó được coi là một cơ hội để đảo ngược trung bình, lấy vị trí dài. Khi giá vượt qua dải trên, nó được coi là lệch quá mức từ trung bình, lấy vị trí ngắn.
Như một chỉ số hỗ trợ để đánh giá, chiến lược giới thiệu Chỉ số cường độ trong ngày. Chỉ số này kết hợp cả thông tin giá và khối lượng. Khi chỉ số dương tính, nó chỉ ra sức mua đang tăng mạnh, cho tín hiệu dài. Khi chỉ số âm tính, nó chỉ ra sức bán đang tăng mạnh, cho tín hiệu ngắn.
Đối với các vị trí mở, chiến lược này đòi hỏi cả sự phá vỡ giá của dải Bollinger Bands và đánh giá chỉ số chỉ số cường độ trong ngày. Đối với việc dừng lỗ, chiến lược áp dụng dừng lỗ dựa trên thời gian. Nếu không có lợi nhuận sau một số thời gian nhất định, chiến lược chọn cắt lỗ và thoát.
Lợi thế lớn nhất của chiến lược này là sử dụng sự đảo ngược trung bình của giá sang lợi nhuận. Khi giá có độ lệch lớn so với trung bình, theo luật thống kê, xác suất giá quay trở lại trung bình là tương đối lớn. Điều này cung cấp cơ sở lý thuyết cho các hoạt động của chiến lược.
Một lợi thế khác là việc giới thiệu chỉ số khối lượng - Chỉ số cường độ trong ngày, để lọc tín hiệu giá. khối lượng giao dịch có thể chứng minh tính hợp lệ của tín hiệu giá. Điều này tránh các tín hiệu sai được tạo ra trong một số biến động giá dữ dội với khối lượng thấp.
Mặc dù chiến lược này dựa trên sự kiện xác suất của sự đảo ngược giá trung bình, nhưng sự di chuyển ngẫu nhiên của giá thị trường vẫn có thể kích hoạt dừng lỗ, dẫn đến tổn thất.
Một rủi ro lớn khác là quá trình giá trở lại mức trung bình là một chu kỳ tương đối dài. Đối với các nhà đầu tư, vốn có thể được giữ trong một khoảng thời gian nhất định. Rủi ro thời gian như vậy có thể khiến các nhà đầu tư bỏ lỡ các cơ hội đầu tư tốt hơn khác.
Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:
Tối ưu hóa các thông số Bollinger Bands, điều chỉnh các chỉ số chu kỳ và độ lệch để thích nghi với sự biến động của các thị trường khác nhau
Cố gắng các loại khác của trung bình di chuyển, như trung bình di chuyển cân nhắc để tăng độ mượt mà
Hãy thử các loại chỉ số khối lượng khác, tìm kiếm các tín hiệu xác nhận giá khối lượng tốt hơn
Thêm các chiến lược dừng lỗ/lợi nhuận, kiểm soát lỗ tối đa cho mỗi lệnh
Kết luận, chiến lược này là một chiến lược đảo ngược trung bình điển hình. Nó lợi nhuận trên các sự kiện xác suất, nhưng rủi ro cũng rõ ràng. Kết quả tốt hơn có thể được đạt được thông qua điều chỉnh các tham số và tối ưu hóa các chỉ số. Nhưng đối với các nhà đầu tư, nhận ra các thuộc tính chính xác của chiến lược này cũng là chìa khóa.
/*backtest start: 2024-01-20 00:00:00 end: 2024-02-19 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // Bollinger Bands Strategy with Intraday Intensity Index // by SparkyFlary //For Educational Purposes //Results can differ on different markets and can fail at any time. Profit is not guaranteed. strategy(title="Bollinger Bands Strategy with Intraday Intensity Index", shorttitle="Bollinger Bands Strategy", overlay=true) BBlength = input(20, title="Bollinger Bands length") BBmaType = input("SMA", title="Bollinger Bands MA type", type=input.string, options=["SMA", "EMA"]) BBprice = input(close, title="source") timeStop = input(10, title="Time-based stop length") BBmult = input(2.0, title="Bollinger Bands Standard Deviation") withIII = input(true, title="with Intraday Intensity Index?") IIIlength = input(21, title="Intraday Intensity Index length") //function for choosing moving averages f_ma(type, src, len) => float result = 0 if type == "SMA" result := sma(src, len) if type == "EMA" result := ema(src, len) result //Intraday Intensity Index k1 = (2 * close - high - low) * volume k2 = high != low ? high - low : 1 i = k1 / k2 iSum = sum(i, IIIlength) //Bollinger Bands BBbasis = f_ma(BBmaType, BBprice, BBlength) BBdev = BBmult * stdev(BBprice, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev plot(BBupper, title="Bollinger Bands Upper Line") plot(BBlower, title="Bollinger Bands Lower Line") plot(BBbasis, title="Bollinger Bands Mid line", color=color.maroon) //Strategy buy = close[1]<BBlower[1] and close>BBlower and (withIII ? iSum>0 : 1) sell = close>BBbasis or buy[timeStop] or (strategy.openprofit>0 and buy==0 and buy[1]==0 and buy[2]==0 and buy[3]==0) short = close[1]>BBupper[1] and close<BBupper and (withIII ? iSum<0 : 1) cover = close<BBbasis or short[timeStop] or (strategy.openprofit>0 and short==0 and short[1]==0 and short[2]==0 and short[3]==0) strategy.entry(id="enter long", long=true, when=buy) strategy.close(id="enter long", comment="exit long", when=sell) strategy.entry(id="enter short", long=false, when=short) strategy.close(id="enter short", comment="exit short", when=cover)