Chiến lược này được đặt tên là
MACD là chỉ số chênh lệch hội tụ trung bình động, đánh giá xu hướng thị trường và đảo ngược.
RSI là chỉ số sức mạnh tương đối, đo lường các điều kiện mua quá mức và bán quá mức. RSI trên 50 cho thấy trạng thái mua quá mức, trong khi dưới 50 là bán quá mức. Chiến lược này sử dụng RSI để lọc một số tín hiệu ồn ào từ MACD.
Logic giao dịch là như sau:
Khi giao thoa MACD xảy ra với đường nhanh vượt qua đường chậm, nó cho thấy xu hướng ngắn hạn đang thay đổi từ giảm lên, nhưng tín hiệu mua chỉ được xác nhận khi RSI ở mức thấp (dưới thông số đã đặt trước) để tránh sốc trong các khu vực mua quá mức.
Khi giao thoa MACD xảy ra với đường nhanh vượt qua dưới đường chậm, nó báo hiệu xu hướng ngắn hạn đảo ngược từ trên xuống, nhưng tín hiệu bán chỉ được xác nhận khi RSI đạt mức cao (trên tham số đã đặt trước) để tránh sốc trong các khu vực quá bán.
Chiến lược này phù hợp với các thị trường tiền điện tử dao động và dao động hiện tại để nắm bắt các cơ hội đảo ngược ở mức cao và thấp để kiếm lợi nhuận. Nhưng dừng lỗ nên được áp dụng để hạn chế lỗ giao dịch duy nhất. Ngoài ra, các thông số MACD và RSI cần tối ưu hóa phù hợp với thị trường để có các tín hiệu đáng tin cậy.
Tóm lại, kết hợp MACD và RSI có thể cải thiện hiệu quả chiến lược cho các thị trường dao động. Nhưng không có chỉ số nào có thể dự đoán hoàn hảo thị trường. Các nhà giao dịch vẫn cần phán đoán 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)