WonderTrader
adalah kerangka pengembangan perdagangan kuantitatif dengan efisiensi tinggi dan ketersediaan tinggi berdasarkan modul inti C++
yang cocok untuk semua jenis transaksi di seluruh pasar.
WonderTrader
mengandalkan kerangka kerja inti C++
berkecepatan tinggi dan kerangka lapisan aplikasi (wtpy) yang efisien dan mudah digunakan, dan berkomitmen untuk menciptakan skenario perdagangan R&D kuantitatif terpadu yang sepenuhnya otomatis mulai dari R&D, perdagangan, operasi, dan penjadwalan .
WonderTrader
meluncurkan mesin UFT baru di 0.9
untuk memenuhi kebutuhan perdagangan latensi sangat rendah. Setelah serangkaian pengoptimalan, latensi sistem berada dalam 175 nanodetik .
Arsitektur perdagangan nyata WonderTrader
WonderTrader
Mesin perdagangan yang kaya
- Mesin CTA , juga disebut mesin strategi sinkronisasi , umumnya cocok untuk strategi dengan target lebih sedikit, logika perhitungan lebih cepat, dan digerakkan oleh peristiwa + waktu. Skenario penerapan yang umum mencakup waktu penawaran tunggal, arbitrase di bawah frekuensi menengah, dll. Untuk strategi DualThrust yang disediakan dalam demo, waktu rata-rata yang dibutuhkan untuk satu penghitungan ulang adalah sekitar 70 mikrodetik untuk versi implementasi Python dan sekitar 4,5 mikrodetik untuk versi implementasi C++.
- Mesin SEL , disebut juga mesin strategi asinkron , umumnya cocok untuk strategi berbasis waktu yang memiliki banyak target dan membutuhkan waktu lama untuk menghitung logika. Skenario penerapan yang umum mencakup strategi pemilihan saham multi-faktor, strategi panjang-pendek lintas sektor, dll.
- Mesin HFT , juga disebut mesin strategi frekuensi tinggi , terutama ditujukan pada strategi frekuensi tinggi atau latensi rendah. Mesin ini digerakkan oleh peristiwa dan penundaan sistem antara 1-2 mikrodetik.
- Mesin UFT , juga disebut mesin strategi ultra-cepat , terutama ditujukan pada strategi frekuensi sangat tinggi atau latensi sangat rendah, digerakkan oleh peristiwa, dan penundaan sistem dalam 200 nanodetik.
Antarmuka pengembangan lengkap
- Antarmuka data yang efisien dan mudah digunakan : Setiap strategi akan memiliki modul konteks independen. Konteks tersebut akan secara otomatis menyimpan data yang diperlukan oleh strategi, dan strategi tersebut dapat dipanggil secara langsung.
- Antarmuka sinyal sederhana : Strategi hanya perlu mengatur posisi target dan akan dieksekusi secara otomatis di latar belakang.
- Logika kebijakan bebas konteks : Kebijakan tidak perlu mencatat data apa pun. Kebijakan ini hanya perlu menanyakan antarmuka setiap kali. Semua data disimpan dalam cache di memori, dan efisiensi akses terjamin.
Manajemen strategis profesional
- Manajemen kombinasi strategis terpadu : Pendekatan kombinasi strategi terutama digunakan untuk berkoordinasi dengan manajemen produk organisasi profesional. Pelat kombinasi sesuai dengan beberapa target dari beberapa strategi, dan kemudian menetapkan jumlah dana unit dasar. Ini adalah pelat kombinasi dasar manajemen produk, yang sesuai untuk ekspansi.
- Eksekusi penggabungan posisi target : Setelah posisi target digabungkan, risiko transaksi mandiri dapat dihindari, sementara biaya margin dan biaya komisi berkurang.
- Penyimpanan posisi teoritis secara independen : Posisi teoritis dari strategi disimpan secara independen, dan kinerja keseluruhan dari disk gabungan juga dihitung secara independen, sehingga mudah untuk dikelola secara internal.
- Eksekusi beberapa akun secara bersamaan : Setelah posisi target kombinasi ditentukan, maka dieksekusi secara bersamaan melalui beberapa saluran perdagangan, yang secara efektif dapat memastikan konsistensi kinerja akun yang berbeda.
Jenis dukungan backtest penuh
- Dukungan bahasa penuh : Baik itu strategi yang dikembangkan dalam
C++
, strategipython
yang dikembangkan di bawahwtpy
, atau strategi yang dikembangkan di bawah sub-kerangka bahasa lain, semuanya diuji ulang dalam mesin pengujian ulang terpadu .- Efisiensi backtesting tinggi : Mesin backtesting dikembangkan dalam
C++
, dan efisiensi backtesting tinggi dan kecepatannya cepat. Baik itu strategiC++
atau strategiPython
, semuanya dapat diverifikasi dengan cepat.- Dukungan strategi lengkap : Selain strategi CTA dan strategi SEL , strategi HFT , strategi UFT , dan unit eksekusi juga dapat diuji ulang.
Servo data yang efisien
- Server data lokal : Mesin penyimpanan bawaan
WonderTrader
menggunakan penyimpanan lokal, membuat server data secara lokal, dan menyiarkan data pasar real-time melalui portudp
untuk mencapai struktur layanan1+N
, yang dapat menyediakan layanan data yang tidak terdiferensiasi ke beberapa kombinasi disk secara bersamaan. Arsitektur tingkat penyedia data profesional mendukung pembentukan sistem distribusi multi-level untuk dengan mudah mengatasi berbagai skenario permintaan.- Caching data historis : Selama proses transaksi, semua data historis di-cache di memori. Pada saat yang sama, mekanisme referensi langsung ke potongan data memori diadopsi untuk menghindari penyalinan data dan meningkatkan efisiensi akses.
- Mesin penyimpanan yang efisien : Data real-time menggunakan file
mmap
, yang dapat membaca dan menulis dengan kecepatan tinggi tanpa kehilangan data. Pada saat yang sama, ini mendukung database mysql untuk menyimpan data historis, sehingga lebih mudah untuk membangun database penelitian investasi Anda sendiri atas dasar ini.
Pengendalian risiko yang fleksibel
- Pengendalian risiko dana disk kombinasi : Disk kombinasi memiliki skala dana yang telah ditetapkan, dan pengendalian risiko dana disk kombinasi dapat dilakukan berdasarkan dana virtual dari disk kombinasi. Keuntungan terbesarnya adalah jika kombinasi berada pada tahap menurun, setelah pengendalian risiko terpicu, meskipun neraca modal tidak mencapai garis pengendalian risiko, namun tidak akan terus menurun.
- Pengendalian risiko lalu lintas saluran : Terutama ditujukan pada risiko kepatuhan , pengendalian indikator seperti jumlah total pesanan yang dibatalkan, jumlah pesanan yang dilakukan dalam jangka waktu singkat, dan jumlah pesanan yang dibatalkan.
- Pengendalian risiko dana rekening : Konsisten dengan pengendalian risiko dana dalam pengertian umum, terutama pengendalian penarikan dana rekening, dll.
- Intervensi manual darurat : Menyediakan pintu masuk untuk intervensi manual darurat, dan mencapai tujuan kontrol dengan mengunggah file konfigurasi. Hal ini terutama cocok untuk risiko dalam satu produk. Jika ada risiko di seluruh pasar, sistem dapat dihentikan secara manual.
- Mekanisme kopling : Mekanisme kopling mengandalkan mekanisme pemisahan sinyal dan eksekusi. Hal ini terutama digunakan untuk memutus langsung eksekusi sinyal melalui mekanisme kopling jika ada risiko dalam strategi atau kombinasi. Keuntungannya adalah tidak mempengaruhi logika strategi dan hanya memutus eksekusi sinyal. Anda dapat terus mengamati kinerja strategi di tahapan pasar tertentu dan mengonfirmasinya dengan riset teoretis.
Konsol yang kuat (layanan pemantauan wtpy)
- Pemantauan operasi disk kombinasi : Anda dapat melihat log operasi waktu nyata, data teoretis strategi, data saluran perdagangan, dll., dan menyediakan pintu masuk untuk memulai dan menghentikan secara manual.
- Layanan penjadwalan otomatis : menjadwalkan tugas terjadwal secara otomatis (mulai, berhenti, mulai ulang), mendukung pengaturan pengulangan tugas setiap minggu, dan mendukung pengawasan proses.
- Pemberitahuan peristiwa waktu nyata : Layanan pemantauan menerima peristiwa yang didorong oleh disk kombinasi, dan kemudian meneruskannya ke terminal pemantauan untuk meminta pengguna.
- Penampil backtest : Dengan menggunakan modul WtBtSnooper, Anda dapat melihat dan menganalisis data backtest.
- Penerapan jarak jauh yang sepenuhnya otomatis (sedang dibangun) : Penerapan jarak jauh online yang sepenuhnya otomatis, menyediakan layanan penerapan otomatis untuk berbagai skenario aplikasi seperti lingkungan backtest dan lingkungan disk nyata.
Pengendalian internal tim Metode manajemen portofolio strategis memberikan solusi sempurna untuk manajemen tim internal.
C++
dapat memberikan kerahasiaan strategi yang maksimal, dan peneliti investasi tidak perlu khawatir tentang kebocoran strategi; Perdagangan multi-akun ( konfigurasi multi-produk ) Untuk kombinasi strategi dalam siklus pasar yang berbeda, tim umum akan memiliki kombinasi strategi yang paling sesuai untuk saat ini. Namun dalam periode yang sama, tim mungkin mengelola banyak akun dalam waktu yang bersamaan, namun kenyataannya kombinasi strategi yang digunakan oleh akun-akun tersebut sama. Saat ini, arsitektur eksekusi M+1+N yang disediakan oleh platform WonderTrader
dapat memenuhi permintaan ini dengan sempurna.
Misalkan ukuran modal dasar dari kombinasi tertentu P adalah 5 juta, pengembalian yang diharapkan adalah 30%, penarikan maksimum adalah 10%, dan rasio pengembalian terhadap risiko adalah 3:1; akun A menggunakan kombinasi P ini untuk berdagang, dan jumlah dana di akun A adalah 10 juta, dan jumlah maksimum yang dapat diterima adalah Retracementnya juga 10%; Akun B juga menggunakan kombinasi ini untuk memperdagangkan P, dan jumlah dananya juga 10 juta, tetapi bisa Retracement maksimum yang diterima adalah 20%; saat ini, karena parameter risiko akun A konsisten dengan pasar dasar, pembesaran ukuran lot akun A adalah ukuran modal/ukuran dana pasar dasar = 1000w/500w = 2 kali; akun B dapat mentolerirnya. Penarikan maksimum adalah 20%, sehingga rasio ukuran lot perlu digandakan, yaitu akun B dapat dialokasikan 4 kali.
Pelacakan multi-target Beberapa platform perdagangan kuantitatif yang menggunakan bahasa interpretasi (seperti Python
) untuk mengembangkan modul inti mampu melakukan berbagai skenario aplikasi ketika hanya ada sedikit target. Namun ketika jumlah target yang perlu dilacak mencapai lebih dari 100, atau bahkan lebih dari 50, maka tidak dapat memenuhi permintaan tersebut. Di satu sisi, ini memakan banyak sumber daya. Menggunakan mekanisme seperti multiprocess
, meskipun setiap target berjalan secara independen, ratusan proses baru akan dibuat untuk ratusan target, yang di sisi lain menghabiskan banyak memori dan CPU , strategi tersebut tidak efisien dan terdapat persaingan yang serius untuk mendapatkan sumber daya. Dalam keadaan tertentu, respons strategis juga akan lebih lambat. Inti dari WonderTrader
dikembangkan dalam C++
, dan servo data dirancang dari awal untuk menyediakan layanan ke beberapa kombinasi pada saat yang sama, strategi dan eksekusi dipisahkan, dan eksekusi sinyal serta perhitungan strategi berjalan sepenuhnya secara independen dua thread yang berbeda. Dengan arsitektur seperti itu, kebutuhan pelacakan multi-standar dapat dipenuhi dengan baik.
Strategi komputasi intensif Jumlah perhitungan yang diperlukan untuk beberapa strategi sangat mengejutkan. Salah satu strategi yang umum adalah strategi pemilihan saham. Baik menggunakan banyak faktor atau fundamental, strategi ini akan menyaring ribuan saham secara bertahap untuk mendapatkan kumpulan saham target akhir. Selain itu, beberapa kerangka multi-faktor multi-standar juga memiliki jumlah perhitungan yang besar. Strategi seperti ini memerlukan perhitungan yang sangat besar dan memakan waktu yang lama. Mesin SEL
WonderTrader
disesuaikan untuk memenuhi kebutuhan ini. Mesin SEL
mengadopsi model berbasis waktu asinkron. Dengan mendaftarkan jadwal waktu penghitungan ulang ke mesin (mendukung siklus harian, harian, mingguan, bulanan, dan lainnya), mesin ini memicu penghitungan ulang secara berkala, dan kemudian menyesuaikan posisi target dari beberapa target, sehingga sinyal keluaran.
Perdagangan cepat WonderTrader
menggunakan C++
sebagai bahasa pengembangan inti yang mendasarinya. Salah satu tujuan terpentingnya adalah untuk mengejar kinerja terbaik , sehingga perdagangan frekuensi tinggi atau perdagangan cepat menyumbang proporsi yang sangat besar dalam skenario penggunaan WonderTrader
. WonderTrader
telah membuka UFTEngine baru dalam versi v0.9
, yang dirancang khusus untuk skenario perdagangan yang sangat cepat. Berbeda dari HFTEngine
asli, HFTEngine
menargetkan frekuensi tinggi umum dan berfokus pada penyediaan komponen dasar berkinerja tinggi ke lapisan aplikasi . Ini akan mempertimbangkan lebih banyak masalah kompatibilitas dan masalah docking lapisan aplikasi. UFTEngine
benar-benar terpisah dari proyek WtCore
dan tidak menyediakan antarmuka ke lapisan aplikasi. Semuanya dikembangkan dan diimplementasikan dalam C++
, dan penundaan sistem berada dalam 200ns .
Perdagangan algoritmik WonderTrader
memiliki modul entri eksekutor independen WtExecMon
, di mana pengguna dapat menerapkan perdagangan algoritmik. Dalam arsitektur eksekusi M+1+N WonderTrader
, bagian eksekusi 1+N dihilangkan dan dapat digunakan sebagai eksekutor perdagangan algoritmik independen . Saat pengguna menggunakannya, dengan menetapkan posisi target dari target yang ditentukan, unit eksekusi algoritma dapat menempatkan order perdagangan sesuai dengan algoritma yang telah ditetapkan. Pengguna dapat menambahkan lebih banyak unit eksekusi algoritme dengan mengimplementasikan modul WtExecFact
mereka sendiri. Lapisan bawah C++
yang efisien dapat memberikan jaminan yang kuat untuk efek eksekusi unit eksekusi algoritma.
wtpy
WonderTrader
dan merupakan sub-kerangka Python3
dari WonderTrader
yang dikembangkan menggunakan Python3
Python
memiliki banyak perpustakaan pihak ketiga yang sangat populer dan kuat untuk pemrosesan data deret waktu.Python
sangat nyaman untuk penulisan kode dan debugging. Ini dapat dijalankan secara langsung tanpa kompilasi.Python
juga memungkinkan Python
diterapkan ke lebih banyak skenariowtpy
adalah sebagai perpanjangan dari WonderTrader
dalam bahasa Python
wtpy
juga memiliki komponen layanan pemantauan bawaan yang kuat WtMonSvr
. Komponen ini menyediakan antarmuka pemantauan webui
jarak jauh, yang dapat memantau pengoperasian kombinasi strategi secara real time. Komponen ini juga menyediakan layanan penjadwalan otomatis 24×7
untuk melindungi transaksi Anda. WonderTrader
WonderTrader
github
: https://github.com/wondertrader/wondertradergitee
: https://gitee.com/wondertrader/wondertraderwtpy
github
: https://github.com/wondertrader/wtpygitee
: https://gitee.com/wondertrader/wtpywtpy
: https://pypi.org/project/wtpy/ wtpy
dapat diinstal langsung di python3.8
atau lebih tinggi. pip install wtpy --upgrade
WonderTrader
Wt4ElegantRL
menggunakan wtpy
sebagai mesin backtest yang mendasari https://github.com/drlgistics/Wt4ElegantRL wondertrader
untuk menerima informasi real-time dari WonderTrader
610730738
(lengkap) Grup 2 367916500
(harap star
sebelum bergabung, lalu berikan nama pengguna github
Anda)WonderTrader
lebih lanjut, silakan lihat https://docs.wondertrader.com/WonderTrader
https://dumengru.github.io/docs_wondertrader/WonderTrader
@ZzzzHeJ https://zzzzhej.github.io/WonderTrader-Learning-Notes/