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


Ngày tạo: 2023-11-07 15:35:58 sửa đổi lần cuối: 2023-11-07 15:35:58
sao chép: 0 Số nhấp chuột: 1004
1
tập trung vào
1617
Người theo dõi

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

Tổng quan

Chiến lược giao chéo đường trung bình RSI là một chiến lược được áp dụng cho giao dịch tiền điện tử. Chiến lược này áp dụng đường trung bình di chuyển cho chỉ số RSI và phát ra tín hiệu mua và bán dựa trên sự giao chéo của RSI với đường trung bình di chuyển của nó.

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

Chiến lược này đầu tiên tính RSI. RSI dựa trên sự thay đổi của giá trong một khoảng thời gian nhất định, phản ánh sức mạnh của giá. RSI lớn hơn 70 là vùng mua quá mức và nhỏ hơn 30 là vùng bán quá mức.

Sau đó, chiến lược này áp dụng moving average dựa trên chỉ số RSI. Moving average có thể lọc các biến động ngẫu nhiên để xác định xu hướng. Ở đây, RSI moving average được thiết lập trong 10 chu kỳ.

Khi RSI vượt qua đường trung bình di chuyển, nó được coi là một tín hiệu mua; khi RSI vượt qua đường trung bình di chuyển, nó được coi là một tín hiệu bán. Giao dịch dựa trên cả hai tín hiệu này.

Trong mã, đầu tiên tính toán chỉ số RSI của chu kỳ dài. Sau đó tính toán trung bình di chuyển của 10 chu kỳ RSI ma. Khi ma vượt qua rsi, mua; khi ma vượt qua rsi, bán.

Ngoài ra, mã cũng vẽ hình đường rsi, ma, và hình cột rsi-ma. vẽ đường phân chia rsi = 70, rsi = 30. Và đánh dấu mũi tên tín hiệu tương ứng trên biểu đồ khi mua và bán.

Phân tích lợi thế chiến lược

  • Chỉ số RSI có thể đánh giá quá mua quá bán, và đường trung bình di chuyển có thể lọc các biến động ngẫu nhiên, kết hợp với nhau để tìm ra điểm chuyển hướng.
  • RSI Average Line Crossover là một chiến lược giao dịch có thể lọc ra một số tín hiệu giả.
  • Mã chiến lược này đơn giản, rõ ràng và dễ hiểu. Các chức năng vẽ được hoàn chỉnh và các tín hiệu giao dịch được quan sát rõ ràng.
  • Chiến lược này được áp dụng cho các loại tiền điện tử có xu hướng rõ ràng và có hiệu quả tốt hơn.

Phân tích rủi ro chiến lược

  • Các tham số chu kỳ của RSI và đường trung bình di chuyển không phù hợp, có thể dẫn đến quá nhiều tín hiệu sai.
  • Chỉ cần dựa vào các chỉ số giao thoa không thể tránh được hoàn toàn bị mắc kẹt.
  • Chi phí giao dịch có thể ảnh hưởng đến lợi nhuận.
  • Thị trường tiền điện tử biến động rất lớn, cần cảnh giác với nguy cơ mất giá.

Đối với rủi ro, bạn có thể điều chỉnh các tham số để tối ưu hóa hiệu quả của chỉ số, cắt giảm vị trí phù hợp, thiết lập đường dừng lỗ và lọc tín hiệu với phân tích xu hướng.

Hướng tối ưu hóa chiến lược

  • Sự kết hợp tốt nhất của RSI và đường trung bình có thể được nghiên cứu theo các tham số khác nhau của chu kỳ
  • Có thể tăng vị thế khi xu hướng mạnh và giảm vị thế khi xu hướng không rõ ràng
  • Có thể thiết lập dừng động để theo dõi xu hướng.
  • Có thể khám phá các chỉ số khác kết hợp với RSI để tạo ra tín hiệu giao dịch mới
  • Mô hình học máy dựa trên chiến lược này có thể được khám phá để nâng cao tỷ lệ chiến lược

Tóm tắt

Chiến lược giao dịch chéo RSI kết hợp các ưu điểm của chỉ số xu hướng và chỉ số lọc, tương đối thành thạo và đáng tin cậy. Lập luận của chiến lược đơn giản và dễ hiểu, thực hiện mã cũng hoàn chỉnh, nói chung là một chiến lược giao dịch tiền điện tử tốt hơn. Nhưng bất kỳ chiến lược nào cũng có nơi cần tối ưu hóa, cần phải liên tục kiểm tra và điều chỉnh, và hỗ trợ phán đoán xu hướng, để có được hiệu quả chiến lược tốt hơn.

Mã nguồn chiến lược
/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI w MA Strategy", shorttitle="RSI w MA Strategy", overlay=false, initial_capital=10000, currency='USD',process_orders_on_close=true)

//TIME FRAME AND BACKGROUND CONTROL/////////////////////////////////////////////
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(01, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
testStopYear = input(2022, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? 
   color.teal : na
//bgcolor(testPeriodBackgroundColor, transp=50)
testPeriod() => true
////////////////////////////////////////////////////////////////////////////////

src = close, len = input(27, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
window = input(10, "RSI MA Window")
ma = sma(rsi,window)
plot(rsi, color=color.orange)
colorr= ma > rsi ? color.red : color.green
plot(ma,color=colorr)
band1 = hline(70)
band0 = hline(30)
fill(band1, band0, color=color.purple, transp=90)
diff = rsi - ma

plot(diff,style= plot.style_columns,transp=50,color = colorr)

plotshape(crossunder(rsi,ma)?rsi:na,title="top",style=shape.triangledown,location=location.absolute,size=size.tiny,color=color.red,transp=0)
plotshape(crossover(rsi,ma)?rsi:na,title="bottom",style=shape.triangleup,location=location.absolute,size=size.tiny,color=color.lime,transp=0)

buySignal = crossover(rsi,ma)
sellSignal = crossunder(rsi,ma)

//TRADE CONTROL/////////////////////////////////////////////////////////////////
if testPeriod()
    if buySignal
        strategy.close("Short", qty_percent = 100, comment = "Close Short")
        strategy.entry("Long", strategy.long, qty=.1)

    if sellSignal
        strategy.close("Long", qty_percent = 100, comment = "Close Long")
        strategy.entry("Short", strategy.short, qty=.1)

////////////////////////////////////////////////////////////////////////////////