Dengan perkembangan perdagangan kuantitatif aset blockchain, semakin banyak pedagang aset blockchain telah mengenali alat perdagangan kuantitatif. Tetapi sebagai pemula dalam lingkaran ini, ia mungkin sangat bingung tentang banyak konsep, dan bingung dengan berbagai istilah, perangkat lunak, informasi, dll. Artikel ini akan membawa Anda untuk memahami dan membiasakan diri dengan konsep umum, dan belajar tentang berbagai informasi berguna dalam transaksi kuantitatif aset blockchain dari berbagai aspek. Artikel ini akan meringkas konsep dasar pertama, dan kemudian memberikan contoh pada FMZ Quant Trading Platform yang sesuai dengan konsep dasar ini.
Pertama-tama, kita perlu memahami konsep bursa. Kita perlu memperdagangkan aset blockchain untuk spekulasi, investasi, dll. Masing-masing dari mereka perlu dilakukan di bursa. Saat ini ada banyak bursa: senior, berkembang, besar dan kecil.
Rekening pertukaran akun bursa, adalah akun yang terdaftar dan dibuka di bursa ini. aset blockchain dapat disimpan di akun ini untuk perdagangan. beberapa bursa dapat membuat dan mengaturSub-rekeningaplikasi sub-akun untuk setiap bursa berbeda. jadi Anda perlu memeriksa informasi secara khusus di situs web bursa atau berkonsultasi dengan layanan pelanggan bursa.
Setelah masuk dengan akun di situs web pertukaran, biasanya Anda dapat melihat bahwa tempat di mana aset blockchain dapat disimpan dibagi menjadi beberapa
Antarmuka API ke sistem pertukaran
Banyak pengguna yang belum menggunakan fungsi pertukaran ini mungkin bertanya: REST
antarmuka protokol danWebSocket
Beberapa pertukaran juga menyediakanFIX
Ini hanya untuk pemahaman, sebagian besar kita menggunakanREST
protokol antarmuka. dokumen antarmuka ini biasanya dapat ditemukan di link dengan kataAPIDi bagian bawah situs web resmi bursa. Terkadang perlu untuk memeriksa dokumen ini untuk beberapa informasi kesalahan antarmuka. Sistem API dari setiap bursa sangat berbeda, sehingga Anda perlu memeriksa dokumentasi untuk masalah tertentu. Jika Anda bukan pengembang strategi, ini hanya untuk pemahaman.
Kunci API dari akun
Kunci API dari akun harus dipahami dengan hati-hati, karena terkait dengan keamanan aset blockchain yang disimpan di bursa Anda.
Di atas mengatakan bahwa antarmuka API adalah saluran, maka API KEY dapat dipahami sebagailulusKarena saluran akses, Anda tidak dapat mengizinkan akses ke program apa pun, yang sangat berbahaya. Oleh karena itu, verifikasi diperlukan, dan API KEY digunakan untuk memverifikasi identitas. Jadi API KEY terkait dengan keamanan aset Anda dan harus disimpan dengan benar.
Biasanya API KEY dari pertukaran dibuat di sudut kanan atas halaman pertukaran, di halaman manajemen akun (juga mungkin ada pertukaran yang ditempatkan di tempat lain di halaman web, cari tautan dengan kata kunci access key
, dan string kedua biasanya disebutsecret key
. Ada juga beberapa pertukaran yang API KEY memiliki informasi lain, misalnya, antarmuka OKEX V5 dan V3 memilikiPassPhrase
, yang juga merupakan string (string yang perlu diatur oleh Anda sendiri untuk memperkuat verifikasi keamanan).
Ketika mengatur API KEY, biasanya perlu untuk mengatur izin dari API KEY ini, umumnya, ada izin seperti
Objek pertukaran Konsep objek pertukaran adalah konsep di Platform Perdagangan Kuantum FMZ (FMZ.COMSederhananya, ini mengacu pada objek yang terbentuk oleh enkapsulasi antarmuka pertukaran. Objek ini adalah pertukaran dalam kode strategi FMZ, yang memanggil fungsi exchange.GetTicker, sebenarnya memanggil antarmuka untuk mengakses data pasar pertukaran. Lihat dokumentasi FMZ API untuk rincian:https://www.fmz.com/api#exchangeSebuah bursa dapat memiliki sektor berjangka dan sektor spot. Karena objek bursa berjangka dan objek bursa spot yang didefinisikan pada FMZ adalah jenis objek pertukaran yang berbeda, mereka dibedakan (objek bursa berjangka memiliki beberapa fungsi lebih dari objek bursa spot, seperti mengatur fungsi leverage, menanyakan fungsi posisi dll, periksa dokumentasi untuk rincian). Jadi ambil pertukaran Binance sebagai contoh, Anda mungkin melihatnya saat mengkonfigurasi di FMZ:Ada juga 2 Huobi.
Jika strategi adalah untuk beroperasi pada obyek bursa berjangka, tambahkan berjangka, dan jika Anda ingin beroperasi spot, tambahkan spot. Alasan untuk desain ini adalah bahwa bursa mungkin memiliki antarmuka berjangka dan spot yang sama sekali berbeda, dan bahkan alamat basis antarmuka yang berbeda, sehingga mereka dikemas secara terpisah.
Di platform FMZ, pertukaran adalah objek pertukaran, yang mewakili rekening pertukaran.https://www.fmz.com/api#exchanges
Pasar perdagangan yang disebutkan di sini mengacu pada bot perdagangan tertentu (bayangkan halaman perdagangan), biasanya bursa memiliki beberapa sektor, sepertiperdagangan mata uang, perdagangan leveraged mata uang, perdagangan kontrak etc.
Pasangan perdagangan
Apa yang biasanya kita sebut pasangan perdagangan adalah apa yang kita beli dan jual, misalnya, kita pergi ke pasar untuk membeli kubis.
BercakPerdagangan mata uang, perdagangan leveraged mata uang, mereka diklasifikasikan sebagai perdagangan spot.pasangan perdaganganuntuk menggambarkan pasar mana yang diperdagangkan.
Mengambil penggunaan Platform Perdagangan Kuantum FMZ sebagai contoh, jika Anda ingin membuat pasangan perdagangan BTC ke USDT, mata uang perdagangan adalah BTC, dan mata uang denominasi adalah USDT.
Kami menggunakan fungsi dari platform FMZexchange.SetCurrency("BTC_USDT")
untuk mengubah pasangan perdagangan saat ini menjadi:BTC_USDT
Aku tidak tahu.
UntukSetCurrency
Bagi mereka yang tidak mengerti, lihat:https://www.fmz.com/api#exchange.setcurrency..Aku tidak tahu.
Untukexchange
Bagi mereka yang tidak mengerti, lihat:https://www.fmz.com/api#exchange
Kontrak (masa depan, opsi)
Ada perbedaan besar antara perdagangan kontrak dan perdagangan spot.currency-based contracts
danUSDT-based contracts
. Untuk perdagangan programatik dan perdagangan kuantitatif, perlu untuk menentukan tidak hanya pasangan perdagangan, tetapi juga kontrak. Misalnya, jika kita ingin memperdagangkan mata uang BTC, maka ada banyak kontrak mata uang BTC, termasuk kontrak triwulanan (pengiriman karena setiap kuartal), kontrak mingguan (pengiriman karena setiap hari Jumat setiap minggu), kontrak abadi (non-pengiriman) dan sebagainya. Jika hanya satu pasangan transaksi yang digunakan untuk identifikasi, jenis kontrak apa yang dibuat? Oleh karena itu, kode kontrak tertentu diperlukan untuk menggambarkan dan menentukan.
Dengan cara ini, ketika kita menjelaskan pasar kontrak mana yang akan diperdagangkan, kita perlu menjelaskan mata uang apa (pasangan perdagangan) dan kontrak apa (kode kontrak) itu.
Kontrak berbasis mata uang
Kontrak yang menggunakan mata uang sebagai margin (seperti kontrak berbasis mata uang BTC, yang menggunakan BTC sebagai margin, dan untungnya juga BTC), untungnya adalah mata uang. Biasanya, mata uang denominasi dari pasangan perdagangan kontrak yang di marginasi mata uang dinyatakan dalam USD (tidak perlu masuk ke detail, sebagian besar bursa menggunakan ekspresi ini). Jadi pasangan perdagangan adalah BTC_USD, dan kontraknya adalah kontrak triwulanan. Ini berarti bahwa pasar perdagangan yang kita bicarakan adalahBTC's currency-based quarterly contract
pasar.
Di FMZ Quant Trading Platform,exchange.SetCurrency("BTC_USD")
menetapkan pasangan perdagangan, dan kemudianexchange.SetContractType("quarter")
Dengan cara ini, varietas perdagangan saat ini adalahBTC's currency-based quarterly contract
.
Kontrak berbasis USDT
Kontrak yang menggunakan USDT sebagai margin (seperti kontrak berbasis USDT BTCBTC's USDT-based perpetual contract
pasar.
Di FMZ Quant Trading Platform,exchange.SetCurrency("BTC_USDT")
menetapkan pasangan perdagangan, dan kemudianexchange.SetContractType("swap")
dengan cara ini, varietas perdagangan saat ini adalahBTC's USDT-based perpetual contract
.
Perintah Apa yang dimaksud dengan perintah itu? Perintah adalah pesanan yang kita kirimkan ke bursa ketika kita membeli atau menjual di bursa. Perintah dibagi menjadi pesanan pasar, pesanan batas, pesanan bersyarat, dll. Atribut paling dasar dari pesanan adalah: objek pesanan (secara sederhana, apa yang harus dibeli atau dijual), jumlah pesanan (berapa banyak untuk membeli atau menjual), dan harga pesanan (pada harga apa untuk membeli atau menjual). Jika pesanan berikutnya hanya menentukan jumlah untuk membeli dan menjual dan apa yang harus dibeli atau dijual terlepas dari berapa banyak uangnya, maka pesanan semacam itu disebut pesanan pasar. Tentu saja, ada juga pesanan bersyarat (perintah stop-loss, order gunung es, dll.), yang terkait dengan bursa. Beberapa bursa menyediakan, sementara beberapa bursa tidak. Untuk rincian, Anda dapat memeriksa dokumentasi API bursa.
Bercak Daftar harga pasar pesanan spot biasanya perlu memperhatikan pesanan beli. Jumlah pesanan daftar harga pasar pesanan spot bukan jumlah mata uang, tetapi jumlahnya. Karena pesanan pasar tidak menentukan harga, hanya jumlah yang dapat digunakan untuk menentukan berapa banyak yang harus dibeli. Jumlah pesanan jual pasar adalah jumlah mata uang, karena bahkan jika harga tidak pasti, berapa banyak mata uang yang harus dijual dapat ditentukan.
Kontrak Jumlah pesanan kontrak adalah khusus, biasanya jumlah kontrak. Antarmuka pesanan kontrak dari bursa pada dasarnya adalah jumlah kontrak, dan tidak ada antarmuka yang mengambil jumlah mata uang sebagai jumlah pesanan. Kontrak BTC abadi berbasis USDT Binance dapat memesan kontrak abadi BTC dalam jumlah 0,01, tetapi bukan jumlah mata uang, itu adalah jumlah kontrak, dan satu kontrak adalah persis satu BTC. Secara umum, jumlah order adalah jumlah kontrak apakah itu order pasar atau order batas.
Apa itu pemegang, pembuat perintah? Taker order adalah order yang menyediakan likuiditas, dengan kata sederhana, ini berarti bahwa harga beli pasar saat ini adalah 10 dan harga jual adalah 11. pada saat ini, saya menempatkan order beli dengan harga beli 9, atau order jual dengan harga jual 12, pada saat ini, saya memberikan order untuk kedalaman disk, dan order ini adalah maker.
Misalnya, fungsi penempatan pesananexchange.Sell
danexchange.Buy
Saat menempatkan order, apakah order diklasifikasikan sebagai taker atau maker tergantung pada harga order dan pasar pada saat itu, dan apakah order kami memberikan likuiditas atau mengurangi likuiditas.
Ketika harga dilewatkan dalam -1 di FMZ Quant Trading Platform, itu adalah untuk menempatkan pesanan pasar, perhatikan bahwa jumlah pesanan dari pesanan pasar spot order buy order adalah jumlah, maka pesanan pasar pasti adalah pengurangan likuiditas, dan itu harus menjadi order taker.
Mandat perintah pertukaran bersyarat
Banyak bursa juga mendukung pesanan bersyarat, sepertiiceberg order
, stop-loss order
, take-profit order
, post_only: only maker order
, fok: complete the deal or cancel immediately
, ioc: deal immediately and cancel the remaining
, dll.
Perintah ini dapat menggunakanexchange.IO
Fungsi di Platform Perdagangan Kuantum FMZ untuk mengakses antarmuka pesanan pertukaran secara langsung untuk menentukan parameter (menentukan perintah bersyarat mana yang akan ditempatkan) untuk menempatkan pesanan.exchange.IO
Fungsi, silakan lihat dokumentasi FMZ API:https://www.fmz.com/api#exchange.io…
Platform perdagangan kuantitatif dapat dianggap sebagai alat perdagangan kuantitatif, bisa menjadi sistem perangkat lunak online, bisa menjadi situs web, bisa menjadi program eksekusi lokal, atau bahkan bisa menjadi proyek open source di GITHUB.
Platform Perdagangan Kuantum FMZ FMZ Quant Trading Platform adalah sistem terdistribusi online. Untuk pengetahuan awal tentang platform dan tutorial, silakan lihat:https://www.fmz.com/bbs-topic/9090
Sistem backtesting untuk platform perdagangan kuantitatif Apa itu sistem backtesting? Secara sederhana, sistem backtesting adalah untuk memutar ulang data historis dari varietas perdagangan tertentu, dan membiarkan strategi tertentu dimasukkan ke dalam pemutaran, dan mendapatkan kinerja perdagangan strategi ini saat mensimulasikan pemutaran data historis. Sistem backtesting di Platform Perdagangan Kuantum FMZ:
Nama | Jenis | Deskripsi |
---|---|---|
Bitfinex | Objek pertukaran spot | Mendukung pasangan perdagangan terbatas, seperti: BTC_USD, ETH_USD, LTC_USD dll, perhatikan bahwa mata uang pasangan perdagangan yang dijumlahkan adalah USD, yang dijumlahkan dalam USD |
Binance | Objek pertukaran spot | Mendukung pasangan perdagangan terbatas, seperti: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC dll. |
Baiklah. | Objek pertukaran spot | vseperti: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC dll. |
Huobi | Objek pertukaran spot | Mendukung pasangan perdagangan terbatas, seperti: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC dll. |
Berjangka OKEX | Objek pertukaran berjangka | Mendukung pasangan perdagangan terbatas, seperti: BTC_USD, ETH_USD dll, mata uang denominasi pasangan perdagangan adalah USD. Setelah menetapkan kode kontrak tertentu (lihat fungsi exchange.SetContractType), kontrak adalah kontrak berbasis mata uang |
HuobiDM | Objek pertukaran berjangka | HuobiDM adalah Huobi futures (kontrak Huobi), mendukung pasangan perdagangan terbatas, seperti: BTC_USD,ETH_USD dll, mata uang denominasi pasangan perdagangan adalah USD. Setelah mengatur kode kontrak tertentu (lihat fungsi exchange.SetContractType), kontrak adalah kontrak berbasis mata uang |
BitMEX | Objek pertukaran berjangka | Pasangan perdagangan adalah: XBT_USD. Setelah mengatur kode kontrak tertentu (lihat fungsi exchange.SetContractType), kontrak adalah kontrak berbasis mata uang |
Binance berjangka | Objek pertukaran berjangka | Mendukung pasangan perdagangan terbatas, seperti: BTC_USDT, ETH_USDT dll, mata uang denominasi pasangan perdagangan adalah USDT. Setelah menetapkan kode kontrak tertentu (lihat fungsi exchange.SetContractType), kontrak adalah kontrak berbasis USDT |
Opsi derivatif | Opsi pertukaran objek | Pasangan perdagangan adalah: BTC_USD, ETH_USD. Setelah menetapkan kode kontrak tertentu (lihat fungsi exchange.SetContractType), kontrak adalah kontrak berbasis mata uang |
KEY API dari platform perdagangan kuantitatif
Bursa memiliki antarmuka API, dan platform perdagangan kuantitatif juga memiliki antarmuka API.Extended API
, beberapa fungsi dari platform FMZ dapat dioperasikan secara terprogram, misalnya, membuat bot nyata dalam batch, memulai bot nyata dalam batch, memodifikasi konfigurasi bot nyata dalam batch, dll, untuk rincian, silakan lihat:https://www.fmz.com/api#api-extension-of-fmz-platformEkstensi API juga dapat digunakan untuk melakukan sesuatu yang menarik, sepertiMenggunakan ekstensi API Platform Trading FMZ Quant untuk menerapkan perdagangan sinyal alarm TradingView
Setelah mengatakan bahwa, apa yang tepat mengendalikan akun pertukaran saya untuk perdagangan secara otomatis? Ini adalah perwujudan khusus dari perdagangan programmatic dan perdagangan kuantitatif - skrip perdagangan programmatic. Program bot nyata ini dapat ditulis dalam berbagai bahasa. Misalnya, FMZ Quant Trading Platform mendukung menulis strategi perdagangan bot nyata dalam bahasa JavaScript, Python, dan C ++. Program skrip ini melakukan berbagai operasi seperti membeli dan menjual akun melalui antarmuka API bursa.
Perangkat di mana skrip perdagangan terprogram berjalan
Program skrip bot asli harus memiliki pembawa perangkat (singkatnya, bot asli harus memiliki tempat di mana ia berjalan). Transaksi kuantitatif biasanya menyebarkan program bot asli di server Alibaba Cloud di Hong Kong (tentu saja, Anda juga dapat menggunakan server dari tempat lain, operator lain). Mengingat fakta bahwa banyak pertukaran membutuhkan akses jaringan luar negeri saat ini, tidak mungkin untuk menjalankan banyak antarmuka API pertukaran dengan menggunakan server domestik. Secara umum, jika antarmuka tidak dapat diakses, kesalahantimeout
akan dilaporkan.
Pada platform FMZ, Anda biasanya dapat menyebarkan program perangkat lunak Anda sendiri di server Hong Kong Alibaba Cloud (perangkat lunak pembawa bot nyata dari Platform Perdagangan Kuantitatif FMZ disebut [docker], dan bot nyata perdagangan kuantitatif dijalankan berdasarkan perangkat lunak docker).
Pemilihan bahasa skrip Ada terlalu banyak bahasa pemrograman, dan hampir semuanya dapat digunakan untuk menulis program skrip bot yang sebenarnya. Di sini kita juga akan mengambil FMZ Quant Trading Platform sebagai contoh untuk memahami keuntungan dari berbagai bahasa. Pada platform FMZ, kita dapat menulis strategi (script robot) dalam bahasa pemrograman berikut
JavaScript Ini mudah digunakan, dan hampir independen dari lingkungan perangkat, ini mendukung standar ES6. Kecepatan eksekusi program strategi adalah kedua hanya untuk strategi C ++. (disarankan untuk pemula di FMZ Quant Trading Platform)
Python Hal ini tergantung pada lingkungan perangkat sampai batas tertentu, dan berbagai perpustakaan dapat dipasang, dengan skalabilitas tinggi.
C++
Strategi ini memiliki kecepatan pelaksanaan tercepat, efisiensi tertinggi, tetapi lebih sulit digunakan.
Setelah terbiasa dengan itu, bahasa pemrograman lainnyaso easy!
.
MyLanguage MyLanguage yang didukung oleh platform FMZ adalah perintah paling dasar.
Strategi pemasangan modul visual Strategi pembuatan visual hanya digunakan untuk meningkatkan minat dan memahami logika program. Ini dapat digunakan untuk membuat beberapa logika sederhana, tetapi tidak berlaku ketika strategi sedikit kompleks, karena sulit untuk mempertahankan, memperluas, dan merancang logika kompleks.