Kerangka Strategi dan Fungsi API
Dalam strategi yang ditulis dalamJavaScript
, Python
dancpp
, yangSleep()
fungsi perlu dipanggil dalam loop utama strategi tersebut. Ini akan digunakan untuk mengontrol kecepatan backtracking. Dalam perdagangan langsung, ini digunakan untuk mengontrol interval polling strategi, dan juga mengontrol frekuensi permintaan untuk mengakses antarmuka 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 dasar strategi cryptocurrency:
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 sederhana, jika saya ingin menempatkan pesanan beli dengan harga 100 dan jumlah 1 di bursa setiap detik, saya bisa menulisnya seperti ini:
Berikut ini menunjukkan fungsi API yang umum digunakan dalam pengembangan dan desain strategi. Untuk deskripsi API yang lebih rinci, silakan lihat:FMZ Quant Trading Platform API Manual.
Fungsi Global
Nama Fungsi |
Pambuka Singkat |
Versi |
Mengembalikan |
nomor versi sistem saat ini |
|
Tidur |
Fungsi tidur, |
parameter adalah nilai milidetik untuk berhenti |
|
IsVirtual |
Menentukan |
lingkungan eksekusi, mengembalikan nilai benar untuk menunjukkan backtest
lingkungan.
Percayalah.SuratKirim email.
Percayalah.Mail_GoAsinkron
Versi dariMail
fungsi.
Percayalah.SetErrorFilterKasalahan Filter
log, parameter adalah string ekspresi reguler, log kesalahan
yang cocok dengan ekspresi reguler ini tidak akan diunggah ke logging
sistem.
Percayalah.GetPid- Dapatkan bot.
proses ID.
Percayalah.GetLastError♪ Dapatkan yang terakhir ♪
Pesan kesalahan.
Percayalah.GetCommand♪ Dapatkan strategi ♪
perintah interaksi, pengaturan strategi kontrol interaksi dapat
ditanyakan: [interaksi kontrol]
Percayalah.GetMeta♪ Dapatkan nilai dari
Meta ditulis saat menghasilkan kode pendaftaran strategi.
Percayalah.Pilih♪ Digunakan untuk mentah
akses soket.
Percayalah.HttpQueryKirim permintaan Http.
Percayalah.HttpQuery_GoAsinkron
Versi dariHttpQuery
fungsi.
Percayalah.MengenkodeKode data.
fungsi.
Percayalah.UnixNano♪ Dapatkan nanodetik
Stempel waktu.
Percayalah.Unix♪ Dapatkan tingkat kedua ♪
Stempel waktu.
Percayalah.GetOS♬ Mendapatkan Sistem
informasi.
Percayalah.MD5Perhitungkan MD5.
Percayalah.DBExecBasis data.
fungsi yang dapat digunakan untuk mengeksekusi pernyataan SQL dan melakukan
operasi database.
Percayalah.UUIDMenghasilkan UUID.
Percayalah.EventLoopMendengarkan peristiwa
dan kembali setelah setiap websocket dapat dibaca atau tugas bersamaan sepertiexchange.Go
, HttpQuery_Go
, dll selesai, fungsi ini
hanya tersedia untuk perdagangan langsung.
Percayalah._GMenghemat data secara terus menerus,
fungsi ini mengimplementasikan fungsi kamus global yang dapat disimpan.
struktur adalah tabel KV, yang disimpan di database lokal docker
file secara permanen.
Percayalah._DPemrosesan timestamp, konversi
sebuah timestamp millisecond atau objek tanggal ke string waktu.
Percayalah._NPemformatan titik terapung
nomor, misalnya_N(3.1415, 2)
akan menghapus nilai 3.1415 setelah
dua tempat desimal, dan fungsi mengembalikan 3,14
Percayalah._CCoba lagi fungsi untuk
Perhatikan bahwa, misalnya, toleransi kesalahan untuk
yangexchange.GetTicker
fungsi adalah_C(exchange.GetTicker)
dan tidak_C(exchange.GetTicker())
|
| _SilangFungsi penghakiman silang,_Cross()
nilai kembali fungsis adalah angka positif menunjukkan
periode penetrasi ke atas, angka negatif menunjukkan
periode penetrasi ke bawah, dan 0 mengacu pada harga saat ini dari
sama.
Percayalah.JSONParseParsing JSON, yang dapat
dengan benar menganalisis string JSON yang berisi nilai yang lebih besar, akan menganalisis lebih besar
nilai ke jenis string.JSONParse()
fungsi tidak didukung
dalam sistem backtesting.
Fungsi Log
Nama Fungsi |
Pambuka Singkat |
Log |
Output log, dukungan untuk mengatur warna teks log, dukungan untuk mengatur push, dukungan untuk mencetak gambar setelah pengkodean base64 |
LogProfit |
Data P&L output, nilai P&L cetak dan kurva hasil plot berdasarkan nilai P&L |
LogProfitReset |
KosongkanLogProfit output fungsi semua log laba, grafik laba |
LogStatus |
Informasi output di bilah status, dukungan untuk merancang kontrol tombol di bilah status, dukungan untuk output formulir |
EnableLog |
Aktifkan atau matikan pencatatan informasi pesanan |
Grafik |
Fungsi grafik, berdasarkan perpustakaan grafik Highcharts/Highstocks |
KLineChart |
Fungsi menggambar gaya bahasa Pine, yang digunakan untuk menggambar khusus pada strategi runtime menggunakan gaya menggambar bahasa Pine-like |
LogReset |
Hapus log, dukungan untuk mempertahankan sejumlah log terbaru melalui pengaturan parameter |
LogVacuum |
Mendapatkan kembali sumber daya SQLite untuk mendapatkan kembali ruang penyimpanan yang diduduki oleh SQLite ketika menghapus data setelah menghapus log dengan memanggilLogReset() fungsi |
console.log |
Informasi debugging output di kolom Informasi Debug di halaman perdagangan langsung |
console.error |
Informasi kesalahan ditampilkan di kolom Informasi Debug dari halaman perdagangan langsung |
Fungsi Ticker
Fungsi Transaksi
Nama Fungsi |
Pambuka Singkat |
exchange.Buy |
Kirimkan pesanan beli, kontrak berjangka harus memperhatikan arah transaksi ditetapkan dengan benar, jika arah transaksi dan fungsi transaksi tidak cocok, kesalahan akan dilaporkan! |
exchange.Sell |
Kirimkan pesanan jual, kontrak berjangka ketika menempatkan pesanan harus memperhatikan arah transaksi ditetapkan dengan benar, jika arah transaksi dan fungsi transaksi tidak cocok, itu akan melaporkan kesalahan |
exchange.CreateOrder |
Kirim pesanan dan tentukan jenis transaksi, arah transaksi, harga, dan kuantitas melalui parameter |
exchange.CancelOrder |
Batalkan pesanan |
exchange.GetOrder |
Dapatkan informasi pesanan, struktur data adalahPerintahstruktur |
exchange.GetOrders |
Dapatkan pesanan yang belum terisi dengan struktur dataPerintahStruct array (daftar) |
exchange.GetHistoryOrders |
Dapatkan pesanan historis dari pasangan perdagangan saat ini dan kontrak; dukungan menentukan produk perdagangan tertentu |
exchange.SetPrecision |
Atur presisi harga dan jumlah pesanan dari objek pertukaran, setelah mengatur sistem akan secara otomatis mengabaikan redundansi data. |
exchange.SetRate |
Atur nilai tukar |
exchange.IO |
Untuk panggilan antarmuka lainnya yang terkait dengan objek pertukaran |
exchange.Log |
Output, mencatat log transaksi dan tidak menempatkan pesanan |
exchange.Encode |
Perhitungan enkripsi tanda tangan |
exchange.Go |
Fungsi pendukung asinkron multi-threaded |
exchange.GetAccount |
Dapatkan informasi akun |
exchange.GetAssets |
Minta informasi aset rekening pertukaran |
exchange.GetName |
Dapatkan nama objek pertukaran |
exchange.GetLabel |
Dapatkan label objek pertukaran |
exchange.GetCurrency |
Dapatkan pasangan perdagangan saat ini |
exchange.SetCurrency |
Pergantian pasangan perdagangan |
exchange.GetQuoteCurrency |
Dapatkan nama mata uang dari pasangan perdagangan saat ini |
Fungsi Masa Depan
Fungsi Jaringan
JavaScript Multi-Threading
FMZ Quant Trading Platform benar-benar mendukung fungsi multi-threaded dariJavaScript
strategi bahasa dari bawah sistem, dan menerapkan tujuan berikut:
Objek |
Panduan |
Pengamatan |
Pembuatan thread |
Objek global multi-threaded |
Fungsi anggota:Thread , getThread , mainThread , dll. |
Benang |
Objek thread |
Fungsi anggota:peekMessage , postMessage , join , dll. |
ThreadLock |
Objek penguncian benang |
Fungsi anggota:acquire , release . Mereka dapat diteruskan ke lingkungan thread sebagai parameter dari fungsi eksekusi thread. |
ThreadEvent |
Objek acara |
Fungsi anggota:set , clear , wait , isSet . Mereka dapat diteruskan ke lingkungan thread sebagai parameter dari fungsi eksekusi thread. |
ThreadKondisi |
Objek kondisi |
Fungsi anggota:notify , notifyAll , wait , acquire , release . Mereka dapat diteruskan ke lingkungan thread sebagai parameter dari fungsi eksekusi thread. |
ThreadDict |
Objek kamus |
Fungsi anggota:get , set . Mereka dapat diteruskan ke lingkungan thread sebagai parameter dari fungsi eksekusi thread. |
FMZ Quant Trading Platform Syntax Manual:JavaScript Multi-Threading
Web3
Perpustakaan Indikator TA
Nama Fungsi |
Pambuka Singkat |
TA.MACD |
Menghitung indikator rata-rata eksponen rata-rata divergensi |
TA.KDJ |
Perhitungan indikator stokastik |
TA.RSI |
Menghitung indikator kekuatan |
TA.ATR |
Menghitung indikator volatilitas rata-rata yang sebenarnya |
TA.OBV |
Perhitungan indikator gelombang energi |
TA.MA |
Perhitungan indikator rata-rata bergerak |
TA.EMA |
Perhitungan indikator rata-rata eksponensial |
TA.BOLL |
Menghitung indikator Bollinger Band |
TA.Alligator |
Hitung Indikator Garis Buaya |
TA.CMF |
Perhitungan Indikator Aliran Uang Chaikin |
TA.Highest |
Menghitung harga maksimum periode |
TA.Lowest |
Menghitung harga minimum periode |
TA.SMA |
Menghitung indikator rata-rata bergerak sederhana |
Talib Indikator Perpustakaan
Perpustakaan indikator talib memiliki banyak indikator perdagangan, sepertitalib.CDL2CROWSAnda dapat melompat ke manual sintaksis untuk spesifikasi.
Fungsi Masuk Strategi
Perpustakaan Templat