CTP niaga hadapan komoditi dan API mata wang digital mempunyai perbezaan yang ketara, pengalaman yang tidak mudah untuk meniru yang tidak biasa dengan perdagangan berprogram mata wang digital dan tidak biasa dengan perdagangan berprogram masa depan komoditi.
Data sejarah
Antara muka CTP tidak menyediakan pasaran sejarah, pasaran sejarah perlu diselesaikan melalui peniaga. CTP tidak menyediakan mekanisme pemulihan pasaran jika data pasaran hilang kerana tidak mendarat atau sambungan pendaratan terputus. Pasar sejarah hanya boleh diakses melalui data pihak ketiga, dan mata wang digital biasanya menyediakan antara muka untuk mendapatkan garis K dan sejarah urus niaga.
Perjanjian Berbeza
API mata wang digital biasanya REST dan protokol websocket, CTP dalaman dibungkus dengan logik yang berkaitan dengan rangkaian, menggunakan protokol FTD berdasarkan protokol TCP untuk berkomunikasi dengan latar belakang CTP; terbahagi kepada tiga mod:
Semua perdagangan dan urus niaga dalam protokol CTP hanya diberitahu apabila terdapat perubahan, sementara permintaan pesanan, akaun, dan simpanan adalah pertanyaan aktif. Ketiga-tiga mod tersebut boleh didapati dalam bentuk yang sama dalam API mata wang digital.
Perincian data berbeza
CTP hanya mempunyai kedalaman satu pembelian satu jual, bayaran lima pelaburan adalah mahal, dan mata wang digital biasanya boleh diakses dengan kedalaman penuh atau 200 fail. CTP tidak mendorong transaksi sebenar, hanya dapat ditarik balik melalui perubahan simpanan, sementara API bursa mata wang digital dapat memperoleh transaksi percikan sebenar. Tingkat data tick transaksi di platform CTP domestik adalah 1 detik 2 tick.
Sekatan Akses Berbeza
Pertukaran mata wang digital biasanya terhad kepada 10 kali dalam satu saat. Kebanyakan tidak mempunyai keperluan khusus untuk penarikan pesanan. CTP mempunyai batasan ketat untuk permintaan yang perlu dikeluarkan secara proaktif, biasanya 2s lebih selamat, dan juga keperluan untuk jumlah penarikan.
Tahap kestabilan
Protokol CTP sangat stabil dan hampir tidak mempunyai masalah kesalahan dan rangkaian. Mata wang digital sepatutnya mempunyai batasan yang rendah, masa urus niaga yang panjang, keadaan penyelenggaraan, kelewatan data, kesalahan rangkaian dan lain-lain yang biasa berlaku.
FMZ Platform Kuantitifikasi CTP Praktik Terbaik
CTP mod lalai antara muka untuk mendapatkan pasaran seperti GetTicker, GetDepth, GetRecords semua mempunyai data yang disimpan cache untuk mendapatkan yang terkini, apabila tidak ada data akan sentiasa menunggu untuk mempunyai data, jadi dasar boleh tidak menggunakan tidur. Apabila perubahan pasaran, ticker, kedalaman dan rekod akan dikemas kini, ketika ini panggilan antara muka mana pun akan segera kembali, yang dipanggil status antara muka diletakkan sebagai mode menunggu kemas kini, panggilan seterusnya antara muka yang sama, akan menunggu data baru kembali; atau beberapa kontrak pintu sejuk akan terhenti untuk masa yang lama tidak berdagang, yang merupakan strategi yang ditukar untuk masa yang lama dan normal.
Jika anda ingin mendapatkan data setiap kali anda mengakses pasaran, walaupun data lama, anda boleh beralih ke mod kemas kini pasaran segera.exchange.IO("mode", 0) ; pada masa ini, dasar tidak boleh ditulis sebagai pemandu peristiwa, dan perlu menambah peristiwa Sleep untuk mengelakkan daur mati yang cepat. Beberapa dasar bertaraf rendah boleh menggunakan mod ini, dan reka bentuknya mudah.使用exchange.IO("mode", 1) boleh mematikan semula mod cache lalai.
Apabila mengendalikan kontrak tunggal, anda boleh menggunakan mod lalai. Tetapi jika terdapat beberapa kontrak, mungkin satu kontrak tidak mengemas kini pasaran, menyebabkan akses kepada antarmuka pasaran tersumbat, dan pembaruan pasaran kontrak lain tidak dapat diakses. Untuk menyelesaikan masalah ini, anda boleh menggunakan mod kemas kini segera, tetapi tidak mudah menulis dasar frekuensi tinggi.设置方式为exchange.IO("wait") ⇒ Jika lebih banyak objek pertukaran ditambah, yang jarang berlaku dalam niaga hadapan komoditi, anda boleh menunggu.可以使用exchange.IO("wait_any"), pada masa ini indeks yang dikembalikan menunjukkan indeks bursa yang dikembalikan.
Pengecoran perubahan tick: {Event: tick tick, Index: indeks bursa (ditambah mengikut urutan bursa bot), Nano: masa peristiwa pada skala nanodetik, Symbol: nama kontrak} Pengecoran pesanan: {Event: order order, Index: indeks bursa, Nano: masa kejadian pada skala nanodetik, Order: maklumat pesanan ((sesuai dengan GetOrder) }
Pada masa ini, struktur strategi boleh ditulis sebagai berikut:
function on_tick(symbol){
Log("symbol update")
exchange.SetContractType(symbol)
Log(exchange.GetTicker())
}
function on_order(order){
Log("order update", order)
}
function main(){
while(true){
if(exchange.IO("status")){ //判断链接状态
exchange.IO("mode", 0)
_C(exchange.SetContractType, "MA888")//订阅MA,只有第一次是真正的发出订阅请求,接下来都是程序切换,不耗时间。
_C(exchange.SetContractType, "rb888")//订阅rb
while(True){
var e = exchange.IO("wait")
if(e){
if(e.event == "tick"){
on_tick(e.Symbol)
}else if(e.event == "order"){
on_order(e.Order)
}
}
}
}else{
Sleep(10*1000)
}
}
}