
파워존 거래 전략은 시장에서 강력한 가격 움직임을 포착하는 것에 초점을 맞춘 혁신적인 자동화 거래 방법입니다. 이 전략은 특정 가격 영역을 식별하여 (“파워존”이라고 불리는) 거래자에게 명확한 진입 및 출퇴근 신호를 제공하며 위험 관리 장치를 내장합니다.
이 전략의 핵심은 두 가지 중요한 파워존 유형을 식별하는 것입니다.
부시 파워존 (Bullish PowerZone):
[베어시트 파워존]
추가 필터링 조건
동적 위치 관리
다중 시간 프레임 검증
파워존 거래 전략은 가격 강점을 체계적으로 식별하여 거래자에게 구조화된 거래 방법을 제공합니다. 핵심 장점은 자동화, 시각화 및 유연성이지만 매개 변수를 신중하게 조정하고 위험 관리 장치를 지속적으로 최적화해야합니다.
/*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)