
Strategi ini menggabungkan tiga indikator teknis VWAP, RSI, dan Bollinger Bands untuk mencapai strategi perdagangan kuantitatif yang sederhana dan mudah digunakan melalui stop loss stop loss dinamis. Gagasan utama strategi ini adalah menggunakan indikator VWAP untuk menilai pergerakan harga dalam jangka waktu yang lalu, sekaligus menggabungkan indikator RSI dan indikator Bollinger Bands untuk menentukan apakah harga berada di zona overbought atau oversold, sehingga dapat menentukan sinyal perdagangan. Setelah sinyal perdagangan ditentukan, strategi ini akan menghitung harga stop loss dinamis berdasarkan indikator ATR, untuk mengendalikan risiko dan mengunci keuntungan.
Strategi ini menggabungkan tiga indikator teknis VWAP, RSI, dan Brin-band untuk menghasilkan strategi perdagangan kuantitatif yang sederhana dan mudah digunakan. Strategi ini mengadopsi cara stop loss yang dinamis untuk mengontrol risiko dan mengunci keuntungan secara efektif. Meskipun ada beberapa risiko potensial dalam strategi ini, tetapi dengan pengaturan parameter yang masuk akal dan pengoptimalan terus menerus, yakinlah bahwa strategi ini dapat memberikan hasil yang baik dalam perdagangan nyata.
/*backtest
start: 2024-06-06 00:00:00
end: 2024-06-13 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("VWAP and RSI Strategy", overlay=true)
// VWAP calculation
vwap = ta.vwap(close)
// RSI calculation
rsi_length = 16
rsi = ta.rsi(close, rsi_length)
// Bollinger Bands calculation
bb_length = 14
bb_std = 2.0
[bb_middle, bb_upper, bb_lower] = ta.bb(close, bb_length, bb_std)
// Variables for VWAP signal calculation
backcandles = 15
float vwapsignal = na
// Function to check if last 15 candles are above or below VWAP
calc_vwapsignal(backcandles) =>
upt = true
dnt = true
for i = 0 to backcandles - 1
if close[i] < vwap[i]
upt := false
if close[i] > vwap[i]
dnt := false
if upt and dnt
3
else if upt
2
else if dnt
1
else
0
// Calculate VWAP signal for each bar
vwapsignal := calc_vwapsignal(backcandles)
// Calculate total signal
totalsignal = 0
if vwapsignal == 2 and close <= bb_lower and rsi < 45
totalsignal := 2
else if vwapsignal == 1 and close >= bb_upper and rsi > 55
totalsignal := 1
// Define strategy entry and exit conditions
slatr = 1.2 * ta.atr(7)
TPSLRatio = 1.5
if (totalsignal == 2 and strategy.opentrades == 0)
strategy.entry("Long", strategy.long, stop=close - slatr, limit=close + slatr * TPSLRatio)
if (totalsignal == 1 and strategy.opentrades == 0)
strategy.entry("Short", strategy.short, stop=close + slatr, limit=close - slatr * TPSLRatio)
// Additional exit conditions based on RSI
if (strategy.opentrades > 0)
if (strategy.position_size > 0 and rsi >= 90)
strategy.close("Long")
if (strategy.position_size < 0 and rsi <= 10)
strategy.close("Short")