CTP komoditas berjangka dan API mata uang digital memiliki perbedaan yang signifikan, yang familiar dengan transaksi cryptocurrency yang terprogram dan tidak akrab dengan komoditas berjangka yang terprogram, tidak dapat dengan mudah meniru pengalaman; posting ini akan merangkum perbedaan antara keduanya.
Data sejarah
CTP interface tidak menyediakan pasar historis, pasar historis harus diselesaikan melalui pedagang. CTP tidak menyediakan mekanisme pemulihan pasar jika data pasar hilang karena tidak mendarat atau terputus dari pendaratan. Pasar historis hanya dapat diakses melalui data pihak ketiga, dan mata uang digital biasanya menyediakan antarmuka untuk mengakses garis K dan sejarah transaksi.
Perjanjian Berbeda
API mata uang digital umumnya adalah REST dan protokol websocket, CTP di dalamnya membungkus logika yang terkait dengan jaringan, menggunakan protokol FTD berbasis protokol TCP untuk berkomunikasi dengan latar belakang CTP; dibagi menjadi tiga mode:
Semua pasar dan transaksi pesanan di protokol CTP hanya diberitahu setelah terjadi perubahan, sedangkan permintaan pesanan, akun, dan kepemilikan adalah permintaan aktif. Ketiga mode di atas dapat ditemukan dalam bentuk yang sama di API mata uang digital.
Perbedaan tingkat detail data
CTP hanya memiliki kedalaman satu jual beli, biaya lima file sangat mahal, dan mata uang digital umumnya dapat diakses dengan kedalaman penuh atau 200 file. CTP tidak mendorong transaksi nyata, hanya dapat ditarik kembali dengan perubahan saham, sedangkan API pertukaran mata uang digital dapat memperoleh transaksi rilis nyata. Tingkat data tick transaksi di platform CTP domestik adalah 1 detik 2 tick.
Perbatasan akses berbeda
Pertukaran mata uang digital umumnya dibatasi 1 detik 10 kali. Untuk penarikan pesanan sebagian besar juga tidak ada persyaratan khusus. CTP memiliki batasan ketat untuk permintaan yang membutuhkan permintaan yang dikeluarkan secara proaktif, umumnya 2 s kali lebih aman, juga memiliki persyaratan untuk jumlah penarikan.
Tingkat Stabilitas
Protokol CTP sangat stabil dan hampir tidak mengalami kesalahan dan masalah jaringan. Mata uang digital seharusnya memiliki batasan yang rendah, waktu transaksi yang lama, dan terjadi pemeliharaan, penundaan data, kesalahan jaringan, dll.
FMZ Platform Kuantitatif CTP Praktik Terbaik
CTP default mode mendapatkan antarmuka transaksi seperti GetTicker, GetDepth, GetRecords yang memiliki cache data untuk mendapatkan yang terbaru, tidak ada data yang akan menunggu untuk data, jadi kebijakan dapat tidak menggunakan tidur. Ketika perubahan transaksi, ticker, kedalaman, catatan akan diperbarui, ketika panggilan antarmuka yang diinginkan akan segera kembali, yang disebut status antarmuka yang ditempatkan sebagai menunggu update mode, yang berikutnya panggilan yang sama antarmuka, akan menunggu untuk data baru kembali beberapa kontrak cold lock atau stagnasi akan terjadi untuk waktu yang lama tidak bertransaksi, yang merupakan kebijakan yang ditarik untuk waktu yang lama dan normal.
Jika Anda ingin mendapatkan data setiap kali Anda mengakses pasar, bahkan data lama, Anda dapat beralih ke mode pembaruan pasar instan.exchange.IO("mode", 0) ; pada saat ini, kebijakan tidak dapat ditulis sebagai event-driven, dan perlu menambahkan sebuah peristiwa Sleep untuk menghindari siklus mati yang cepat. Beberapa kebijakan dengan frekuensi rendah dapat menggunakan pola ini, dan desain kebijakan sederhana.使用exchange.IO("mode", 1) dapat memutar kembali ke mode cache default.
Untuk mengoperasikan kontrak tunggal, Anda dapat menggunakan mode default. Tetapi jika ada beberapa kontrak, mungkin satu kontrak tidak memperbarui pasar, sehingga akses ke antarmuka pasar tersumbat, dan pembaruan pasar kontrak lainnya juga tidak dapat diakses. Untuk mengatasi masalah ini, Anda dapat menggunakan mode pembaruan segera, tetapi tidak nyaman menulis strategi frekuensi tinggi.设置方式为exchange.IO("wait") ─ Jika beberapa objek pertukaran ditambahkan, hal ini jarang terjadi pada komoditas berjangka, tetapi jika ada beberapa objek yang ditambahkan, maka akan terjadi perubahan.可以使用exchange.IO("wait_any"), maka indeks yang dikembalikan akan menunjukkan indeks bursa yang dikembalikan.
Proses tick perubahan push: {Event:
Pada titik ini, struktur strategi dapat 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)
}
}
}