Chiến lược xu hướng chéo giữa RSI Moving Average

Tác giả:ChaoZhang, Ngày: 2023-11-28 17:03:56
Tags:

img

Tổng quan

Chiến lược xu hướng chéo trung bình di chuyển RSI là một chiến lược sử dụng các tín hiệu chéo trung bình di chuyển của chỉ số RSI để xác định xu hướng và phát ra các tín hiệu giao dịch. Chiến lược cũng kết hợp EMA giá, chỉ phát ra tín hiệu mua khi giá trên EMA.

Chiến lược logic

Chỉ số cốt lõi của chiến lược này là RSI. Nó tính toán cả EMA và SMA của RSI. Các tín hiệu mua chỉ được phát hành khi RSI EMA trên SMA trong khi giá trên EMA. Các tín hiệu bán được phát hành khi RSI EMA giảm xuống dưới SMA để theo xu hướng.

Chỉ số RSI có thể phản ánh hiệu quả các điều kiện mua quá nhiều và bán quá nhiều trên thị trường. Bước vượt trên 70 trên chỉ số RSI được coi là mua quá nhiều trong khi bước xuống dưới 30 là bán quá nhiều. Chiến lược này sử dụng EMA và SMA để phát hiện xu hướng và điểm chuyển hướng của chỉ số RSI. EMA phản ứng nhanh hơn với những thay đổi giá gần đây trong khi SMA dựa nhiều hơn vào dữ liệu cũ hơn. Hai đường dây này hoạt động cùng nhau.

Khi chỉ số RSI EMA bắt đầu tăng, nó báo hiệu ổn định trên thị trường. SMA sau đó xác minh hướng. Khi chỉ số SMA cũng bắt đầu tăng, nó xác nhận chỉ số RSI đang trong xu hướng tăng. Chiến lược bây giờ sẽ phát ra tín hiệu mua vì giá trên EMA để theo xu hướng.

Phân tích lợi thế

Đây là một chiến lược theo xu hướng, có khả năng nắm bắt hiệu quả các cơ hội định hướng trong trung hạn đến dài hạn. So với các chỉ số đơn lẻ, chiến lược này sử dụng giao thoa RSI EMA và SMA để xác minh, giảm tín hiệu sai và tăng sự ổn định.

Chiến lược cũng kết hợp EMA giá để đảm bảo mua chỉ trong xu hướng tăng giá, tránh rủi ro của thị trường giới hạn phạm vi và cải thiện lợi nhuận.

Phân tích rủi ro

Chiến lược dựa chủ yếu trên chỉ số RSI. Các tín hiệu RSI sai sẽ dẫn đến các tín hiệu chiến lược sai. Ngoài ra, RSI phù hợp hơn để xác định mức mua quá mức / bán quá mức với một số sự chậm trễ trong việc nắm bắt xu hướng trung dài hạn.

Cũng có thể có một số thời gian trễ, đặc biệt là khi RSI EMA và SMA bị giới hạn phạm vi hơn.

Hướng dẫn tối ưu hóa

  1. RSI có thể được tối ưu hóa bằng cách chọn các thông số phù hợp hơn để tăng hiệu quả.

  2. Logic dừng lỗ có thể được thêm vào các vị trí thoát sau khi lỗ đạt đến một số mức nhất định để quản lý rủi ro hiệu quả.

  3. Các thông số có thể được thử nghiệm và tối ưu hóa trong các khung thời gian khác nhau để chiến lược có thể chạy ổn định trên nhiều sản phẩm và thời gian hơn.

Tóm lại

Chiến lược xu hướng giao thoa trung bình chuyển động RSI là một chiến lược theo xu hướng đơn giản sử dụng RSI để xác định hướng xu hướng và giao thoa để xác minh. Nó kết hợp EMA giá để mua trên xu hướng tăng. Chiến lược có sự ổn định cao cho việc nắm giữ trung dài hạn nhưng cần quản lý rủi ro chậm trễ.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Created by Sv3nla 5-Jan-2021
strategy(title="Sv3nla RSI EMA SMA Strat", shorttitle="Sv3nla RSI EMA SMA Strat", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === BACKTEST RANGE ===
FromMonth = input(defval = 5, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2015, title = "From Year", minval = 2015)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2022) 
// syminfo.mintick = 0.01$ for BTCUSDT

testPeriod() => true

//INPUTS
rsilen = input(defval = 16, minval=1, title="RSILength")
RSIemaLen = input(defval = 12, minval=1, title="RSI EMA Length")
RSIsmaLen2 = input(defval = 29, minval=1, title="RSI SMA Length2")
length = input(defval = 8, minval=1, title="EMA price Length")

// RSI
RSIsrc = close
RSIup = rma(max(change(RSIsrc), 0), rsilen)
RSIdown = rma(-min(change(RSIsrc), 0), rsilen)
rsi = RSIdown == 0 ? 100 : RSIup == 0 ? 0 : 100 - 100 / (1 + RSIup / RSIdown)
emavalue=ema(rsi,RSIemaLen)
smavalue=sma(rsi,RSIsmaLen2)

//EMA
ema=ema(close,length)

//PLOT
plot(ema(rsi, RSIemaLen), color=color.yellow, linewidth=2, title="EMA", transp=0)
plot(sma(rsi, RSIsmaLen2), color=color.aqua, linewidth=2, title="SMA", transp=0)

//ORDERS
if (testPeriod())
    strategy.entry("long",strategy.long, comment="RSIEMA", when=(emavalue > smavalue and close>ema))
    strategy.close(id="long", when=(emavalue < smavalue))

// Colour background when in a trade and 50 horizontal line
backgroundColour = (strategy.position_size > 0) ? color.green : na    
bgcolor(color=backgroundColour, transp=85)
hline(50, color=color.yellow)

Thêm nữa