Strategi ini menggabungkan indikator Bollinger Bands (BB) dan Volume Weighted Average Price (VWAP) untuk membuat keputusan masuk dan keluar.
Strategi ini terutama didasarkan pada aturan berikut untuk masuk dan keluar:
Garis EMA cepat di atas garis EMA lambat sebagai prasyarat untuk menilai tren
Beli saat harga tutup di atas VWAP yang menunjukkan harga naik
Masukkan panjang jika harga penutupan turun di bawah BB band bawah dalam 10 bar terakhir yang menunjukkan anomali harga
Jual saat harga penutupan melebihi band atas BB yang menunjukkan pembalikan harga
Secara khusus, pertama-tama menilai apakah EMA 50 hari di atas EMA 200 hari untuk menentukan tren keseluruhan. Kemudian dikombinasikan dengan VWAP untuk menilai apakah harga berada dalam tren naik jangka pendek. Akhirnya menggunakan Bollinger Bands untuk mendeteksi penurunan anomali jangka pendek sebagai peluang masuk.
Aturan keluar sederhana, keluar ketika harga naik di atas BB band atas menunjukkan pembalikan harga.
Strategi ini menggabungkan beberapa indikator untuk meningkatkan validitas sinyal masuk. Menggunakan EMA untuk menilai tren keseluruhan menghindari perdagangan melawan tren. VWAP menangkap momentum naik jangka pendek. BB mendeteksi anomali jangka pendek sebagai waktu untuk entri.
Untuk mengurangi risiko, parameter EMA dan BB dapat disesuaikan. Uji indikator yang berbeda untuk deteksi tren. Gunakan VWAP dalam jangka waktu yang lebih singkat. Optimalkan parameter BB untuk bandwidth terbaik.
Strategi ini menggabungkan BB dan VWAP untuk mendeteksi anomali harga jangka pendek sebagai waktu masuk. Menggunakan EMA untuk menentukan tren keseluruhan menghindari perdagangan melawan tren. Ini dapat dengan cepat menemukan momentum jangka pendek. Cocok untuk perdagangan intraday dan jangka pendek. Lebih lanjut meningkatkan stabilitas dan profitabilitas dengan mengoptimalkan parameter dan menggabungkan lebih banyak logika.
/*backtest start: 2023-12-04 00:00:00 end: 2024-01-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © mohanee //@version=4 strategy(title="VWAP and BB strategy [EEMANI]", overlay=true,pyramiding=2, default_qty_value=3, default_qty_type=strategy.fixed, initial_capital=10000, currency=currency.USD) //This strategy combines VWAP and BB indicators //BUY RULE //1. EMA50 > EMA 200 //2. if current close > vwap session value //3. check if price dipped BB lower band for any of last 10 candles //EXIT RULE //1. price closes above BB upper band //STOP LOSS EXIT //1. As configured --- default is set to 5% is_price_dipped_bb(pds,source1) => t_bbDipped=false for i=1 to pds t_bbDipped:= (t_bbDipped or close[i]<source1) ? true : false if t_bbDipped==true break else continue t_bbDipped // variables BEGIN shortEMA = input(50, title="fast EMA", minval=1) longEMA = input(200, title="slow EMA", minval=1) //BB smaLength = input(20, title="BB SMA Length", minval=1) bbsrc = input(close, title="BB Source") //addOnDivergence = input(true,title="Add to existing on Divergence") //exitOption = input(title="exit on RSI or BB", type=input.string, options=["RSI", "BB"], defval="BB") //bbSource = input(title="BB source", type=input.string, options=["close", "vwap"], defval="close") //vwap_res = input(title="VWAP Resolution", type=input.resolution, defval="session") stopLoss = input(title="Stop Loss%", defval=5, minval=1) //variables END longEMAval= ema(close, longEMA) shortEMAval= ema(close, shortEMA) vwapVal=vwap(close) // Drawings //plot emas plot(longEMAval, color = color.orange, linewidth = 1, transp=0) plot(shortEMAval, color = color.green, linewidth = 1, transp=0) //bollinger calculation mult = input(2.0, minval=0.001, maxval=50, title="StdDev") basis = sma(bbsrc, smaLength) dev = mult * stdev(bbsrc, smaLength) upperBand = basis + dev lowerBand = basis - dev offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) //bollinger calculation //plot bb //plot(basis, "Basis", color=#872323, offset = offset) p1 = plot(upperBand, "Upper", color=color.teal, offset = offset) p2 = plot(lowerBand, "Lower", color=color.teal, offset = offset) fill(p1, p2, title = "Background", color=#198787, transp=95) plot(vwapVal, color = color.purple, linewidth = 1, transp=0) // Colour background barcolor(shortEMAval>longEMAval and close<=lowerBand ? color.yellow: na) //longCondition= shortEMAval > longEMAval and close>open and close>vwapVal longCondition= shortEMAval >= longEMAval and close>=vwapVal and close>open // close>vwapVal and //Entry strategy.entry(id="VWAP_BB LE", comment="VB LE" , long=true, when= longCondition and is_price_dipped_bb(10,lowerBand) ) //and strategy.position_size<1 //add to the existing position //strategy.entry(id="VWAP_RSI LE", comment="VR LE Add" , long=true, when= addOnDivergence==true and strategy.position_size>=1 and close<strategy.position_avg_price and (close<lowerBand or low<lowerBand) and rsiVal>rsi_buy_line) barcolor(strategy.position_size>=1 ? color.blue: na) strategy.close(id="VWAP_BB LE", comment="TP Exit VB LE", when=crossover(close,upperBand) ) //stoploss stopLossVal = strategy.position_avg_price * (1-(stopLoss*0.01) ) strategy.close(id="VB LE", comment="SL Exit", when= close < stopLossVal)