Эта стратегия называется
Стратегия включает в себя два индикатора. Один из них - модифицированный индикатор WMA, который рассчитывает среднюю цену каждой свечи, а затем применяет метод экспоненциальной скользящей средней для определения направления тренда. Другой - индикатор SSL Channel, который использует скользящие средние самых высоких и самых низких цен для определения ценового канала и оценки текущего состояния тренда.
Когда индикатор Modified WMA генерирует сигнал покупки, то есть золотой крест, мы объединяем индикатор SSL Channel, чтобы определить, подходит ли цена в канале. Если тело свечи полностью ниже нижнего предела канала, мы разместим ордер на покупку.
Благодаря изобретательному сочетанию модифицированного индикатора WMA и индикатора SSL Channel эта стратегия создает стабильную и надежную количественную торговую структуру. Она обладает сильной способностью фильтровать рыночный шум, избегая риска покупки на высоких уровнях. При правильной настройке параметров и определенных оптимизациях это будет высокопроизводительная стратегия.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h 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/ // © Darshana_Alwis //@version=5 strategy("VIP", overlay=true, initial_capital=1000,currency=currency.USD,default_qty_type=strategy.percent_of_equity,default_qty_value=100,pyramiding=0) //SSS = Sultan+Saud Strategy //The original idea of the code belonges to saudALThaidy //The strategy code is basically made out of two other indicators, edited and combined by me. // 1- NSDT HAMA Candles => https://www.tradingview.com/script/k7nrF2oI-NSDT-HAMA-Candles/ // 2- SSL Channel => https://www.tradingview.com/script/6y9SkpnV-SSL-Channel/ //MA INFO WickColor = input.color(color.rgb(80, 80, 80, 100), title='Wick Color', tooltip='Suggest Full Transparency.') LengthMA = input.int(100, minval=1, title='MA Line Length', inline='MA Info') TakeProfit = input.float(1, minval=0, title='Take Profit Percentage', step=1) UseStopLose = input.bool(false, title='Use Stop Percentage') StopLose = input.float(1, minval=0, title='StopLose Percentage', step=1) MASource = close ma(source, length, type) => type == "SMA" ? ta.sma(source, length) : type == "EMA" ? ta.ema(source, length) : type == "SMMA (RMA)" ? ta.rma(source, length) : type == "WMA" ? ta.wma(source, length) : type == "VWMA" ? ta.vwma(source, length) : na ma1_color = color.rgb(230, 172, 0) ma1 = ma(high, 200, "SMA") ma2_color = color.red ma2 = ma(low, 200, "SMA") Hlv1 = float(na) Hlv1 := close > ma1 ? 1 : close < ma2 ? -1 : Hlv1[1] sslUp1 = Hlv1 < 0 ? ma2 : ma1 sslDown1 = Hlv1 < 0 ? ma1 : ma2 Color1 = Hlv1 == 1 ? ma1_color : ma2_color fillColor1 = color.new(Color1, 90) highLine1 = plot(sslUp1, title="UP", linewidth=2, color = Color1) lowLine1 = plot(sslDown1, title="DOWN", linewidth=2, color = Color1) OpenLength = 25 HighLength = 20 LowLength = 20 CloseLength = 20 SourceOpen = (open[1] + close[1]) / 2 SourceHigh = math.max(high, close) SourceLow = math.min(low, close) SourceClose = (open + high + low + close) / 4 funcCalcMA1(src1, len1) => ta.ema(src1, len1) funcCalcOpen(SourceOpen, OpenLength) => ta.ema(SourceOpen, OpenLength) funcCalcHigh(SourceHigh, HighLength) => ta.ema(SourceHigh, HighLength) funcCalcLow(SourceLow, LowLength) => ta.ema(SourceLow, LowLength) funcCalcClose(SourceClose, CloseLength) => ta.ema(SourceClose, CloseLength) MA_1 = funcCalcMA1(MASource, LengthMA) CandleOpen = funcCalcOpen(SourceOpen, OpenLength) CandleHigh = funcCalcHigh(SourceHigh, HighLength) CandleLow = funcCalcLow(SourceLow, LowLength) CandleClose = funcCalcClose(SourceClose, CloseLength) //PLOT CANDLES //-------------------------------NSDT HAMA Candels BodyColor = CandleOpen > CandleOpen[1] ? color.rgb(230, 172, 0) : color.red barcolor(BodyColor) plotcandle(CandleOpen, CandleHigh, CandleLow, CandleClose, color=BodyColor, title='HAMA Candles', wickcolor=WickColor, bordercolor=na) plot(MA_1, title='MA Line', color=BodyColor, style=plot.style_line, linewidth=2) //------------------------------SSL Channel plot_buy = false avg = ((high-low)/2)+low LongCondition = (Hlv1 == 1 and Hlv1[1] == -1) and (BodyColor == color.rgb(230, 172, 0)) and (MA_1 < avg) and (CandleHigh < avg) and (strategy.opentrades == 0) if LongCondition strategy.entry("BUY with VIP", strategy.long) plot_buy := true base = strategy.opentrades.entry_price(0) baseProfit = (base+((base/100)*TakeProfit)) baseLose = (base-((base/100)*StopLose)) strategy.exit("SELL with VIP","BUY with VIP",limit = baseProfit) if UseStopLose and (close < MA_1) strategy.exit("SELL with VIP","BUY with VIP",stop = baseLose) if not UseStopLose and (close < MA_1) strategy.exit("SELL with VIP","BUY with VIP", stop = close) plotshape(plot_buy, title="Buy Label", text="Buy", location=location.belowbar, style=shape.labelup, size=size.tiny, color=Color1, textcolor=color.white) fill(highLine1, lowLine1, color = fillColor1)