
Cette stratégie combine deux indicateurs, la bande de Brin (BB) et la moyenne de la valeur du prix typique (VWAP) pour prendre des décisions d’achat et de vente. Elle permet de détecter des anomalies de prix à court terme et de négocier, ce qui convient aux transactions à court terme.
La stratégie consiste essentiellement à acheter et à vendre selon les règles suivantes:
La ligne EMA rapide est supérieure à la ligne EMA lente comme condition préalable pour juger de la tendance
Lorsque le prix de clôture est supérieur au VWAP, le prix est considéré comme augmenté et acheté
Si une des 10 lignes K précédentes a un prix de clôture inférieur à celui de la voie descendante de Brin, elle est considérée comme un achat anormal.
Lorsque le prix de clôture est supérieur à la hausse de Brin, le prix est considéré comme inversé et vendu.
Plus précisément, la stratégie détermine d’abord si l’EMA de 50 jours est supérieure à l’EMA de 200 jours, en utilisant l’EMA rapide pour déterminer la tendance générale. Ensuite, en combinaison avec le VWAP, pour déterminer si le prix est en hausse à court terme.
La règle d’exit est plus simple: lorsque le prix est supérieur à la barre de Brin, le prix est considéré comme ayant fait un revers et s’est retiré.
Cette stratégie combine plusieurs indicateurs pour juger des anomalies de prix, ce qui augmente l’efficacité des signaux d’entrée. L’utilisation de l’EMA pour juger des tendances majeures permet d’éviter les opérations de revers. La combinaison du VWAP permet de capturer les opportunités de hausse des prix à court terme.
Pour ces risques, il est possible d’ajuster le paramètre de la période EMA de manière appropriée ou d’essayer d’autres indicateurs de jugement de la grande tendance. Le paramètre VWAP est utilisé pour les données intraday ou adapté à d’autres indicateurs de courte ligne.
La stratégie combine deux indicateurs, les bandes de Brin et le VWAP, pour déterminer les anomalies de prix à court terme comme moment d’entrée. L’utilisation de l’EMA pour déterminer les grandes tendances évite les opérations de contre-courant. Des opportunités de tendances de prix à court terme peuvent être rapidement découvertes.
/*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)