
Strategi ini berdagang berdasarkan hubungan silang antara indikator VWAP dengan harga. Ia membuka kedudukan lebih tinggi apabila harga melintasi VWAP ke atas, dan kosong apabila ia melintasi VWAP ke bawah. Ia juga menggunakan indikator ATR untuk mengira tahap hentian dan hentian dinamik untuk mengawal risiko dan mengunci keuntungan.
Strategi ini berpusat pada VWAP, menghasilkan isyarat dagangan dengan silang dengan harga, dan pada masa yang sama menggabungkan ATR untuk mewujudkan stop loss yang dinamik, mengawal risiko penarikan balik sambil menangkap trend, dan idea keseluruhannya mudah difahami. Tetapi strategi ini mempunyai ruang untuk pengoptimuman lebih lanjut, dengan memperkenalkan petunjuk tambahan, mengoptimumkan logik stop loss, dan memasukkan pengurusan wang, dan sebagainya, untuk menyesuaikan diri dengan lebih baik dengan keadaan pasaran yang berubah-ubah, meningkatkan kestabilan strategi dan keuntungan.
/*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)