Chiến lược này kết hợp các đặc điểm của chỉ số AlphaTrend và chiến lược Brainstorm. Chỉ số AlphaTrend được sử dụng để nắm bắt xu hướng thị trường, và chiến lược Brainstorm được sử dụng để nắm bắt các đặc tính quay trở lại giá trị trung bình của thị trường. Ý tưởng chính của chiến lược là: làm nhiều khi giá vượt qua đường dẫn Brainstorm và chỉ số AlphaTrend đi lên; khi giá vượt qua đường dẫn Brainstorm và chỉ số AlphaTrend đi xuống.
Chiến lược này kết hợp các tính năng theo dõi xu hướng và quay trở lại trung bình, theo xu hướng khi xu hướng rõ ràng, thu được lợi nhuận vượt trội trong thị trường biến động. Chỉ số AlphaTrend có thể điều chỉnh linh hoạt theo xu hướng giá và thích nghi tốt hơn với xu hướng. Đồng thời, các dây chuyền Brin có thể vẽ một cách khách quan mức giá tương đối cao và thấp, kết hợp cả hai có thể tạo ra một tín hiệu đầu vào hiệu quả.
Các biện pháp có thể được áp dụng để đối phó với các rủi ro trên:
Chiến lược còn nhiều chỗ để tối ưu hóa; tối ưu hóa tham số và lọc tín hiệu có thể cải thiện trực quan hiệu suất chiến lược; giới thiệu quản lý vị trí có thể làm mịn đường cong lợi nhuận; phương pháp dừng lỗ linh hoạt hơn có thể làm giảm rủi ro giao dịch một lần; tối ưu hóa qua sự kết hợp của các phương pháp này có thể nâng cao hiệu suất của chiến lược hơn nữa, giúp nó có lợi nhuận ổn định trong giao dịch thực.
Chiến lược này kết hợp một cách khéo léo hai ý tưởng chiến lược định lượng phổ biến là theo dõi xu hướng và quay trở lại mức trung bình, đồng thời sử dụng chỉ số AlphaTrend và chỉ số Brainstorm cổ điển. Chỉ số AlphaTrend tận dụng đầy đủ thông tin về giá và khối lượng giao dịch, thích nghi tốt với nhịp độ thị trường trong khi nắm bắt xu hướng.
Chiến lược có logic tổng thể rõ ràng, cài đặt các tham số linh hoạt, thuận tiện để tối ưu hóa cho các giống và chu kỳ khác nhau. Đồng thời, điểm rủi ro của chiến lược cũng rõ ràng hơn, quản lý vị trí và dừng lỗ vẫn cần được tối ưu hóa hơn nữa. Ngoài ra, để tăng thêm độ tin cậy của tín hiệu, bạn cũng có thể xem xét giới thiệu các chỉ số kiểu xu hướng như ADX, chỉ số động lực như RSI, v.v.
/*backtest start: 2023-03-22 00:00:00 end: 2024-03-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © brlu99 //@version=5 strategy(title="AlphaTrend and Bollinger Bands 120324 Strategy", shorttitle="AT_BB120324", overlay=true, format=format.price, precision=2, pyramiding=0) // AlphaTrend Indicator coeff = input.float(1, 'Multiplier', step=0.1) AP = input(14, 'Common Period') ATR = ta.sma(ta.tr, 20) src = input(close) novolumedata = input(title='Change calculation (no volume data)?', defval=false) upT = low - ATR * coeff downT = high + ATR * coeff AlphaTrend = 0.0 AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT // Bollinger Bands Strategy BBPeriod = input.int(20, title="BB Period", minval=1) BBMultiplier = input.float(2.0, title="BB Multiplier", minval=0.1) basis = ta.sma(close, BBPeriod) dev = ta.stdev(close, BBPeriod) upper = basis + BBMultiplier * dev lower = basis - BBMultiplier * dev // Strategy Conditions longCondition = ta.crossover(close, upper) and ta.crossover(AlphaTrend, AlphaTrend[1]) shortCondition = ta.crossunder(close, lower) and ta.crossunder(AlphaTrend, AlphaTrend[1]) // Exit conditions for Strategy 6 longExit_AT_6 = ta.crossover(close, AlphaTrend) shortExit_AT_6 = ta.crossunder(close, AlphaTrend) // Exit condition series exit1 = input.bool(true, title="Enable Exit Condition for Strategy 1") // Define exit conditions for each strategy exit1_condition = close < AlphaTrend ? 1.0 : na // Strategy Actions strategy.entry("Buy", strategy.long, when=longCondition) strategy.entry("Sell", strategy.short, when=shortCondition) // Exit conditions for Strategy 1 strategy.exit("Buy", "longExit_AT_6", stop = exit1_condition, when =shortExit_AT_6 ) strategy.exit("Sell", "shortExit_AT_6", stop = exit1_condition, when =longExit_AT_6) // Plotting plot(AlphaTrend, color=color.blue, title="AlphaTrend") plot(upper, color=color.green, title="Upper Bollinger Band") plot(lower, color=color.red, title="Lower Bollinger Band") // Alerts alertcondition(longCondition, title='Potential Buy Signal', message='AlphaTrend crossed above Upper Bollinger Band') alertcondition(shortCondition, title='Potential Sell Signal', message='AlphaTrend crossed below Lower Bollinger Band')