
Ini adalah strategi perdagangan pilihan yang dinamik berdasarkan pelbagai petunjuk teknikal yang bertujuan untuk mengenal pasti peluang perdagangan yang berkemungkinan tinggi melalui analisis meluas terhadap turun naik, trend dan dinamik pasaran. Strategi ini menggabungkan beberapa petunjuk teknikal seperti purata gelombang sebenar (ATR), pita Brin (BB), indeks yang agak lemah (RSI) dan purata harga yang ditimbang dengan jumlah transaksi (VWAP) untuk membentuk kerangka keputusan perdagangan yang komprehensif.
Prinsip teras strategi adalah menggunakan pelbagai isyarat pasaran untuk membina keputusan perdagangan. Ia terdiri daripada langkah-langkah utama berikut:
Strategi ini membina kerangka perdagangan pilihan yang agak kukuh melalui analisis pelbagai faktor. Ia menyediakan pedagang dengan kaedah perdagangan yang sistematik melalui penggunaan komprehensif petunjuk teknikal, kawalan risiko dan mekanisme keluar dinamik. Walau bagaimanapun, strategi perdagangan apa pun memerlukan pengesahan dan pengoptimuman yang berterusan.
Tempoh 5 minit:
15 minit:
/*backtest
start: 2024-03-31 00:00:00
end: 2025-03-29 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Vinayz Options Stratergy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=2)
// ---- Input Parameters ----
atrPeriod = input(14, title="ATR Period")
bbLength = input(20, title="BB Period")
bbStdDev = input(2, title="BB Std Dev")
rsiPeriod = input(14, title="RSI Period")
atrMultiplier = input(1.5, title="ATR Trailing Stop Multiplier")
vwapLength = input(20, title="VWAP Length")
targetMultiplier = input(2, title="Target Multiplier") // Target set at 2x ATR
maxHoldingBars = input(3, title="Max Holding Period (Bars)")
// ---- Indicator Calculations ----
atrValue = ta.atr(atrPeriod)
smaValue = ta.sma(close, bbLength)
upperBB = smaValue + bbStdDev * ta.stdev(close, bbLength)
lowerBB = smaValue - bbStdDev * ta.stdev(close, bbLength)
rsiValue = ta.rsi(close, rsiPeriod)
vwap = ta.vwma(close, vwapLength)
// ---- Volume Spike/Breakout Detection ----
volSMA = ta.sma(volume, 10)
volSpike = volume > volSMA * 1.5
// ---- ATR Volatility Filter to Avoid Low Volatility Zones ----
atrFilter = atrValue > ta.sma(atrValue, 20) * 0.5
// ---- Long Call Entry Conditions ----
longCE = ta.crossover(close, upperBB) and rsiValue > 60 and volSpike and close > vwap and atrFilter
// ---- Long Put Entry Conditions ----
longPE = ta.crossunder(close, lowerBB) and rsiValue < 40 and volSpike and close < vwap and atrFilter
// ---- Stop Loss and Target Calculation ----
longStopLoss = strategy.position_size > 0 ? strategy.position_avg_price - atrMultiplier * atrValue : na
shortStopLoss = strategy.position_size < 0 ? strategy.position_avg_price + atrMultiplier * atrValue : na
longTarget = strategy.position_size > 0 ? strategy.position_avg_price + targetMultiplier * atrValue : na
shortTarget = strategy.position_size < 0 ? strategy.position_avg_price - targetMultiplier * atrValue : na
// ---- Buy/Sell Logic ----
if (longCE)
strategy.entry("CE Entry", strategy.long)
label.new(bar_index, high, "BUY CE", color=color.green, textcolor=color.white, yloc=yloc.abovebar, size=size.small, tooltip="Buy CE Triggered")
if (longPE)
strategy.entry("PE Entry", strategy.short)
label.new(bar_index, low, "BUY PE", color=color.red, textcolor=color.white, yloc=yloc.belowbar, size=size.small, tooltip="Buy PE Triggered")
// ---- Exit Conditions ----
if (strategy.position_size > 0)
// Exit Long CE on Target Hit
if (close >= longTarget)
strategy.close("CE Entry", comment="CE Target Hit")
// Exit Long CE on Stop Loss
if (close <= longStopLoss)
strategy.close("CE Entry", comment="CE Stop Loss Hit")
// Time-Based Exit after 3 candles
if (bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) >= maxHoldingBars)
strategy.close("CE Entry", comment="CE Timed Exit")
if (strategy.position_size < 0)
// Exit Short PE on Target Hit
if (close <= shortTarget)
strategy.close("PE Entry", comment="PE Target Hit")
// Exit Short PE on Stop Loss
if (close >= shortStopLoss)
strategy.close("PE Entry", comment="PE Stop Loss Hit")
// Time-Based Exit after 3 candles
if (bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) >= maxHoldingBars)
strategy.close("PE Entry", comment="PE Timed Exit")
// ---- Plotting ----
plot(upperBB, color=color.green, title="Upper BB")
plot(lowerBB, color=color.red, title="Lower BB")
plot(rsiValue, title="RSI", color=color.blue, linewidth=1)
hline(60, "Overbought", color=color.blue)
hline(40, "Oversold", color=color.blue)
plot(vwap, color=color.orange, linewidth=1, title="VWAP")
// ---- Plot Volume Breakout/Spike ----
barcolor(volSpike ? color.yellow : na, title="Volume Spike Indicator")
//plotshape(volSpike, title="Volume Breakout", location=location.bottom, style=shape.triangleup, color=color.purple, size=size.small, text="Spike")
// ---- Alerts ----
alertcondition(longCE, "CE Buy Alert", "Bank Nifty CE Buy Triggered!")
alertcondition(longPE, "PE Buy Alert", "Bank Nifty PE Buy Triggered!")