PipShiesty Swagger is a technical trading strategy designed specifically for TradingView. The strategy leverages the WaveTrend Oscillator (WT) and Volume Weighted Average Price (VWAP) to identify potential trade signals, manage risk, and visualize overbought and oversold conditions on a price chart. The oscillator is calculated using a series of exponential moving averages (EMA) applied to the average price, resulting in a composite index that is further smoothed. The strategy also includes a signal line, which is a simple moving average (SMA) of the WaveTrend Oscillator, to confirm trade signals and filter out noise. Additionally, the strategy incorporates risk management parameters, such as a risk percentage per trade and a stop loss multiplier based on the Average True Range (ATR), to manage risk and protect capital.
The core of the PipShiesty Swagger strategy lies in the WaveTrend Oscillator (WT) and the Volume Weighted Average Price (VWAP). The WT uses two primary parameters, the channel length and the average length, to calculate the oscillator using a series of exponential moving averages (EMA) applied to the average price. This results in a composite index, which is then further smoothed. The VWAP is calculated over a specified period and used as a benchmark to understand the average trading price relative to volume, helping to identify the overall trend direction. The strategy defines specific levels for identifying overbought and oversold conditions. When the oscillator exceeds these levels, it indicates potential market turning points. The strategy also includes a signal line, which is a simple moving average (SMA) of the WaveTrend Oscillator, to help confirm trade signals and filter out noise.
PipShiesty Swagger is a powerful technical trading strategy designed for the BTC 15-minute chart on TradingView. It utilizes the WaveTrend Oscillator and VWAP to identify potential trading signals while incorporating risk management parameters to protect capital. Although the strategy shows promise, traders should exercise caution when implementing it and consider optimizing the strategy to improve its performance and adaptability. With continuous refinement and adjustment, PipShiesty Swagger could become a valuable tool for traders navigating the dynamic cryptocurrency market.
/*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")