5 September 2026 · risiko

Backtest anda tidak pernah dilikuidasi: margin, harga mark dan had leverage yang anda abaikan

Backtest anda tidak pernah dilikuidasi: margin, harga mark dan had leverage yang anda abaikan

Bulan lepas, sebuah strategi yang dijana menghasilkan keluk ekuiti dengan pengunduran 63%. Kejatuhan yang dalam dan teruk, kemudian pulih dengan baik dalam tempoh 6 minggu berikutnya — bentuk yang membuatkan penyelidik merenung lalu memutuskan bahawa strategi itu masih boleh bertahan jika saiz posisi dikurangkan. Saya jalankannya semula melalui enjin margin yang memahami tahap margin penyelenggaraan. Akaun itu dilikuidasi pada hari ke-41, ketika pengunduran itu sedang berlaku, dan semua yang berlaku selepas hari ke-41 hanyalah rekaan.

Inilah jenis pepijat backtest yang paling mahal yang saya tahu, kerana ia tidak memesongkan pulangan anda beberapa mata asas sahaja. Pepijat ini memadamkan keadaan menyerap daripada simulasi. Strategi yang boleh jatuh ke sifar dan strategi yang tidak boleh berbuat demikian ialah strategi yang berbeza, dan backtest yang tidak pernah menyemak margin tidak dapat memberitahu anda strategi yang mana satu anda miliki.

Saya kerap melihat 3 cara yang salah ini.

Cara salah pertama: leverage sebagai angka untuk mendarab pulangan

Cara yang paling lazim. Anda mengira siri pulangan daripada isyarat anda, memutuskan untuk berdagang pada 10x, lalu mendarabkannya. Kadangkala caranya sedikit lebih rumit — saiz posisi ialah equity * leverage / price — tetapi keadaan akaun masih sekadar nilai skalar yang naik dan turun. Tiada baki margin, tiada had nilai nosional, tiada syarat kegagalan.

Kesan buruknya halus, sebab itulah ia terlepas daripada semakan. Sharpe tidak berubah mengikut skala, jadi angka utama anda tidak berubah apabila leverage ditukar daripada 3x kepada 30x, lalu penyelidik membuat kesimpulan bahawa leverage ialah pelaras percuma yang menukar volatiliti dengan pulangan. Pengunduran maksimum meningkat secara linear dan kekal di bawah 100% secara kebetulan aritmetik, kerana siri pulangan yang didarab menghampiri sifar secara asimptotik dan tidak pernah melampauinya. Darabkan hari dengan pulangan -9% dengan 12, lalu anda mendapat -108% dalam versi yang telus dan “-108%, tetapi keluk ekuiti masih positif” dalam versi naif, bergantung pada sama ada anda menggandakan pulangan atau menjumlahkannya. Saya pernah melihat kedua-duanya.

Yang tiada dalam model ini ialah leverage tidak dikenakan pada pulangan anda. Leverage dikenakan pada cagaran anda, dan cagaran ialah jumlah terhad yang dipantau oleh bursa setiap saat. Apabila nilainya jatuh di bawah keperluan penyelenggaraan, posisi itu bukan lagi milik anda.

Petunjuknya: jika simulasi anda tidak boleh menghasilkan kerugian penuh pada apa-apa leverage pun, simulasi itu tidak memodelkan leverage.

Cara salah kedua: harga pembubaran yang dikira berdasarkan leverage semata-mata

Tahap kecanggihan kedua menambah semakan pembubaran, biasanya begini: pada 20x, pergerakan tidak memihak sebanyak 5% menghapuskan margin, jadi posisi dilikuidasi pada harga masuk × 0.95 untuk posisi beli. Ringkas, intuitif, dan salah dalam 4 aspek serentak.

Platform perpetual tidak menggunakan tetapan leverage anda untuk menentukan bila posisi anda ditamatkan. Platform menggunakan kadar margin penyelenggaraan yang meningkat mengikut nilai nosional posisi, berdasarkan jadual tahap. Anggaran struktur BTCUSDT USDⓈ-M, yang berubah apabila platform mengemaskinikan jadualnya:

Nilai nosional posisi (USDT)Kadar margin penyelenggaraanLeverage maksimum
0 – 50,0000.40%125x
50,000 – 600,0000.50%100x
600,000 – 3,000,0001.00%50x
3,000,000 – 12,000,0002.50%20x
12,000,000 – 70,000,0005.00%10x

Jadi, pergerakan tidak memihak yang boleh ditampung oleh posisi beli terpencil adalah kira-kira 1/L − MMR, bukannya 1/L. Pada 20x dalam tahap kedua, nilainya 5% − 0.5% = 4.5%. Setengah peratus nampak seperti pembundaran sahaja. Pada BTC berharga 84,000, nilainya bersamaan perubahan harga 420 dolar, dan dalam waktu yang bergelora, 420 dolar membezakan antara sumbu yang mencetuskan pembubaran dengan sumbu yang tidak. Setiap sumbu menjadi seperti lambungan syiling, dan anda telah memesongkan semuanya supaya memihak kepada anda.

Kemudian ada fi. Fi taker untuk kemasukan ditolak daripada margin sebaik sahaja pesanan anda dipenuhi: 0.045% daripada nilai nosional 500,000 ialah 225 USDT, yang ditolak daripada baki margin 25,000 USDT. Ini mengubah harga pembubaran sebelum posisi bergerak walau sedikit pun. Pembiayaan memberi kesan yang sama secara berterusan, dan pada nilai nosional berleveraj, kesannya jauh lebih besar daripada jangkaan penyelidik:

4.55%pergerakan tidak memihak sebenar untuk mencetuskan pembubaran pada 20x, termasuk fi masuk
0.60%kos pembiayaan harian pada margin pada 20x, 0.01%/8h
18%daripada margin itu lesap dalam sebulan tanpa pergerakan harga

Posisi yang tidak bergerak selama 30 hari — tiada pergerakan tidak memihak, tiada dagangan — telah menghabiskan hampir satu perlima cagaran dan membawa harga pembubaran jauh lebih dekat. Kesilapan ketiga dan keempat: apabila anda menambah saiz posisi, tahap margin berubah. Posisi yang bermula pada tahap 0.5% tetapi dibesarkan sehingga masuk ke tahap 1.0% akan mempunyai harga pembubaran yang lebih buruk berbanding harga yang dikira semasa kemasukan. Margin silang pula mengumpulkan cagaran merentas posisi, jadi kelangsungan posisi beli BTC anda bergantung pada pergerakan posisi jual ETH anda. Jika anda mensimulasikan margin silang sebagai beberapa posisi terpencil yang berasingan, anda telah menterbalikkan struktur korelasi akaun anda sendiri.

Cara salah ketiga: menyelesaikan pembubaran menggunakan harga yang salah, pada saat yang salah, dengan harga isian yang salah

Katakan paras pencetus anda betul. Seterusnya: harga yang mana melampaui paras itu, bila anda menyemaknya, dan pada harga berapa pesanan anda dipenuhi?

Pembubaran dicetuskan oleh harga mark, iaitu indeks beberapa platform spot dengan komponen asas yang dilicinkan, dan direka khusus supaya tahan terhadap sumbu pada satu platform. Henti rugi anda pula, bergantung pada konfigurasinya, mungkin dicetuskan oleh harga dagangan terakhir. Kedua-dua harga ini berbeza tepat ketika hal itu paling penting. Semasa gelombang pembubaran, harga terakhir perpetual boleh menyimpang 1–2% di bawah harga mark selama puluhan saat. Backtest yang mencetuskan henti rugi dan pembubaran berdasarkan harga rendah OHLCV yang sama sedang memodelkan platform yang tidak wujud.

Kedua-dua kesilapan berlaku di sini dan tidak saling mengimbangi. Jika menggunakan harga terakhir, anda dilikuidasi akibat sumbu yang diabaikan oleh platform. Jika menggunakan harga mark, anda terlepas keadaan apabila harga mark itu sendiri bergerak — penyimpangan indeks pada platform spot ialah punca sebenar pembubaran pada harga yang tidak pernah dicatatkan pada platform perpetual tempat anda berdagang.

Kemudian soal harga isian. Enjin naif menutup posisi pada harga pembubaran lalu merekodkan kerugian seolah-olah ia henti rugi. Sebenarnya, enjin pembubaran mengambil alih posisi pada harga muflis — paras apabila margin anda tepat-tepat sifar, lebih buruk daripada harga pencetus — kemudian mengenakan fi pelepasan pembubaran, yang kadarnya bergantung pada tahap dan lazimnya sekitar 1% daripada nilai nosional bagi tahap rendah. Pada 20x, 1% daripada nilai nosional bersamaan 20% daripada baki margin anda. Jika enjin mengisi pesanan pada harga di bawah harga muflis, dana insurans menampung perbezaannya; pada sesetengah platform, jika dana itu kehabisan wang, kerugian sosial turut menjejaskan posisi yang menguntungkan dalam buku pesanan. Kerugian sebenar anda bukan sekadar pengunduran sehingga harga pembubaran. Jumlahnya lebih besar, dan lebihan itu paling besar tepat pada hari-hari apabila kecairan buku cukup nipis untuk memburukkan keadaan.

Soal masa daripada mekanik intrabar juga terpakai di sini, dengan implikasi yang lebih serius daripada biasa. Jika bar 1-minute mengandungi paras ambil untung dan paras pembubaran anda, backtest yang menyemak keluar posisi sebelum margin akan merekodkan keuntungan dengan mudah. Platform menyemak margin pada setiap kemas kini harga mark, kira-kira sekali sesaat, sebelum perkara lain yang anda harapkan berlaku.

Perkara yang perlu dijejaki oleh enjin

Semua ini tidak perlu rumit. Enjin cuma perlu menjejak keadaan. Akaun ialah objek yang mempunyai baki, bukannya siri pulangan, dan setiap bar mengemas kini akaun mengikut turutan kemas kini platform:

  1. Baki dompet dan PnL belum direalisasikan, diasingkan. Nisbah margin ialah margin penyelenggaraan dibahagikan dengan baki margin, dan baki margin merangkumi PnL belum direalisasikan. Jika kedua-duanya dicampuradukkan, cagaran posisi yang rugi akan kelihatan lebih kukuh daripada keadaan sebenar.
  2. Jadual tahap bagi setiap simbol, dengan versi mengikut tarikh. Tahap boleh disemak semula. Backtest 2023 yang dijalankan menggunakan tahap 2026 mengandungi bias pandang ke hadapan yang halus — biasanya memihak kepada strategi, memandangkan platform lazimnya telah melonggarkan keperluan untuk aset utama dari semasa ke semasa.
  3. Siri harga mark, bukan sekadar kline. Jika anda tidak boleh mendapatkan sejarah harga mark, nyatakan perkara itu dalam keputusan dan gunakan anggaran konservatif. Jangan sekali-kali menggantikannya secara senyap dengan harga terakhir.
  4. Semakan margin mesti menjadi langkah pertama dalam turutan peristiwa bar, sebelum henti rugi, sasaran, isyarat atau pengimbangan semula.
  5. Isian pada harga muflis berserta fi pelepasan, dengan kadar fi diambil daripada baris tahap yang sama dengan MMR.
  6. Keadaan terminal yang menyerap. Apabila ekuiti mencapai sifar, simulasi tamat. Tiada penetapan semula, tiada “andaikan pedagang menambah dana,” dan tiada sambungan siri dengan nilai nosional baharu.

Perkara terakhir inilah yang paling banyak diperdebatkan. Pasti ada yang menunjukkan bahawa meja dagangan sebenar akan menambah cagaran, jadi menamatkan simulasi itu terlalu keras dan tidak realistik. Mungkin. Tetapi “strategi ini berkesan jika anda terus menyuntik dana selepas kerugian besar” ialah dakwaan yang patut dinyatakan dengan jelas dan diuji dengan sengaja. Jadikan suntikan dana input yang nyata, dan bukannya menyelitkannya sebagai andaian lalai. Apabila dakwaan itu ditulis dengan jujur, kebanyakan orang mendapati bahawa itulah sebenarnya bukan maksud mereka.

Manfaat praktikalnya: apabila anda menjalankan strategi yang sama dalam simulasi berbanding platform dagangan langsung, nisbah margin yang dilaporkan oleh bursa dan nisbah yang dikira simulator anda sepatutnya sepadan dalam lingkungan 1 atau 2 mata asas sepanjang hari. Kesepadanan itu boleh diperiksa setiap minit, bagi setiap posisi terbuka, secara percuma. Inilah ujian kesetaraan paling murah dalam keseluruhan sistem dan hampir tiada siapa yang menjalankannya — apabila kedua-dua angka menyimpang, bursa yang betul dan anda ada pepijat yang patut dicari sebelum pengunduran mendedahkannya.

niaga hadapan perpetualleveragepembubaranenjin marginbacktesting
← Semua catatan