Chiến lược này tạo ra các tín hiệu giao dịch bằng cách tính toán sự chéo chéo của các chỉ số MACD và RSI. Nó tạo ra các tín hiệu mua và bán khi RSI bị mua quá mức hoặc bán quá mức và sự chéo chéo của MACD xảy ra. Chiến lược kết hợp các lợi thế của hai loại chỉ số khác nhau, xem xét cả xu hướng giá và tình huống mua quá mức / bán quá mức, do đó cải thiện hiệu quả của chiến lược.
Chiến lược chủ yếu sử dụng sự kết hợp của các chỉ số MACD và RSI để tạo ra các tín hiệu giao dịch. MACD thường được sử dụng để xác định xu hướng giá và thay đổi động lực, trong khi RSI được sử dụng để xác định điều kiện mua quá mức / bán quá mức.
Chiến lược đầu tiên tính toán đường nhanh, đường chậm và đường tín hiệu của MACD. Khi đường nhanh lớn hơn đường chậm, một tín hiệu chéo vàng được tạo ra. Khi đường nhanh thấp hơn đường chậm, một tín hiệu chéo chết được tạo ra. Điều này cho thấy xu hướng và động lực giá đang thay đổi.
Đồng thời, chiến lược tính toán chỉ số RSI và thiết lập các đường mua quá mức và bán quá mức. Khi RSI thấp hơn đường bán quá mức, nó chỉ ra bán quá mức. Khi RSI cao hơn đường mua quá mức, nó chỉ ra mua quá mức.
Khi RSI bị mua quá mức / bán quá mức xảy ra, chiến lược tạo ra tín hiệu mua khi MACD giao chéo vàng xảy ra, và tạo ra tín hiệu bán khi MACD giao chéo chết xảy ra. Đó là khi xu hướng giá đảo ngược, chỉ số MACD được sử dụng để nắm bắt các bước ngoặt do độ nhạy của nó. Chỉ số RSI tránh giao dịch sai khi không có quá mức mua / bán quá mức xảy ra.
Chiến lược kết hợp các lợi thế của chỉ số MACD và RSI để cải thiện hiệu quả của nó:
MACD có thể nắm bắt các thay đổi giá một cách nhạy cảm, trong khi RSI xem xét các tình huống mua quá mức / bán quá mức, bổ sung cho nhau.
Kết hợp hai chỉ số có thể lọc ra một số tín hiệu giao dịch ồn ào và giảm các giao dịch không cần thiết.
MACD đo sự khác biệt giữa các đường trung bình động, trong khi RSI đo tỷ lệ thay đổi giá, hai phương pháp có thể xác minh lẫn nhau.
MACD phản ứng nhanh với sự thay đổi giá, trong khi RSI quá mua / quá bán sự khác biệt là rõ ràng, hiệu ứng kết hợp tốt.
Ngoài ra còn có một số rủi ro trong chiến lược này:
Cả MACD và RSI đều dễ bị tổn thương bởi các sự kiện đột ngột, có thể tạo ra các tín hiệu sai.
Hiệu ứng đối với các cổ phiếu cá nhân có thể không lý tưởng, chỉ số hoặc danh mục đầu tư có thể được xem xét.
Sự thỏa mãn cả giao thoa MACD và chỉ số RSI mua quá mức / bán quá mức có thể bỏ lỡ một số cơ hội.
Chiến lược cũng có thể được tối ưu hóa trong các khía cạnh sau:
Tối ưu hóa các thông số MACD và RSI để phù hợp với các loại giao dịch khác nhau.
Thêm chiến lược dừng lỗ để dừng lỗ kịp thời khi lỗ đạt một tỷ lệ phần trăm nhất định.
Kết hợp với các chỉ số khác như Bollinger Bands và KDJ để thiết lập các điều kiện tín hiệu giao dịch nghiêm ngặt hơn.
Chạy chiến lược với dữ liệu tần số cao để sử dụng các tính chất nhanh / chậm của MACD và cải thiện hiệu suất chiến lược.
Theo kết quả backtest, điều chỉnh các đường RSI mua quá mức / bán quá mức để tìm các kết hợp thông số tốt nhất.
Chiến lược chéo MACD và RSI kết hợp theo xu hướng và phán đoán mua quá mức / bán quá mức, có thể nắm bắt hiệu quả các điểm đảo ngược giá và tăng hiệu suất chiến lược.
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // © sabirt strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI') //MACD Settings fastMA = input.int(title='Fast moving average', defval=12, minval=1) slowMA = input.int(title='Slow moving average', defval=26, minval=1) signalLength = input.int(9, minval=1) //RSI settings RSIOverSold = input.int(35, minval=1) RSIOverBought = input.int(80, minval=1) src = close len = input.int(14, minval=1, title='Length') up = ta.rma(math.max(ta.change(src), 0), len) down = ta.rma(-math.min(ta.change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down) wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought [currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength) [prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength) signal = ta.ema(currMacd, signalLength) avg_1 = math.avg(currMacd, signal) crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na avg_2 = math.avg(currMacd, signal) crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold) strategy.close('buy', when=crossoverBear and wasOverbought)