
PipShiesty Swagger est une stratégie de trading technique spécialement conçue pour TradingView. Cette stratégie utilise l’indicateur de volatilité WaveTrend (WT) et le prix moyen pondéré en volume de transaction (VWAP) pour identifier les signaux de trading potentiels, gérer les risques et visualiser les conditions de survente et de survente sur les graphiques de prix.
La stratégie de PipShiesty Swagger est centrée sur l’indicateur de tendance WaveTrend (WT) et le prix moyen pondéré en volume de transactions (VWAP). WT utilise la longueur des canaux et la longueur moyenne comme deux paramètres principaux et applique les moyennes mobiles (EMA) à la moyenne des prix via une série d’indicateurs. Cela permet de générer un indice composite, puis de le traiter plus en profondeur.
PipShiesty Swagger est une stratégie de trading technique puissante, conçue spécialement pour le graphique de 15 minutes de BTC sur TradingView. Elle utilise l’indicateur de choc WaveTrend et VWAP pour identifier les signaux de trading potentiels, tout en combinant des paramètres de gestion des risques pour protéger les capitaux. Bien que la stratégie présente des perspectives, les traders doivent être prudents lors de sa mise en œuvre et envisager des stratégies d’optimisation pour améliorer sa performance et son adaptabilité.
/*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")