Strategi Henti Kerugian Pemecahan Nilai: Robot Dagangan Automatik Berdasarkan Nilai Ekstrem Tempatan

TP SL TSL BTC 局部极值 追踪止损 挂单交易 时间过滤 价格突破
Tarikh penciptaan: 2025-04-07 13:52:57 Akhirnya diubah suai: 2025-04-07 13:52:57
Salin: 0 Bilangan klik: 413
2
fokus pada
319
Pengikut

Strategi Henti Kerugian Pemecahan Nilai: Robot Dagangan Automatik Berdasarkan Nilai Ekstrem Tempatan Strategi Henti Kerugian Pemecahan Nilai: Robot Dagangan Automatik Berdasarkan Nilai Ekstrem Tempatan

Gambaran keseluruhan

Value Break Tracking Stop Loss Strategy adalah sistem perdagangan kuantitatif yang direka khusus untuk perdagangan aset digital, yang menangkap pergerakan pasaran yang pecah dengan meletakkan susun atur (buy stop loss dan sell stop loss) di kedudukan harga yang paling tinggi. Strategi ini juga mewujudkan mekanisme tracking stop loss, yang mengaktifkan mekanisme perlindungan untuk mengunci keuntungan apabila kedudukan mencapai tahap keuntungan yang ditetapkan. Kaedah ini menggabungkan kelebihan perdagangan harga yang pecah dengan pengurusan risiko, memberikan pedagang dengan penyelesaian perdagangan automatik.

Prinsip Strategi

Strategi ini berdasarkan kepada prinsip-prinsip pengurusan risiko tingkah laku harga dan dinamik, dengan logik teras yang boleh dibahagikan kepada beberapa bahagian utama:

  1. Pengiktirafan nilai ekstrem tempatanStrategi ini menggunakan tetingkap masa yang telah ditentukan (parameter BarsN) untuk mengira titik tertinggi dan terendah tempatan sebagai titik titik penembusan yang berpotensi. Khususnya, ia menggunakan garis K (BarsN * 2 + 1) untuk menentukan harga tertinggi dan terendah tempatan.

  2. Tetapan senarai tetapan

    • BuyStop: Apabila harga semasa adalah lebih rendah daripada ketinggian tempatan tolak jarak pesanan dari zon penangguhan, tetapkan stop loss untuk membeli di kedudukan ketinggian tempatan.
    • Jual Henti: Jual henti apabila harga semasa lebih tinggi daripada titik rendah tempatan ditambah jarak pesanan dari zon penangguhan.
  3. Penapisan masaStrategi ini membolehkan peniaga menetapkan masa perdagangan dan hanya berdagang dalam tempoh jam yang ditetapkan, yang membantu mengelakkan tempoh masa yang tidak diingini.

  4. Pengiraan tahap keuntungan dan kerugian

    • Titik henti (TP): dihitung sebagai peratusan harga semasa (TPasPctBTC).
    • Titik Hentian ((SL): Dihitung sebagai peratusan harga semasa ((SLasPctBTC)).
    • Jarak pesanan dari zon penangguhan: Tetapkan sehingga separuh daripada titik penangguhan untuk mengelakkan pesanan tercetus terlalu awal.
  5. Mekanisme Hentikan Kerosakan

    • Titik pemicu (TriggerPoints): Apabila keuntungan mencapai tahap ini, penghentian pengesanan akan berkuatkuasa.
    • Jarak Pengesanan ((TslPoints): Jarak yang dikekalkan antara hentian dan harga semasa.
    • Untuk kedudukan multihead, harga berhenti rugi digunakan sebagai harga berhenti rugi apabila keuntungan melebihi titik pencetus dengan harga semasa tolak jarak pengesanan.
    • Untuk kedudukan kosong, apabila keuntungan melebihi titik pencetus, harga hentian digunakan sebagai harga hentian dengan harga semasa ditambah jarak pengesanan.

Kelebihan Strategik

Setelah menganalisis kod secara mendalam, strategi ini menunjukkan kelebihan yang ketara:

  1. Menerima secara automatik tindakan penembusanDengan menetapkan pegangan pada tahap harga kritikal, strategi ini dapat menangkap pergerakan harga secara automatik, tanpa perlu memantau pasaran secara manual.

  2. Pengurusan risiko dinamikPengaturan Stop Loss berdasarkan peratusan harga semasa, menjadikan pengurusan risiko lebih fleksibel dan menyesuaikan diri dengan tahap harga yang berbeza.

  3. Mekanisme perlindungan keuntunganDengan fungsi pengesanan berhenti kerugian, strategi dapat mengunci keuntungan yang telah diperoleh dengan berkesan dan mengurangkan penarikan balik sambil mengekalkan ruang untuk kenaikan.

  4. Penapisan masa: Memungkinkan peniaga memilih masa perdagangan yang terbaik berdasarkan ciri-ciri pasaran, mengelakkan perdagangan pada masa yang kurang turun naik atau tidak dapat diramalkan.

  5. Sangat boleh menyesuaikan diriParameter strategi boleh disesuaikan mengikut keadaan pasaran, seperti menyesuaikan tingkap pengiraan nilai teratas tempatan, peratusan stop loss, dan sebagainya, agar sesuai dengan keadaan pasaran yang berbeza.

  6. Penegakan disiplin yang ketatSebagai strategi automasi, ia menghapuskan pengaruh faktor emosi terhadap keputusan perdagangan dan menjalankan perdagangan dengan ketat mengikut peraturan yang telah ditetapkan.

Risiko Strategik

Walaupun terdapat banyak kelebihan, strategi ini mempunyai risiko dan batasan yang berpotensi:

  1. Risiko penembusan palsu: Pasaran mungkin menghasilkan pecah palsu yang menyebabkan strategi memasuki perdagangan yang tidak diingini. Penyelesaian adalah dengan meningkatkan penunjuk pengesahan atau menyesuaikan ukuran jarak pesanan dari zon penangguhan untuk mengurangkan kebarangkalian pencetus pecah palsu.

  2. Kepekaan ParameterPrestasi strategi sangat bergantung kepada tetapan parameter, seperti BarsN, TPasPctBTC dan SLasPctBTC. Parameter yang tidak sesuai boleh menyebabkan prestasi yang tidak baik. Adalah disyorkan untuk mencari kombinasi parameter yang terbaik melalui pengulangan.

  3. Pengurusan dana yang tidak lengkap: Walaupun parameter RiskPercent ditakrifkan dalam kod, ia tidak digunakan untuk mengira saiz kedudukan. Ia boleh menyebabkan pengurusan risiko yang tidak sempurna.

  4. Keupayaan untuk menangani keadaan yang melampau adalah terhad.Dalam keadaan pasaran yang sangat tidak menentu atau melampau, penembusan batas tempatan dan peratusan berhenti tetap mungkin tidak mencukupi untuk menguruskan risiko dengan berkesan.

  5. Slidepoint dan kelewatan pelaksanaan: Dalam perdagangan sebenar, pelaksanaan pesanan mungkin mengalami slippage atau kelewatan yang menjejaskan prestasi strategi.

  6. Ketergantungan kepada pasaran tunggalStrategi ini direka untuk aset tertentu dan mungkin tidak sesuai untuk aset yang berbeza dengan ciri-ciri pasaran yang lain.

Arah pengoptimuman strategi

Berdasarkan analisis kod, strategi ini boleh dioptimumkan dalam beberapa arah:

  1. Pengurusan kedudukan dinamik: Mengekalkan pengiraan saiz kedudukan dinamik berdasarkan parameter RiskPercent, menyesuaikan saiz kedudukan mengikut saiz akaun dan risiko pasaran semasa, untuk mengawal risiko yang lebih halus.

  2. Mekanisme pengesahan bergandaMemperkenalkan penunjuk teknikal tambahan sebagai pengesahan penembusan, seperti penembusan jumlah transaksi, penunjuk momentum atau penunjuk trend, untuk mengurangkan perdagangan palsu.

  3. Parameter penyesuaian: memperkenalkan parameter yang disesuaikan secara automatik berdasarkan turun naik pasaran atau ciri-ciri pasaran lain, membolehkan strategi lebih sesuai dengan keadaan pasaran yang berbeza.

  4. Strategi penghentian batch: Mewujudkan mekanisme hentian sekumpulan, membolehkan beberapa kedudukan keluar pada tahap keuntungan yang berbeza, dapat mengunci sebahagian keuntungan dan mengekalkan ruang keuntungan yang lebih besar.

  5. Penapis keadaan pasaranMenambah keadaan pasaran (kecenderungan, getaran, dan lain-lain), menyesuaikan parameter strategi atau menghentikan perdagangan dalam keadaan pasaran yang berbeza.

  6. Pengoptimuman Stop Loss: Mempunyai penangguhan dinamik berdasarkan ATR atau penunjuk turun naik lain, menjadikan penangguhan lebih munasabah.

  7. Kerangka Pemantauan dan PengoptimumanPembangunan kerangka pengesanan yang lebih komprehensif, menilai prestasi strategi dalam tempoh yang berbeza, di bawah parameter yang berbeza, dan mencari kombinasi parameter yang optimum.

ringkaskan

Value Break Tracking Stop Loss Strategy adalah sistem perdagangan automatik yang direka dengan baik untuk menguruskan risiko dengan menangkap penembusan nilai terhad tempatan dan menggunakan tracking stop loss. Kelebihan utamanya adalah mekanisme pelaksanaan automatik, pengurusan risiko dinamik dan perlindungan keuntungan, menjadikannya alat perdagangan yang berpotensi berkesan.

Walau bagaimanapun, keberkesanan strategi sangat bergantung kepada parameter dan keadaan pasaran. Dengan melaksanakan langkah-langkah pengoptimuman yang disyorkan, seperti pengurusan kedudukan dinamik, mekanisme pengesahan berganda dan parameter penyesuaian, anda dapat meningkatkan ketangguhan dan penyesuaian strategi dengan ketara.

Bagi peniaga, disarankan untuk melakukan pengembalian yang mencukupi sebelum penerapan secara langsung, mencari kombinasi parameter yang paling sesuai dengan keadaan pasaran semasa, dan mempertimbangkan untuk mengkonfirmasi isyarat perdagangan dengan menggabungkan alat analisis lain. Pada masa yang sama, terus memantau dan menilai prestasi strategi, menyesuaikan parameter tepat pada masanya mengikut perubahan pasaran untuk mengekalkan keberkesanan strategi.

Kod sumber strategi
/*backtest
start: 2025-01-01 00:00:00
end: 2025-04-06 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("BTC Trading Robot", overlay=true, pyramiding=1, initial_capital=100000)

//============== Input Groups ==============//
// Trading Profile
group_trading = "BTC"
systemType = input.int(1, title="Trading System (1:BTC)", group=group_trading)

// Common Trading Inputs
group_common = "Trading Inputs"
RiskPercent   = input.float(4.0, title="Risk as % of trading capital", group=group_common)
TradeComment  = input.string("BTC trading robot", title="Trade Comment", group=group_common)
SHInput       = input.int(0, title="Start Hour (0 = no filter)", group=group_common)
EHInput       = input.int(0, title="End Hour (0 = no filter)", group=group_common)

// Gold Related Inputs
group_BTC = "BTC Related Input"
TPasPctBTC         = input.float(0.2, title="TP as % of Price", group=group_BTC)
SLasPctBTC         = input.float(0.1, title="SL as % of Price", group=group_BTC)
TSLasPctofTPBTC   = input.float(5.0, title="Trail SL as % of TP", group=group_BTC)
TSLTgrasPctofTPBTC = input.float(7.0, title="Trail Tgra  SL as % of TP", group=group_BTC)

// Other parameters
BarsN = 5
OrderDistPoints = 100.0

//============== Calculate Trade Parameters ==============//
var float Tppoints = 0.0
var float Slpoints = 0.0
var float TslTriggerPoints = 0.0
var float TslPoints = 0.0

price = close

// Adjust parameters based on system type (using 1 for Gold)
if systemType == 1
    Tppoints := price * TPasPctBTC
    Slpoints := price * SLasPctBTC
    OrderDistPoints := Tppoints / 2.0
    TslPoints := Tppoints * TSLTgrasPctofTPBTC / 100.0
    TslTriggerPoints := Tppoints * TSLTgrasPctofTPBTC / 100.0

//============== Time Filter ==============//
currentHour = hour(time)
inSession = true
if SHInput != 0 and currentHour < SHInput
    inSession := false
if EHInput != 0 and currentHour >= EHInput
    inSession := false

//============== Find Local High and Low ==============//
localHigh = ta.highest(high, BarsN * 2 + 1)
localLow  = ta.lowest(low,  BarsN * 2 + 1)

//============== Entry Orders ==============//
if inSession and strategy.position_size == 0
    // For a BuyStop order: only submit if current price is less than the desired entry level minus a buffer.
    if price < localHigh - OrderDistPoints * syminfo.mintick
        strategy.order("BuyStop", strategy.long, stop=localHigh, comment="BuyStop")
    // For a SellStop order: only submit if current price is greater than the desired entry level plus a buffer.
    if price > localLow + OrderDistPoints * syminfo.mintick
        strategy.order("SellStop", strategy.short, stop=localLow, comment="SellStop")
    
//============== Trailing Stop Logic ==============//
if strategy.position_size > 0  // Long positions
    longProfit = price - strategy.position_avg_price
    if longProfit > TslTriggerPoints * syminfo.mintick
        strategy.exit("Long Exit", from_entry="BuyStop", stop=price - TslPoints * syminfo.mintick, limit=strategy.position_avg_price + Tppoints * syminfo.mintick)
        
if strategy.position_size < 0  // Short positions
    shortProfit = strategy.position_avg_price - price
    if shortProfit > TslTriggerPoints * syminfo.mintick
        strategy.exit("Short Exit", from_entry="SellStop", stop=price + TslPoints * syminfo.mintick, limit=strategy.position_avg_price - Tppoints * syminfo.mintick)