PipShiesty Swagger是一个专为TradingView设计的技术交易策略。该策略利用WaveTrend震荡指标(WT)和成交量加权平均价格(VWAP)来识别潜在的交易信号,管理风险,并在价格图表上可视化超买和超卖条件。该策略使用一系列指数移动平均线(EMA)计算震荡指标,并通过简单移动平均线(SMA)生成信号线,以确认交易信号并过滤噪音。同时,该策略还包括风险管理参数,如每笔交易的风险百分比和基于平均真实范围(ATR)的止损倍数,以管理风险和保护资本。
PipShiesty Swagger策略的核心是WaveTrend震荡指标(WT)和成交量加权平均价格(VWAP)。WT使用通道长度和平均长度两个主要参数,通过一系列指数移动平均线(EMA)应用于平均价格来计算。这样可以生成一个复合指数,然后进一步平滑处理。VWAP在指定时间段内计算,用作基准来了解相对于成交量的平均交易价格,有助于确定整体趋势方向。该策略定义了识别超买和超卖条件的特定水平。当震荡指标超过这些水平时,表明潜在的市场转折点。策略还包括一条信号线,它是WaveTrend震荡指标的简单移动平均线(SMA),有助于确认交易信号并过滤噪音。
PipShiesty Swagger是一个强大的技术交易策略,专为TradingView上的BTC15分钟图表设计。它利用WaveTrend震荡指标和VWAP来识别潜在的交易信号,同时结合风险管理参数来保护资本。尽管该策略展示了前景,但交易者在实施时仍需谨慎,并考虑优化策略以提高其性能和适应性。通过不断完善和调整,PipShiesty Swagger可能成为交易者在动态加密货币市场中的宝贵工具。
/*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")