
Strategi ini berdagang berdasarkan hubungan silang antara indikator dan harga VWAP. Posisi terbuka terbuka ketika harga melintasi VWAP ke atas dan posisi kosong ketika harga melintasi VWAP ke bawah. Pada saat yang sama, indikator ATR digunakan untuk menghitung stop loss dan stop loss level dinamis untuk mengendalikan risiko dan mengunci keuntungan.
Strategi ini berpusat pada VWAP, menghasilkan sinyal perdagangan dengan silang dengan harga, dan digabungkan dengan ATR untuk mencapai stop loss yang dinamis, mengendalikan risiko penarikan kembali sambil menangkap tren, dan konsep keseluruhan sederhana dan mudah dimengerti. Namun, ada ruang untuk pengoptimalan lebih lanjut, dengan memperkenalkan indikator tambahan, mengoptimalkan logika stop loss, dan menambahkan manajemen dana, strategi ini dapat beradaptasi dengan lebih baik dengan perubahan lingkungan pasar, meningkatkan stabilitas strategi dan kemampuan menghasilkan uang.
/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Hannah Strategy Stop Loss and Take Profit", overlay=true)
// Inputs
cumulativePeriod = input(40, "VWAP Period")
atrPeriod = input(14, "ATR Period")
multiplier = input(1.5, "ATR Multiplier for Stop Loss")
targetMultiplier = input(3, "ATR Multiplier for Take Profit")
// Calculations for VWAP
typicalPrice = (high + low + close) / 3
typicalPriceVolume = typicalPrice * volume
cumulativeTypicalPriceVolume = sum(typicalPriceVolume, cumulativePeriod)
cumulativeVolume = sum(volume, cumulativePeriod)
vwapValue = cumulativeTypicalPriceVolume / cumulativeVolume
// Plot VWAP on the chart
plot(vwapValue, color=color.blue, title="VWAP")
// Entry Conditions based on price crossing over/under VWAP
longCondition = crossover(close, vwapValue)
shortCondition = crossunder(close, vwapValue)
// ATR Calculation for setting dynamic stop loss and take profit
atr = atr(atrPeriod)
// Execute Trades with Dynamic Stop Loss and Take Profit based on ATR
if (longCondition)
strategy.entry("Long", strategy.long)
// Setting stop loss and take profit for long positions
strategy.exit("Long Exit", "Long", stop=close - atr * multiplier, limit=close + atr * targetMultiplier)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Setting stop loss and take profit for short positions
strategy.exit("Short Exit", "Short", stop=close + atr * multiplier, limit=close - atr * targetMultiplier)