Esta estratégia combina os indicadores Bollinger Bands (BB) e Volume Weighted Average Price (VWAP) para tomar decisões de entrada e saída.
A estratégia baseia-se principalmente nas seguintes regras de entrada e saída:
Linha EMA rápida acima da linha EMA lenta como pré-requisito para julgar a tendência
Comprar quando o preço de fechamento estiver acima do VWAP indicando preço ascendente
Insira longo se o preço de fechamento tiver caído abaixo da faixa inferior BB nas últimas 10 barras, indicando anomalia de preço
Vender quando o preço de fechamento ultrapassar a faixa superior BB indicando a inversão do preço
Especificamente, primeiro julga se a EMA de 50 dias está acima da EMA de 200 dias para determinar a tendência geral. Em seguida, combinado com o VWAP para julgar se o preço está em uma tendência de alta de curto prazo. Finalmente, usando Bandas de Bollinger para detectar queda de anomalia de curto prazo como oportunidade de entrada.
A regra de saída é simples, saída quando o preço ultrapassa a faixa superior BB indicando a reversão do preço.
A estratégia combina vários indicadores para aumentar a validade dos sinais de entrada. Usando EMAs para julgar a tendência geral evita a negociação contra a tendência.
Para mitigar os riscos, os parâmetros da EMA e BB podem ser ajustados. Teste diferentes indicadores para detecção de tendência. Use VWAP em menor prazo. Otimize o parâmetro BB para melhor largura de banda.
A estratégia combina BB e VWAP para detectar anomalias de preços de curto prazo como tempo de entrada. Usando EMAs para determinar a tendência geral evita a negociação contra a tendência. Pode detectar rapidamente o impulso de curto prazo. Adequado para negociação intradiária e de curto prazo. Melhora ainda mais a estabilidade e a lucratividade, otimizando parâmetros e incorporando mais lógica.
/*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)