Strategi pengoptimuman stop loss adaptif penjejakan aliran SAR berbilang tempoh

PSAR AF EP SAR SL TS MM
Tarikh penciptaan: 2025-02-18 13:48:30 Akhirnya diubah suai: 2025-02-18 13:48:30
Salin: 1 Bilangan klik: 391
1
fokus pada
1617
Pengikut

Strategi pengoptimuman stop loss adaptif penjejakan aliran SAR berbilang tempoh

Gambaran keseluruhan

Strategi ini dioptimumkan secara mendalam berdasarkan parameter SAR ((Parabolic Stop and Reverse) yang tradisional, digabungkan dengan penilaian trend pelbagai kitaran dan mekanisme penangguhan diri. Strategi ini menggunakan penyesuaian faktor percepatan dinamik ((AF)), untuk mengikuti trend pasaran melalui pembaruan berterusan titik ekstrem ((EP), untuk mendapatkan pengendalian dan kawalan risiko yang tepat terhadap trend menaik.

Prinsip Strategi

Logik teras strategi adalah berdasarkan elemen utama berikut:

  1. Pengiraan SAR dinamik: menggunakan faktor pecutan permulaan ((AF), nilai peningkatan dan tiga parameter maksimum, menyesuaikan nilai SAR secara dinamik mengikut kekuatan trend.
  2. Mekanisme penentuan trend: menentukan arah trend dengan membandingkan nilai SAR dengan hubungan kedudukan harga, dan mencetuskan isyarat pembalikan trend apabila SAR melintasi harga.
  3. Logik kemasukan: Apabila trend naik disahkan dan tidak ada kedudukan, gunakan nilai SAR yang diramalkan untuk kitaran seterusnya sebagai tempat berhenti untuk menetapkan pesanan kemasukan.
  4. Pengoptimuman Hentikan Kerosakan: Menggunakan nilai maksimum 1-2 baris K terdahulu sebagai penanda aras penyesuaian SAR untuk meningkatkan ketepatan dan ketepatan waktu Hentikan Kerosakan.

Kelebihan Strategik

  1. Adaptif: Dengan penyesuaian faktor pecutan dinamik, strategi dapat menyesuaikan parameter secara automatik mengikut kekuatan turun naik pasaran.
  2. Pengendalian risiko yang sempurna: Hentikan kerugian dengan menggunakan tetapan nilai SAR yang boleh diramalkan, memastikan kebolehpastian dan keberkesanan hentikan kerugian.
  3. Trend capture accuracy: Mekanisme pengesahan trend berganda, mengurangkan risiko penembusan palsu.
  4. Logik pengiraan yang ketat: mekanisme mengekalkan keadaan pembolehubah digunakan untuk memastikan kestabilan strategi dalam pengukuran semula sejarah.

Risiko Strategik

  1. Risiko pasaran goyah: Dalam pasaran goyah di atas cakera, ia mungkin sering mencetuskan isyarat palsu yang menyebabkan kerugian berturut-turut. Penyelesaian: Penapis kadar turun naik boleh diperkenalkan untuk mengurangkan kekerapan perdagangan dalam persekitaran turun naik yang rendah.
  2. Kesan slippage: Penutupan SAR yang diramalkan mungkin menghadapi risiko slippage dalam pasaran yang bergelombang tinggi. Skim tindak balas: disyorkan untuk menetapkan toleransi titik licin yang munasabah dan menyesuaikan parameter mengikut ciri-ciri varieti.
  3. Penangguhan pembalikan trend: Penangguhan kemerosotan mungkin berlaku dalam keadaan pembalikan tren yang mendadak. Skim tindak balas: boleh digabungkan dengan penilaian bantuan indikator momentum kitaran pendek, meningkatkan kepekaan untuk menghentikan kerosakan.

Arah pengoptimuman strategi

  1. Synchronous Multi-Cycle: Mencadangkan untuk menambah mekanisme pengesahan trend untuk pelbagai tempoh masa untuk meningkatkan kebolehpercayaan isyarat.
  2. Pengoptimuman parameter dinamik: Tetapan parameter faktor percepatan boleh disesuaikan secara dinamik mengikut turun naik pasaran.
  3. Peningkatan mekanisme halangan kerosakan: pengenalan jalur halangan dinamik berasaskan ATR untuk meningkatkan fleksibiliti halangan kerosakan.
  4. Optimumkan pengurusan kedudukan: Tambah mekanisme pengurusan kedudukan dinamik berdasarkan kadar turun naik.

ringkaskan

Strategi ini mencapai kombinasi yang berkesan antara trend-tracking dan kawalan risiko dengan pengoptimuman mendalam terhadap indikator PSAR klasik. Sifat penyesuaian diri strategi dan mekanisme penangguhan kerugian yang baik menjadikannya mempunyai nilai aplikasi pertempuran yang kuat. Dengan arah pengoptimuman yang dicadangkan, kestabilan dan keuntungan strategi dijangka meningkat lebih lanjut.

Kod sumber strategi
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("A股抛物线策略(仅做多)- 完全移除SAR绘图", overlay=true)

// 参数设置
start     = input.float(0.02, "起始加速因子")
increment = input.float(0.02, "加速因子增量")
maximum   = input.float(0.2,  "加速因子最大值")

// 定义变量(var保证变量在整个历史数据中保持状态)
var bool   uptrend    = true    // 默认初始化为上升趋势
var float  EP         = na      // 极值点:上升趋势时为最高价,下降趋势时为最低价
var float  SAR        = na      // 当前K线的SAR
var float  AF         = start   // 当前加速因子
var float  nextBarSAR = na      // 下一根K线的预测SAR

//【1】初始化:针对第一根K线(bar_index==0)
if bar_index == 0
    // 使用首根K线收盘价初始化
    SAR        := close
    nextBarSAR := close
    EP         := close
    uptrend    := true

//【2】从第二根K线开始(bar_index>=1)计算SAR
if bar_index >= 1
    // 先将上一根K线计算得到的 nextBarSAR 赋给当前SAR
    SAR := nz(nextBarSAR, SAR)
    
    // 第2根K线(bar_index==1)做初始化,利用上一根K线(bar_index==0)的高低价
    if bar_index == 1
        if close > close[1]
            uptrend := true
            EP      := high
            SAR     := low[1]
        else
            uptrend := false
            EP      := low
            SAR     := high[1]
        AF := start
        nextBarSAR := SAR + AF * (EP - SAR)
    else
        // 记录是否处于趋势反转的首根K线,方便后续判断
        var bool firstTrendBar = false
        firstTrendBar := false
        
        // 检测趋势反转:
        // 在上升趋势中,如果当前SAR超过最低价,则认为发生反转
        if uptrend
            if SAR > low
                firstTrendBar := true
                uptrend     := false
                // 反转时,SAR取上一次极值与当前最高价中的较大者,极值改为当前最低价
                SAR         := math.max(EP, high)
                EP          := low
                AF          := start
            // 注意:原代码在上升趋势中还有个判断 SAR < high 的分支,但通常反转判据只需检测SAR是否穿过低点即可
        else
            // 在下降趋势中,如果当前SAR低于最高价,则认为反转为上升趋势
            if SAR < high
                firstTrendBar := true
                uptrend     := true
                SAR         := math.min(EP, low)
                EP          := high
                AF          := start
        
        // 若非反转情形,则更新极值和加速因子
        if not firstTrendBar
            if uptrend
                if high > EP
                    EP := high
                    AF := math.min(AF + increment, maximum)
            else
                if low < EP
                    EP := low
                    AF := math.min(AF + increment, maximum)
                    
        // 调整SAR,确保其不超过最近1-2根K线的最低价(上升趋势)或最高价(下降趋势)
        if uptrend
            SAR := math.min(SAR, low[1])
            if bar_index > 1
                SAR := math.min(SAR, low[2])
        else
            SAR := math.max(SAR, high[1])
            if bar_index > 1
                SAR := math.max(SAR, high[2])
        
        // 计算下一根K线的预测SAR
        nextBarSAR := SAR + AF * (EP - SAR)
        
        //【3】交易逻辑(仅做多)
        if barstate.isconfirmed
            // 当出现上升趋势且当前无多头仓位时进场做多(以预测的下一根K线SAR为止损触发价)
            if uptrend and strategy.position_size <= 0
                strategy.entry("Long", strategy.long, stop=nextBarSAR, comment="Long Entry")
            // 当趋势转为下降且持有多头时平仓
            if not uptrend and strategy.position_size > 0
                strategy.close("Long", comment="Long Exit")

// 绘图部分完全移除,不再绘制任何与SAR相关的图形