파워존 트레이딩 전략

PZ TP SL EMA RSI
생성 날짜: 2025-03-31 17:34:35 마지막으로 수정됨: 2025-03-31 17:34:35
복사: 0 클릭수: 351
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

파워존 트레이딩 전략 파워존 트레이딩 전략

개요

파워존 거래 전략은 시장에서 강력한 가격 움직임을 포착하는 것에 초점을 맞춘 혁신적인 자동화 거래 방법입니다. 이 전략은 특정 가격 영역을 식별하여 (“파워존”이라고 불리는) 거래자에게 명확한 진입 및 출퇴근 신호를 제공하며 위험 관리 장치를 내장합니다.

전략 원칙

이 전략의 핵심은 두 가지 중요한 파워존 유형을 식별하는 것입니다.

  1. 부시 파워존 (Bullish PowerZone):

    • 초창기에는 K선으로 시작했으나, 현재는 K선으로 끝났다.
    • 그 후 연속적인 몇개의 K선 (기본 5개) 이 상승세를 나타냅니다.
    • 전체적인 가격 변화는 예상한 하락값을 초과했다 (부적격 2%)
  2. [베어시트 파워존]

    • 초기 시가 K선 ((폐쇄가격이 개시가격보다 높다)
    • 그 후 몇 개의 K 선이 연속적으로 하락세를 나타냅니다.
    • 전체적인 가격변동이 예상치 못했던 하락점을 넘었습니다.

전략적 이점

  1. 트렌드 전환점을 자동화합니다.
  2. 내장된 유연한 변수 사용자 지정 기능
  3. 명확한 시각적 표시
  4. 자동화 된 위험 관리 (정지 손실)
  5. 다양한 시장 환경에 적합하다
  6. 코드는 단순하고 이해하기 쉽고 수정하기 쉽습니다.

전략적 위험

  1. 잘못된 매개 변수 설정으로 인해 과도한 거래가 발생할 수 있습니다.
  2. 시장이 흔들리는 상황에서 잘못된 신호가 발생할 수 있습니다.
  3. 고정 지점은 단편적 손실 위험을 증가시킬 수 있습니다.
  4. 복잡한 필터링 메커니즘이 부족합니다.
  5. 더 넓은 시장의 추세와 주기를 고려하지 않고

전략 최적화 방향

  1. 추가 필터링 조건

    • 트렌드 지표와 함께 (예: EMA)
    • 통합 운동량 지표 (RSI와 같은)
    • 볼륨 확인 메커니즘 추가
  2. 동적 위치 관리

    • 시장의 변동성에 따라 포지션 크기를 조정
    • 리스크 비율 포지션 제어
  3. 다중 시간 프레임 검증

    • 다른 시간 주기에서의 교차 검증 신호
    • 신호의 신뢰성을 높여라

요약하다

파워존 거래 전략은 가격 강점을 체계적으로 식별하여 거래자에게 구조화된 거래 방법을 제공합니다. 핵심 장점은 자동화, 시각화 및 유연성이지만 매개 변수를 신중하게 조정하고 위험 관리 장치를 지속적으로 최적화해야합니다.

전략 소스 코드
/*backtest
start: 2024-03-31 00:00:00
end: 2025-03-29 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradingbauhaus

//@version=6
strategy("PowerZone Trading Strategy", overlay=true, shorttitle="PZStrat", default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Inputs 
periods    = input.int(5, title="Periods for PowerZone", minval=1)
threshold  = input.float(0.0, title="Min % Move for PowerZone", step=0.1, minval=0.0)
usewicks   = input.bool(false, title="Use Full Range [High/Low]?")

tp_factor  = input.float(1.5, title="Take Profit Factor", step=0.1, minval=0.5)
sl_factor  = input.float(1.0, title="Stop Loss Factor", step=0.1, minval=0.5)

colors     = input.string("DARK", title="Color Scheme", options=["DARK", "BRIGHT"])
showbull   = input.bool(true, title="Show Bullish Channel?")
showbear   = input.bool(true, title="Show Bearish Channel?")
showdocu   = input.bool(false, title="Show Documentation?")
info_pan   = input.bool(true, title="Show Info Panel?")

// Core Variables
bullcolor = colors == "DARK" ? color.white : color.green
bearcolor = colors == "DARK" ? color.blue  : color.red
ob_period = periods + 1

// PowerZone Detection
absmove = math.abs((close[ob_period] - close[1]) / close[ob_period]) * 100
relmove = absmove >= threshold

// Bullish PowerZone
bullishPZ = close[ob_period] < open[ob_period]
upcandles = 0
for i = 0 to periods - 1
    upcandles := upcandles + (close[i + 1] > open[i + 1] ? 1 : 0)
PZ_bull = bullishPZ and upcandles == periods and relmove
PZ_bull_high = PZ_bull ? (usewicks ? high[ob_period] : open[ob_period]) : na
PZ_bull_low  = PZ_bull ? low[ob_period] : na
PZ_bull_avg  = PZ_bull ? (PZ_bull_high + PZ_bull_low) / 2 : na

// Bearish PowerZone
bearishPZ = close[ob_period] > open[ob_period]
downcandles = 0
for i = 0 to periods - 1
    downcandles := downcandles + (close[i + 1] < open[i + 1] ? 1 : 0)
PZ_bear = bearishPZ and downcandles == periods and relmove
PZ_bear_high = PZ_bear ? high[ob_period] : na
PZ_bear_low  = PZ_bear ? (usewicks ? low[ob_period] : open[ob_period]) : na
PZ_bear_avg  = PZ_bear ? (PZ_bear_high + PZ_bear_low) / 2 : na

// Strategy Logic
var float bull_entry = na
var float bull_tp    = na
var float bull_sl    = na
var float bear_entry = na
var float bear_tp    = na
var float bear_sl    = na

if PZ_bull and close > PZ_bull_high and strategy.position_size == 0
    bull_entry := close
    bull_tp    := bull_entry + (PZ_bull_high - PZ_bull_low) * tp_factor
    bull_sl    := PZ_bull_low - (PZ_bull_high - PZ_bull_low) * sl_factor
    strategy.entry("BullPZ", strategy.long)
    strategy.exit("BullExit", "BullPZ", limit=bull_tp, stop=bull_sl)

if PZ_bear and close < PZ_bear_low and strategy.position_size == 0
    bear_entry := close
    bear_tp    := bear_entry - (PZ_bear_high - PZ_bear_low) * tp_factor
    bear_sl    := PZ_bear_high + (PZ_bear_high - PZ_bear_low) * sl_factor
    strategy.entry("BearPZ", strategy.short)
    strategy.exit("BearExit", "BearPZ", limit=bear_tp, stop=bear_sl)

// Visualization
plot(PZ_bull_high, title="Bull High", color=bullcolor, style=plot.style_linebr, linewidth=2, offset=-ob_period)
plot(PZ_bull_low, title="Bull Low", color=bullcolor, style=plot.style_linebr, linewidth=2, offset=-ob_period)
plot(PZ_bear_high, title="Bear High", color=bearcolor, style=plot.style_linebr, linewidth=2, offset=-ob_period)
plot(PZ_bear_low, title="Bear Low", color=bearcolor, style=plot.style_linebr, linewidth=2, offset=-ob_period)

// Alerts
alertcondition(PZ_bull and close > PZ_bull_high, title="Bullish Entry", message="Bullish PowerZone Breakout - LONG!")
alertcondition(PZ_bear and close < PZ_bear_low, title="Bearish Entry", message="Bearish PowerZone Breakdown - SHORT!")

// Info Panel
var label info_panel = na
if info_pan
    if not na(info_panel)
        label.delete(info_panel)
    panel_text = "POWERZONE STRATEGY\n" + 
                 "Bull High: " + str.tostring(PZ_bull_high, "#.##") + " | TP: " + str.tostring(bull_tp, "#.##") + " | SL: " + str.tostring(bull_sl, "#.##") + "\n" + 
                 "Bear High: " + str.tostring(PZ_bear_high, "#.##") + "\n" + 
                 "Bear Low: " + str.tostring(PZ_bear_low, "#.##") + " | TP: " + str.tostring(bear_tp, "#.##") + " | SL: " + str.tostring(bear_sl, "#.##")
    info_panel := label.new(x=bar_index, y=high, text=panel_text, xloc=xloc.bar_index, yloc=yloc.abovebar, color=color.gray, textcolor=color.white, size=size.normal)

// Documentation
if showdocu
    label.new(x=bar_index, y=low, text="PowerZone Strategy\nLONG on breakout above Bull PZ High\nSHORT on breakdown below Bear PZ Low", xloc=xloc.bar_index, yloc=yloc.belowbar, color=color.gray, textcolor=color.white, size=size.tiny)