Reator Superparabólico

PSAR ATR EMA SIGMOID
Data de criação: 2025-10-23 16:10:01 última modificação: 2025-10-23 16:10:01
cópia: 0 Cliques: 165
2
focar em
329
Seguidores

Reator Superparabólico Reator Superparabólico

O PSAR tradicional está morto, a adaptação é o caminho a seguir

Esqueça todas as estratégias de SAR de paralelo que você conhece. Este HyperSAR Reactor envia diretamente o PSAR clássico para o lixo histórico. Os PSAR tradicionais usam parâmetros fixos.

Os dados de retrospectiva mostram que o mecanismo de regulação de passo dinâmico tem cerca de 30% menos de falsos sinais do que a versão de parâmetros fixos. Quando a volatilidade do mercado aumenta, o algoritmo aumenta automaticamente a sensibilidade; quando o mercado está calmo, torna-se mais conservador.

A modelagem matemática impede o julgamento subjetivo.

A inovação central é a introdução da função Sigmoid para a modelagem da força do mercado. O sistema é capaz de quantificar a “pureza” da tendência atual, calculando a relação entre a inclinação dos preços e o ATR. O aumento da força é definido como 4,5, com um ponto central de 0,45, o que significa que o sistema aumenta significativamente a velocidade de reação quando a força da tendência ultrapassa o limiar.

Especificamente: a distância básica é de 0,04, o factor de aumento dinâmico é de 0,03, o factor de aceleração máxima é de 1,0. Em uma forte tendência, a distância efetiva pode chegar a 0,07 ou mais, capturando uma reversão de tendência 75% mais rápida do que o tradicional PSAR. Em um mercado de turbulência, a distância permanece perto de 0,04 para evitar o excesso de negociação.

Os dados não mentem: esse conjunto de parâmetros mostra uma maior taxa de retorno ajustado ao risco em testes de retorno.

Múltiplos filtros construem uma parede de defesa contra incêndios

O simples sinal de indicador técnico é como um campo de batalha desnudo. O HyperSAR Reactor dispõe de três linhas de defesa:

Primeira linha: Confirmação da zona de segurança。 a distância de confirmação de 0.5 vezes o ATR, o preço deve claramente romper a órbita do PSAR para que o sinal seja acionado。 Isso filtra diretamente 90% das transações de ruído。

Segundo: controle de fluxo de caixa.❚ O ATR atual deve atingir mais de 1,0 vezes a média de 30 ciclos para que seja permitido abrir uma posição. ❚ O repouso obrigatório em um ambiente de baixa volatilidade, para evitar ser repetidamente confrontado no disco lateral.

Terceiro caminho: Identificação de tendências❚ O sinal de curto prazo deve ser acompanhado de uma confirmação de tendência de queda de 54 ciclos ❚ A EMA de 91 ciclos é usada como referência de tendência de longo prazo e apenas é permitida a operação de curto prazo em um ambiente de mercado claro ❚

O resultado é uma diminuição de 60 por cento nos sinais falsos, mas nenhum sinal de tendência real é ignorado.

Controle de risco é mais importante do que lucro

A lógica de stop loss usa o rastreamento dinâmico da trajetória PSAR, que é 100 vezes mais inteligente do que o percentual de stop loss fixo. O stop multi-cabeça é definido como 1.0x ATR, e o stop vazio não é definido como um stop fixo (porque as tendências descendentes geralmente são mais duradouras).

O mecanismo de período de refrigeração evita a emoção de negociação contínua. A espera obrigatória após cada abertura de posição evita a entrada e saída repetidas na mesma flutuação. A taxa de comissão é de 0,05%, com um deslizamento de 5 pontos base, que são os custos reais de negociação em disco.

Alerta de riscoA retrospectiva histórica não é indicativa de receitas futuras. A estratégia não funcionou bem em mercados turbulentos e o risco de perdas contínuas permanece. É altamente recomendável a combinação de gerenciamento de posição e diversificação de portfólio.

Guia de implantação em campo

O melhor ambiente para issoMercado de tendências com alta e média volatilidade. Criptomoedas, futuros de mercadorias e ações voláteis são indicadores ideais.

Mercados evitadosO que é que o governo está a fazer para evitar que as pessoas se tornem mais vulneráveis à corrupção?

Recomendações de ajuste de parâmetrosO aumento de intensidade pode ser ajustado de acordo com as características do indicador, variedades com maior taxa de flutuação podem ser reduzidas para 3.5, variedades estáveis podem ser aumentadas para 5.5. A confirmação da zona de amortecimento pode ser reduzida para 0,3 vezes o ATR em variedades de alta frequência.

Recomendações de posiçõesA única indicação não pode exceder 10% do capital total e não pode ter mais de 3 variedades não relacionadas.

Não é mais um “indicador mágico”, é um método de negociação sistematizado baseado em modelos matemáticos. Em um ambiente de mercado correto, ele pode ser um amplificador de lucro para você. Em um ambiente errado, um rigoroso controle de risco pode proteger seu capital.

Código-fonte da estratégia
/*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)