
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.
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ả.
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ố.
/*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)