Cette stratégie combine les bandes de Bollinger (BB) et les indicateurs de prix moyen pondéré par volume (VWAP) pour prendre des décisions d'entrée et de sortie.
La stratégie repose principalement sur les règles suivantes pour l'entrée et la sortie:
Ligne EMA rapide au-dessus de la ligne EMA lente comme condition préalable pour juger de la tendance
Acheter lorsque le prix de clôture est supérieur à VWAP indiquant un prix à la hausse
Entrez long si le prix de clôture est tombé en dessous de la bande inférieure BB au cours des 10 dernières barres indiquant une anomalie des prix
Vendre lorsque le prix de clôture dépasse la bande supérieure BB indiquant un renversement de prix
Plus précisément, il juge d'abord si l'EMA de 50 jours est supérieure à l'EMA de 200 jours pour déterminer la tendance globale. Puis combiné avec VWAP pour juger si le prix est dans une tendance haussière à court terme. Enfin, en utilisant les bandes de Bollinger pour détecter une baisse d'anomalie à court terme comme opportunité d'entrée.
La règle de sortie est simple, sortie lorsque le prix dépasse la bande supérieure BB indiquant l'inversion du prix.
La stratégie combine plusieurs indicateurs pour augmenter la validité des signaux d'entrée. L'utilisation des EMA pour juger de la tendance globale évite les transactions contre tendance.
Pour atténuer les risques, les paramètres de l'EMA et du BB peuvent être ajustés. Testez différents indicateurs pour détecter la tendance. Utilisez VWAP dans un délai plus court. Optimisez le paramètre BB pour une meilleure bande passante.
La stratégie combine BB et VWAP pour détecter les anomalies de prix à court terme en tant que timing d'entrée. L'utilisation des EMA pour déterminer la tendance globale évite de négocier contre tendance. Elle peut rapidement détecter l'élan à court terme. Convient pour le trading intradien et à court terme. Améliore davantage la stabilité et la rentabilité en optimisant les paramètres et en incorporant plus de logique.
/*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)