이 전략은
이 전략은 두 가지 지표를 포함합니다. 하나는 수정 WMA 지표로 각 촛불의 평균 가격을 계산하고 추세 방향을 결정하기 위해 기하급수적인 이동 평균 방법을 적용합니다. 다른 하나는 SSL 채널 지표로 가장 높고 가장 낮은 가격의 이동 평균을 사용하여 가격 채널을 결정하고 현재 트렌드 상태를 판단합니다.
수정된 WMA 지표가 구매 신호를 생성하면, 즉, 황금 십자가, 우리는 채널의 가격이 적합하는지 결정하기 위해 SSL 채널 지표를 결합합니다. 촛불 몸체가 채널의 하위 한계 아래 완전히 있다면, 우리는 구매 명령을합니다.
수정된 WMA 지표와 SSL 채널 지표의 기발한 조합을 통해이 전략은 안정적이고 신뢰할 수있는 양적 거래 프레임워크를 구축합니다. 높은 수준에서 구매 위험을 피하면서 시장 소음을 필터 할 수있는 강력한 능력을 가지고 있습니다. 적절한 매개 변수 설정과 특정 최적화와 함께 매우 뛰어난 전략이 될 것입니다.
/*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)