
Strategi ini adalah sistem perdagangan frekuensi tinggi berdasarkan pelbagai petunjuk teknikal, menggunakan bingkai masa 5 minit, menggabungkan sistem linear, indikator dinamik dan analisis kuantiti transaksi. Strategi ini menyesuaikan diri dengan turun naik pasaran dengan cara penyesuaian dinamik, menggunakan pengesahan pelbagai isyarat untuk meningkatkan ketepatan dan kebolehpercayaan perdagangan.
Strategi ini menggunakan sistem dua garis rata-rata ((9 kitaran dan 21 kitaran EMA) sebagai alat penilaian trend utama, dan digabungkan dengan RSI untuk pengesahan pergerakan. Apabila harga berada di atas garis rata-rata dua dan RSI berada di antara 40-65, sistem akan mencari peluang yang lebih banyak; apabila harga berada di bawah garis rata-rata dua dan RSI berada di antara 35-60, sistem akan mencari peluang yang kosong.
Strategi ini membina sistem perdagangan yang agak lengkap dengan menggunakan kombinasi pelbagai petunjuk teknikal. Kelebihan strategi ini adalah mekanisme pengesahan isyarat berbilang dimensi dan kaedah kawalan risiko yang dinamik. Walaupun terdapat beberapa risiko yang berpotensi, strategi ini masih mempunyai nilai aplikasi yang baik dengan pengoptimuman parameter dan pengurusan risiko yang munasabah.
/*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)