
Chiến lược này sử dụng nguyên tắc mua bán quá mức của chỉ số RSI, kết hợp với RSI đa chu kỳ để phán đoán, để thực hiện hoạt động xuyên chu kỳ. Chiến lược đánh giá tín hiệu mua bán quá mức dựa trên thiết lập chu kỳ của RSI và sử dụng trung bình di chuyển của RSI để lọc, tránh tín hiệu sai. Khi RSI vượt qua đường trung bình di chuyển của nó, nó tạo ra tín hiệu mua và khi vượt qua đường trung bình, nó tạo ra tín hiệu bán, tạo thành một phương thức giao dịch chéo đường trung bình điển hình.
Chiến lược này tạo ra tín hiệu giao dịch chủ yếu thông qua việc đánh giá quá mua quá bán của chỉ số RSI. Chỉ số RSI đại diện cho chỉ số tương đối mạnh, công thức tính toán của nó là: RSI = 100 - (100 / (1 + RS)), trong đó RS bằng với tỷ lệ giữa mức giá đóng cửa trung bình và mức giá đóng cửa trung bình trong một khoảng thời gian.
Chiến lược này đặt một tham số siêu mua cao và một tham số siêu bán thấp, được đánh giá là quá mua khi RSI cao hơn siêu mua và được đánh giá là quá bán khi RSI thấp hơn siêu bán. Trong chiến lược, giá trị mặc định của siêu mua là 70, giá trị mặc định của siêu bán là 30.
Để tạo ra tín hiệu mua và bán, chiến lược sử dụng đường trung bình di chuyển của chỉ số RSI để lọc. Es_compra tạo ra tín hiệu mua khi RSI vượt qua đường trung bình di chuyển của nó và Es_venta tạo ra tín hiệu bán khi vượt qua đường trung bình di chuyển của nó.
Sau khi tạo ra các tín hiệu mua và bán, chiến lược mở vị trí để giao dịch nhiều đầu hoặc trần. Ngoài ra, chiến lược cũng đặt lệnh dừng lỗ và dừng, “%”, để ngăn chặn sự mất mát mở rộng và khóa lợi nhuận.
Sử dụng chỉ số RSI để đánh giá tình trạng quá mua quá bán, tránh theo đuổi giá cao và giá thấp.
Sử dụng đường trung bình di chuyển của chỉ số RSI để lọc sóng, tránh tín hiệu giả.
Kết hợp với thiết lập đa chu kỳ của chỉ số RSI, để có được tín hiệu giao dịch ổn định hơn.
Thiết lập các cơ chế ngăn chặn và kiểm soát rủi ro hiệu quả.
Lập luận của chiến lược đơn giản, rõ ràng, dễ hiểu và sửa đổi.
Các tham số có thể tùy chỉnh, áp dụng cho các giống và chu kỳ khác nhau.
Chỉ số RSI bị tụt hậu, có thể bỏ lỡ thời điểm tốt nhất để giá đảo ngược.
Đường trung bình di chuyển làm cho tín hiệu giao dịch bị trì hoãn, không thể bắt kịp xu hướng đảo ngược.
Cài đặt tham số mua quá mức cố định không đủ linh hoạt, cần điều chỉnh theo chu kỳ và giống khác nhau.
Lưu ý rằng nếu thiết lập một Stop Loss Limit không đúng, nó có thể dẫn đến thua lỗ hoặc mất lợi nhuận.
Các vị thế đầu tư nhiều đầu chỉ có một tay, không thể sử dụng đầy đủ số tiền để giao dịch chênh lệch giá.
Kết hợp với các chỉ số khác như MACD, KD để đánh giá tín hiệu giao dịch.
Ứng dụng theo dõi xu hướng của các đường trung bình di chuyển tự điều chỉnh.
Thiết lập các tham số mua và bán động, điều chỉnh theo mức độ biến động của thị trường.
Tối ưu hóa các thuật toán dừng lỗ như theo dõi dừng lỗ.
Tăng cơ chế quản lý vị trí, điều chỉnh vị trí theo quy mô tài chính.
Thêm bộ lọc xu hướng để tránh giao dịch thường xuyên trong thị trường biến động.
Đánh giá lại các tham số tối ưu hóa và chọn các tham số tối ưu nhất.
Chiến lược này dựa trên chỉ số RSI mua quá mức bán quá mức, sử dụng trung bình di chuyển để lọc tạo ra tín hiệu giao dịch, thực hiện cách giao dịch xuyên chu kỳ điển hình. Chiến lược có cấu trúc logic rõ ràng và thiết lập tham số, có thể áp dụng các tham số cho các giống và chu kỳ khác nhau bằng cách điều chỉnh, là một chiến lược giao dịch xuyên chu kỳ đáng tin cậy và hiệu quả.
/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-30 23:59:59
period: 3m
basePeriod: 1m
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/
// © samuelkanneman
//@version=4
strategy("RSI KANNEMAN")
//////Entrada///////
i_startTime = input(title="Start Date Filter", defval=timestamp("01 Nov 2020 13:30 +0000"), type=input.time, tooltip="Date & time to begin trading from")
i_endTime = input(title="End Date Filter", defval=timestamp("1 Nov 2022 19:30 +0000"), type=input.time, tooltip="Date & time to stop trading")
sobrecompra= input(70, title="Sobre Compra", type=input.integer ,minval=50, maxval=100 )
sobreventa= input(30, title="Sobre Venta", type=input.integer ,minval=0, maxval=50 )
l1=hline(sobrecompra)
l2=hline(sobreventa, color=color.purple)
periodos= input(14, title="Periodos", type=input.integer ,minval=1, maxval=50 )
periodos_media= input(14, title="Logintud media movil", type=input.integer ,minval=1, maxval=200 )
var SL =0.0
var TP=0.0
StopLoss = input(2.0, title="SL %", step=0.2)
TakeProfit = input(5.0, title="TP %", step=0.2)
//////Proceso///////
mi_rsi=rsi(close,periodos)
mm_rsi=sma(mi_rsi,periodos_media)
Es_compra= crossover(mm_rsi,sobreventa)
Es_venta= crossunder(mm_rsi,sobrecompra)
comprado= strategy.position_size > 0
vendido = strategy.position_size < 0
//time to test
dateFilter = true
//timePeriod = time >= timestamp(syminfo.timezone, 2020, 11, 1, 0, 0)
// long
if (not comprado and Es_compra and dateFilter )
// realizar long
cantidad = strategy.equity/hlc3
strategy.entry ("compra", strategy.long , cantidad)
SL := close*(1-(StopLoss/100))
TP := close*(1+(TakeProfit/100))
if close >= TP
strategy.close ("compra" , comment="Salto TP")
if (comprado and Es_venta )
strategy.close ("compra" , comment="Sobre Venta")
if close <= SL
strategy.close ("compra" , comment="Salto SL")
// short
if (not vendido and Es_venta and dateFilter )
// realizar short
cantidad = strategy.equity/hlc3
strategy.entry ("venta", strategy.short , cantidad)
SL := close*(1+(StopLoss/100))
TP := close*(1-(TakeProfit/100))
if close <= TP
strategy.close ("venta" , comment="Salto TP")
if (vendido and Es_compra )
strategy.close ("venta" , comment="Sobre Compra")
if close >= SL
strategy.close ("venta" , comment="Salto SL")
///////Salida//////
fill(l1,l2)
plot(mi_rsi)
plot(mm_rsi, color=color.yellow)
bgcolor(Es_compra ? color.blue : na , transp=0)
bgcolor(Es_venta ? color.red : na , transp=0)
// 1d 70 22 5 4 3 15 6 meses
//1h 70 20 6 4 5 7 1 mese
//15m 70 20 5 4 4 7 1 semana