
Quên tất cả các chiến lược SAR parallax mà bạn đã biết. HyperSAR Reactor này đã đưa PSAR cổ điển vào thùng rác lịch sử. Các PSAR truyền thống sử dụng các tham số cố định - ở đây điều chỉnh bằng cường độ động.
Dữ liệu phản hồi cho thấy cơ chế điều chỉnh bước động giảm khoảng 30% tín hiệu giả so với phiên bản tham số cố định. Khi thị trường biến động mạnh, thuật toán tự động nâng cao độ nhạy; Khi thị trường bình tĩnh, nó trở nên bảo thủ hơn. Đây không phải là phân tích kỹ thuật truyền thống, đây là sự tiến hóa của giao dịch định lượng.
Sự đổi mới cốt lõi nằm ở việc giới thiệu hàm Sigmoid để mô hình hóa cường độ thị trường. Bằng cách tính toán tỷ lệ giá lệch so với ATR, hệ thống có thể định lượng “sự tinh khiết” của xu hướng hiện tại. Thiết lập tăng cường độ là 4.5, điểm trung tâm là 0.45, có nghĩa là hệ thống sẽ tăng tốc độ phản ứng đáng kể khi cường độ xu hướng vượt quá ngưỡng thấp.
Cụ thể, bước chân cơ bản là 0,04, yếu tố tăng động là 0,03, yếu tố tăng tốc tối đa là 1,0. Trong xu hướng mạnh, bước chân hiệu quả có thể lên đến 0,07 hoặc cao hơn, nắm bắt xu hướng chuyển đổi nhanh hơn 75% so với PSAC truyền thống. Trong thị trường bất ổn, bước chân ở gần 0,04 để tránh giao dịch quá mức.
Dữ liệu không nói dối: Gói tham số này cho thấy tỷ lệ lợi nhuận điều chỉnh rủi ro cao hơn trong phản hồi.
Các tín hiệu chỉ số kỹ thuật đơn thuần giống như một chiến trường trần truồng.
Đường thứ nhất: xác định vùng đệm。 thiết lập khoảng cách xác nhận 0,5 lần ATR, giá phải rõ ràng phá vỡ quỹ đạo PSAR để kích hoạt tín hiệu。 Điều này trực tiếp lọc ra 90% giao dịch tiếng ồn。
Thứ hai: Kiểm soát tỷ lệ dao động.❚ Để mở một vị trí, ATR hiện tại phải đạt hơn 1,0 lần so với trung bình 30 chu kỳ. ❚ Cần phải nghỉ ngơi trong môi trường biến động thấp để tránh bị đánh đập nhiều lần trên bảng ngang.
Đường 3: Xác định xu hướngCác tín hiệu giảm giá phải được xác nhận với 54 chu kỳ xác nhận xu hướng giảm. Các EMA chu kỳ 91 được sử dụng như một chuẩn xu hướng dài hạn và chỉ cho phép hoạt động giảm giá trong môi trường thị trường gấu rõ ràng.
Kết quả là: tín hiệu giả giảm 60%, nhưng tín hiệu xu hướng thực sự không bị bỏ lỡ.
Logic stop loss sử dụng theo dõi quỹ đạo PSAR động, 100 lần thông minh hơn so với tỷ lệ stop loss cố định. Stop stop đa đầu được thiết lập là 1.0 lần ATR, không có stop stop cố định (vì xu hướng giảm thường kéo dài hơn).
Cơ chế thời gian nguội ngăn chặn giao dịch liên tục cảm xúc. Cần chờ đợi sau mỗi lần mở vị trí, tránh đi vào và ra ngoài nhiều lần trong cùng một biến động. Lệ phí xử lý được thiết lập là 0,05%, điểm trượt là 5 điểm cơ bản, đây là chi phí thực sự của giao dịch trực tiếp.
Dấu hiệu nguy cơLịch sử không thể hiện lợi nhuận trong tương lai. Chiến lược này không hoạt động tốt trong thị trường bất ổn và rủi ro mất mát liên tục vẫn tồn tại.
Môi trường thích hợp nhấtThị trường có xu hướng có tỷ lệ biến động trung bình hoặc cao. Tiền điện tử, tương lai hàng hóa, cổ phiếu biến động là các chỉ số lý tưởng.
Thị trường tránhCác nhà phân tích đã đưa ra những kết luận khác nhau về sự biến động của thị trường cá nhân, trong đó có:
Khuyến nghị điều chỉnh tham sốTăng cường có thể được điều chỉnh theo đặc tính của chỉ số, các giống có tỷ lệ dao động cao có thể giảm xuống còn 3,5, các giống ổn định có thể tăng lên 5,5 . Xác nhận vùng đệm có thể giảm xuống còn 0,3 lần ATR trong các giống tần số cao .
Đề xuất vị tríMột tín hiệu duy nhất không được vượt quá 10% tổng số vốn và không được nắm giữ nhiều hơn 3 giống không liên quan.
Đây không phải là một chỉ số kỳ diệu khác, mà là một phương pháp giao dịch có hệ thống dựa trên mô hình toán học. Trong môi trường thị trường đúng, nó sẽ trở thành một bộ khuếch đại lợi nhuận của bạn. Trong môi trường sai, kiểm soát rủi ro nghiêm ngặt sẽ bảo vệ vốn của bạn.
/*backtest
start: 2024-10-23 00:00:00
end: 2025-10-21 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"XRP_USDT","balance":5000}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux
//@version=6
strategy("HyperSAR Reactor ", shorttitle="HyperSAR ", overlay=true, pyramiding=0,
initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100,
commission_type=strategy.commission.percent, commission_value=0.05, slippage=5,
process_orders_on_close=false, calc_on_every_tick=false, calc_on_order_fills=false, margin_short = 0, margin_long = 0)
// =============== GROUPS
grp_engine = "Reactor Engine"
grp_filters = "Trade Filters"
grp_risk = "Risk"
grp_view = "View"
// =============== ENGINE INPUTS (your defaults)
start_af = input.float(0.02, "Start AF", minval=0.0, maxval=1.0, step=0.01, group=grp_engine)
max_af = input.float(1.00, "Max AF", minval=0.0, maxval=1.0, step=0.01, group=grp_engine)
base_step = input.float(0.04, "Base step", minval=0.0, maxval=1.0, step=0.01, group=grp_engine)
reg_len = input.int (18, "Strength window", minval=5, group=grp_engine)
atr_len = input.int (16, "ATR length", minval=5, group=grp_engine)
alpha_gain = input.float(4.5, "Strength gain", minval=0.5, step=0.5, group=grp_engine)
alpha_ctr = input.float(0.45, "Strength center", minval=0.1, step=0.05, group=grp_engine)
boost_k = input.float(0.03, "Boost factor", minval=0.0, step=0.01, group=grp_engine)
af_smooth = input.float(0.50, "AF smoothing", minval=0.0, maxval=1.0, step=0.05, group=grp_engine)
trail_smooth = input.float(0.35, "Trail smoothing", minval=0.0, maxval=1.0, step=0.05, group=grp_engine)
allow_long = input.bool(true, "Allow Long", group=grp_engine)
allow_short = input.bool(true, "Allow Short", group=grp_engine)
// =============== FILTERS (your defaults)
confirm_buf_atr = input.float(0.50, "Flip confirm buffer ATR", minval=0.0, step=0.05, group=grp_filters)
cooldown_bars = input.int (0, "Cooldown bars after entry", minval=0, group=grp_filters)
vol_len = input.int (30, "Vol gate length", minval=5, group=grp_filters)
vol_thr = input.float(1.00, "Vol gate ratio ATR over mean", minval=0.5, step=0.05, group=grp_filters)
require_bear_regime = input.bool(true, "Gate shorts by bear regime", group=grp_filters)
bias_len = input.int (54, "Bear bias window", minval=10, group=grp_filters)
bias_ma_len = input.int (91, "Bias MA length", minval=20, group=grp_filters)
// =============== RISK (your defaults)
tp_long_atr = input.float(1.0, "TP long ATR", minval=0.0, step=0.25, group=grp_risk)
tp_short_atr = input.float(0.0, "TP short ATR", minval=0.0, step=0.25, group=grp_risk)
// =============== HELPERS
sigmoid(x, g, c) => 1.0 / (1.0 + math.exp(-g * (x - c)))
slope_per_bar(src, len) =>
corr = ta.correlation(src, float(bar_index), len)
sy = ta.stdev(src, len)
sx = ta.stdev(float(bar_index), len)
nz(corr, 0.0) * nz(sy, 0.0) / nz(sx, 1.0)
atr = ta.atr(atr_len)
drift = math.abs(slope_per_bar(close, reg_len)) / nz(atr, 1e-12)
strength = sigmoid(drift, alpha_gain, alpha_ctr)
step_dyn = base_step + boost_k * strength
vol_ok = atr / ta.sma(atr, vol_len) >= vol_thr
trend_ma = ta.ema(close, bias_ma_len)
bias_dn = close < trend_ma and slope_per_bar(close, bias_len) < 0
// =============== ADAPTIVE PSAR WITH INERTIA
var float psar = na
var float ep = na
var float af = na
var bool up_trend = false
var int next_ok = na // earliest bar allowed to enter again
var float vis_psar = na
init_now = na(psar)
if init_now
up_trend := close >= open
ep := up_trend ? high : low
psar := up_trend ? low : high
af := start_af
next_ok := bar_index
float next_psar = na
bool flipped = false
if up_trend
next_psar := psar + af * (ep - psar)
next_psar := math.min(next_psar, nz(low[1], low), nz(low[2], low))
if close < next_psar
up_trend := false
psar := ep
ep := low
af := start_af
flipped := true
else
// monotone trail with inertia
mid = psar + trail_smooth * (next_psar - psar)
psar := math.max(psar, mid)
if high > ep
ep := high
new_af = math.min(af + step_dyn, max_af)
af := af + af_smooth * (new_af - af)
else
next_psar := psar + af * (ep - psar)
next_psar := math.max(next_psar, nz(high[1], high), nz(high[2], high))
if close > next_psar
up_trend := true
psar := ep
ep := high
af := start_af
flipped := true
else
mid = psar + trail_smooth * (next_psar - psar)
psar := math.min(psar, mid)
if low < ep
ep := low
new_af = math.min(af + step_dyn, max_af)
af := af + af_smooth * (new_af - af)
// visual only
vis_psar := na(vis_psar[1]) ? psar : vis_psar[1] + 0.35 * (psar - vis_psar[1])
vis_psar := up_trend ? math.max(nz(vis_psar[1], vis_psar), vis_psar) : math.min(nz(vis_psar[1], vis_psar), vis_psar)
// =============== ENTRY LOGIC WITH HYSTERESIS AND COOLDOWN
long_flip = up_trend and flipped
short_flip = not up_trend and flipped
need_wait = bar_index < nz(next_ok, bar_index)
pass_long = long_flip and close > psar + confirm_buf_atr * atr and vol_ok and not need_wait
pass_short = short_flip and close < psar - confirm_buf_atr * atr and vol_ok and not need_wait and (not require_bear_regime or bias_dn)
// =============== ORDERS
if allow_long and pass_long
strategy.entry("Long", strategy.long)
next_ok := bar_index + cooldown_bars
if allow_short and pass_short
strategy.entry("Short", strategy.short)
next_ok := bar_index + cooldown_bars
if allow_long
if pass_short
strategy.close("Long")
if allow_short
if pass_long
strategy.close("Short")
// if strategy.position_size > 0
// strategy.exit("Lx", from_entry="Long", stop=psar, limit = tp_long_atr > 0 ? strategy.opentrades.entry_price(0) + tp_long_atr * atr : na)
if strategy.position_size < 0
strategy.exit("Sx", from_entry="Short", stop=psar, limit = tp_short_atr > 0 ? strategy.opentrades.entry_price(0) - tp_short_atr * atr : na)