Chiến lược này kết hợp các chỉ số Bollinger Bands (BB) và Volume Weighted Average Price (VWAP) để đưa ra quyết định nhập và xuất.
Chiến lược này chủ yếu dựa trên các quy tắc sau đây cho nhập cảnh và xuất cảnh:
Đường EMA nhanh trên đường EMA chậm là điều kiện tiên quyết để đánh giá xu hướng
Mua khi giá đóng cửa trên VWAP cho thấy giá tăng
Nhập dài nếu giá đóng giảm xuống dưới BB dưới đường băng dưới trong 10 thanh cuối cùng cho thấy sự bất thường của giá
Bán khi giá đóng cửa vượt quá dải trên BB cho thấy sự đảo ngược giá
Cụ thể, nó đầu tiên đánh giá xem EMA 50 ngày có trên EMA 200 ngày để xác định xu hướng tổng thể. Sau đó kết hợp với VWAP để đánh giá xem giá có trong xu hướng tăng ngắn hạn hay không. Cuối cùng sử dụng Bollinger Bands để phát hiện sự sụt giảm bất thường ngắn hạn như cơ hội nhập cảnh.
Quy tắc thoát là đơn giản, thoát khi giá vượt quá dải trên BB cho thấy sự đảo ngược giá.
Chiến lược này kết hợp nhiều chỉ số để tăng tính hợp lệ của tín hiệu nhập cảnh. Sử dụng EMA để đánh giá xu hướng tổng thể tránh giao dịch chống lại xu hướng. VWAP nắm bắt đà tăng ngắn hạn. BB phát hiện các bất thường ngắn hạn như thời gian cho các mục nhập.
Để giảm thiểu rủi ro, các tham số của EMA và BB có thể được điều chỉnh. Kiểm tra các chỉ số khác nhau để phát hiện xu hướng. Sử dụng VWAP trong khung thời gian ngắn hơn. Tối ưu hóa tham số BB để có băng thông tốt nhất.
Chiến lược này kết hợp BB và VWAP để phát hiện sự bất thường về giá trong ngắn hạn như thời gian nhập cảnh. Sử dụng EMA để xác định xu hướng tổng thể tránh giao dịch chống lại xu hướng. Nó có thể nhanh chóng phát hiện đà ngắn hạn. Thích hợp cho giao dịch trong ngày và ngắn hạn. Tăng cường thêm sự ổn định và lợi nhuận bằng cách tối ưu hóa các thông số và kết hợp thêm logic.
/*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)