Chiến lược này kết hợp các chỉ số Brin và Fibonacci để thực hiện giao dịch đa chỉ số. Đây là một loại chiến lược chỉ số kết hợp điển hình. Chiến lược này sử dụng Brin để xác định hướng xu hướng và Fibonacci để xác định mức kháng cự hỗ trợ quan trọng, từ đó tạo ra tín hiệu giao dịch.
Chiến lược này được đánh giá dựa trên hai chỉ số sau:
Tính toán đường lên, đường giữa và đường xuống trong vòng Brin. Giá phá vỡ đường xuống để làm nhiều tín hiệu, phá vỡ đường lên để làm tín hiệu trống.
Hai điểm Fibonacci quan trọng được tính dựa trên các mức cao và thấp lịch sử là 0% và 100%. Hai điểm này có thể hoạt động như các điểm hỗ trợ và kháng cự quan trọng.
Các giao dịch được thực hiện theo các logic sau:
Đánh dấu nhiều hơn: giá trên băng thông Brin trên đường ray và ở trên 0% Fibonacci
Tín hiệu thả: Giá vượt qua đường ray bên dưới và dưới 100% kháng Fibonacci
Căn khoang bằng phẳng được sử dụng để tham chiếu đến đường ray trung tâm, dừng hoặc dừng gần đường ray trung tâm.
Những biện pháp sau đây có thể làm giảm nguy cơ:
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Tìm tỷ lệ tham số tốt nhất để tính toán đường ray lên xuống
Các tham số chu kỳ khác nhau trong tính toán rút lui của thử nghiệm
Ví dụ, quan sát hình dạng đường K khi băng Brin bị phá vỡ
Xem xét các phương pháp giảm tổn thất với chức năng theo dõi
Các tham số khác nhau không nhất thiết phải giống nhau, cần điều chỉnh
Chiến lược này đã cải thiện chất lượng tín hiệu giao dịch bằng cách kết hợp các chỉ số rút lui của Fibonacci và Brin, sử dụng các ưu điểm kỹ thuật của mỗi bên. Tuy nhiên, cũng có những vấn đề như khó tối ưu hóa tham số, điều kiện nhập cảnh quá nghiêm ngặt. Chúng ta có thể hoàn thiện hệ thống chiến lược bằng cách thiết lập tham số tối ưu hóa, mở rộng điều kiện nhập cảnh thích hợp, cải thiện cơ chế ngăn chặn tổn thất và các phương pháp khác để giành được nhiều cơ hội giao dịch hơn trong khi vẫn giữ được ưu thế kỹ thuật của nó.
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands & Fibonacci Strategy", shorttitle="BB & Fib Strategy", overlay=true)
// Initialize position variables
var bool long_position = false
var bool short_position = false
// Bollinger Bands settings
length = input.int(20, title="Bollinger Bands Length")
src = input(close, title="Source")
mult = input.float(2.0, title="Standard Deviation Multiplier")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper_band = basis + dev
lower_band = basis - dev
// Fibonacci retracement levels
fib_0 = input.float(0.0, title="Fibonacci 0% Level", minval=-100, maxval=100) / 100
fib_100 = input.float(1.0, title="Fibonacci 100% Level", minval=-100, maxval=100) / 100
// Plotting Bollinger Bands
plot(upper_band, color=color.red, title="Upper Bollinger Band")
plot(lower_band, color=color.green, title="Lower Bollinger Band")
// Calculate Fibonacci levels
fib_range = ta.highest(high, 50) - ta.lowest(low, 50)
fib_high = ta.highest(high, 50) - fib_range * fib_0
fib_low = ta.lowest(low, 50) + fib_range * fib_100
// Plot Fibonacci retracement levels
plot(fib_high, color=color.blue, title="Fibonacci High")
plot(fib_low, color=color.orange, title="Fibonacci Low")
// Entry conditions
long_condition = ta.crossover(close, upper_band) and low > fib_low
short_condition = ta.crossunder(close, lower_band) and high < fib_high
// Plot arrows on the chart
plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Entry and exit logic
if long_condition and not short_position
strategy.entry("Long", strategy.long)
long_position := true
short_position := false
if short_condition and not long_position
strategy.entry("Short", strategy.short)
short_position := true
long_position := false
// Exit conditions (you can customize these)
long_exit_condition = ta.crossunder(close, basis)
short_exit_condition = ta.crossover(close, basis)
if long_exit_condition
strategy.close("Long")
long_position := false
if short_exit_condition
strategy.close("Short")
short_position := false