
Ini adalah strategi perdagangan berbalik rata-rata berdasarkan nilai rata-rata bertimbangan nilai (VWAP) dan saluran standard deviasi. Strategi ini mencari peluang perdagangan dengan mengenal pasti sejauh mana harga menyimpang dari VWAP, melakukan perdagangan terbalik apabila harga melanggar sempadan saluran standard deviasi, dan melonggarkan apabila harga kembali ke VWAP.
Strategi ini berpusat pada pembentukan ruang dagangan dengan mengira perbezaan piawai antara VWAP dan turun naik harga. Implementasi khusus termasuk:
Ini adalah strategi neutral yang berdasarkan prinsip statistik, menangkap penyimpangan dan pulangan harga melalui VWAP dan saluran standard deviasi. Strategi ini mempunyai ciri objektif dan sistematik, tetapi perlu memberi perhatian kepada kawalan risiko dan pengoptimuman parameter dalam aplikasi praktikal. Kestabilan dan kebolehpercayaan strategi dapat ditingkatkan lagi dengan menambahkan penapis trend dan memperbaiki mekanisme kawalan angin.
/*backtest
start: 2024-12-03 00:00:00
end: 2024-12-10 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jklonoskitrader
//@version=5
strategy("ETHUSD VWAP Fade Strategy", overlay=true)
// Input for standard deviation multiplier
std_multiplier = input.float(2.0, title="Standard Deviation Multiplier")
// Calculate cumulative VWAP
cumulative_pv = ta.cum(close * volume) // Cumulative price * volume
cumulative_vol = ta.cum(volume) // Cumulative volume
vwap = cumulative_pv / cumulative_vol // VWAP calculation
// Calculate standard deviation of the closing price
length = input.int(20, title="Standard Deviation Length")
std_dev = ta.stdev(close, length)
upper_band = vwap + std_multiplier * std_dev
lower_band = vwap - std_multiplier * std_dev
// Plot VWAP and its bands
plot(vwap, color=color.blue, linewidth=2, title="VWAP")
plot(upper_band, color=color.red, linewidth=1, title="Upper Band")
plot(lower_band, color=color.green, linewidth=1, title="Lower Band")
// Strategy conditions
go_long = ta.crossunder(close, lower_band)
go_short = ta.crossover(close, upper_band)
// Execute trades
if (go_long)
strategy.entry("Long", strategy.long)
if (go_short)
strategy.entry("Short", strategy.short)
// Exit strategy
if (strategy.position_size > 0 and close > vwap)
strategy.close("Long")
if (strategy.position_size < 0 and close < vwap)
strategy.close("Short")