Saya telah bekerja pada sistem perdagangan frekuensi tinggi untuk NinjaTrader bagi pihak pelanggan jangka panjang. Akaun saya hidup adalah dengan MB Trading. Daripada meletakkan pesanan pasaran dan membayar komisen, Saya mengubah jenis untuk had pesanan. Kami mahu menerima komisen yang kecil untuk strategi membuat pasaran bukannya membayar komisen untuk menerima harga dipaparkan.
MetaTrader mengalami dua kelemahan utama yang membuat NinjaTrader pilihan yang unggul menjadikan perdagangan frekuensi tinggi. MT4 tidak menawarkan carta lebih rendah daripada tempoh masa M1 dan konteks perdagangan adalah kesilapan sibuk menghalang pelbagai carta dari berjalan serentak. NinjaTrader cukup kompleks di mana saya boleh mengawal kebanyakan maklumat, tetapi cukup mudah yang saya tidak perlu untuk melabur beratus-ratus jam untuk menguji idea. Selepas meluas menguji strategi pada carta M1 sebagai pengambil harga, Saya berasa amat yakin bahawa strategi adalah bunyi. Satu-satunya isu sekarang ialah menentukan sama ada atau tidak sama ada mengambil pasif (iaitu, membuat pasaran) pendekatan akan menyebabkan Isi cukup untuk membuat strategi yang berbaloi.
Isu pertama yang saya terserempak dengan tidak NinjaTrader; ia adalah dengan API MB Trading. Strategi bekerja denda pada akaun simulasi, yang hanya laluan perintah kepada NinjaTrader (NT). NT kemudian membuat tekaan apabila Isi akan berlaku. Matlamat fasa yang tidak untuk menguji strategi. Saya hanya mahu menguji pengaturcaraan untuk memastikan bahawa ia bekerja dengan betul.
100 perdagangan pergi tanpa halangan dalam akaun Sim yang. Strategi ini hanya dibuat melalui 2-3 perdagangan microlot pada akaun live di hadapan perintah yang belum selesai digantung. NinjaTrader pesanan belum selesai melalui 3 negeri sebelum mereka benar-benar berada di pasaran. Bagi pengaturcara di luar sana, ini adalah sifat-sifat OrderState objek IOrder.
- Sementara menunggu mengemukakan – strategi yang dihantar perintah itu kepada broker dan sedang menunggu untuk mendengar kembali
- Diterima – broker yang mengakui menerima perintah itu, tetapi masih meletakkan perintah itu ke dalam pasaran
- Kerja – perintah itu boleh didapati untuk orang lain untuk berdagang
Perintah strategi dikemaskini pada setiap tick. Apa yang sering berlaku ialah kadar itu akan pergi terlalu cepat, mewujudkan tunggakan komunikasi utama dalam pasaran cepat. NinjaTrader pernah melemparkan pengecualian. Bukti hanya daripada masalah adalah bahawa saya akan melihat perintah tergantung dengan harta yang PendingChange. Penyelesaian menyusahkan adalah untuk keluar NinjaTrader dan menambah nilai semua.
Saya membuat kesimpulan bahawa mungkin bahawa negeri perintah itu berjaya disebabkan isu. Saya menukar pendekatan saya untuk pesanan yang tidak terurus, tetapi itu tidak membuat perbezaan. Saya akhirnya datang kepada kesedaran bahawa API MB Trading tidak boleh mengendalikan lebih daripada satu perintah setiap beberapa saat.
Strategi itu mendapati tempat manis selepas menukar dari semak ke carta kedua. Terbaru daripada 6 saat atau lebih lama seolah-olah memberikan API MB Trading cukup masa untuk mengemas kini wihle masih memelihara sesuatu pendekatan frekuensi tinggi. Mana-mana perdagangan yang perlu berlari lebih pantas daripada ambang yang di MB Perdagangan perlu menggunakan protokol FIX.
Elemen lain yang mendorong saya gila ialah pesanan had NinjaTrader secara automatik memadam sendiri sekali setiap bar. Saya hampir mengoyakkan rambut saya keluar, dan saya tidak mempunyai semua yang banyak rambut, selama beberapa jam cuba untuk memikirkan mengapa perintah dipadam sendiri secara automatik. Ramai orang mengenal pasti dengan sekolah pukulan keras mendekati kepada pembelajaran. Saya setebal diketuai kerana kebanyakan. Saya digambarkan punca apabila saya revisitied dokumentasi talian NinjaTrader dan menemui kaedah kemasukan had yang membolehkan baik sehingga dibatalkan (GTC) pesanan.
Masalah kelajuan juga ditunjukkan dengan overfills. Sebuah memenuhi sampai melimpahi adalah apabila permintaan strategi untuk membatalkan pesanan yang belum selesai, tetapi broker memenuhi perintah itu sebelum pembatalan itu berkuat kuasa. Kebimbangan terbesar dengan overfills ialah NinjaTrader secara automatik melumpuhkan strategi dan keluar dari kedudukan di pasaran apabila memenuhi sampai melimpahi berlaku. Satu-satunya cara untuk mencegah pengaturcaraan ini adalah untuk mengubah kaedah kemasukan ke pendekatan yang tidak terurus.
Cara yang paling mudah untuk membangunkan strategi untuk frekuensi tinggi di NinjaTrader (tetapi kekerapan tidak ultra-tinggi) adalah dengan menggunakan perintah berjaya. Setiap kali keluar yang diperlukan, meletakkan kemasukan had dalam arah yang bertentangan. NinjaTrader menjaga meletakkan perintah keluar untuk positoin pasaran terbuka. Hadkan maklumat terbaru bagi setiap beberapa saat. Ia membolehkan API broker untuk mengejar dan membantu mengelakkan masalah overfills.