Chiến lược này, được chuyên gia kịch bản Snehashish chế tạo một cách khéo léo, kết hợp sáng tạo các điểm mạnh của Moving Average Convergence Divergence (MACD) và Chỉ số Sức mạnh tương đối (RSI) để xác định các điểm vào và ra thị trường tối ưu. Cách tiếp cận được thiết kế kỹ lưỡng để vào giao dịch dài chính xác khi đường MACD vượt qua đường tín hiệu, miễn là RSI chỉ ra tình trạng bán quá mức trên thị trường chỉ 5 nến trước đó. Thời gian này đảm bảo rằng chiến lược tận dụng các dấu hiệu ban đầu của sự phục hồi thị trường sau khi bán tháo, như được chỉ ra bởi đường chéo MACD.
Đối với các vị trí đóng cửa, chiến lược sử dụng hai điều kiện quan trọng để báo hiệu ra khỏi thị trường. Thứ nhất, giao dịch kết thúc khi biểu đồ MACD trên 0, và đường MACD vượt qua dưới đường tín hiệu, cho thấy một sự đảo ngược tiềm năng trong động lực tăng. Thứ hai, một tín hiệu ra khỏi thị trường được tạo ra nếu chỉ số RSI được tìm thấy ở trạng thái mua quá mức 5 nến trước đó, cho thấy thị trường có thể đã đạt đến đỉnh và có thể hướng tới suy thoái.
Phương pháp của Snehashish kết hợp các chỉ số kỹ thuật này một cách thanh lịch, lọc ra tiếng ồn bằng cách chờ xác nhận từ cả MACD và RSI trong các điều kiện cụ thể, nhằm mục đích giao dịch có xác suất thành công cao hơn.
Nguyên tắc cốt lõi của chiến lược này là kết hợp các chỉ số kỹ thuật MACD và RSI để nắm bắt các bước ngoặt của thị trường với độ chính xác cao hơn. Chiến lược tham gia giao dịch dài khi RSI cho thấy thị trường đã bị bán quá mức trong những ngọn nến gần đây, tiếp theo là đường MACD vượt qua đường tín hiệu. Sự kết hợp này đảm bảo rằng chiến lược mở một vị trí ngay khi hành động giá cho thấy dấu hiệu sớm của một sự đảo ngược tiềm năng.
Đối với các vị trí đóng cửa, chiến lược tập trung vào các tín hiệu đảo ngược xu hướng tiềm năng được chỉ ra bởi MACD và RSI. Nếu biểu đồ MACD trên không và đường MACD vượt qua dưới đường tín hiệu, chiến lược sẽ thoát khỏi giao dịch. Ngoài ra, nếu RSI trước đây cho thấy thị trường đạt mức mua quá mức, nó cũng kích hoạt một vị trí đóng cửa. Cùng với nhau, những điều kiện này ngụ ý rằng chiến lược đóng các vị trí dài khi giá có thể đã đạt đỉnh và đà tăng đang suy giảm.
Nhìn chung, bằng cách kết hợp các tín hiệu được cung cấp bởi MACD và RSI, chiến lược nhằm mục đích mở các vị trí ngay khi một xu hướng cho thấy các dấu hiệu đầu tiên của sự đảo ngược và đóng các vị trí khi xu hướng có thể kết thúc, do đó tối ưu hóa các điểm vào và ra để tăng hiệu suất giao dịch tổng thể.
Để giảm thiểu những rủi ro này, người ta có thể xem xét việc giới thiệu các chỉ số hàng đầu khác như bộ lọc, tối ưu hóa các tham số để phù hợp với các điều kiện thị trường khác nhau và thiết lập dừng lỗ và lấy lợi nhuận phù hợp để quản lý rủi ro trên các giao dịch riêng lẻ.
Bằng cách thực hiện các biện pháp tối ưu hóa này, lợi nhuận điều chỉnh rủi ro của chiến lược có thể được tăng thêm, làm cho nó phù hợp hơn để điều hướng môi trường thị trường luôn thay đổi.
Chiến lược giao dịch dài hạn của Snehashish
Mặc dù chiến lược cho thấy tiềm năng tốt, nhưng nó vẫn mang theo một số rủi ro, chẳng hạn như giao dịch quá mức trong thị trường hỗn loạn và chậm tín hiệu trong xu hướng mạnh. Để giảm thiểu những rủi ro này, người ta có thể xem xét giới thiệu các chỉ số khác, tối ưu hóa cài đặt tham số, nâng cao phân tích môi trường thị trường và cải thiện kích thước vị trí, trong số các biện pháp khác.
Nhìn chung, chiến lược giao dịch dài hạn dựa trên MACD và RSI này cung cấp cho các nhà đầu tư một khuôn khổ đáng tin cậy để nắm bắt các bước ngoặt của thị trường và tối ưu hóa thời gian vào và ra thị trường.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // snehashish 2024 strategy(title='spl Long Strategy', initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, currency='USD', overlay=true) //// Stoploss and Take Profit Parameters // Enable Long Strategy enable_long_strategy = input.bool(true, title='Enable Long Strategy', group='SL/TP For Long Strategy', inline='1') long_stoploss_value = input.float(50, title='Stoploss %', minval=0, group='SL/TP For Long Strategy', inline='2') long_takeprofit_value = input.float(50, title='Take Profit %', minval=0, group='SL/TP For Long Strategy', inline='2') // Enable Short Strategy enable_short_strategy = input.bool(true, title='Enable Short Strategy', group='SL/TP For Short Strategy', inline='3') short_stoploss_value = input.float(50, title='Stoploss %', minval=0, group='SL/TP For Short Strategy', inline='4') short_takeprofit_value = input.float(50, title='Take Profit %', minval=0, group='SL/TP For Short Strategy', inline='4') // Date Range start_date = input.int(1, title='Start Date', minval=1, maxval=31, group='Date Range', inline='1') start_month = input.int(1, title='Start Month', minval=1, maxval=12, group='Date Range', inline='2') start_year = input.int(2023, title='Start Year', minval=1800, maxval=3000, group='Date Range', inline='3') end_date = input.int(1, title='End Date', minval=1, maxval=31, group='Date Range', inline='4') end_month = input.int(12, title='End Month', minval=1, maxval=12, group='Date Range', inline='5') end_year = input.int(2077, title='End Year', minval=1800, maxval=3000, group='Date Range', inline='6') in_date_range = true //// Indicator Inputs // RSI rsi_over_sold = input.int(30, title='Over Sold Level', group='RSI') rsi_over_bought = input.int(70, title='Over Bought Level', group='RSI') rsi_length = input.int(14, title='RSI Length', group='RSI') rsi = ta.rsi(close, rsi_length) // MACD fast_ma = input.int(12, title='FastMA Length', group='MACD') slow_ma = input.int(26, title='SlowMA Length', group='MACD') signal_length = input.int(9, title='Signal Length', group='MACD') [macd_line, signal_line, _] = ta.macd(close, fast_ma, slow_ma, signal_length) //// Strategy Logic was_over_sold = ta.barssince(rsi <= rsi_over_sold) <= 10 was_over_bought = ta.barssince(rsi >= rsi_over_bought) <= 10 crossover_bull = ta.crossover(macd_line, signal_line) crossover_bear = ta.crossunder(macd_line, signal_line) buy_signal = was_over_sold and crossover_bull and in_date_range sell_signal = was_over_bought and crossover_bear and in_date_range // Long Strategy if (enable_long_strategy and buy_signal) strategy.entry('Long', strategy.long) strategy.exit('Long SL/TP', from_entry='Long', stop=strategy.position_avg_price * (1 - long_stoploss_value / 100), limit=strategy.position_avg_price * (1 + long_takeprofit_value / 100)) // Short Strategy if (enable_short_strategy and sell_signal) strategy.entry('Short', strategy.short) strategy.exit('Short SL/TP', from_entry='Short', stop=strategy.position_avg_price * (1 + short_stoploss_value / 100), limit=strategy.position_avg_price * (1 - short_takeprofit_value / 100))