Dapatkan array struktur {@struct/Record Record} tempat atau kontrak yang sepadan dengan pasangan dagangan yang ditetapkan pada masa ini, kod kontrak, iaitu data K-line.
Peraturanexchange.GetRecords()
fungsi mengembalikan pelbagai struktur {@struct/Record Record} apabila permintaan data berjaya, dan ia mengembalikan nilai sifar apabila permintaan data gagal.
{@struct/Record Record} array, nilai sifar
pertukaran.GetRecords() pertukaran.GetRecords ((simbol) pertukaran.GetRecords ((simbol, titik) pertukaran.GetRecords ((simbol, tempoh, had) pertukaran.GetRecords ((periode) pertukaran.GetRecords ((periode, had)
Parametersymbol
digunakan untuk menentukan pasangan dagangan dan kod kontrak tertentu yang sepadan dengan data array {@struct/Record Record} yang diminta. Jika parameter ini tidak diteruskan, data K-line pasangan dagangan dan kod kontrak yang ditetapkan pada masa ini akan diminta secara lalai.exchange.GetRecords(symbol)
fungsi,exchange
adalah objek pertukaran segera. Jika anda perlu meminta untuk mendapatkan data dengan mata wang yang diisytiharkan sebagai USDT dan mata wang transaksi sebagai BTC, parametersymbol
ialah:"BTC_USDT"
, dan format adalah format pasangan dagangan yang ditakrifkan oleh platform FMZ.exchange.GetRecords(symbol)
fungsi,exchange
adalah objek pertukaran niaga hadapan. Jika anda perlu meminta data buku pesanan kontrak kekal standard U BTCsymbol
ialah:"BTC_USDT.swap"
, dan formatnya adalah gabunganPasangan dagangandanKod kontrakditakrifkan oleh platform FMZ, dipisahkan oleh watak exchange.GetRecords(symbol)
fungsi,exchange
adalah objek pertukaran niaga hadapan. Jika anda perlu meminta data buku pesanan kontrak pilihan standard U BTCsymbol
ialah:"BTC_USDT.BTC-240108-40000-C"
(mengambil Binance Option BTC-240108-40000-C sebagai contoh), format adalah gabunganPasangan daganganyang ditakrifkan oleh platform FMZ dan kod kontrak opsyen khusus yang ditakrifkan oleh bursa, dipisahkan oleh watak period
menentukan tempoh data garis K yang diminta, contohnya: {@var/PERIOD/PERIOD_M1 PERIOD_M1}, {@var/PERIOD/PERIOD_M5 PERIOD_M5}, {@var/PERIOD/PERIOD_M15 PERIOD_M15}, dan lain-lain. Nilai parameterperiod
boleh dilalui bukan sahaja tempoh standard yang ditakrifkan, tetapi juga nilai bulat dalam saat. Jika parameter ini tidak dilalui, tempoh data K-garis yang diminta secara lalai adalah tempoh K-garis lalai konfigurasi masa nyata / backtest strategi semasa.
tempoh
palsu
nombor
Parameterlimit
digunakan untuk menentukan panjang data K-line yang diminta. Jika parameter ini tidak dilewatkan, panjang permintaan lalai adalah bilangan bar K-line maksimum yang diminta pada satu masa antara muka pertukaran K-line. Parameter ini boleh menyebabkan paging untuk menyoal data pertukaran K-line, dan penggunaan masa panggilan fungsi akan meningkat semasa pertanyaan paging.
had
palsu
nombor
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 tempoh 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 bar K-line 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);
}
Apabila konfigurasiexchange
objek adalah objek pertukaran niaga hadapan, menggunakansymbol
, period
, danlimit
parameter untuk meminta data K-line produk tertentu (produk masa depan).
Tempoh K-garis lalai boleh ditetapkan di halaman backtest dan perdagangan sebenar.exchange.GetRecords()
Jika tiada parameter ditentukan apabila fungsi dipanggil, data K-line yang sepadan akan dikembalikan mengikut tempoh K-line yang ditetapkan dalam backtest dan parameter pasaran sebenar.
Nilai pulangan adalah pelbagaiRecord
struktur, data K-garis yang dikembalikan akan terkumpul dari masa ke masa, had atas bar K-garis terkumpul dipengaruhi olehexchange.SetMaxBarLen()
Peraturan fungsi. had lalai adalah 5000 bar apabila ia tidak ditetapkan. Apabila data K-line mencapai had pengumpulan bar K-line, ia akan dikemas kini dengan menambah bar K-line dan memadam bar K-line terdahulu (contohnya antrian masuk/keluar).Trade
array terstruktur) dalam masa nyata untuk menjana K-garis.
Jika antara muka K-line pertukaran menyokong pertanyaan paging, pelbagai permintaan API akan dibuat apabila memanggilexchange.SetMaxBarLen()
fungsi untuk menetapkan panjang garis K yang lebih besar.
Apabilaexchange.GetRecords()
fungsi dipanggil pada mulanya, bilangan bar K-garis yang diperoleh berbeza antara backtesting dan perdagangan sebenar: - Sistem backtesting akan memperoleh sejumlah bar K-garis sebelum permulaan julat masa backtesting terlebih dahulu (patuhan adalah 5000, tetapan sistem backtesting dan jumlah data akan mempengaruhi nombor akhir yang dikembalikan), sebagai data K-garis awal. - Bilangan bar K-garis yang diperoleh semasa perdagangan sebenar adalah berdasarkan jumlah maksimum data yang boleh diperoleh dari antara muka K-garis bursa.
Perkhidmatanperiod
parameter ditetapkan kepada 5, yang merupakan permintaan untuk mendapatkan data K-garis dengan tempoh 5 saat.period
Parameter tidak boleh dibahagikan dengan 60 (iaitu, tempoh yang diwakili tidak boleh dibahagikan dengan minit).exchange.GetTrades()
untuk mendapatkan data rekod transaksi dan meringkas data K-line yang diperlukan.period
parameter boleh dibahagikan dengan 60, maka data garis K yang diperlukan disintesis menggunakan data garis K sekurang-kurangnya 1 minit (jika mungkin, data garis K yang diperlukan disintesis menggunakan tempoh yang lebih besar).
Pengujian balik tahap simulasi dalam sistem pengujian balik memerlukan tetapan tempoh K-garis asas (apabila sistem pengujian balik mensimulasikan pengujian balik tahap, data K-garis yang sesuai digunakan untuk menjana data Tick mengikut tempoh K-garis asas yang ditetapkan). Perlu diperhatikan bahawa tempoh data K-garis yang diperoleh dalam strategi tidak boleh lebih kecil daripada tempoh K-garis asas. Kerana dalam pengujian balik tahap simulasi, data K-garis setiap tempoh dalam sistem pengujian balik disintesis dari data K-garis tempoh K-garis asas.
PerkhidmatanC++
bahasa mempunyai contoh kod berikut jika anda perlu membina data K-garis 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 menyokongexchange.GetRecords()
fungsi:
Nama Fungsi | Pertukaran Spot yang tidak disokong | Pertukaran niaga hadapan tanpa sokongan |
---|---|---|
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