Dapatkan array struktur {@struct/Record Record} dari spot atau kontrak yang sesuai dengan pasangan perdagangan yang saat ini ditetapkan, kode kontrak, yaitu data K-line.
Peraturanexchange.GetRecords()
fungsi mengembalikan array struktur {@struct/Record Record} ketika permintaan data berhasil, dan mengembalikan nilai nol ketika permintaan data gagal.
Array, nilai nol
pertukaran.GetRecords ((() pertukaran.GetRecords (simbol) exchange.GetRecords (simbol, titik) exchange.GetRecords ((simbol, periode, batas) Pertukaran.GetRecords (periode) exchange.GetRecords ((periode, batas)
Parametersymbol
digunakan untuk menentukan pasangan perdagangan tertentu dan kode kontrak yang sesuai dengan data array {@struct/Record Record} yang diminta. Jika parameter ini tidak dilewati, data K-line dari pasangan perdagangan yang saat ini ditetapkan dan kode kontrak akan diminta secara default.exchange.GetRecords(symbol)
fungsi,exchange
Jika Anda perlu meminta untuk mendapatkan data dengan mata uang denominasi sebagai USDT dan mata uang transaksi sebagai BTC, parametersymbol
adalah:"BTC_USDT"
, dan formatnya adalah format pasangan perdagangan yang didefinisikan oleh platform FMZ.exchange.GetRecords(symbol)
fungsi,exchange
Jika Anda perlu meminta data buku pesanan kontrak abadi standar U BTCsymbol
adalah:"BTC_USDT.swap"
, dan formatnya adalah kombinasi daripasangan perdagangandankode kontrakdidefinisikan oleh platform FMZ, dipisahkan oleh karakter exchange.GetRecords(symbol)
fungsi,exchange
Jika Anda perlu meminta data buku pesanan dari kontrak opsi standar U BTCsymbol
adalah:"BTC_USDT.BTC-240108-40000-C"
(mengambil Binance Option BTC-240108-40000-C sebagai contoh), formatnya adalah kombinasi daripasangan perdagangandidefinisikan oleh platform FMZ dan kode kontrak opsi khusus yang didefinisikan oleh bursa, dipisahkan oleh karakter period
menentukan periode data garis K yang diminta, misalnya: {@var/PERIOD/PERIOD_M1 PERIOD_M1}, {@var/PERIOD/PERIOD_M5 PERIOD_M5}, {@var/PERIOD/PERIOD_M15 PERIOD_M15}, dll. Nilai parameterperiod
Jika parameter ini tidak dilewati, periode data K-line yang diminta secara default adalah periode K-line default dari konfigurasi real-time/backtest strategi saat ini.
periode
palsu
nomor
Parameterlimit
digunakan untuk menentukan panjang data K-line yang diminta. Jika parameter ini tidak dilewatkan, panjang permintaan default adalah jumlah maksimum bar K-line yang diminta pada saat antarmuka K-line pertukaran. Parameter ini dapat menyebabkan paging untuk menanyakan data K-line pertukaran, dan konsumsi waktu panggilan fungsi akan meningkat selama permintaan paging.
batas
palsu
nomor
function main() {
// Print K-line data with a K-line period of 120 seconds (2 minutes)
Log(exchange.GetRecords(60 * 2))
// Print K-line data with a K-line period of 5 minutes
Log(exchange.GetRecords(PERIOD_M5))
}
def main():
Log(exchange.GetRecords(60 * 2))
Log(exchange.GetRecords(PERIOD_M5))
void main() {
Log(exchange.GetRecords(60 * 2)[0]);
Log(exchange.GetRecords(PERIOD_M5)[0]);
}
Dapatkan data K-line untuk periode khusus.
function main() {
var records = exchange.GetRecords(PERIOD_H1)
/*
The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
At this point, records is null. When accessing records[0].Time, it will cause an error. Therefore, when testing this code, ensure that you can access the exchange interface.
*/
Log("The first k-line data is Time:", records[0].Time, "Open:", records[0].Open, "High:", records[0].High)
Log("The second k-line data is Time:", records[1].Time ,"Close:", records[1].Close)
Log("Current K-line (latest)", records[records.length-1], "Previous K-line", records[records.length-2])
}
def main():
records = exchange.GetRecords(PERIOD_H1)
Log("The first k-line data is Time:", records[0]["Time"], "Open:", records[0]["Open"], "High:", records[0]["High"])
Log("The second k-line data Time:", records[1]["Time"], "Close:", records[1]["Close"])
Log("Current K-line (latest)", records[-1], "Previous K-line", records[-2])
void main() {
auto records = exchange.GetRecords(PERIOD_H1);
Log("The first k-line data is Time:", records[0].Time, "Open:", records[0].Open, "High:", records[0].High);
Log("The second k-line data Time:", records[1].Time, "Close:", records[1].Close);
Log("Current K-line (latest)", records[records.size() - 1], "Previous K-line", records[records.size() - 2]);
}
Data garis K output:
function main() {
var records = exchange.GetRecords("BTC_USDT.swap", 60, 100)
Log(records)
}
def main():
records = exchange.GetRecords("BTC_USDT.swap", 60, 100)
Log(records)
void main() {
auto records = exchange.GetRecords("BTC_USDT.swap", 60, 100);
Log(records);
}
Ketika dikonfigurasiexchange
obyek adalah obyek bursa berjangka, menggunakansymbol
, period
, danlimit
parameter untuk meminta data K-line dari produk tertentu (produk masa depan).
Periode K-line default dapat diatur di halaman backtest dan real trading.exchange.GetRecords()
fungsi, data K-line yang sesuai dengan periode parameter tersebut akan diperoleh. Jika tidak ada parameter yang ditentukan ketika fungsi dipanggil, data K-line yang sesuai akan dikembalikan sesuai dengan periode K-line yang ditetapkan dalam backtest dan parameter pasar nyata.
Nilai yang dikembalikan adalah array dariRecord
struktur, data K-line yang dikembalikan akan terkumpul dari waktu ke waktu, batas atas bar K-line terkumpul dipengaruhi olehexchange.SetMaxBarLen()
setting fungsi. Batas default adalah 5000 bar ketika tidak diatur. Ketika data K-line mencapai batas akumulasi bar K-line, akan diperbarui dengan menambahkan bar K-line dan menghapus bar K-line tertua (misalnya antrian masuk/keluar). Beberapa pertukaran tidak menyediakan antarmuka K-line, sehingga docker mengumpulkan data catatan transaksi pasar (Trade
array terstruktur) secara real time untuk menghasilkan K-line.
Jika antarmuka K-line pertukaran mendukung pertanyaan paging, beberapa permintaan API akan dibuat ketika memanggilexchange.SetMaxBarLen()
fungsi untuk mengatur panjang K-line yang lebih besar.
Ketikaexchange.GetRecords()
fungsi dipanggil pada awalnya, jumlah batang K-line yang diperoleh berbeda antara backtesting dan perdagangan nyata: - Sistem backtesting akan memperoleh sejumlah batang K-line sebelum dimulainya rentang waktu backtesting sebelumnya (default adalah 5000, pengaturan sistem backtesting dan jumlah data akan mempengaruhi jumlah akhir yang dikembalikan), sebagai data K-line awal. - Jumlah batang K-line yang diperoleh selama perdagangan sebenarnya didasarkan pada jumlah maksimum data yang dapat diperoleh dari antarmuka K-line dari bursa.
Peraturanperiod
parameter diatur menjadi 5, yang merupakan permintaan untuk mendapatkan data K-line dengan periode 5 detik.period
Parameter tidak habis dibagi 60 (yaitu, periode yang diwakili tidak habis dibagi menit).exchange.GetTrades()
untuk memperoleh data catatan transaksi dan mensintesis data K-line yang diperlukan.period
parameter dibagi 60, maka data garis K yang diperlukan disintesis menggunakan minimal data garis K 1 menit (jika memungkinkan, data garis K yang diperlukan disintesis menggunakan periode yang lebih besar).
Simulasi level backtesting dalam sistem backtesting membutuhkan pengaturan periode K-line yang mendasari (ketika sistem backtesting mensimulasikan level backtesting, data K-line yang sesuai digunakan untuk menghasilkan data Tick sesuai dengan periode K-line yang mendasari).
PeraturanC++
bahasa memiliki contoh kode berikut jika Anda perlu membangun data K-line Anda sendiri:
#include <sstream>
void main() {
Records r;
r.Valid = true;
for (auto i = 0; i < 10; i++) {
Record ele;
ele.Time = i * 100000;
ele.High = i * 10000;
ele.Low = i * 1000;
ele.Close = i * 100;
ele.Open = i * 10;
ele.Volume = i * 1;
r.push_back(ele);
}
// Output display: Records[10]
Log(r);
auto ma = TA.MA(r,10);
// Output display: [nan,nan,nan,nan,nan,nan,nan,nan,nan,450]
Log(ma);
}
Bursa yang tidak mendukungexchange.GetRecords()
Fungsi:
Nama Fungsi | Pertukaran Spot yang tidak didukung | Pertukaran Futures Tanpa Dukungan |
---|---|---|
GetRecords | Zaif / Coincheck / BitFlyer | Futures_Aevo |
{@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetDepth exchange.GetDepth}, {@fun/Market/exchange.GetTrades exchange.GetTrades}, {@fun/Market/exchange.SetMaxBarLen exchange.SetMaxBarLen}
exchange.GetTrades exchange.GetPeriod