Tất cả nội dung bằng tiếng Anh
Chiến lược này xác định tín hiệu giao dịch bằng cách sử dụng chỉ số RSI để xác định điều kiện mua quá mức / bán quá mức và kết hợp với chỉ số Bollinger Bands để mô tả phạm vi dao động giá. Nó tạo ra tín hiệu mua và bán khi RSI hiển thị mức mua quá mức hoặc bán quá mức, trong khi giá đang tiếp cận hoặc chạm vào các dải trên hoặc dưới Bollinger Bands. Chiến lược tổng hợp phân tích xu hướng và phán quyết dao động để tìm kiếm cơ hội một cách năng động.
Chiến lược này chủ yếu dựa trên hai chỉ số:
Nó tính toán chỉ số RSI cho một khoảng thời gian nhất định và xác định xem nó có đi vào khu vực mua quá mức hoặc bán quá mức theo các thông số đã được đặt trước, như ngưỡng mua quá mức ở mức 40 và ngưỡng bán quá mức ở mức 45.
Nó tính toán các Bollinger Bands cho một khoảng thời gian và sử dụng các dải trên và dưới để tạo thành một kênh giá, mô tả phạm vi dao động giá.
Dựa trên những điều trên, các quy tắc giao dịch là:
Khi chỉ số RSI vượt trên 45 vào vùng bán quá mức, và giá vượt trên dải dưới Bollinger, tạo tín hiệu mua. Khi chỉ số RSI vượt dưới 40 vào vùng mua quá mức, và giá vượt dưới dải trên Bollinger, tạo tín hiệu bán.
Những lợi thế của việc kết hợp RSI và Bollinger Bands bao gồm:
RSI xác định mức mua quá mức / bán quá mức, Bollinger Bands xác định hướng xu hướng giá, bổ sung cho nhau.
Bollinger Bands có thể phục vụ như mức dừng lỗ để kiểm soát rủi ro.
Các thông số đơn giản làm cho nó dễ dàng thực hiện và backtest.
Các thông số RSI có thể được tối ưu hóa để xác định phạm vi mua/bán quá tốt nhất.
Các đầu vào giá khác nhau có thể được sử dụng để thích nghi với các môi trường thị trường khác nhau.
Ngoài ra còn có một số rủi ro với chiến lược này:
Chiều rộng Bollinger Bands quá mức dẫn đến kỳ vọng dừng lỗ xấu.
Cài đặt tham số RSI không chính xác gây ra đánh giá mức mua/bán quá mức không chính xác.
Không thể xác định chính xác các điểm đảo ngược xu hướng, nguy cơ mất tín hiệu.
Không thể kiểm soát hiệu quả lỗ, nguy cơ dừng lỗ bị ảnh hưởng bởi biến động giá đáng kể.
Một số cách để tối ưu hóa chiến lược:
Tối ưu hóa các thông số RSI để xác định phạm vi mua/bán quá mức lý tưởng.
Tối ưu hóa tham số chiều rộng Bollinger Bands để kiểm soát phạm vi dừng lỗ.
Thêm các chỉ số khác để xác định sự đảo ngược xu hướng và tránh mất tín hiệu.
Áp dụng các mô hình học máy để xác định thời gian giao dịch.
Sử dụng các bộ tham số khác nhau dựa trên môi trường thị trường khác nhau.
Thêm cơ chế dừng lỗ năng động.
Phát triển các chương trình tối ưu hóa tham số tự động.
Tóm lại, bằng cách kết hợp RSI và Bollinger Bands, chiến lược này tạo thành các quyết định giao dịch tương đối vững chắc. Logic đơn giản và rõ ràng, tốt cho kiểm soát rủi ro, nhưng có chỗ cho tối ưu hóa. Cải thiện thêm chiến lược thông qua tối ưu hóa tham số, tối ưu hóa stop loss, kết hợp thuật toán vv có thể làm cho nó thích nghi hơn với môi trường thị trường phức tạp. Chiến lược cung cấp các ý tưởng để xây dựng các hệ thống giao dịch và đáng để nghiên cứu và áp dụng thêm.
/*backtest start: 2023-08-18 00:00:00 end: 2023-09-17 00:00:00 period: 2h 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/ // © Mdemoio //@version=4 strategy("Madri", shorttitle="Madri", overlay=true) // Version 1.1 ///////////// RSI RSIlength = input(2,title="A") RSIoverSold = 45 RSIoverBought = 40 price = close vrsi = rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input(150, minval=1,title="B") BBmult = 2// input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation") BBbasis = sma(price, BBlength) BBdev = BBmult * stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev source = close buyEntry = crossover(source, BBlower) sellEntry = crossunder(source, BBupper) ///////////// Colors //switch1=input(true, title="Enable Bar Color?") //switch2=input(true, title="Enable Background Color?") //TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? green : na //barcolor(switch1?TrendColor:na) //bgcolor(switch2?TrendColor:na,transp=50) ///////////// RSI + Bollinger Bands Strategy if (not na(vrsi)) if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower)) strategy.entry("RSI_BB_L", strategy.long, stop=BBlower, comment="Buy") else strategy.cancel(id="RSI_BB_L") if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper)) strategy.entry("RSI_BB_S", strategy.short, stop=BBupper, comment="Sell") else strategy.cancel(id="RSI_BB_S") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)