Reaktor Super Parabola

PSAR ATR EMA SIGMOID
Tanggal Pembuatan: 2025-10-23 16:10:01 Akhirnya memodifikasi: 2025-10-23 16:10:01
menyalin: 0 Jumlah klik: 165
2
fokus pada
329
Pengikut

Reaktor Super Parabola Reaktor Super Parabola

Tradisi PSAR sudah mati, adaptasi adalah jalan keluarnya

Lupakan semua strategi SAR garis paralon yang Anda ketahui. Reaktor HyperSAR ini langsung mengirim PSAR klasik ke tempat sampah sejarah. Reaktor PSAR tradisional menggunakan parameter tetap. Di sini disesuaikan dengan intensitas dinamis.

Data retrospektif menunjukkan bahwa mekanisme penyesuaian langkah dinamis memiliki sekitar 30% lebih sedikit sinyal palsu daripada versi parameter tetap. Ketika pasar bergejolak, algoritme secara otomatis meningkatkan sensitivitas; ketika pasar tenang, ia menjadi lebih konservatif. Ini bukan analisis teknis tradisional, ini adalah evolusi perdagangan kuantitatif.

Pemodelan matematika menekan penilaian subjektif

Inovasi inti adalah dengan memperkenalkan fungsi Sigmoid untuk memodelkan kekuatan pasar. Dengan menghitung rasio antara slope harga dan ATR, sistem dapat mengukur “kemurnian” tren saat ini. Pengaturan gain intensitas adalah 4.5, dengan titik pusat 0.45, yang berarti bahwa sistem akan meningkatkan kecepatan respons secara signifikan ketika intensitas tren melampaui batas.

Secara khusus: panjang dasar 0.04, faktor penguatan dinamis 0.03, faktor akselerasi maksimum 1.0 . Dalam tren yang kuat, panjang efektif bisa mencapai 0.07 atau lebih, 75% lebih cepat daripada PSAR tradisional untuk menangkap pergeseran tren . Sementara di pasar yang bergolak, panjang tetap di sekitar 0.04, untuk menghindari perdagangan berlebihan .

Data tidak bohong: Kombinasi parameter ini menunjukkan tingkat pengembalian yang disesuaikan dengan risiko yang lebih tinggi dalam umpan balik.

Multi-Filter Membangun Tembok Api

Sinyal indikator teknis semata-mata seperti medan perang yang telanjang. HyperSAR Reactor mengerahkan tiga garis pertahanan:

Jalur 1: Mengidentifikasi zona penyangga。 Mengatur jarak konfirmasi 0,5 kali ATR, harga harus jelas menerobos orbit PSAR untuk memicu sinyal。 Ini langsung menyaring 90% dari transaksi noise。

Kedua: Pengendalian Frekuensi FluktuasiUntuk membuka posisi, ATR saat ini harus mencapai 1.0 kali atau lebih dari rata-rata 30 siklus. Restoran wajib di lingkungan yang rendah fluktuasi, untuk menghindari berulang kali di posisi horizontal.

Jalan Ketiga: Identifikasi Sistem TrenSinyal shorting harus bekerja sama dengan 54 siklus konfirmasi tren menurun. 91 siklus EMA sebagai acuan tren jangka panjang, hanya diizinkan untuk operasi shorting di bawah kondisi pasar beruang yang jelas.

Hasilnya? sinyal palsu berkurang 60%, tetapi tidak ada sinyal tren yang benar-benar hilang.

Pengendalian risiko lebih penting daripada keuntungan

Stop loss logikanya menggunakan pelacakan orbit PSAR yang dinamis, 100 kali lebih cerdas dari stop loss persentasenya yang tetap. Stop loss multihead disetel menjadi 1.0 kali ATR, dan stop loss tanpa kepala tidak disetel menjadi stop loss tetap (karena downtrend biasanya lebih tahan lama).

mekanisme periode dingin mencegah emosi berturut-turut perdagangan. Wajib menunggu setelah setiap posisi dibuka, untuk menghindari berulang masuk dan keluar dalam fluktuasi yang sama. Biaya setelan 0,05%, slippage 5 basis poin, ini adalah biaya nyata perdagangan disk nyata.

Petunjuk Risiko: Retrospeksi historis tidak mewakili keuntungan di masa depan. Strategi ini berkinerja buruk di pasar yang bergoyang, dan risiko kerugian berturut-turut masih ada. Sangat disarankan untuk bekerja sama dengan manajemen posisi dan diversifikasi portofolio.

Panduan Pengerahan Operasi

Lingkungan terbaik: Pasar tren dengan volatilitas menengah hingga tinggi. Cryptocurrency, komoditas berjangka, dan saham volatile adalah indikator yang ideal.

Pasar yang DihindariIni adalah salah satu dari beberapa hal yang membuat orang-orang di Indonesia lebih memilih untuk tidak membeli produk-produk mereka.

Saran untuk penyesuaian parameterPeningkatan intensitas dapat disesuaikan dengan karakteristik standar, varietas dengan tingkat fluktuasi tinggi dapat diturunkan menjadi 3.5, varietas stabil dapat ditingkatkan menjadi 5.5. Konfirmasi zona penyangga dapat diturunkan menjadi 0,3 kali ATR dalam varietas frekuensi tinggi.

Saran posisi: Satu sinyal tidak lebih dari 10% dari total dana dan tidak lebih dari 3 varietas yang tidak terkait.

Ini bukan “indikator ajaib” lagi, ini adalah metode perdagangan sistematis yang didasarkan pada pemodelan matematika. Dalam kondisi pasar yang benar, ini akan menjadi penguat keuntungan Anda. Dalam kondisi yang salah, kontrol risiko yang ketat akan melindungi modal Anda.

Kode Sumber Strategi
/*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)