BTC 15분 차트를 기반으로 한 기술적 거래 전략

WT VWAP SMA EMA ATR
생성 날짜: 2024-05-28 11:15:29 마지막으로 수정됨: 2024-05-28 11:15:29
복사: 7 클릭수: 734
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

BTC 15분 차트를 기반으로 한 기술적 거래 전략

개요

PipShiesty Swagger는 TradingView를 위해 특별히 설계된 기술 거래 전략이다. 이 전략은 WaveTrend의 흔들림 지표 ((WT) 와 거래량 가중 평균 가격 ((VWAP) 을 사용하여 잠재적인 거래 신호를 식별하고, 위험을 관리하며, 가격 차트에 오버 바이와 오버 셀 조건을 시각화한다. 이 전략은 일련의 지수 이동 평균 (EMA) 을 사용하여 흔들림 지표를 계산하고, 간단한 이동 평균 (SMA) 을 통해 신호 라인을 생성하여 거래 신호를 확인하고 잡음을 필터링한다. 이 전략은 또한 위험 관리 및 자본 보호를 위해 거래 당 위험 비율과 평균 실제 범위에 기반한 ATR의 손해 방지 배수와 같은 위험 관리 매개 변수를 포함한다.

전략 원칙

PipShiesty Swagger 전략의 핵심은 WaveTrend의 흔들림 지표 ((WT) 와 거래량 중화 평균 가격 ((VWAP)) 이다. WT는 채널 길기와 평균 길이를 두 가지 주요 파라미터를 사용하여, 일련의 지표 이동 평균 ((EMA) 를 평균 가격에 적용하여 계산한다. 이렇게하면 복합 지수를 생성한 다음 추가로 평형 처리한다. VWAP는 지정된 시간 동안 계산되며, 거래량에 대한 평균 거래 가격을 알 수 있는 기준으로 사용되며, 전체적인 트렌드 방향을 결정하는데 도움이 된다.

전략적 이점

  1. PipShiesty Swagger 전략은 WaveTrend 흔들림 지표, VWAP 및 ATR과 같은 여러 기술 지표를 결합하여 포괄적인 시장 분석을 제공합니다.
  2. 이 전략은 잠재적인 시상점과 시상점의 이탈을 식별하여 거래자에게 잠재적인 거래 기회를 제공합니다.
  3. 이 전략은 거래자가 잠재적인 시장 전환점을 식별하는 데 도움이 됩니다.
  4. 이 전략에는 거래 당 위험 비율과 ATR 기반의 중지 손실 배수와 같은 위험 관리 매개 변수가 포함되어 있으며 위험을 관리하고 자본을 보호하는 데 도움이됩니다.
  5. 이 전략은 WaveTrend 흔들림 지표, 신호선, VWAP 및 배경 색상과 같은 차트에서 명확한 시각적 지시를 제공하여 거래자가 시장 상황을 쉽게 해석할 수 있도록합니다.

전략적 위험

  1. PipShiesty Swagger 전략은 기술 지표에 의존하여, 특히 시장의 변동이 큰 경우 또는 추세가 명확하지 않은 경우, 잘못된 신호를 일으킬 수 있습니다.
  2. 이 전략의 성능은 통로 길이, 평균 길이, 과매도/ 과매도 수준과 같은 파라미터 선택에 영향을 받을 수 있다. 부적절한 파라미터 설정은 부적절한 결과를 초래할 수 있다.
  3. 이 전략은 위험 관리 요소를 포함하고 있지만, 특히 시장의 격렬한 변동 기간 동안 자본 손실의 잠재적인 위험이 있습니다.
  4. 이 전략은 주로 BTC의 15분 차트에 초점을 맞추고, 다른 시간 범위에 있는 중요한 시장 변화를 포착하지 못할 수도 있다.

전략 최적화 방향

  1. 신호의 신뢰성과 정확성을 높이기 위해 다른 기술 지표 또는 시장 감정 지표를 포함시키는 것을 고려하십시오.
  2. 최적화 및 민감성 분석을 수행하여 최적의 설정을 결정하고 정책 성능을 향상시킵니다.
  3. 다이내믹 스톱 로즈 및 스톱 스톱 메커니즘을 도입하여 위험을 더 잘 관리하고 잠재적인 수익을 극대화하십시오.
  4. 이 전략을 다른 시간대와 거래 도구로 확장하여 더 넓은 시장 기회를 잡습니다.

요약하다

PipShiesty Swagger는 강력한 기술 거래 전략으로, TradingView의 BTC 15 분 차트에 전용으로 설계되었습니다. WaveTrend의 흔들림 지표와 VWAP를 사용하여 잠재적인 거래 신호를 식별하고, 위험 관리 파라미터를 결합하여 자본을 보호합니다.

전략 소스 코드
/*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")