
La estrategia combina dos indicadores, el Brin’s Band (BB) y el típico precio-valor promedio (VWAP) para tomar decisiones de compra y venta. Puede detectar anomalías en los precios a corto plazo y luego realizar operaciones que son adecuadas para operaciones de corta línea.
La estrategia consiste en comprar y vender de acuerdo con las siguientes reglas:
La línea EMA rápida es más alta que la línea EMA lenta como requisito previo para juzgar la tendencia
Comprar cuando el precio de cierre es superior al VWAP
Si una de las 10 líneas K anteriores tiene un precio de cierre por debajo de la línea inferior de Brin, se considera una compra anormal
Cuando el precio de cierre es superior a la salida de Brin, el precio se invierte y se vende
En concreto, la estrategia primero determina si la EMA de 50 días es superior a la EMA de 200 días, utiliza la EMA lenta y rápida para determinar la tendencia general. Luego, en combinación con el VWAP, determina si el precio está en una tendencia alcista en el corto plazo.
La regla de salida es más simple: cuando el precio es más alto que la banda de Brin, el precio se ha invertido y se retira.
Esta estrategia combina las excepciones de varios indicadores para determinar el precio y aumenta la eficacia de las señales de entrada. El uso de EMA para determinar una gran tendencia evita la operación de reversión. La combinación de VWAP permite capturar oportunidades de alza de precios a corto plazo.
Para estos riesgos, se puede ajustar adecuadamente el parámetro de ciclo de EMA o probar otros indicadores de juicio de tendencias importantes. El parámetro VWAP se aplica a los datos intradiarios o se ajusta a otros indicadores de línea corta. Se ajusta el parámetro de la banda de Bryn para encontrar la amplitud óptima.
La estrategia combina dos indicadores, el Brin Belt y el VWAP, para determinar las anomalías de precios a corto plazo como momento de entrada. Utiliza la EMA para determinar las grandes tendencias para evitar operaciones contraproducentes. Puede descubrir rápidamente oportunidades de tendencias de precios cortas.
/*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)