Panduan Meja Kerja Kuantitatif A-share Hos Sendiri
Meja kerja kuantitatif A-share hos sendiri membolehkan anda menjalankan saringan dan backtesting pada mesin peribadi. Ketahui komponen utama serta empat perkara penting untuk diperiksa.
Meja kerja kuantitatif A-share yang dihoskan sendiri
Meja kerja kuantitatif A-share yang dihoskan sendiri merupakan satu halaman web yang menapis pasaran, memantau senarai nama, menjalankan ujian semula (backtest), dan menulis ulasan pasca-pasaran, semuanya dilakukan pada mesin yang anda kawal sendiri dan bukannya terminal broker. Satu projek berlesen MIT, tickflow-stock-panel, membungkus semua fungsi tersebut di sebalik satu port tunggal, dan ia telah mengumpul kira-kira dua ribu lapan ratus bintang GitHub setakat Ogos 2026. Senarai ciri adalah bahagian yang mudah untuk dibaca. Lapisan di bawahnya menentukan sama ada semua itu masih berfungsi pada suku tahun hadapan.
Komponen stesen kerja kuantitatif A-share yang dihoskan sendiri
Seni bina ini cukup ringkas untuk difahami. Berdasarkan kod dan dokumentasi pada komit Ogos 2026, ia terdiri daripada:
- Halaman web yang dibina menggunakan React dan TypeScript.
- Perkhidmatan Python, FastAPI, dengan penjadual yang menyegarkan data mengikut pemasa.
- Storan tempatan: fail Parquet pada cakera, yang disoal menggunakan DuckDB dan dikira dengan Polars.
- Enjin ujian semula (backtesting), vectorbt, yang dihalakan kepada fail-fail tersebut.
- SDK vendor yang mengambil setiap harga yang dipaparkan oleh panel.
Perhatikan apa yang tiada. Tiada apa-apa dalam susunan tersebut yang bersambung dengan bursa. Panel melakukan pengiraan; vendor membekalkan data. "Dihoskan sendiri" menerangkan di mana kod dijalankan dan tidak menyatakan dari mana angka-angka tersebut diperoleh. Memiliki data bar mentah adalah tugas lapisan di bawahnya, iaitu tasik data pasaran A-share tempatan, dan itulah yang menjadikan segala-galanya di atasnya boleh diganti.
Liputan peringkat percuma sumber data
Satu pemboleh ubah persekitaran menentukan perkara yang boleh dilihat oleh panel tersebut. Biarkan kunci vendor kosong dan projek akan berjalan dalam mod yang dipanggil None oleh dokumentasinya: bar harian sejarah daripada titik akhir percuma, dengan sesi semasa muncul satu hingga dua jam selepas penutupan pasaran. Masukkan kunci tersebut dan akses akan dibuka mengikut peringkat berbayar. Ini merupakan peringkat percuma yang boleh digunakan untuk kerja akhir hari dan had mutlak bagi sebarang data intraday, mengikut terma yang boleh diubah oleh vendor pada bila-bila masa pembaharuan.
Penyelenggara projek menyatakan aturan tersebut secara terus terang:
Projek ini hanya untuk tujuan pembelajaran dan penyelidikan kuantitatif, dan tidak membentuk sebarang nasihat pelaburan. Keputusan ujian semula (backtest) tidak mewakili pulangan masa depan.
Projek ini merupakan projek sumber terbuka peribadi, berdasarkan sumber data TickFlow, dan bukan projek rasmi TickFlow.
README, shy3130/tickflow-stock-panel, dibaca pada 13 Ogos 2026
Dalam bahasa Inggeris: projek ini adalah untuk kajian dan penyelidikan kuantitatif, ia "tidak membentuk nasihat pelaburan", keputusan ujian semula tidak mewakili pulangan masa depan, dan ia merupakan "projek sumber terbuka peribadi, bukan produk rasmi TickFlow". Itulah pengajaran penting bagi keseluruhan genre ini. Zero-ops mengambil alih kerja operasi daripada meja anda. Ia membiarkan kebergantungan tersebut tepat di tempat asalnya: anda menyewa data daripada syarikat yang tidak pernah bersetuju untuk menyokong panel ini. README tersebut juga mengehadkan penggunaan kepada kajian dan penyelidikan, manakala fail lesennya adalah MIT.
Mengapa menetapkan SHA komit dan bukannya nombor versi
SHA komit ialah cap jari 40 aksara yang diberikan oleh git kepada setiap perubahan yang disimpan. Ia menamakan satu keadaan kod yang tepat, secara kekal.
Apabila dibaca pada 13 Ogos 2026, repositori tersebut tidak mempunyai sebarang kandungan pada halaman GitHub Releases miliknya. Ia mempunyai 31 tag versi, daripada v0.1.31 hingga v0.1.88, dengan jurang pada penomboran dan tiada nota disertakan. Tag terbaharu menghala ke komit bertarikh 31 Julai 2026, manakala cawangan lalai telah beralih kepada kerja bertarikh 6 Ogos 2026. Tag yang ketinggalan di belakang cawangan dan tidak membawa sebarang nota tidak dapat memberitahu anda apa yang anda peroleh.
Oleh itu, catatkan SHA tersebut. Ketua cawangan lalai pada 6 Ogos 2026 ialah ecfddb451e97f6fc9a7e43ac33e4ef0e69933b33. Semak komit tersebut dan rekodkannya di samping sebarang kesimpulan yang anda buat daripada ujian ke belakang (backtests). Enam minggu kemudian, kenyataan "saya menjalankan versi terkini" tidak menggambarkan apa-apa.
Permulaan yang didokumenkan terdiri daripada dua baris: salin fail persekitaran contoh ke .env, kemudian jalankan docker compose up --build, yang menyajikan panel pada port 3018. Itu adalah arahan penyelenggara pada komit tersebut dan bukannya laluan yang telah diuji; binaan tersebut menarik imej dan memerlukan akses rangkaian yang tidak dilaksanakan oleh halaman ini. Laluan pembangunan (./dev.sh, atau .\dev.ps1 pada Windows) memerlukan Python 3.11 atau lebih baharu, Node 20 atau lebih baharu, serta pengurus pakej uv dan pnpm.
Perkara yang dihantar oleh ciri strategi LLM, dan ke mana ia dihantar
Penjanaan strategi, ulasan saham tunggal dan penulisan ulasan adalah pilihan. Biarkan AI_API_KEY kosong dan keseluruhan paparan kekal gelap. Isikannya dan anda juga menetapkan AI_PROVIDER (titik akhir yang serasi dengan OpenAI, atau Ollama), AI_BASE_URL, AI_MODEL dan AI_DAILY_TOKEN_BUDGET, yang akan menghentikan panggilan sebaik sahaja had token harian digunakan.
Arah perjalanan data adalah penting. Prompt anda, dan apa jua konteks yang dilampirkan oleh panel kepadanya, akan meninggalkan mesin anda menuju ke titik akhir yang anda konfigurasikan. Halakan URL asas kepada API yang dihoskan dan permintaan tersebut akan pergi ke syarikat berkenaan; halakan ia kepada runtime dalam rangkaian anda sendiri dan ia kekal di dalam. Menghoskan sendiri panel tidak bermakna menghoskan sendiri model tersebut. Kunci disimpan dalam .env teks biasa di punca projek dan juga boleh disunting dari halaman tetapan, di sebalik kata laluan papan pemuka dengan minimum enam aksara. Nota kami mengenai faktor alfa janaan LLM merangkumi bahagian di mana strategi yang ditulis oleh mesin cenderung untuk gagal.
Adakah penguji belakang (backtester) memodelkan kos dagangan?
Penguji belakang mengiklankan pengendalian T+1, komisen, slippage dan stop-loss. Kewujudan suis tersebut tidak bermakna suis itu telah ditetapkan, dan ujian belakang yang mengisi pesanan pada harga tutup yang dicetak dengan kos sifar adalah satu dakwaan bahawa dagangan adalah percuma. Ia tidak percuma. Satu mata asas (basis point) adalah satu peratus daripada satu peratus. Panel di bawah mengukur purata jurang antara bida terbaik dan tawaran terbaik, dalam mata asas, merentasi enam penyenaraian AS sepanjang satu jam tengah hari pada 17 Jun 2026.
SQL tepat di sebalik setiap nombor
SELECT
ticker AS symbol,
round(avg(toFloat64(ask_price) - toFloat64(bid_price))
/ avg((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, 2) AS spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'F')
AND sip_timestamp >= toDateTime('2026-06-17 15:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-17 16:00:00', 'UTC')
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
ORDER BY spread_bpsNama yang paling ketat dalam panel tersebut, SPY, mencatatkan purata 0.29 bps sepanjang jam tersebut. Nama yang paling luas, F, mencatatkan 6.98 bps. Rentasi jurang itu dua kali, sekali untuk masuk dan sekali untuk keluar, dan perjalanan pergi-balik (round trip) menelan kos kira-kira dua kali ganda daripada angka yang ditunjukkan, sebelum mengambil kira komisen.
Pemasaan menelan kos sebanyak penamaan. Panel seterusnya mengambil salah satu penyenaraian tersebut dan mengukur sejauh mana harganya bergerak dalam satu minit, yang dipuratakan kepada baldi setengah jam sepanjang hari yang sama.
SQL tepat di sebalik setiap nombor
SELECT
formatDateTime(
toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE),
'%H:%i') AS et_time,
round(avg((toFloat64(high) - toFloat64(low)) / toFloat64(close)) * 10000, 1) AS range_bps
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'KO'
AND window_start >= toDateTime('2026-06-17 12:00:00', 'UTC')
AND window_start < toDateTime('2026-06-17 21:00:00', 'UTC')
AND volume > 0
AND close > 0
GROUP BY et_time
ORDER BY et_timePanel dibuka pada 08:00, sebelum sesi biasa, di mana purata bar seminit mencatatkan 0 bps pergerakan: minit-minit yang didagangkan semuanya berada pada satu harga tunggal. Baldi terakhir, 16:30, berada selepas waktu tutup dan mencatatkan purata 4.2 bps. Ujian belakang memilih satu titik daripada setiap julat tersebut dan menamakannya sebagai pengisian (fill). Baca lengkung tersebut dan bukannya titik akhir: andaian yang sama adalah murah hati pada waktu tertentu dan menghukum pada waktu yang lain. Peraturan A-share menambah beban tersendiri, memandangkan T+1 menghalang saham yang dibeli hari ini daripada dijual sehingga sesi berikutnya, dan had harga harian boleh menghapuskan model keluar sepenuhnya. Panduan kami mengenai ujian belakang yang boleh dihasilkan semula menunjukkan perkara yang direkodkan oleh persediaan yang boleh dipertahankan, dan bias pandang ke hadapan merangkumi cara lain lengkung yang kelihatan bersih menjadi salah.
Dilaraskan atau tidak dilaraskan: persoalan asal usul
Tindakan korporat merupakan ruang di mana penyaring data boleh mengelirukan secara senyap. Saham yang berpecah sepuluh kepada satu mencatatkan kejatuhan sembilan puluh peratus pada hari tersebut tanpa sesiapa pun kerugian satu sen. Panel di bawah menyenaraikan dua belas pecahan saham hadapan terbesar bagi penyenaraian AS antara satu Januari dan tiga belas Ogos dua ribu dua puluh enam.
SQL tepat di sebalik setiap nombor
SELECT
ticker AS symbol,
formatDateTime(execution_date, '%b %e, %Y') AS effective_on,
round(any(toFloat64(split_to)) / any(toFloat64(split_from)), 2) AS shares_after_per_share
FROM global_markets.stocks_splits
WHERE execution_date >= toDate('2026-01-01')
AND execution_date <= toDate('2026-08-13')
AND split_from > 0
AND split_to > split_from
AND ticker NOT IN ('SPCX')
GROUP BY ticker, execution_date
ORDER BY shares_after_per_share DESC, execution_date DESC
LIMIT 12Pecahan terbesar menggandakan satu saham kepada 10000, berkuat kuasa Feb 10, 2026. Nisbah sebesar itu bukanlah nisbah empat kepada satu yang biasa; suapan tindakan korporat membawa keseluruhan julat dalam satu lajur. Yang terkecil daripada dua belas itu masih menukarkan satu saham kepada 20, cukup untuk menjadikan carta yang tidak dilaraskan kelihatan seperti satu keruntuhan. Penyaring momentum yang membaca harga mentah menandakan setiap satu daripadanya sebagai kejatuhan pasaran. Suapan data China membawa masalah yang sama dalam kosa kata mereka sendiri, menghantar tiga varian bagi setiap siri: tidak dilaraskan, dilaraskan hadapan, dan dilaraskan belakang. Pastikan anda tahu yang mana satu dimuatkan oleh panel anda. Sejarah harga dilaraskan pecahan memperincikan pengiraan tersebut.
Perkara yang perlu disemak sebelum anda mengehos sendiri sebarang sistem seumpama ini
- Asal usul data. Vendor mana, di bawah lesen apa, dan sama ada pelan percuma meliputi apa yang anda ingin lakukan dengannya.
- Pengendalian kunci. Di mana kunci API disimpan pada cakera, siapa yang boleh mengakses halaman tetapan, dan sama ada mesin tersebut terdedah di luar rangkaian anda sendiri.
- Pemodelan kos. Sama ada backtester mengambil kira komisen, slippage dan peraturan pasaran itu sendiri, serta apakah nilai yang terkandung dalam medan tersebut apabila anda membiarkannya tanpa perubahan.
- Laluan kemas kini. Commit tepat yang anda gunakan, ditulis di sebelah hasil anda, supaya boleh dihasilkan semula beberapa bulan kemudian.
Soalan Lazim
Adakah meja kerja kuantitatif A-share yang dihoskan sendiri percuma untuk dijalankan?
Kod tersebut dilesenkan di bawah MIT dan adalah percuma. Data pula merupakan perkara berasingan: dengan kunci vendor dibiarkan kosong, projek ini menggunakan bar harian sejarah percuma, dengan sesi semasa tiba satu hingga dua jam selepas penutupan pasaran. Sebarang data yang lebih pantas atau lebih mendalam memerlukan langganan berbayar vendor.
Apakah maksud sebenar dihoskan sendiri di sini?
Halaman web, penjadual, fail yang disimpan, dan penguji belakang (backtester) semuanya berjalan pada mesin atau pelayan anda sendiri, tanpa akaun pada platform pihak lain. Ini tidak bermakna data tersebut adalah milik anda, dan ciri AI pilihan kekal jauh (remote) kecuali anda menghalakannya kepada model dalam rangkaian anda sendiri.
Adakah ciri LLM menghantar data saya kepada pihak ketiga?
Apabila ia dihidupkan, ya, kepada mana-mana titik akhir (endpoint) serasi OpenAI yang anda konfigurasikan. Ciri ini dihantar dalam keadaan dinyahdayakan: dengan kunci AI kosong, tiada apa-apa yang keluar daripada mesin anda.
Mengapa menetapkan (pin) SHA komit dan bukannya tag versi?
Sehingga 13 Ogos 2026, repositori ini tidak mempunyai keluaran yang diterbitkan dan tiada nota keluaran, dan tag terbaharunya menghala kepada kod yang lebih lama daripada cawangan lalai. "Terbaharu" (Latest) dalam konteks ini bermaksud apa sahaja yang terkandung dalam cawangan tersebut pada hari anda mengklonnya, manakala SHA komit adalah tepat. Disiplin yang sama digunakan dalam bahan dagangan kuantitatif sumber terbuka secara amnya: tetapkan apa yang anda jalankan.
Nota pengesahan
Setiap perincian seni bina dan konfigurasi di atas dibaca daripada repositori awam pada 13 Ogos 2026, pada komit ecfddb451e97f6fc9a7e43ac33e4ef0e69933b33, iaitu ketua cawangan lalai, bertarikh 6 Ogos 2026. Halaman Keluaran tidak menyenaraikan apa-apa; senarai tag mengandungi tiga puluh satu tag versi daripada v0.1.31 hingga v0.1.88, dengan yang terbaharu menghala kepada komit bertarikh 31 Julai 2026. Baris yang dipetik adalah milik penyenggara sendiri, disalin daripada README dan bukannya diparafrasa. Perintah permulaan kontena dipetik daripada README tersebut dan tidak dilaksanakan di sini.
Panel pasaran adalah penyenaraian AS, ditetapkan pada tarikh lampau yang tetap supaya angka-angka tersebut kekal statik. Ia disertakan di sini untuk menunjukkan dua pemeriksaan yang terpakai bagi mana-mana pasaran, iaitu kos pelaksanaan dan pelarasan tindakan korporat, bukannya untuk menghuraikan pasaran China.
Setiap panel di sini disertakan dengan SQL yang menghasilkannya, yang boleh dikembangkan di bawahnya. Untuk menjalankan pemeriksaan spread yang sama merentasi senarai nama anda sendiri sebelum memasukkannya ke dalam penyaring (screener), minta ia dalam bahasa Inggeris mudah pada terminal Strasmore.