Chiến lược này được gọi là Chiến lược giao dịch thị trường xung đột kết hợp MACD và RSI. Chiến lược này được thiết kế đặc biệt cho thị trường biến động crypto gần đây đang mở rộng, tạo ra tín hiệu giao dịch bằng cách kết hợp MACD và RSI.
MACD là chỉ số chênh lệch trung bình di chuyển, có thể xác định xu hướng thị trường và xu hướng đảo ngược. Khi MACD trên đường nhanh vượt qua đường chậm, nó tạo ra tín hiệu mua; và dưới đường nhanh vượt qua đường chậm, nó tạo ra tín hiệu bán.
RSI là một chỉ số tương đối mạnh mẽ, đánh giá thị trường quá mua quá bán. RSI cao hơn 50 là quá mua, thấp hơn 50 là quá bán. Chiến lược này sử dụng chỉ số RSI để lọc một phần tín hiệu tiếng ồn được tạo ra bởi chỉ số MACD.
Chiến lược giao dịch cụ thể là:
Khi MACD đi qua đường chậm trên đường nhanh, đại diện cho xu hướng ngắn hạn từ đà giảm, nhưng phải xác nhận tín hiệu mua khi RSI thấp (<< tham số mặc định) để tránh thua lỗ khi đảo ngược vùng quá mua;
Khi MACD đi qua đường chậm dưới đường nhanh, đại diện cho xu hướng ngắn hạn từ đà giảm xuống, nhưng phải ở mức cao của RSI ((cao hơn tham số mặc định) để xác nhận tín hiệu bán để tránh thua lỗ đảo ngược trong khu vực bán tháo.
Chiến lược này được áp dụng cho thị trường biến động ngang của tiền điện tử gần đây phát triển hơn, nắm bắt cơ hội đảo ngược mức cao và thấp để kiếm lợi nhuận. Tuy nhiên, phải có biện pháp ngăn chặn để hạn chế tổn thất đơn lẻ. Ngoài ra, các tham số MACD và RSI cần được điều chỉnh theo thị trường để tạo ra tín hiệu giao dịch đáng tin cậy hơn.
Nhìn chung, việc sử dụng kết hợp các chỉ số MACD và RSI có thể giúp cải thiện hiệu quả chiến lược giao dịch của thị trường. Tuy nhiên, không có chỉ số kỹ thuật nào có thể dự đoán thị trường một cách hoàn hảo, nhà giao dịch cũng cần phải duy trì sự phán đoán về xu hướng thị trường và điều chỉnh chiến lược linh hoạt.
/*backtest
start: 2022-09-06 00:00:00
end: 2023-03-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Range Strat - MACD/RSI",
overlay=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100, precision=2, initial_capital=100,
pyramiding=2,
commission_value=0.05)
// Make input options that configure backtest date range
startDate = input(title="Start Date", defval=13)
startMonth = input(title="Start Month", defval=6)
startYear = input(title="Start Year", defval=2022)
endDate = input(title="End Date", defval=1)
endMonth = input(title="End Month", defval=7)
endYear = input(title="End Year", defval=2200)
// Look if the close time of the current bar
// falls inside the date range
inDateRange = (time >= timestamp(syminfo.timezone, startYear,
startMonth, startDate, 0, 0)) and
(time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))
// RSI Settings
length = input( 14 )
overSold = input( 55 )
overBought = input( 50 )
price = open
vrsi = ta.rsi(price, length)
cu = (vrsi <= overSold)
co = (vrsi >= overBought)
//MACD Settings
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ta.ema(open, fastLength) - ta.ema(open, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD
MACDco = ta.crossover(delta, 0)
MACDcu = ta.crossunder(delta, 0)
// Strategy Entry
if (not na(vrsi))
if (inDateRange and MACDco and cu)
strategy.entry("LONG", strategy.long, comment="LONG")
if (inDateRange and MACDcu and co)
strategy.entry("SHORT", strategy.short, comment="SHORT")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)