Chiến lược này sử dụng đường tỷ lệ vàng của Bollinger Bands kết hợp với các hình thành trung bình động để giao dịch đảo ngược trung bình. Khi giá chạm vào đường tỷ lệ vàng, nó được coi là tín hiệu mua để tận dụng xu hướng đảo ngược trung bình.
Sử dụng vwma thay vì sma cho đường giữa BB phản ánh tốt hơn sự biến động của giá
Tỷ lệ vàng là hỗ trợ / kháng cự quan trọng, cung cấp cơ sở để đảo ngược
MA trong xu hướng tăng đảm bảo xu hướng tổng thể là tăng
Các loại giao dịch khác
Đường tỷ lệ vàng không được đảm bảo hỗ trợ, giá có thể phá vỡ
Đặt dừng lỗ cố định có thể là tùy ý, nên xem xét điều chỉnh dựa trên biến động
MA xu hướng tăng có thể là breakout sai, nên kiểm tra thêm các chỉ số
Không chắc chắn về chiều dài đảo ngược, cần lợi nhuận hợp lý khi ra khỏi
Kiểm tra các kết hợp khác nhau của các thông số như thời gian BB, SD nhân, tỷ lệ dừng lỗ cố định vv
Thêm thêm các chỉ số để xác định xu hướng thị trường và xác suất đảo ngược, ví dụ như MACD, KD v.v.
Xem xét dừng động, chẳng hạn như ATR hoặc dừng lại
Tối ưu hóa lợi nhuận như di chuyển dừng lợi nhuận, lợi nhuận một phần lấy vv
Chiến lược giao dịch này có nghĩa là đảo ngược bằng cách sử dụng đường tỷ lệ vàng BB, với logic rõ ràng, các tham số đơn giản và giảm giá có thể kiểm soát được. Nhưng cũng có rủi ro, yêu cầu kiểm tra và tối ưu hóa thêm, thêm nhiều chỉ số kỹ thuật cho xu hướng và dừng / thoát tốt hơn trước khi sử dụng thực tế.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 23:59:59 period: 1h basePeriod: 15m 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/ // © mohanee //@version=4 strategy(title="Bollinger Band with Fib Golden Ratio (0.618)", shorttitle="Bollinger Band with Fib Golden Ratio" , overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=20, initial_capital=10000, currency=currency.USD) length = input(50,title="BB Length" , minval=1) src1 = input(hlc3, title="Source") //mult1 = input(1.33, minval=0.001, maxval=50) mult = input(1.5,title="multplier", minval=0.001, maxval=50) stopLoss=input(5,title="Stop Loss",minval=1) basis = vwma(src1, length) dev = mult * stdev(src1, length) //dev3 = mult3 * stdev(src, length) upper_618= basis + (0.618*dev) lower_618= basis - (0.618*dev) //lower_618_dev3= basis - (0.618*dev3) plot_upper618= plot(upper_618, color=color.purple, linewidth=2, title="0.618") plot(basis, color=color.purple,style=plot.style_circles, linewidth=2) plot_lower618= plot(lower_618, color=color.purple, linewidth=2, title="0.618 entry") //plot_lower618_dev3= plot(lower_618_dev3, color=color.red, linewidth=1, title="0.618 stop") //plot_lower618= plot(lower_618, color=color.purple, linewidth=1, title="0.618 entry") ema200=ema(close,200) ema50=ema(close,50) plot (ema200, title="ema200", color=color.orange, linewidth=2) plot (ema50, title="ema50", color=color.blue , linewidth=2) longCondition= ema50 > ema200 strategy.entry(id="BB_Fib618", long=true, when = longCondition and ( close < lower_618 or low <= lower_618) ) strategy.close(id="BB_Fib618", comment="points="+tostring(close - strategy.position_avg_price, "###.##") , when = strategy.position_size >= 1 and crossover(close,upper_618 )) //stoploss exit stopLossVal = strategy.position_size>=1 ? strategy.position_avg_price * ( 1 - (stopLoss/100) ) : 0.00 strategy.close(id="BB_Fib618", comment="SL="+tostring(close - strategy.position_avg_price, "###.##"), when=abs(strategy.position_size)>=1 and close < stopLossVal ) //and close > strategy.position_avg_price )