Rangka Kerja Strategi dan Fungsi API
Dalam strategi yang ditulis dalamJavaScript
, Python
dancpp
, yangSleep()
fungsi perlu dipanggil dalam gelung utama strategi tersebut. Ia akan digunakan untuk mengawal kelajuan tindak balik. Dalam perdagangan langsung, ia digunakan untuk mengawal selang pilihan raya strategi, dan juga mengawal kekerapan permintaan untuk mengakses antara muka API bursa.
function onTick(){
//Write strategy logic here, and it will be called constantly, such as printing ticker information
Log(exchange.GetTicker())
}
function main(){
while(true){
onTick()
// The function "Sleep" is mainly used to control the polling frequency of cryptocurrency strategies to prevent accessing the exchange API interafce too frequently
Sleep(60000)
}
}
def onTick():
Log(exchange.GetTicker())
def main():
while True:
onTick()
Sleep(60000)
void onTick() {
Log(exchange.GetTicker());
}
void main() {
while(true) {
onTick();
Sleep(60000);
}
}
Contoh kerangka asas strategi mata wang kripto:
function onTick(){
// It is just an example; for all the assets will be used to place orders fast during backtest or in live trading, do not implement the example in live trading
exchange.Buy(100, 1)
}
function main(){
while(true){
onTick()
// The pause period can be customized in millisecond (1 second = 1000 milliseconds)
Sleep(1000)
}
}
def onTick():
exchange.Buy(100, 1)
def main():
while True:
onTick()
Sleep(1000)
void onTick() {
exchange.Buy(100, 1);
}
void main() {
while(true) {
onTick();
Sleep(1000);
}
}
Ambil contoh yang paling mudah, jika saya mahu meletakkan pesanan beli dengan harga 100 dan kuantiti 1 di bursa setiap saat, saya boleh menulisnya seperti ini:
Berikut menunjukkan fungsi API yang biasa digunakan dalam pembangunan dan reka bentuk strategi. Untuk penerangan API yang lebih terperinci, sila rujuk:FMZ Quant Trading Platform API Manual.
Fungsi Global
Nama Fungsi |
Pengenalan Singkat |
Versi |
Mengembalikan |
Nombor versi semasa sistem |
|
Tidur |
Fungsi tidur, |
parameter adalah nilai milidetik untuk berehat |
|
IsVirtual |
Menentukan |
persekitaran pelaksanaan, mengembalikan nilai benar untuk menunjukkan backtest
persekitaran.
Perhatikan.SuratKirim e-mel
Perhatikan.Mail_GoAsynchronous
versiMail
fungsi.
Perhatikan.SetErrorFilterKasalahan penapis.
log, parameter adalah rentetan ungkapan biasa, log ralat
yang sepadan dengan ungkapan biasa ini tidak akan dimuat naik ke logging
sistem.
∙∙GetPid- Dapatkan bot.
ID proses.
Perhatikan.GetLastError- Dapatkan yang terakhir.
mesej ralat.
Perhatikan.GetCommandKenali strategi.
arahan interaksi, tetapan strategi kawalan interaksi boleh
ditanyakan: [pengendalian interaksi]
∙∙GetMetaKenali nilai
Meta ditulis semasa menjana kod pendaftaran strategi.
Perhatikan.PilihPenggunaan mentah
akses soket.
Perhatikan.HttpQueryKirim permintaan HTTP.
Perhatikan.HttpQuery_GoAsynchronous
versiHttpQuery
fungsi.
Perhatikan.EnkodKode data.
fungsi.
Perhatikan.UnixNano- Dapatkan nanodetik.
Stempel masa.
Perhatikan.Unix♪ Dapatkan tahap kedua ♪
Stempel masa.
Perhatikan.GetOSMendapatkan sistem
maklumat.
Perhatikan.MD5Mengira MD5
Perhatikan.DBExecPangkalan data.
fungsi yang boleh digunakan untuk melaksanakan pernyataan SQL dan melakukan
operasi pangkalan data.
Perhatikan.UUIDMenghasilkan UUID.
Perhatikan.EventLoopMendengarkan peristiwa
dan kembali selepas mana-mana websocket boleh dibaca atau tugas serentak sepertiexchange.Go
, HttpQuery_Go
, dan lain-lain selesai, fungsi ini
hanya tersedia untuk perdagangan langsung.
Perhatikan._GMengekalkan data secara berterusan,
fungsi ini melaksanakan fungsi kamus global yang boleh disimpan.
struktur adalah Jadual KV, yang disimpan dalam pangkalan data tempatan docker
fail secara kekal.
∙∙_DPemproses timestamp, menukar
sebuah timestamp millisecond atau objek tarikh untuk rentetan masa.
∙∙_NFormat titik terapung
nombor, contohnya_N(3.1415, 2)
akan membuang nilai 3.1415 selepas
dua tempat perpuluhan, dan fungsi mengembalikan 3.14
Perhatikan._CUji semula fungsi untuk
Perhatikan bahawa, sebagai contoh, toleransi ralat untuk
Peraturanexchange.GetTicker
fungsi ialah_C(exchange.GetTicker)
dan tidak_C(exchange.GetTicker())
|
| _SilangFungsi penghakiman silang,_Cross()
fungsis nilai pulangan adalah nombor positif menunjukkan
tempoh penembusan ke atas, nombor negatif menunjukkan
tempoh penembusan ke bawah, dan 0 merujuk kepada harga semasa
sama.
∙∙JSONParseParsing JSON, yang boleh
dengan betul menguraikan rentetan JSON yang mengandungi nilai yang lebih besar, akan menguraikan lebih besar
nilai kepada jenis rentetan.JSONParse()
fungsi tidak disokong
dalam sistem backtesting.
Fungsi Log
Nama Fungsi |
Pengenalan Singkat |
Log |
Log output, sokongan untuk menetapkan warna teks log, sokongan untuk menetapkan push, sokongan untuk mencetak imej selepas pengekodan base64 |
LogProfit |
Data P&L output, cetak nilai P&L dan lengkung hasil plot berdasarkan nilai P&L |
LogProfitReset |
KosongkanLogProfit output fungsi semua log pendapatan, carta pendapatan |
LogStatus |
Maklumat output dalam bar status, sokongan untuk merancang kawalan butang dalam bar status, sokongan untuk mengeluarkan borang |
EnableLog |
Menghidupkan atau mematikan pencatatan maklumat pesanan |
Jadual |
Fungsi carta, berdasarkan perpustakaan carta Highcharts/Highstocks |
KLineChart |
Fungsi lukisan gaya bahasa Pine, yang digunakan untuk lukisan tersuai pada masa pelaksanaan strategi menggunakan gaya lukisan bahasa Pine-seperti |
LogReset |
Hapus log, sokongan untuk mengekalkan sebilangan tertentu log baru-baru ini melalui tetapan parameter |
LogVacuum |
Memulihkan sumber SQLite untuk memulihkan ruang simpanan yang diduduki oleh SQLite apabila memadam data selepas membersihkan log dengan memanggilLogReset() fungsi |
console.log |
Maklumat penyempurnaan output dalam lajur Informasi Penyempurnaan pada halaman perdagangan langsung |
console.error |
Maklumat ralat output dalam lajur Debug Information halaman perdagangan langsung |
Fungsi Ticker
Fungsi Transaksi
Nama Fungsi |
Pengenalan Singkat |
exchange.Buy |
Kirim pesanan beli, kontrak niaga hadapan mesti memberi perhatian kepada arah urus niaga ditetapkan dengan betul, jika arah urus niaga dan fungsi urus niaga tidak sepadan, kesilapan akan dilaporkan! |
exchange.Sell |
Menghantar pesanan jual, kontrak niaga hadapan apabila meletakkan pesanan mesti memberi perhatian kepada arah urus niaga ditetapkan dengan betul, jika arah urus niaga dan fungsi urus niaga tidak sepadan, ia akan melaporkan ralat |
exchange.CreateOrder |
Hantar pesanan dan tentukan jenis urus niaga, arah urus niaga, harga, dan kuantiti melalui parameter |
exchange.CancelOrder |
Batalkan pesanan |
exchange.GetOrder |
Dapatkan maklumat pesanan, struktur data adalahPerintahstruktur |
exchange.GetOrders |
Dapatkan pesanan yang belum diisi dengan struktur dataPerintahArray struktur (senarai) |
exchange.GetHistoryOrders |
Dapatkan pesanan sejarah pasangan dagangan semasa dan kontrak; sokongan menentukan produk dagangan tertentu |
exchange.SetPrecision |
Tetapkan ketepatan harga dan kuantiti pesanan objek pertukaran, selepas menetapkan sistem akan secara automatik mengabaikan redundansi data. |
exchange.SetRate |
Tetapkan kadar pertukaran |
exchange.IO |
Untuk panggilan antara muka lain yang berkaitan dengan objek pertukaran |
exchange.Log |
Keluaran, mencatat log transaksi dan tidak meletakkan pesanan |
exchange.Encode |
Pengiraan penyulitan tandatangan |
exchange.Go |
Fungsi sokongan asynchronous berbilang benang |
exchange.GetAccount |
Dapatkan maklumat akaun |
exchange.GetAssets |
Meminta maklumat aset akaun pertukaran |
exchange.GetName |
Dapatkan nama objek pertukaran |
exchange.GetLabel |
Dapatkan label objek pertukaran |
exchange.GetCurrency |
Dapatkan pasangan dagangan semasa |
exchange.SetCurrency |
Bertukar pasangan dagangan |
exchange.GetQuoteCurrency |
Dapatkan nama mata wang pasangan dagangan semasa |
Fungsi Masa Depan
Nama Fungsi |
Pengenalan Singkat |
[exchange.GetPositions(/Syntax-panduan#fun_exchange.getpositions) |
Dapatkan kedudukan niaga hadapan dengan struktur dataKedudukanArray struktur (senarai) |
exchange.SetMarginLevel |
Tetapkan leverage |
exchange.SetDirection |
Fungsi yang digunakan untuk menetapkanexchange.Buyfungsi,exchange.Sellfungsi untuk menjalankan arahan pesanan kontrak niaga hadapan |
exchange.SetContractType |
Tetapkan kod kontrak, contohnya:exchange.SetContractType("swap") fungsi menetapkan kod kontrak untukswap , yang menetapkan kontrak untuk operasi semasa untuk menjadi kontrak kekal |
exchange.GetContractType |
Dapatkan kod kontrak set semasa |
exchange.GetFundings |
Dapatkan data kadar pembiayaan kontrak kekal pertukaran niaga hadapan semasa |
Fungsi Rangkaian
JavaScript Multi-Threading
Platform Perdagangan Kuantum FMZ benar-benar menyokong fungsi pelbagai benangJavaScript
strategi bahasa dari bawah sistem, dan melaksanakan objektif berikut:
Objek |
Arahan |
Catatan |
Penggelek |
Objek global berbilang benang |
Fungsi ahli:Thread , getThread , mainThread , dan lain-lain |
Benang |
Objek benang |
Fungsi ahli:peekMessage , postMessage , join , dan lain-lain |
ThreadLock |
Objek kunci benang |
Fungsi ahli:acquire , release . Mereka boleh dihantar ke persekitaran benang sebagai parameter fungsi pelaksanaan benang. |
ThreadEvent |
Objek peristiwa |
Fungsi ahli:set , clear , wait , isSet . Mereka boleh dihantar ke dalam persekitaran benang sebagai parameter fungsi pelaksanaan benang. |
ThreadCondition |
Objek keadaan |
Fungsi ahli:notify , notifyAll , wait , acquire , release . Mereka boleh dihantar ke dalam persekitaran benang sebagai parameter fungsi pelaksanaan benang. |
ThreadDict |
Objek kamus |
Fungsi ahli:get , set . Mereka boleh dihantar ke persekitaran benang sebagai parameter fungsi pelaksanaan benang. |
FMZ Quant Trading Platform Syntax Manual:JavaScript Multi-Threading
Web3
Perpustakaan Indikator TA
Nama Fungsi |
Pengenalan Singkat |
TA.MACD |
Mengira penunjuk purata pengalihan rata-rata |
TA.KDJ |
Pengiraan penunjuk stokastik |
TA.RSI |
Mengira penunjuk kekuatan |
TA.ATR |
Mengira penunjuk turun naik sebenar purata |
TA.OBV |
Pengiraan penunjuk gelombang tenaga |
TA.MA |
Pengiraan penunjuk purata bergerak |
TA.EMA |
Pengiraan penunjuk purata eksponen |
TA.BOLL |
Mengira penunjuk Bollinger Band |
TA.Alligator |
Mengira Petunjuk Garis Buaya |
TA.CMF |
Pengiraan penunjuk aliran wang Chaikin |
TA.Highest |
Mengira harga maksimum tempoh |
TA.Lowest |
Mengira harga minimum tempoh |
TA.SMA |
Mengira penunjuk purata mudah bergerak |
Talib Indikator Perpustakaan
Perpustakaan penunjuk talib mempunyai banyak penunjuk perdagangan, seperti:talib.CDL2CROWSAnda boleh melompat ke manual sintaks untuk maklumat spesifik.
Fungsi Masuk Strategi
Perpustakaan Templat