Chiến lược giao cắt xu hướng trung bình động RSI


Ngày tạo: 2023-11-28 17:03:56 sửa đổi lần cuối: 2023-11-28 17:03:56
sao chép: 1 Số nhấp chuột: 776
1
tập trung vào
1619
Người theo dõi

Chiến lược giao cắt xu hướng trung bình động RSI

Tổng quan

Chiến lược RSI Moving Average Crossover Trend là một chiến lược sử dụng tín hiệu chéo đường trung bình của chỉ số RSI để xác định xu hướng và phát tín hiệu giao dịch. Chiến lược này kết hợp với EMA của giá và chỉ phát tín hiệu mua khi giá cao hơn EMA.

Nguyên tắc chiến lược

Chỉ số cốt lõi của chiến lược này là RSI, đồng thời tính toán hai đường trung bình của RSI là EMA và SMA. Chỉ khi đường EMA của RSI cao hơn đường SMA và giá cao hơn đường EMA, tín hiệu mua sẽ được gửi; khi đường EMA của RSI thấp hơn đường SMA, tín hiệu bán sẽ được gửi, theo dõi xu hướng.

Chỉ số RSI có thể phản ánh hiệu quả quá mức mua quá mức bán trên thị trường. Nếu chỉ số RSI vượt quá 70 được coi là thị trường quá mức mua, và nếu nó vượt quá 30 được coi là quá mức bán. Chiến lược này sử dụng hai đường trung bình di chuyển EMA và SMA để tìm ra xu hướng và điểm biến của chỉ số RSI.

Khi RSI EMA bắt đầu tăng lên, cho thấy thị trường có dấu hiệu ổn định, SMA được sử dụng để xác minh hướng của nó; Khi SMA cũng bắt đầu tăng lên, cho thấy RSI rõ ràng đã đi vào xu hướng tăng, thì chiến lược sẽ phát ra tín hiệu mua, theo dõi xu hướng với giả định giá cao hơn EMA.

Phân tích lợi thế

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

Chiến lược này cũng kết hợp với EMA của giá để đảm bảo chỉ mua trong xu hướng giá tăng và tránh rủi ro của tình trạng biến động, do đó tăng khả năng lợi nhuận.

Phân tích rủi ro

Chiến lược này chủ yếu dựa trên chỉ số RSI, khi RSI tạo ra tín hiệu sai, chiến lược này cũng sẽ phát ra tín hiệu sai. Ngoài ra, chỉ số RSI phù hợp hơn để đánh giá hiện tượng bán tháo quá mức, có một sự chậm trễ trong việc đánh giá xu hướng đường dài giữa.

Chiến lược này cũng có một khoảng thời gian bị trễ, đặc biệt là khi EMA và SMA trung bình của RSI bị cân bằng, sẽ dẫn đến sự trì hoãn tín hiệu. Trong thời gian này, cũng có một số rủi ro mất mát.

Hướng tối ưu hóa

  1. Có thể xem xét tối ưu hóa RSI, chọn tham số phù hợp hơn, tăng hiệu quả phán đoán của nó.

  2. Có thể xem xét thêm logic dừng lỗ, rút khỏi vị trí sau khi thua lỗ đạt đến một mức độ nhất định, kiểm soát rủi ro hiệu quả.

  3. Các thiết lập tham số có thể được thử nghiệm trong các chu kỳ thời gian khác nhau, tối ưu hóa các tham số để chiến lược có thể hoạt động ổn định trên nhiều giống và nhiều chu kỳ hơn.

Tóm tắt

Chiến lược RSI đường trung bình, một chiến lược đơn giản sử dụng chỉ số RSI để xác định hướng xu hướng và xác minh chéo. Nó kết hợp với EMA giá, có thể nắm bắt cơ hội định hướng trong xu hướng tăng. Chiến lược này có tính ổn định cao, phù hợp với đường dài trung bình, nhưng cũng cần lưu ý để phòng ngừa một số rủi ro bị tụt hậu.

Mã nguồn chiến lược
/*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)