
Chiến lược giao dịch PowerZone là một phương pháp giao dịch tự động sáng tạo, tập trung vào việc nắm bắt các biến động giá mạnh mẽ trong thị trường. Chiến lược này cung cấp cho các nhà giao dịch tín hiệu nhập cảnh và xuất cảnh rõ ràng bằng cách xác định các khu vực giá cụ thể (được gọi là “PowerZones”), đồng thời có cơ chế quản lý rủi ro.
Nền tảng của chiến lược là xác định hai loại PowerZone quan trọng:
Trong khi đó, các nhà đầu tư khác cũng đang tìm cách tăng giá.
(Báo chí) (Bearish PowerZone):
Thêm điều kiện lọc
Quản lý vị trí động
Xác thực nhiều khung thời gian
Chiến lược giao dịch PowerZone cung cấp cho các nhà giao dịch một phương pháp giao dịch có cấu trúc bằng cách xác định một cách hệ thống các khu vực có giá trị mạnh mẽ. Điểm mạnh cốt lõi của nó là tự động hóa, hiển thị và linh hoạt, nhưng đồng thời cần điều chỉnh các tham số một cách thận trọng và liên tục tối ưu hóa cơ chế quản lý rủi ro.
/*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)