Diese Strategie kombiniert Bollinger Bands (BB) und Volume Weighted Average Price (VWAP) Indikatoren, um Ein- und Ausstiegsentscheidungen zu treffen.
Die Strategie beruht hauptsächlich auf folgenden Ein- und Ausstiegsregeln:
Schnelle EMA-Linie über langsame EMA-Linie als Voraussetzung für die Beurteilung des Trends
Kaufen, wenn der Schlusskurs über dem VWAP liegt, was auf einen Aufwärtstrend hinweist
Eingabe von Long, wenn der Schlusskurs in den letzten 10 Balken unter BB-Unterband gesunken ist, was auf eine Preisanomalie hinweist
Verkaufen, wenn der Schlusskurs über die BB-Obergrenze steigt, die auf eine Preisumkehr hinweist
Insbesondere beurteilt es zuerst, ob die 50-Tage-EMA über der 200-Tage-EMA liegt, um den Gesamttrend zu bestimmen. Dann wird es mit VWAP kombiniert, um zu beurteilen, ob der Preis in einem kurzfristigen Aufwärtstrend ist. Schließlich werden Bollinger-Bänder verwendet, um einen kurzfristigen Anomalieabfall als Einstiegsmöglichkeit zu erkennen.
Die Ausstiegsregel ist einfach: Ausstieg, wenn der Preis über das obere BB-Band steigt, was auf eine Preisumkehr hinweist.
Die Strategie kombiniert mehrere Indikatoren, um die Gültigkeit der Eintrittssignale zu erhöhen. Die Verwendung von EMAs zur Beurteilung des Gesamttrends vermeidet den Handel gegen den Trend. VWAP erfasst kurzfristige Aufwärtsdynamik. BB erkennt kurzfristige Anomalien als Timing für Eintritte.
Um die Risiken zu mindern, können die Parameter von EMA und BB angepasst werden. Testen Sie verschiedene Indikatoren zur Trenddetektion. Verwenden Sie VWAP in kürzerem Zeitrahmen. Optimieren Sie den BB-Parameter für die beste Bandbreite.
Die Strategie kombiniert BB und VWAP, um kurzfristige Preisanomalien als Einstiegszeitpunkt zu erkennen. Die Verwendung von EMAs zur Bestimmung des Gesamttrends vermeidet den Handel gegen den Trend. Es kann schnell kurzfristige Dynamik erkennen. Geeignet für Intraday- und kurzfristigen Handel. Steigert die Stabilität und Rentabilität durch Optimierung von Parametern und Einbeziehung mehr Logik.
/*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)