
Chiến lược này là một hệ thống giao dịch ngắn hạn dựa trên kết hợp giữa các chỉ số crossover và RSI. Chiến lược sử dụng chỉ số chuyển động trung bình 9 chu kỳ và 21 chu kỳ (EMA) làm cơ sở để đánh giá xu hướng, kết hợp với chỉ số tương đối mạnh (RSI) làm công cụ xác nhận động lực, để quản lý rủi ro bằng cách thiết lập các điểm dừng và dừng cố định. Chiến lược này chủ yếu được áp dụng cho giao dịch ngắn hạn ở mức 5 phút, đặc biệt phù hợp với môi trường thị trường có nhiều biến động.
Lập luận cốt lõi của chiến lược dựa trên sự phối hợp của hai chỉ số kỹ thuật. Đầu tiên, định hướng xu hướng thị trường thông qua sự giao thoa của EMA chu kỳ 9 và EMA chu kỳ 21, được coi là xu hướng tăng khi EMA ngắn hạn đi lên vượt qua EMA dài hạn; được coi là xu hướng giảm khi EMA ngắn hạn đi xuống vượt qua EMA dài hạn.
Chiến lược này được xây dựng bằng cách kết hợp các chỉ số crossover và RSI để xây dựng một hệ thống giao dịch ngắn hạn tương đối hoàn chỉnh. Ưu điểm của chiến lược là tín hiệu rõ ràng, rủi ro có thể kiểm soát được, nhưng cũng có một số không gian cần được tối ưu hóa. Bằng cách thêm các cơ chế như dừng động, lọc thời gian, có thể làm tăng thêm sự ổn định và lợi nhuận của chiến lược.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("abo 3llash - EMA + RSI Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Parameters
emaShortLength = input.int(9, title="Short EMA Length")
emaLongLength = input.int(21, title="Long EMA Length")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
stopLossPercent = input.float(1, title="Stop Loss Percentage") / 100
takeProfitPercent = input.float(2, title="Take Profit Percentage") / 100
// Calculating EMAs and RSI
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
rsi = ta.rsi(close, rsiLength)
// Buy and Sell Conditions
buyCondition = ta.crossover(emaShort, emaLong) and rsi < rsiOverbought
sellCondition = ta.crossunder(emaShort, emaLong) and rsi > rsiOversold
// Plotting the EMAs
plot(emaShort, title="Short EMA", color=color.blue)
plot(emaLong, title="Long EMA", color=color.red)
// Generating buy and sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy Execution
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Set Stop Loss and Take Profit for Buy
stopLossLevel = close * (1 - stopLossPercent)
takeProfitLevel = close * (1 + takeProfitPercent)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=stopLossLevel, limit=takeProfitLevel)
if (sellCondition)
strategy.entry("Sell", strategy.short)
// Set Stop Loss and Take Profit for Sell
stopLossLevel = close * (1 + stopLossPercent)
takeProfitLevel = close * (1 - takeProfitPercent)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=stopLossLevel, limit=takeProfitLevel)