PipShiesty Swagger là một chiến lược giao dịch kỹ thuật được thiết kế đặc biệt cho TradingView. Chiến lược này sử dụng WaveTrend Oscillator (WT) và Volume Weighted Average Price (VWAP) để xác định các tín hiệu giao dịch tiềm năng, quản lý rủi ro và hình dung các điều kiện mua quá mức và bán quá mức trên biểu đồ giá.
Cốt lõi của chiến lược PipShiesty Swagger nằm ở WaveTrend Oscillator (WT) và Volume Weighted Average Price (VWAP). WT sử dụng hai thông số chính, chiều dài kênh và chiều dài trung bình, để tính toán dao động bằng cách sử dụng một loạt các đường trung bình chuyển động nhân tố (EMA) áp dụng cho giá trung bình. Điều này dẫn đến một chỉ số tổng hợp, sau đó được làm mịn hơn nữa. VWAP được tính toán trong một khoảng thời gian cụ thể và được sử dụng như một điểm chuẩn để hiểu giá giao dịch trung bình so với khối lượng, giúp xác định hướng xu hướng tổng thể. Chiến lược xác định các mức cụ thể để xác định các điều kiện mua quá mức và bán quá mức. Khi dao động vượt quá các mức này, nó chỉ ra các điểm chuyển đổi tiềm năng của thị trường. Chiến lược cũng bao gồm một đường tín hiệu, đó là một mức trung bình chuyển động đơn giản (SMA) của WaveTrend Oscillator, giúp xác nhận và lọc các tín hiệu giao dịch.
PipShiesty Swagger là một chiến lược giao dịch kỹ thuật mạnh mẽ được thiết kế cho biểu đồ 15 phút BTC trên TradingView. Nó sử dụng WaveTrend Oscillator và VWAP để xác định các tín hiệu giao dịch tiềm năng trong khi kết hợp các tham số quản lý rủi ro để bảo vệ vốn. Mặc dù chiến lược này hứa hẹn, các nhà giao dịch nên thận trọng khi thực hiện nó và xem xét tối ưu hóa chiến lược để cải thiện hiệu suất và khả năng thích nghi của nó. Với việc tinh chỉnh và điều chỉnh liên tục, PipShiesty Swagger có thể trở thành một công cụ có giá trị cho các nhà giao dịch điều hướng thị trường tiền điện tử năng động.
/*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")