
PipShiesty Swagger는 TradingView를 위해 특별히 설계된 기술 거래 전략이다. 이 전략은 WaveTrend의 흔들림 지표 ((WT) 와 거래량 가중 평균 가격 ((VWAP) 을 사용하여 잠재적인 거래 신호를 식별하고, 위험을 관리하며, 가격 차트에 오버 바이와 오버 셀 조건을 시각화한다. 이 전략은 일련의 지수 이동 평균 (EMA) 을 사용하여 흔들림 지표를 계산하고, 간단한 이동 평균 (SMA) 을 통해 신호 라인을 생성하여 거래 신호를 확인하고 잡음을 필터링한다. 이 전략은 또한 위험 관리 및 자본 보호를 위해 거래 당 위험 비율과 평균 실제 범위에 기반한 ATR의 손해 방지 배수와 같은 위험 관리 매개 변수를 포함한다.
PipShiesty Swagger 전략의 핵심은 WaveTrend의 흔들림 지표 ((WT) 와 거래량 중화 평균 가격 ((VWAP)) 이다. WT는 채널 길기와 평균 길이를 두 가지 주요 파라미터를 사용하여, 일련의 지표 이동 평균 ((EMA) 를 평균 가격에 적용하여 계산한다. 이렇게하면 복합 지수를 생성한 다음 추가로 평형 처리한다. VWAP는 지정된 시간 동안 계산되며, 거래량에 대한 평균 거래 가격을 알 수 있는 기준으로 사용되며, 전체적인 트렌드 방향을 결정하는데 도움이 된다.
PipShiesty Swagger는 강력한 기술 거래 전략으로, TradingView의 BTC 15 분 차트에 전용으로 설계되었습니다. WaveTrend의 흔들림 지표와 VWAP를 사용하여 잠재적인 거래 신호를 식별하고, 위험 관리 파라미터를 결합하여 자본을 보호합니다.
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("PipShiesty Swagger", overlay=true)
// WaveTrend Oscillator (WT)
n1 = input.int(10, "Channel Length")
n2 = input.int(21, "Average Length")
obLevel1 = input.float(60.0, "Overbought Level 1")
obLevel2 = input.float(53.0, "Overbought Level 2")
osLevel1 = input.float(-60.0, "Oversold Level 1")
osLevel2 = input.float(-53.0, "Oversold Level 2")
ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)
// VWAP
vwap = ta.vwma(close, n1)
// Signal Line
wt1 = tci
wt2 = ta.sma(wt1, 4)
// Bullish and Bearish Divergences
bullishDivergence = (ta.lowest(close, 5) > ta.lowest(close[1], 5)) and (wt1 < wt1[1]) and (close > close[1])
bearishDivergence = (ta.highest(close, 5) < ta.highest(close[1], 5)) and (wt1 > wt1[1]) and (close < close[1])
// Plot WaveTrend Oscillator
plot(wt1, title="WT1", color=color.blue)
plot(wt2, title="WT2", color=color.red)
// Remove printed signals if price reverses
var bool showBullishSignal = na
var bool showBearishSignal = na
if bullishDivergence
showBullishSignal := true
if bearishDivergence
showBearishSignal := true
// Reset signals if price reverses
if close < ta.lowest(close, 5)
showBullishSignal := false
if close > ta.highest(close, 5)
showBearishSignal := false
plotshape(series=showBullishSignal ? bullishDivergence : na, location=location.belowbar, color=color.green, style=shape.labelup, title="Bullish Divergence")
plotshape(series=showBearishSignal ? bearishDivergence : na, location=location.abovebar, color=color.red, style=shape.labeldown, title="Bearish Divergence")
// Risk Management Parameters
riskPercentage = input.float(1, title="Risk Percentage per Trade", minval=0.1, step=0.1) / 100
stopLossATR = input.float(1.5, title="Stop Loss ATR Multiplier", minval=0.5, step=0.1)
// ATR Calculation
atr = ta.atr(14)
// Position Size Calculation
calculatePositionSize(stopLoss) =>
riskAmount = strategy.equity * riskPercentage
positionSize = riskAmount / stopLoss
// Double the position size
positionSize *= 2
positionSize
// Entry and Exit Logic with Stop Loss
if bullishDivergence
stopLoss = low - atr * stopLossATR
positionSize = calculatePositionSize(close - stopLoss)
strategy.entry("Buy", strategy.long, qty=positionSize)
strategy.exit("Sell", from_entry="Buy", stop=stopLoss)
if bearishDivergence
strategy.close("Buy")
// Plot VWAP
plot(vwap, title="VWAP", color=color.orange)
// Background color to indicate Overbought/Oversold conditions
bgcolor(wt1 > obLevel1 ? color.new(color.red, 90) : na, title="Overbought Level 1")
bgcolor(wt1 < osLevel1 ? color.new(color.green, 90) : na, title="Oversold Level 1")
bgcolor(wt1 > obLevel2 ? color.new(color.red, 70) : na, title="Overbought Level 2")
bgcolor(wt1 < osLevel2 ? color.new(color.green, 70) : na, title="Oversold Level 2")