
Chiến lược này là hệ thống theo dõi xu hướng đa tín hiệu dựa trên đường trung bình động kép và chỉ số sức mạnh tương đối (RSI). Chiến lược này áp dụng trong khung thời gian 1 giờ và sử dụng sự giao nhau của đường trung bình động ngắn hạn và dài hạn cũng như mức quá mua và quá bán của RSI để xác định xu hướng thị trường và cơ hội giao dịch. Hệ thống này sử dụng kết hợp đường trung bình động đơn giản (SMA) 9 kỳ và 21 kỳ, kết hợp với chỉ báo RSI 14 kỳ để xây dựng một hệ thống giao dịch theo dõi xu hướng và xác nhận động lượng hoàn chỉnh.
Logic cốt lõi của chiến lược này dựa trên các yếu tố chính sau:
Chiến lược này xây dựng một hệ thống giao dịch theo dõi xu hướng tương đối hoàn chỉnh bằng cách kết hợp hệ thống đường trung bình động và chỉ báo RSI. Khái niệm thiết kế chiến lược tập trung vào độ tin cậy của tín hiệu và kiểm soát rủi ro, phù hợp với giao dịch theo xu hướng trung và dài hạn. Mặc dù có một số hạn chế cố hữu, hiệu suất chung của chiến lược này dự kiến sẽ được cải thiện hơn nữa thông qua các hướng tối ưu hóa được đề xuất. Mã chiến lược được chuẩn hóa chuyên nghiệp và có khả năng mở rộng tốt. Đây là hệ thống giao dịch đáng để nghiên cứu và thực hành chuyên sâu.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-16 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Vitaliby
//@version=5
strategy("Vitaliby MA and RSI Strategy", overlay=true)
// Входные параметры для настройки
shortMALength = input.int(9, title="Short MA Length")
longMALength = input.int(21, title="Long MA Length")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
// Расчет скользящих средних и RSI
shortMA = ta.sma(close, shortMALength)
longMA = ta.sma(close, longMALength)
rsi = ta.rsi(close, rsiLength)
// Определение условий для входа и выхода
longCondition = ta.crossover(shortMA, longMA) and rsi > rsiOversold
shortCondition = ta.crossunder(shortMA, longMA) and rsi < rsiOverbought
// Отображение сигналов на графике
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
// Отображение скользящих средних на графике
plot(shortMA, color=color.blue, title="Short MA")
plot(longMA, color=color.orange, title="Long MA")
// Отображение RSI на отдельном окне
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.purple, title="RSI")
// Управление позициями
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.close("Long")
if (shortCondition)
strategy.entry("Short", strategy.short)
if (longCondition)
strategy.close("Short")