Strategi ini adalah sistem perdagangan frekuensi tinggi berdasarkan pelbagai penunjuk teknikal, menggunakan jangka masa 5 minit dan menggabungkan purata bergerak, penunjuk momentum, dan analisis jumlah. Strategi ini menyesuaikan diri dengan turun naik pasaran melalui penyesuaian dinamik dan menggunakan pelbagai pengesahan isyarat untuk meningkatkan ketepatan dan kebolehpercayaan perdagangan. Konsep teras terletak pada menangkap trend pasaran jangka pendek melalui gabungan pelbagai dimensi penunjuk teknikal sambil menggunakan mekanisme stop-loss dinamik untuk kawalan risiko.
Strategi ini menggunakan sistem purata bergerak berganda (EMA 9 tempoh dan 21 tempoh) sebagai alat penentuan trend utama, digabungkan dengan RSI untuk pengesahan momentum. Peluang panjang dicari apabila harga berada di atas kedua-dua EMA dan RSI adalah antara 40-65, sementara peluang pendek dipertimbangkan apabila harga berada di bawah kedua-dua EMA dan RSI adalah antara 35-60. Di samping itu, strategi ini menggabungkan mekanisme pengesahan jumlah yang memerlukan jumlah semasa melebihi 1.2 kali jumlah purata bergerak 20 tempoh. Penggunaan VWAP lebih lanjut memastikan arah perdagangan sejajar dengan trend arus perdana intraday.
Strategi ini membina sistem perdagangan yang agak lengkap melalui gabungan beberapa penunjuk teknikal. Kekuatannya terletak pada mekanisme pengesahan isyarat berbilang dimensi dan kaedah kawalan risiko dinamik. Walaupun terdapat beberapa risiko berpotensi, strategi ini mengekalkan nilai praktikal yang baik melalui pengoptimuman parameter dan pengurusan risiko yang betul.
/*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)