
PipShiesty Swagger adalah strategi perdagangan teknis yang dirancang khusus untuk TradingView. Strategi ini menggunakan indikator WaveTrend yang bergoyang (WT) dan harga rata-rata tertimbang volume transaksi (VWAP) untuk mengidentifikasi sinyal perdagangan potensial, mengelola risiko, dan memvisualisasikan kondisi overbought dan oversold pada grafik harga. Strategi ini menggunakan serangkaian indikator untuk menghitung indikator goyang (EMA) dan menghasilkan garis sinyal melalui Simple Moving Average (SMA) untuk mengkonfirmasi sinyal perdagangan dan memfilter kebisingan.
Inti dari strategi PipShiesty Swagger adalah indikator WaveTrend oscillator (WT) dan harga rata-rata tertimbang volume transaksi (VWAP). WT menggunakan panjang saluran dan panjang rata-rata sebagai dua parameter utama, dan moving average (EMA) diterapkan pada harga rata-rata melalui serangkaian indikator. Dengan demikian, indeks komposit dapat dihasilkan dan kemudian diproses lebih lanjut.
PipShiesty Swagger adalah strategi perdagangan teknologi yang kuat, dirancang khusus untuk grafik 15 menit BTC di TradingView. Ini menggunakan indikator WaveTrend dan VWAP untuk mengidentifikasi sinyal perdagangan potensial, sementara digabungkan dengan parameter manajemen risiko untuk melindungi modal. Meskipun strategi ini menunjukkan prospek, pedagang masih perlu berhati-hati dalam pelaksanaannya dan mempertimbangkan strategi optimasi untuk meningkatkan kinerjanya dan adaptasi.
/*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")