Sumber dimuat naik... memuat...

exchange.GetRecords

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)

Parametersymboldigunakan 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,exchangeadalah objek pertukaran segera. Jika anda perlu meminta untuk mendapatkan data dengan mata wang yang diisytiharkan sebagai USDT dan mata wang transaksi sebagai BTC, parametersymbolialah:"BTC_USDT", dan format adalah format pasangan dagangan yang ditakrifkan oleh platform FMZ.exchange.GetRecords(symbol)fungsi,exchangeadalah objek pertukaran niaga hadapan. Jika anda perlu meminta data buku pesanan kontrak kekal standard U BTC, parametersymbolialah:"BTC_USDT.swap", dan formatnya adalah gabunganPasangan dagangandanKod kontrakditakrifkan oleh platform FMZ, dipisahkan oleh watak ..exchange.GetRecords(symbol)fungsi,exchangeadalah objek pertukaran niaga hadapan. Jika anda perlu meminta data buku pesanan kontrak pilihan standard U BTC, parametersymbolialah:"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 .. lambang palsu senar Parameterperiodmenentukan 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 parameterperiodboleh 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 Parameterlimitdigunakan 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 konfigurasiexchangeobjek adalah objek pertukaran niaga hadapan, menggunakansymbol, period, danlimitparameter 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 pelbagaiRecordstruktur, 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).Tradearray 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. Perkhidmatanperiodparameter ditetapkan kepada 5, yang merupakan permintaan untuk mendapatkan data K-garis dengan tempoh 5 saat.periodParameter 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.periodparameter 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