Chiến lược này là một hệ thống giao dịch tần số cao dựa trên nhiều chỉ số kỹ thuật, sử dụng khung thời gian 5 phút và kết hợp trung bình động, chỉ số động lực và phân tích khối lượng. Chiến lược thích nghi với biến động thị trường thông qua điều chỉnh năng động và sử dụng nhiều xác nhận tín hiệu để cải thiện độ chính xác và độ tin cậy giao dịch. Khái niệm cốt lõi nằm trong việc nắm bắt xu hướng thị trường ngắn hạn thông qua sự kết hợp đa chiều của các chỉ số kỹ thuật trong khi sử dụng các cơ chế dừng lỗ năng động để kiểm soát rủi ro.
Chiến lược này sử dụng một hệ thống trung bình động kép (9 giai đoạn và EMA 21 giai đoạn) làm công cụ xác định xu hướng chính, kết hợp với chỉ số RSI để xác nhận đà. Các cơ hội dài được tìm kiếm khi giá trên cả EMA và chỉ số RSI nằm trong khoảng 40-65, trong khi các cơ hội ngắn được xem xét khi giá dưới cả EMA và chỉ số RSI nằm trong khoảng 35-60. Ngoài ra, chiến lược này kết hợp một cơ chế xác nhận khối lượng yêu cầu khối lượng hiện tại vượt quá 1,2 lần khối lượng trung bình động 20 giai đoạn. Việc sử dụng VWAP đảm bảo thêm hướng giao dịch phù hợp với xu hướng chính trong ngày.
Chiến lược này xây dựng một hệ thống giao dịch tương đối hoàn chỉnh thông qua sự kết hợp của nhiều chỉ số kỹ thuật. Sức mạnh của nó nằm trong cơ chế xác nhận tín hiệu đa chiều và các phương pháp kiểm soát rủi ro năng động. Mặc dù có một số rủi ro tiềm ẩn, chiến lược duy trì giá trị thực tế tốt thông qua tối ưu hóa tham số và quản lý rủi ro thích hợp. Các nhà giao dịch được khuyên nên tiến hành kiểm tra kỹ lưỡng trước khi thực hiện trực tiếp và điều chỉnh các tham số theo điều kiện thị trường cụ thể.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Optimized Nifty MidCap Select Options 5-min Intraday Strategy", overlay=true) // Parameters emaShortPeriod = input.int(9, title="Short EMA") emaLongPeriod = input.int(21, title="Long EMA") rsiPeriod = input.int(14, title="RSI Period") rsiOverbought = input.int(65, title="RSI Overbought Level") // More conservative than 70 rsiOversold = input.int(35, title="RSI Oversold Level") // More conservative than 30 atrLength = input.int(14, title="ATR Length") atrMultiplier = input.float(1.5, title="ATR Multiplier") volumeMultiplier = input.float(1.2, title="Volume Multiplier") // For confirming high-volume trades // EMA Calculation emaShort = ta.ema(close, emaShortPeriod) emaLong = ta.ema(close, emaLongPeriod) // RSI Calculation rsiValue = ta.rsi(close, rsiPeriod) // ATR Calculation atrValue = ta.atr(atrLength) // VWAP Calculation vwapValue = ta.vwap(close) // Volume Check volumeCondition = volume > ta.sma(volume, 20) * volumeMultiplier // Define long and short conditions // Long Condition: // Price above both EMAs, RSI not overbought, price above VWAP, and high volume longCondition = (close > emaShort) and (close > emaLong) and (rsiValue > 40 and rsiValue < rsiOverbought) and (close > vwapValue) and volumeCondition // Short Condition: // Price below both EMAs, RSI not oversold, price below VWAP, and high volume shortCondition = (close < emaShort) and (close < emaLong) and (rsiValue < 60 and rsiValue > rsiOversold) and (close < vwapValue) and volumeCondition // Entry logic if (longCondition) strategy.entry("Buy Call", strategy.long) if (shortCondition) strategy.entry("Buy Put", strategy.short) // Dynamic Take Profit and Stop Loss based on ATR takeProfitLevel = strategy.position_avg_price * (1 + atrValue * atrMultiplier / 100) stopLossLevel = strategy.position_avg_price * (1 - atrValue * atrMultiplier / 100) // Exit strategy based on ATR levels strategy.exit("Take Profit/Stop Loss", from_entry="Buy Call", limit=takeProfitLevel, stop=stopLossLevel) strategy.exit("Take Profit/Stop Loss", from_entry="Buy Put", limit=takeProfitLevel, stop=stopLossLevel) // Plotting indicators plot(emaShort, title="9 EMA", color=color.blue) plot(emaLong, title="21 EMA", color=color.red) hline(rsiOverbought, "RSI Overbought", color=color.red) hline(rsiOversold, "RSI Oversold", color=color.green) plot(vwapValue, title="VWAP", color=color.purple)