Chiến lược giao cắt dài-ngắn sử dụng đường trung bình động kép và chỉ báo RSI


Ngày tạo: 2024-02-01 11:48:51 sửa đổi lần cuối: 2024-02-01 11:48:51
sao chép: 0 Số nhấp chuột: 730
1
tập trung vào
1617
Người theo dõi

Chiến lược giao cắt dài-ngắn sử dụng đường trung bình động kép và chỉ báo RSI

Chiến lược này sử dụng hai đường trung bình di chuyển và chỉ số RSI để xây dựng chiến lược giao dịch chéo đa chiều. Chiến lược này có thể nắm bắt xu hướng đường dài và trung bình, đồng thời sử dụng các chỉ số đường ngắn để tránh những biến động không cần thiết.

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

Chiến lược này sử dụng hai nhóm trung bình di chuyển, tức là trung bình di chuyển nhanh (EMA 59 và EMA 82) và trung bình di chuyển chậm (EMA 96 và EMA 95): làm nhiều khi giá từ dưới lên vượt qua trung bình di chuyển nhanh; làm trống khi giá từ trên xuống vượt qua trung bình di chuyển nhanh. Trong khi đó, khu vực mua quá mức của chỉ số RSI được sử dụng để xác nhận tín hiệu giao dịch và dừng lỗ.

Cụ thể, khi EMA nhanh vượt qua EMA chậm, nó sẽ tạo ra một tín hiệu đa đầu. Nếu RSI thấp hơn 30 (vùng bán tháo), thì sẽ có một đầu vào đa đầu.

Lợi thế của việc sử dụng đường trung bình di chuyển đôi là có thể nhận biết tốt hơn sự thay đổi trong xu hướng đường dài. Chỉ số RSI có thể lọc ra một số giao dịch ồn ào do phá vỡ giả.

Lợi thế chiến lược

  • Sử dụng trung bình di chuyển kép để nắm bắt xu hướng đường dài
  • Chỉ số RSI lọc tiếng ồn giao dịch
  • Kết hợp theo xu hướng và đảo ngược giao dịch
  • Logic giao dịch đơn giản và rõ ràng

Phân tích rủi ro

  • Các tín hiệu giao dịch được tạo ra bởi đường trung bình di chuyển có thể bị lừa trong thị trường biến động mạnh
  • Chỉ số RSI có thể không hiệu quả trong một số trường hợp thị trường
  • Thiết lập điểm dừng cần thận trọng, tránh quá thoải mái hoặc cấp bách

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

  • Kiểm tra kết hợp trung bình di chuyển với thời gian dài hơn
  • Thử điều chỉnh các tham số khác nhau, chẳng hạn như thay đổi trong phạm vi RSI
  • Thêm các điều kiện lọc bổ sung, như chỉ số khối lượng giao dịch
  • Tối ưu hóa chiến lược dừng lỗ, kết hợp các chỉ số dừng lỗ động như ATR

Tóm tắt

Chiến lược này kết hợp xu hướng của hai đường trung bình di chuyển theo dõi các giao dịch đảo ngược với chỉ số RSI. Hai EMA theo dõi xu hướng xu hướng đường dài, RSI được sử dụng để xác nhận hiệu quả của tín hiệu giao dịch và dừng lỗ. Đây là một chiến lược giao dịch đa chiều đơn giản và thực tế, có thể thích ứng với các môi trường thị trường khác nhau thông qua điều chỉnh và tối ưu hóa các tham số.

Mã nguồn chiến lược
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Swing Hull/rsi/EMA Strategy", overlay=true,default_qty_type=strategy.cash,default_qty_value=10000,scale=true,initial_capital=10000,currency=currency.USD)

//A Swing trading strategy that use a combination of indicators, rsi for target, hull for overall direction enad ema for entering the martket.
// hull ma copied from syrowof HullMA who copied from mohamed982 :) thanks both
// Performance 

n=input(title="period",defval=500)

n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)



// RSi and Moving averages

length = input( 14 )
overSold = input( 70)
overBought = input( 30)
point = 0.0001
dev= 2

fastLength = input(59)
fastLengthL = input(82)
slowLength = input(96)
slowLengthL = input(95)
price = close

mafast = ema(price, fastLength)
mafastL= ema(price, fastLengthL)
maslow = ema(price, slowLength)
maslowL = ema(price, slowLengthL)
vrsi = rsi(price, length)
cShort =  (crossunder(vrsi, overBought))

condDown = n2 >= n1
condUp = condDown != true
closeLong =  (crossover(vrsi, overSold))
closeShort = cShort 


// Strategy Logic
longCondition = n1> n2
shortCondition = longCondition != true

col =condUp ? lime : condDown ? red : yellow
plot(n1,color=col,linewidth=3)


if (not na(vrsi))
    if shortCondition    
        if (price[0] < maslow[0] and price[1] > mafast[1]) //cross entry
            strategy.entry("SYS-SHORT", strategy.short, comment="short")
strategy.close("SYS-SHORT", when=closeShort) //output logic

if (not na(vrsi))
    if longCondition // swing condition          
        if (price[0] < mafast[0] and price[1] > mafast[1]) //cross entry
            strategy.entry("SYS-LONG", strategy.long, comment="long")
strategy.close("SYS-LONG", when=closeLong) //output logic


// Stop Loss 


sl = input(75)
Stop = sl * 10
Q = 100


strategy.exit("Out Long", "SYS-LONG", qty_percent=Q, loss=Stop)
strategy.exit("Out Short", "SYS-SHORT", qty_percent=Q, loss=Stop)



//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)