
PipShiesty Swagger adalah strategi perdagangan teknikal yang direka khas untuk TradingView. Strategi ini menggunakan indikator WaveTrend bergolak ((WT) dan harga purata bertimbangan dengan jumlah transaksi ((VWAP) untuk mengenal pasti isyarat perdagangan yang berpotensi, menguruskan risiko, dan memvisualisasikan keadaan overbought dan oversold pada carta harga. Strategi ini menggunakan rangkaian indeks bergerak (EMA) untuk mengira indikator bergolak, dan menghasilkan garis isyarat melalui Simple Moving Average (SMA) untuk mengesahkan isyarat perdagangan dan menapis kebisingan.
WT menggunakan dua parameter utama, panjang saluran dan panjang purata, untuk mengira harga purata melalui satu siri indeks Moving Average (EMA). Dengan demikian, indeks gabungan dapat dihasilkan, dan kemudian diproses lebih lanjut. VWAP dikira dalam tempoh masa yang ditetapkan, digunakan sebagai asas untuk mengetahui harga perdagangan purata berbanding dengan perdagangan, membantu menentukan arah trend keseluruhan. Strategi ini menentukan tahap tertentu untuk mengenal pasti keadaan overbought dan oversold.
PipShiesty Swagger adalah strategi perdagangan teknologi yang kuat, direka khas untuk carta 15 minit BTC di TradingView. Ia menggunakan indikator WaveTrend dan VWAP untuk mengenal pasti isyarat perdagangan yang berpotensi, sambil menggabungkan parameter pengurusan risiko untuk melindungi modal. Walaupun strategi ini menunjukkan prospek, peniaga masih perlu berhati-hati dalam pelaksanaannya, dan mempertimbangkan strategi pengoptimuman untuk meningkatkan prestasinya dan kesesuaian.
/*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")