Struktur catatan transaksi pasar.
Rekam transaksi pasar ID, atau jika antarmuka pertukaran tidak memberikan ID maka gunakan timestamp untuk mengisinya. Id string Stempel waktu milidetik. Waktu nomor Harga transaksi. Harga nomor Jumlah transaksi. Jumlah nomor Jenis pesanan, merujuk pada {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL}. Jenis nomor
Fungsi exchange.GetTrades() mengembalikan array Trade atau array kosong.
{@fun/Market/exchange.GetTrades pertukaran.GetTrades}
Struktur pasar.
Data asli yang dikembalikan oleh antarmuka pertukaran, tidak ada atribut tersebut tersedia untuk backtesting.
Informasi
objek
PeraturanSymbol
kolom adalah kode varietas perdagangan yang didefinisikan oleh platform FMZ.
Symbol
Nilai bidang (sebagai contoh) adalah:BTC_USDT
, menunjukkan pasangan perdagangan spot BTC_USDT.Symbol
nilai bidang (sebagai contoh) adalahBTC_USDT.swap
, yang mewakili kontrak perpetual hak milik USDT untuk BTC.Symbol
Nilai bidang adalah (misalnya):BTC_USDT.BTC-240108-40000-C
, yang merupakan kontrak opsi pembelian BTC dalam USDT dengan tanggal pelaksanaan 8 Januari 2024 dan harga pelaksanaan 40.000.Simbol
string
Harga tertinggi, atau jika antarmuka pertukaran tidak memberikan harga tertinggi 24 jam, maka gunakan harga jual satu untuk mengisi.
Tinggi
nomor
Harga terendah, atau jika antarmuka pertukaran tidak memberikan harga terendah 24 jam, maka gunakan harga beli satu untuk mengisi.
Rendah
nomor
Saat ini menjual satu harga.
Menjual
nomor
Saat ini
Fungsi exchange.GetTicker() mengembalikan struktur Ticker.
Untuk kontrak opsi,exchange.GetTicker()
fungsi panggilan rentan terhadap kesalahan. Karena likuiditas pasar kontrak opsi biasanya buruk, sering tidak ada pesanan yang menunggu untuk pembelian pertama atau penjualan pertama.Ticker
bidang strukturBuy
atauSell
adalah 0, prompt kesalahan akan diaktifkan.
{@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTickers exchange.GetTickers}
Struktur K-Line Bar, struktur OHLC standar, digunakan untuk menggambar K-line dan indikator untuk perhitungan dan analisis.
Stempel waktu tingkat milidetik, untuk struktur Rekaman yang nilai atribut Time adalah timestamp awal periode Bar K-line ini. Waktu nomor Harga pembukaan. Buka nomor Harga tertinggi. Tinggi nomor Harga terendah. Rendah nomor Harga penutupan. Dekat nomor Jumlah posisi, sebagian besar antarmuka pertukaran tidak menyediakan data ini, nilainya adalah 0 ketika data ini tidak didukung. OpenInterest nomor Jumlah transaksi. Pada prinsipnya, jumlah transaksi spot adalah dalam baseCurrency dan jumlah transaksi kontrak adalah dalam jumlah kontrak. Jika antarmuka pertukaran tidak menyediakan data tersebut, itu akan diisi dengan data yang ada dari antarmuka pertukaran, misalnya, jumlah transaksi dalam quoteCurrency. Volume nomor
Fungsi exchange.GetRecords() mengembalikan array of Records atau array kosong. Setiap struktur Record mewakili garis K, yaitu garis K.
{@fun/Market/exchange.GetRecords exchange.GetRecords}
Struktur Orde.
The data asli dari respon antarmuka pertukaran, tidak ada atribut tersebut tersedia untuk backtesting.
Informasi
objek
PeraturanSymbol
kolom adalah kode produk perdagangan yang didefinisikan oleh platform FMZ dan formatnya konsisten denganSymbol
bidang struktur {@struct/Ticker Ticker}
Symbol
Nilai bidang adalah (misalnya):BTC_USDT
, menunjukkan pasangan perdagangan spot BTC_USDT.Symbol
Nilai bidang adalah (misalnya):BTC_USDT.swap
, yang merupakan kontrak abadi standar USDT dari BTC.Simbol
string
Order Id, atribut ini terdiri dari kode produk pertukaran dan ID pesanan asli pertukaran, dipisahkan oleh koma bahasa Inggris.Id
format pasangan perdagangan spotETH_USDT
urutan pertukaran OKX adalah:ETH-USDT,1547130415509278720
Aku tidak tahu.
Id
string
Harga pesanan, perhatikan bahwa atribut ini dapat 0 atau -1 untuk pesanan pasar.
Harga
nomor
Jumlah pesanan yang ditempatkan, perhatikan bahwa atribut pesanan pasar ini mungkin jumlah dan bukan mata uang.
Jumlah
nomor
Jumlah transaksi, mungkin diisi dengan 0 jika antarmuka pertukaran tidak memberikan data ini.
DealAmount
nomor
Harga transaksi rata-rata, perhatikan bahwa beberapa bursa tidak memberikan data ini. Atribut ini ditetapkan menjadi 0 jika tidak tersedia dan tidak dapat dihitung.
Rata-rata Harga
nomor
Status pesanan, merujuk pada {@var/ORDER_STATE/ORDER_STATE_PENDING ORDER_STATE_PENDING}, {@var/ORDER_STATE/ORDER_STATE_CLOSED ORDER_STATE_CLOSED}, {@var/ORDER_STATE/ORDER_STATE_CANCELED ORDER_STATE_CANCELED}, {@var/ORDER_STATE/ORDER_STATE_UNKNOWN OR_STATE_UNKNOWN}.
Status
nomor
Jenis pesanan, merujuk pada {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL}.
Jenis
nomor
Untuk arah pembukaan dan penutupan pesanan kontrak, lihat {@var/ORDER_OFFSET/ORDER_OFFSET_OPEN ORDER_OFFSET_OPEN}, {@var/ORDER_OFFSET/ORDER_OFFSET_CLOSE ORDER_OFFSET_CLOSE}.
Kompensasi
nomor
Atribut ini dalam pesanan spot adalah""
Dalam pesanan kontrak, atribut ini adalah kode kontrak tertentu.
ContractType
string
PeraturanOrder
struktur pesanan dapat dikembalikan olehexchange.GetOrder()
danexchange.GetOrders()
fungsi.exchange.GetOrders()
fungsi mengembalikan array dariOrder
Jika tidak ada urutan yang belum selesai, itu kembali[]
, yang merupakan array kosong.Status
properti dariOrder
struktur urutan dapat dibandingkan secara langsung dengan konstanta sepertiORDER_STATE_PENDING
untuk menentukan apakah mereka sama dan dengan demikian menentukan status pesanan.
Untuk mode posisi satu arah, ketika tidak mungkin untuk menentukan apakah pesanan adalah perintah penutupan (pengurangan),Offset
lapangan diatur ke arah pembukaan secara default, yaitu,ORDER_OFFSET_OPEN
.
{@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}
Struktur pesanan dalam kedalaman pasar.
Harga. Harga Nomor Jumlahnya. Jumlah Nomor
Fungsi GetDepth (() mengembalikan struktur data di mana nilai atribut Bid, Ask adalah array OrderBook.
{@fun/Market/exchange.GetDepth exchange.GetDepth}, {@struct/Depth Depth}
Struktur kedalaman pasar.
Array order jual, yaitu array OrderBook, disortir berdasarkan harga dari terendah ke tertinggi, dan struktur OrderBook pertama dalam array memiliki Harga terendah. Menanyakan Array Array order buy, yaitu array OrderBook, disortir berdasarkan harga dari tertinggi ke terendah, dan struktur OrderBook pertama dalam array memiliki Harga tertinggi. Penawaran Array Stempel waktu tingkat milidetik. Waktu nomor
Fungsi exchange.GetDepth( mengembalikan struktur Depth.
{@fun/Market/exchange.GetDepth exchange.GetDepth}, {@struct/OrderBook OrderBook}
Struktur informasi akun.
Data asli yang dikembalikan oleh antarmuka pertukaran, tidak ada atribut tersebut tersedia untuk backtesting.
Informasi
objek
Jumlah mata uang denominasi yang tersedia, di spot, jika pasangan perdagangan adalah BTC_USDT, Saldo mengacu pada jumlah USDT yang saat ini tersedia. Dalam kontrak standar U, Saldo mengacu pada jumlah margin yang tersedia (USDT, quoteCurrency).
Saldo
nomor
Nilai aset yang dibekukan ketika pesanan tidak dipenuhi.
FrozenBalance
nomor
Jumlah mata uang perdagangan yang tersedia, secara spot, jika pasangan perdagangan adalah BTC_USDT, Saham mengacu pada jumlah BTC yang tersedia saat ini. Saham mengacu pada jumlah margin yang tersedia (mata uang, Mata uang dasar) dalam kontrak berbasis mata uang.
Stok
nomor
Nilai aset yang dibekukan ketika pesanan tidak dipenuhi.
Buah-buahan beku
nomor
Hanya obyek bursa berjangka yang mendukung bidang ini.Equity
kolom adalah total ekuitas margin akun berjangka di bawah pengaturan kontrak saat ini.
Ekuitas
Nomor
Bidang ini hanya didukung oleh obyek pertukaran berjangka.UPnL
bidang adalah jumlah dariHasil dan kerugian yang belum direalisasikandari semua posisi yang dibuka oleh margin akun futures di bawah pengaturan kontrak saat ini.
UPnL Nomor
Fungsi exchange.GetAccount (() mengembalikan struktur Akun. Data dalam struktur yang dikembalikan tergantung pada pasangan perdagangan yang saat ini ditetapkan, kode kontrak.
{@fun/Account/exchange.GetAccount pertukaran.GetAccount}
Struktur informasi aset mata uang tertentu.
Nama-nama yang ditentukan oleh pertukaran untuk aset cryptocurrency, yang dapat bervariasi dari pertukaran ke pertukaran untuk cryptocurrency yang sama, misalnyaBTC
mungkin disebutXBT
di beberapa bursa.
Mata uang
string
Saldo aset mata uang yang tersedia.
Jumlah
Nomor
Jumlah aset yang dibekukan dalam mata uang.
Frozen Jumlah
Nomor
PeraturanFrozenAmount
dari aset mata uang dapat mencakup aset yang terkunci untuk pesanan yang belum dipenuhi, dan bagian margin yang terkunci untuk posisi berjangka.
{@fun/Account/exchange.GetAssets pertukaran.GetAssets}
Struktur informasi posisi kontrak.
Data asli yang dikembalikan oleh antarmuka pertukaran, tidak ada atribut tersebut tersedia untuk backtesting.
Informasi
objek
PeraturanSymbol
kolom adalah kode produk perdagangan yang didefinisikan oleh platform FMZ dan formatnya konsisten denganSymbol
bidang struktur {@struct/Ticker Ticker}
Symbol
Nilai bidang adalah (misalnya):BTC_USDT
, menunjukkan pasangan perdagangan spot BTC_USDT.Symbol
Nilai bidang adalah (misalnya):BTC_USDT.swap
, yang merupakan kontrak abadi standar USDT dari BTC.Simbol string Ukuran bar posisi, diisi dengan perhitungan jika antarmuka pertukaran tidak memberikan data ini, mungkin tidak akurat. MarginLevel nomor Ukuran posisi, yang biasanya adalah bilangan bulat positif (jumlah nomor kontrak). Jumlah nomor Jumlah posisi yang dibekukan, jumlah posisi yang dibekukan sementara ketika pesanan tertutup tidak dipenuhi. Frozen Jumlah nomor Harga rata-rata posisi, yang pada prinsipnya adalah harga rata-rata posisi secara keseluruhan (tidak berpartisipasi dalam penyelesaian). Harga nomor Keuntungan/kerugian yang mengambang dari posisi pada prinsipnya adalah keuntungan/kerugian posisi yang belum direalisasikan, jika data tidak disediakan oleh antarmuka pertukaran, data tersebut akan diisi dengan data laba/kerugian lain dari antarmuka pertukaran. Keuntungan nomor Tipe posisi, merujuk pada {@var/POSITION_DIRECTION/PD_LONG PD_LONG}, {@var/POSITION_DIRECTION/PD_SHORT PD_SHORT}. Jenis nomor Kode kontrak, lihat deskripsi fungsi {@fun/Futures/exchange.SetContractType exchange.SetContractType} untuk rincian. ContractType string Margin yang diduduki oleh posisi, diisi dengan 0 jika antarmuka pertukaran tidak memberikan data ini. Margin nomor
Fungsi exchange.GetPositions( mengembalikan array Positions atau array kosong. Untuk berjangka mata uang kripto, penting untuk dicatat bahwa array struktur Posisi dikembalikan oleh fungsi exchange.GetPositions(). Untuk atribut FrozenAmount, Profit, dan Margin dalam struktur data posisi, karena data yang diberikan oleh pertukaran tidak seragam, antarmuka GetPositions(, definisi data yang dikembalikan oleh objek pertukaran mungkin berbeda. Misalnya, beberapa bursa tidak memiliki data pembekuan posisi dalam data posisi, jadi FrozenAmount adalah 0.
{@fun/Futures/exchange.GetPositions exchange.GetPositions}
Struktur informasi pasar tentang varietas yang diperdagangkan.
Mengambil nilai seperti"btcusdt"
, yangSymbol
Catat bahwa format dan definisi atribut ini berbeda dariSymbol
bidang struktur {@struct/Ticker Ticker}
Simbol
string
Mengambil nilai seperti"BTC"
, yangBaseAsset
bidang mencatat nama mata uang yang diperdagangkan (misalnya: baseCurrency), yang seragam huruf besar.
Basis Aset
string
Mengambil nilai seperti"USDT"
, yangQuoteAsset
bidang mencatat nama mata uang yang dijumlahkan (misalnya: quoteCurrency), yang secara seragam huruf besar.
Nilai aset
string
Mengambil nilai seperti0.01
, yangTickSize
bidang mencatat nilai perubahan terkecil dalam harga item yang diperdagangkan di bursa.
TickSize
nomor
Mengambil nilai seperti0.01
, yangAmountSize
kolom mencatat nilai perubahan minimum dalam volume pesanan yang ditempatkan di bursa untuk perdagangan tersebut.
JumlahUkuran
nomor
Mengambil nilai seperti2
, yangPricePrecision
bidang mencatat presisi harga barang yang diperdagangkan di bursa, menunjukkan bahwa harga akurat hingga 2 desimal.
PricePrecision
nomor
Mengambil nilai seperti3
, yangAmountPrecision
kolom mencatat presisi pesanan yang ditempatkan di bursa untuk varietas yang diperdagangkan, menunjukkan bahwa pesanan tersebut akurat hingga 3 desimal.
JumlahKeterangan
nomor
Mengambil nilai seperti0.001
, yangMinQty
bidang mencatat ukuran pesanan minimum di bursa untuk perdagangan tersebut.
MinQty
Nomor
Mengambil nilai seperti1000
, yangMaxQty
bidang mencatat jumlah pesanan maksimum yang dapat ditempatkan di bursa untuk jenis perdagangan tersebut.
MaxQty
nomor
Mengambil nilai seperti5
, yangMinNotional
bidang mencatat jumlah minimum pesanan yang ditempatkan di bursa untuk jenis perdagangan tersebut.
MinNotional
nomor
Mengambil nilai seperti9999999
, yangMaxNotional
bidang mencatat jumlah maksimum pesanan yang ditempatkan di bursa untuk jenis perdagangan tersebut.
Max Notional
nomor
LapanganCtVal
mencatat nilai kontrak produk perdagangan di bursa, dalam mata uang yang tercatat diCtValCcy
contohnya:CtVal
adalah 0,01CtValCcy
adalah"BTC"
, yang berarti bahwa kontrak bernilai 0.01 BTC.
CtVal
Nomor
BidangCtValCcy
mencatat unit nilai kontrak. unit nilai kontrak dapat:BTC
, USD
, ETH
, dll.
CtValCcy
Nomor
BidangInfo
mencatat data mentah untuk spesies yang dikembalikan oleh antarmuka informasi pasar bursa.
Informasi
objek
Fungsi exchange.GetMarkets() mengembalikan kamus yang berisi iniMarket
struktur.
Karena tingkat dukungan yang berbeda untuk data informasi pasar oleh setiap bursa, bidang yang tidak didukung oleh bursa akan diabaikan.Info
field.
{@fun/Market/exchange.GetMarkets pertukaran.GetMarkets}
Struktur informasi tingkat pendanaan produk perdagangan. Hanya kontrak abadi cryptocurrency yang mendukung tingkat pendanaan.
Data mentah dikembalikan ketika antarmuka dana pertukaran berjangka cryptocurrency dipanggil.
Informasi
objek
PeraturanSymbol
kolom adalah kode produk perdagangan yang didefinisikan oleh platform FMZ.
Simbol
string
Interval tingkat pendanaan, dalam milidetik.28800000
berarti interval 8 jam.
Interval
nomor
Stempel waktu waktu awal periode suku bunga pendanaan berikutnya (waktu penyelesaian periode ini), dalam milidetik.
Waktu
nomor
Tingkat pendanaan yang akan digunakan untuk periode ini.
Tingkat
nomor
Tingkat pendanaan kontrak abadi dari bursa berjangka yang berbeda memiliki metode dan mekanisme perhitungan yang berbeda, dan siklus penyelesaian adalah 1 jam, 4 jam, 8 jam, dan satu hari.
Tingkat pendanaan saat ini dari kontrak abadi di bursa berjangka memiliki nilai tetap dan nilai variabel yang dihitung secara real time.
PeraturanRate
bidang adalah nilai suku bunga pendanaan tanpa%
. Jika Anda ingin mengkonversi ke nilai dengan%
, Anda dapat mengalikannya dengan 100 dan menambahkan%
di akhir.
{@fun/Futures/exchange.GetFundings exchange.GetFundings}
Struktur JSON ini digunakan untuk mengkonfigurasi parameter fungsi HttpQuery dan fungsi HttpQuery_Go untuk mengirim permintaan Http.
Metode permintaan, misalnya:GET
, POST
, dll.
metode
string
Misalnya, dalam permintaan POST, tubuh dapat berisi data formulir, JSON, teks, dll.
tubuh
string
Pengkodean set karakter. Misalnya, tentukan pengkodean data teks dalam body sebagai:"UTF-8"
Aku tidak tahu.
Charset
string
Cookie adalah data kecil yang digunakan untuk menyimpan dan bertukar informasi keadaan antara klien (biasanya browser) dan server.
kue
string
Digunakan untuk mensimulasikan sidik jari browser.
profil
string
Ketika diatur ke true, panggilan fungsi HttpQuery mengembalikan pesan respons lengkap. Ketika diatur ke false, hanya data dalam pesan respon Body yang dikembalikan.
debug
bool
Informasi request header ada dalam bentuk key-value pairs (struktur JSON) dan digunakan untuk mengirimkan berbagai informasi, seperti jenis konten, informasi otentikasi, kontrol cache, dll.
Header
JSON
Pengaturan timeout. Mengatur 1000 berarti waktu istirahat 1 detik.
timeout
nomor
Contoh penggunaan:
function main() {
var options = {
method: "POST",
body: "a=10&b=20&c=30",
charset: "UTF-8",
cookie: "session_id=12345; lang=en",
profile: "chrome_103",
debug: false,
headers: {"TEST-HTTP-QUERY": "123"},
timeout: 1000
}
var ret = HttpQuery("http://127.0.0.1:8080", options)
Log(ret)
}
Pesan http yang dikirim saat kode di atas dijalankan:
POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: session_id=12345; lang=en
Host: 127.0.0.1:8080
Test-Http-Query: 123
Transfer-Encoding: chunked
User-Agent: Mozilla/5.0 (Macintosh; ...
Accept-Encoding: gzip, deflate, br
e
a=10&b=20&c=30
0
{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go}
Struktur JSON ini adalah struktur data yang dikembalikan oleh fungsi HttpQuery dalam mode debug ketika bidang debug dioptions
Parameter struktur benar.
Kode status http StatusKode Nomor Minta informasi header. Judul JSON Informasi tentang cookie. Cookie Array Informasi jalur penuh permintaan. Menelusuri JSON Panjang pesan Panjang Nomor Isi pesan. Tubuh string
Contoh dari struktur data JSON yang dikembalikan adalah:
{
"StatusCode": 302,
"Header": {
"Content-Type": ["text/html"],
// ...
},
"Cookies": [{
// ...
}],
"Trace": {},
"Length": 154,
"Body": "..."
}
{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go}
Struktur JSON ini digunakan untuk mengkonfigurasi konten tabel yang ditampilkan di bilah status strategi.
Digunakan untuk mengatur jenis UI dan kontrol yang akan dianalisis dan ditampilkan.table
Aku tidak tahu.
jenis
string
Digunakan untuk mengatur judul tabel status bar.
Judul
string
Digunakan untuk mengatur judul kolom dari tabel bar status. elemen pertama array adalah judul kolom pertama, dan seterusnya.
Benih
Array
Digunakan untuk mengatur data baris tabel bar status. Elemen pertama array baris (array dua dimensi) juga merupakan struktur array. Panjang struktur array ini harus konsisten dengan jumlah kolom tabel (elemen dalam struktur array sesuai dengan nama kolom tabel satu per satu), yaitu, baris pertama data dalam tabel.
baris
Array
function main() {
var tbl = {
type: "table",
title: "title",
cols: ["Column 1", "Column 2", "Column 3"],
rows: [
["Row 1 Column 1", "Row 1 Column 2", "Row 1 Column 3"],
["Row 2 Column 1", "Row 2 Column 2", "Row 2 Column 3"],
["Row 3 Column 1", "Row 3 Column 2", "Row 3 Column 3"],
]
}
LogStatus("`" + JSON.stringify(tbl) + "`")
}
{@fun/Log/LogStatus LogStatus}
Struktur JSON ini digunakan untuk mengkonfigurasi kontrol tombol di bilah status. Struktur JSON kontrol tombol dapat disematkan dalam struktur JSON tabel bilah status. Struktur ini adalah struktur versi lama, dan platform masih kompatibel. Contoh membangun kontrol tombol bilah status (setelah tombol dipicu dan diklik, kotak pop-up berisi kontrol input tunggal, yang dibangun melalui bidang input):
{
"type": "button",
"cmd": "open",
"name": "opening a position",
"input": {
"name": "number of opening positions",
"type": "number",
"defValue": 1
}
}
Kontrol di kotak pop-up dipicu dengan mengklik tombol status bar kontrol diatur melaluiinput
ataugroup
.
Untuk kontrol tombol, pengaturan tetap adalah:button
Aku tidak tahu.
jenis
string
Pengaturan jenis tombol
kelas
string
Teks pada tombol kontrol, yaitu, nama tombol.
nama
string
Konten perintah interaktif yang dikirim ke strategi ketika kontrol tombol memicu operasi klik.
cmd
string
Deskripsi kontrol tombol. Deskripsi ditampilkan ketika mouse ditempatkan pada tombol di bilah status.
deskripsi
string
Menetapkan tombol ke disabled (true) / enabled (false).
penyandang cacat
bool
Ketika membangun tombol bilah status untuk interaksi, input data juga didukung.GetCommand()
Fungsi.input
Item ke struktur data JSON dari kontrol tombol di bilah status untuk mengkonfigurasi kontrol input di kotak pop-up yang ditampilkan ketika tombol dipicu.
Sebagai contoh, untuk menetapkan nilai dariinput
bidang:
{
"name": "Number of opening positions",
"type": "number",
"defValue": 1,
"description": "test",
}
Deskripsi setiap bidang dalam struktur JSON di atas:
"number"
: kontrol input numerik."string"
Kontrol input string."selected"
Kontrol kotak drop-down."boolean"
/ Mengganti kontrol."input": {"name": "Opening quantity", "type": "selected", "defValue": "A|B|C"}
, deskripsi teks dari opsi kotak drop-down diatur menjadi A, B, C.Untuk bidang yang diperluas oleh kontrol jenis kotak drop-down:
{text: "description", value: "value"}
Gunakan kolom defValue untuk mengatur opsi default, yang bisa beberapa pilihan.input
JSON
Peraturaninput
field mengkonfigurasi kontrol di kotak pop-up yang muncul setelah tombol status bar dipicu dengan mengklik.group
daninput
adalah bahwa ia mengkonfigurasi sekelompok kontrol.group
memiliki struktur data yang sama denganinput
Silakan lihat deskripsi yang relevan dariinput
field.
kelompok Array
Contoh dariclass
nilai struktur JSON dari tombol di bilah status:
function main() {
var table = {
type: "table",
title: "Status bar button style",
cols: ["Default", "Original", "Success", "Information", "Warning", "Danger"],
rows: [
[
{"type":"button", "class": "btn btn-xs btn-default", "name": "Default"},
{"type":"button", "class": "btn btn-xs btn-primary", "name": "Original"},
{"type":"button", "class": "btn btn-xs btn-success", "name": "Success"},
{"type":"button", "class": "btn btn-xs btn-info", "name": "Information"},
{"type":"button", "class": "btn btn-xs btn-warning", "name": "Warning"},
{"type":"button", "class": "btn btn-xs btn-danger", "name": "Danger"}
]
]
}
LogStatus("`" + JSON.stringify(table) + "`")
}
Contoh penggunaangroup
bidang denganinput
bidang:
function main() {
// The drop-down box control in the page triggered by the testBtn1 button uses the options field to set options and the defValue field to set the default options. This is different from other examples in this chapter that directly use defValue to set options.
var testBtn1 = {
type: "button",
name: "testBtn1",
cmd: "cmdTestBtn1",
input: {name: "testBtn1ComboBox", type: "selected", options: ["A", "B"], defValue: 1}
}
/*
Status bar button control (set input field implementation) testBtn2 button triggered by the page in the drop-down box control using the options field to set the options, options field in the options field not only supports the string,
it also supports the use of ```{text: "description", value: "value"}``` structure. Use the defValue field to set the default option. The default option can be multiple selection (multiple selection is achieved through an array structure). Multiple selection requires setting the additional field multiple to true.
*/
var testBtn2 = {
type: "button",
name: "testBtn2",
cmd: "cmdTestBtn2",
input: {
name: "testBtn2MultiComboBox",
type: "selected",
description: "Implementing multiple selection in drop-down box",
options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}],
defValue: ["A", "C"],
multiple: true
}
}
// Status bar grouping button control (set group field implementation) testBtn3 button triggered by the page in the drop-down box control using the options field to set options, also supports the direct use of defValue set options.
var testBtn3 = {
type: "button",
name: "testBtn3",
cmd: "cmdTestBtn3",
group: [
{name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]},
{name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"},
{name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]},
{
name: "comboBox4",
label: "labelComboBox4",
description: "Drop-down box 4",
type: "selected",
defValue: ["A", "C"],
multiple: true,
options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
}
]
}
while (true) {
LogStatus("`" + JSON.stringify(testBtn1) + "`\n", "`" + JSON.stringify(testBtn2) + "`\n", "`" + JSON.stringify(testBtn3) + "`\n")
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(5000)
}
}
{@fun/Log/LogStatus LogStatus}
Struktur JSON ini digunakan untuk mengkonfigurasi kontrol tombol di bilah status. Struktur JSON kontrol tombol dapat disematkan dalam struktur JSON tabel bilah status. Contoh membangun kontrol tombol bilah status (setelah tombol dipicu dan diklik, kotak pop-up berisi beberapa kontrol input, yang dibangun melalui bidang kelompok):
{
"type": "button",
"cmd": "open",
"name": "Open a position and place an order",
"group": [{
"type": "selected",
"name": "tradeType",
"label": "order type",
"description": "market order, limit order",
"default": 0,
"group": "trading setup",
"settings": {
"options": ["market order", "limit order"],
"required": true,
}
}, {
"type": "selected",
"name": "direction",
"label": "trading direction",
"description": "buy, sell",
"default": "buy",
"group": "trading setup",
"settings": {
"render": "segment",
"required": true,
"options": [{"name": "buy", "value": "buy"}, {"name": "sell", "value": "sell"}],
}
}, {
"type": "number",
"name": "price",
"label": "price",
"description": "order price",
"group": "trading setup",
"filter": "tradeType==1",
"settings": {
"required": true,
}
}, {
"type": "number",
"name": "amount",
"label": "order quantity",
"description": "order quantity",
"group": "trading setup",
"settings": {
"required": true,
}
}],
}
Kontrol di kotak pop-up dipicu dengan mengklik tombol status bar kontrol diatur melaluiinput
ataugroup
.
Untuk kontrol tombol, pengaturan tetap adalah:button
Aku tidak tahu.
jenis
string
Teks pada tombol kontrol, yaitu, nama tombol.
nama
string
Konten perintah interaktif yang dikirim ke strategi ketika kontrol tombol memicu operasi klik.
cmd
string
Ketika membangun tombol bilah status untuk interaksi, input data juga didukung.GetCommand()
Fungsi.input
Item ke struktur data JSON dari kontrol tombol di bilah status untuk mengkonfigurasi kontrol input di kotak pop-up yang ditampilkan ketika tombol dipicu.
Dibandingkan dengan versi lama dari struktur input, versi baru memiliki beberapa bidang baru dan perubahan:
{
"type": "selected",
"name": "test",
"label": "topic",
"description": "desc",
"default": 1,
"filter": "a>1",
"group": "group1",
"settings": { ... }, // Component configuration
}
Deskripsi dan penjelasan dari setiap bidang dalam struktur JSON di atas:
jenis
Jenis kontrol (bidang wajib), mendukung pengaturan berikut:"number"
kotak input numerik,"string"
kotak input string,"selected"
kotak drop-down,"boolean"
Mengganti kontrol.
nama Jika struktur JSON saat ini adalah nilai bidang bidang input, ketika bidang label tidak ditetapkan, nama adalah judul kontrol di kotak pop-up yang muncul setelah tombol status bar diklik. Jika struktur JSON saat ini adalah elemen dalam nilai bidang (struktur array) dari bidang kelompok, nama tidak digunakan sebagai judul kontrol.
var testBtn3 = {
type: "button",
name: "testBtn3",
cmd: "cmdTestBtn3",
group: [
{name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]},
{name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"},
{name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]},
{
name: "comboBox4",
label: "labelComboBox4",
description: "Drop-down box 4",
type: "selected",
defValue: ["A", "C"],
multiple: true,
options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
}
]
}
Menurut cuplikan ini, jika tombol bilah status memicu interaksi, kotak pop-up akan muncul dengan 4 kontrol, yang semuanya adalah kontrol kotak drop-down. Setelah mengatur opsi untuk setiap kontrol dan mengklik OK untuk mengirim pesan interaksi, fungsi GetCommand dalam strategi akan menerimacmdTestBtn3:{"comboBox1":1,"comboBox2":0,"comboBox3":[0,2],"comboBox4":["A","C"]}
Aku tidak tahu.
Nilai nama dalam struktur JSON digunakan sebagai nama lapangan dari informasi interaktif yang dikembalikan, misalnya: comboBox1, comboBox2, dll.
label Digunakan untuk mengatur judul kontrol.
deskripsi Deskripsi kontrol. Jika struktur JSON saat ini adalah elemen dalam nilai bidang (struktur array) dari bidang grup, dan bidang label tidak ditetapkan, deskripsi adalah judul kontrol di kotak pop-up yang muncul setelah tombol status bar diklik.
default Nilai default dari kontrol.
filter Selector, digunakan untuk menyembunyikan kontrol. Tidak menetapkan bidang ini berarti tidak ada penyaringan (menampilkan kontrol); ketika bidang ini ditetapkan, tidak ada penyaringan (menampilkan kontrol) terjadi ketika ekspresi benar. Ketika ekspresi salah, penyaringan terjadi (tidak menampilkan kontrol)
kelompok Digunakan untuk mengontrol pengelompokan kontrol, yang dapat dilipat.
pengaturan Konfigurasi komponen, kontrol memiliki berbagai pilihan UI, gunakan opsi ini untuk membuat pengaturan tertentu.
settings:{
multiple:true,
customizable:true,
options:[{name:'xxx|yyy',value:0}]
}
Pengaturan:
setting.required: Apakah diperlukan.
setting.disabled: Apakah untuk menonaktifkan.
settings.min: Berlaku jika type=number, menunjukkan nilai minimum atau panjang minimum string.
settings.max: Berlaku jika type=number, menunjukkan nilai maksimum atau panjang maksimum string.
settings.step: Berlaku jika type=number dan render=slider, menunjukkan panjang langkah.
settings.multiple: Berlaku jika type= dipilih, menunjukkan bahwa beberapa pilihan didukung.
setting.customizable: Ini berlaku ketika type= dipilih, menunjukkan bahwa kustomisasi didukung; pengguna dapat langsung mengedit dan menambahkan opsi baru di kontrol kotak drop-down. Jika opsi yang baru diedit dipilih, nama opsi digunakan sebagai pengganti nilai yang diwakili oleh opsi ketika interaksi dipicu.
setting.options: Berlaku jika type= dipilih, menunjukkan format data opsi selektor: [
input
JSON
Peraturaninput
field mengkonfigurasi kontrol di kotak pop-up yang muncul setelah tombol status bar dipicu dengan mengklik.group
daninput
adalah bahwa ia mengkonfigurasi sekelompok kontrol.group
memiliki struktur data yang sama denganinput
Silakan lihat deskripsi di atas dariinput
field.
kelompok Array
Dukungan pengaturan bilingual:
{
type:'selected',
name:'test',
label:'选项|options',
description:'描述|description',
default:0, // Here, the default value is set to 0, which means the value in the option {name:'xxx|yyy',value:0}
filter:'a>1&&a<10',
group:'分组|group',
settings:{
multiple:true,
customizable:true,
options:[{name:'xxx|yyy',value:0}]
}
}
{@fun/Log/LogStatus LogStatus}
JSON ini digunakan untuk mengatur informasi konfigurasi grafik dari fungsi gambar khususChart()
. Perpustakaan grafik yang digunakan adalah Highcharts. Hanya beberapa bidang konfigurasi dasar yang terdaftar di sini.
Lapangan ekstensi platform. diatur ke benar untuk menggunakan grafik Highstocks; diatur ke salah untuk menggunakan grafik Highcharts.
__isStock string
{
layout: 'single', // Not participating in grouping, displayed separately, default is group 'group'
height: 300, // Specify height
}
perpanjangan JSON Judul grafik Judul string Konfigurasi sumbu X. xAxis JSON Konfigurasi sumbu Y. yAxis JSON Seri data grafik. seri JSON
Contoh gambar sederhana:
// This chart is an object in JavaScript language. Before using the Chart function, we need to declare an object variable chart to configure the chart.
var chart = {
// This field marks whether the chart is a general chart. If you are interested, you can change it to false and run it.
__isStock: true,
// Zoom tool
tooltip: {xDateFormat: '%Y-%m-%d %H:%M:%S, %A'},
// title
title : { text : 'Price difference analysis chart'},
// Select range
rangeSelector: {
buttons: [{type: 'hour',count: 1, text: '1h'}, {type: 'hour',count: 3, text: '3h'}, {type: 'hour', count: 8, text: '8h'}, {type: 'all',text: 'All'}],
selected: 0,
inputEnabled: false
},
// The horizontal axis of the coordinate axis is: x-axis, and the current setting type is: time
xAxis: { type: 'datetime'},
// The vertical axis of the coordinate axis is: the y-axis, the default value is adjusted according to the data size
yAxis : {
// title
title: {text: 'Price difference'},
// Whether to enable the right vertical axis
opposite: false
},
// Data series, this property saves each data series (line, K-line chart, label, etc.)
series : [
// The index is 0, and the data array stores the data of the index series.
{name : "line1", id : "line 1,buy1Price", data : []},
// The index is 1, dashStyle:'shortdash' is set, that is, a dashed line is set
{name : "line2", id : "line 2,lastPrice", dashStyle : 'shortdash', data : []}
]
}
function main(){
// Call the Chart function to initialize the chart
var ObjChart = Chart(chart)
// Clear
ObjChart.reset()
while(true){
// Get the timestamp of this poll, which is a millisecond timestamp. Used to determine the position of the X-axis written to the chart
var nowTime = new Date().getTime()
// Get market data
var ticker = _C(exchange.GetTicker)
// Get the buy price from the return value of the market data
var buy1Price = ticker.Buy
// Get the last transaction price. In order to prevent the two lines from overlapping, we add 1.
var lastPrice = ticker.Last + 1
// Use the timestamp as the X value and the buy price as the Y value to pass into the data sequence of index 0
ObjChart.add(0, [nowTime, buy1Price])
// Same as above
ObjChart.add(1, [nowTime, lastPrice])
Sleep(2000)
}
}
{@fun/Log/Chart Chart}
JSON ini digunakan untuk mengatur informasi konfigurasi grafik dari fungsi gambar khususKLineChart
Hanya beberapa bidang konfigurasi dasar yang tercantum di sini.
Apakah menggambar pada bagan utama. penyambungan bool Konfigurasi sumbu X. xAxis JSON Konfigurasi sumbu Y. yAxis JSON Konfigurasi grafik candlestick. lilin JSON
Silakan lihat:Artikel khusus tentang menggambar grafik menggunakan fungsi KLineChart.
{@fun/Log/KLineChart KLineChart}
JSON digunakan untuk mengatur data yang akan dimuat olehexchange.SetData()
JSON data adalah struktur array, di mana setiap elemen juga array, yaitu[time, data]
.
Stempel waktu data, menandai waktu data ini.
waktu
nomor
data adalah sepotong data yang sesuai dengan waktu tertentu dalam data yang dimuat olehexchange.SetData()
Ketika strategi berjalan,exchange.GetData()
fungsi mendapatkan data dengan timestamp sesuai dengan waktu saat ini.
data string, nomor, bool, objek, array, dll.
Contoh memuat data dalam sistem backtesting dan mengambil data ketika strategi backtest sedang berjalan:
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
exchange.SetData("test", [[1579536000000, _D(1579536000000)], [1579622400000, _D(1579622400000)], [1579708800000, _D(1579708800000)]])
while(true) {
Log(exchange.GetData("test"))
Sleep(1000 * 60 * 60 * 24)
}
}
{@fun SetData}, {@fun GetData}
JSON ini adalah struktur data yang dikembalikan olehEventLoop()
Fungsi.EventLoop()
Monitor fungsi: 1. Setiap peristiwa data yang dapat dibaca WebSocket; 2. peristiwa penyelesaian tugas bersamaan dengan fungsi exchange.Go() dan HttpQuery_Go(); 3. peristiwa pesan yang dikirim di thread yang dibuat olehthreading.Thread()
fungsi dalam strategi bahasa JavaScript.
Nomor urutan peristiwa. Seq Nomor Nama acara. Peristiwa string ID thread acara. ThreadId Nomor Indeks peristiwa. Indeks Nomor Stempel waktu nano. Nano Nomor
Gunakanexchange.Go()
fungsi untuk membuat permintaan bersamaan dan struktur data peristiwa dikembalikan olehEventLoop()
function.
{
"Seq":1,
"Event":"Exchange_GetTrades",
"ThreadId":0,
"Index":3,
"Nano":1682068771309583400
}
Dalam thread yang dieksekusi secara bersamaan dari strategi bahasa JavaScript (dibuat olehthreading.Thread()
fungsi), ketikapostMessage()
fungsi dari objek thread digunakan untuk mengirim pesan,EventLoop()
fungsi dalam thread yang menerima pesan akan memantau struktur data peristiwa berikut:
{
"Seq":4,
"Event":"thread",
"ThreadId":1,
"Index":0,
"Nano":1727592066508674000
}
{@fun/Global/EventLoop EventLoop}
JSON ini adalah struktur data yang dikembalikan olehDBExec()
fungsi; juga dikembalikan ketika menjalankan pernyataan SQL menggunakanexec()
metode dari objek yang dibuat olehDial()
function.
Nama kolom data yang akan ditanyakan, array string. kolom Array Data tertentu yang akan ditanyakan, di mana setiap data sesuai dengan nama kolom. Nilai bidang nilai adalah array dua dimensi, di mana setiap elemen adalah array dan catatan data. nilai-nilai Array
Contoh data kueri di database:
{
"columns":["TS","HIGH","OPEN","LOW","CLOSE","VOLUME"],
"values":[
[1518970320000,100,99.1,90,100,12345.6],
[1518960320000,100,99.1,90,100,12345.6]
]
}
{@fun/Global/DBExec DBExec}, {@fun/Global/Dial Dial}
JSON ini adalah struktur data yang dikembalikan oleh fungsi anggotajoin()
dariThread
objek, yang menyimpan beberapa informasi tentang thread bersamaan diJavaScript
strategi bahasa.Thread
objek mengacu pada objek benang, yang dibuat olehthreading.Thread()
.
ID benang. id Nomor Apakah benang dipaksa untuk berakhir. diakhiri bool Waktu berjalan benang dalam nanodetik. telah berlalu Nomor Nilai kembali dari fungsi thread. Rt Nomor
Kode berikut menguji mekanisme timeout darijoin()
fungsi dariThread
objek dan mencetak nilai kembali darijoin()
function.
function testFunc() {
for (var i = 0; i < 5; i++) {
Log(i)
Sleep(300)
}
}
function main() {
var t1 = threading.Thread(testFunc)
Log(t1.join(1000)) // undefined
Log(t1.join()) // {"id":1,"terminated":false,"elapsed":1506864000}
} ```
{@fun/Threads/Thread/join join}
Fungsi bawaan
Variabel bawaan