
La estrategia de negociación PowerZone es un método de negociación automatizado innovador que se centra en capturar los movimientos de precios fuertes en el mercado. La estrategia proporciona a los operadores señales claras de entrada y salida mediante la identificación de zonas de precios específicas (denominadas “PowerZones”) y un mecanismo de gestión de riesgos incorporado.
El núcleo de la estrategia está en identificar dos tipos clave de PowerZone:
El mercado de valores en la Bolsa de Nueva York se ha convertido en el centro de las preocupaciones de los inversores de todo el mundo.
El año pasado, el mercado de la bolsa de valores se vio afectado por una crisis financiera que afectó a los bancos centrales.
Introducción de condiciones de filtración adicionales
Gestión de posiciones dinámicas
Verificación de múltiples marcos de tiempo
La estrategia de negociación PowerZone proporciona a los operadores un método de negociación estructurado mediante la identificación sistemática de las zonas de fuerte precio. Sus ventajas centrales son la automatización, la visualización y la flexibilidad, pero al mismo tiempo requiere un ajuste cuidadoso de los parámetros y una optimización continua del mecanismo de gestión de riesgos.
/*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)