В процессе загрузки ресурсов... загрузка...

exchange.GetRecords

Получить массив структуры {@struct/Record Record} спота или контракта, соответствующий в настоящее время установленной торговой паре, код контракта, т.е. данные K-линии.

Вexchange.GetRecords()функция возвращает массив структур {@struct/Record Record} при успешном запросе данных и возвращает нулевые значения при неудачном запросе данных. {@struct/Record Record} массивы, нулевые значения

Обмен.GetRecords ((() Обмен.GetRecords (символ) exchange.GetRecords (символ, точка) exchange.GetRecords ((символ, период, предел) Обмен.GetRecords (промежуток) Обмен.GetRecords ((период, лимит)

Параметрsymbolиспользуется для указания конкретной торговой пары и кода контракта, соответствующих запрошенным данным массива {@struct/Record Record}. Если этот параметр не будет передан, по умолчанию будут запрошены данные K-линии текущей установленной торговой пары и кода контракта.exchange.GetRecords(symbol)функция,exchangeЕсли вам нужно запросить получение данных с деноминированной валютой в USDT и валютой транзакции в BTC, параметрsymbolявляется:"BTC_USDT", а формат - формат торговой пары, определенный платформой FMZ.exchange.GetRecords(symbol)функция,exchangeЕсли вам нужно запросить данные ордерной книги BTC U-стандартного вечного контракта, параметрsymbolявляется:"BTC_USDT.swap", а формат представляет собой сочетаниеторговые парыикод контрактаопределяется платформой FMZ, разделенной символом ..exchange.GetRecords(symbol)функция,exchangeЕсли вам нужно запросить данные ордерной книги BTC U-стандартного опционного контракта, параметрsymbolявляется:"BTC_USDT.BTC-240108-40000-C"(в качестве примера Binance Option BTC-240108-40000-C), формат представляет собой комбинациюторговые парыопределены платформой FMZ и конкретным кодом контракта опциона, определенным биржей, разделенным символом .. символ ложное строка Параметрperiodуказывает период запрошенных данных K-линии, например: {@var/PERIOD/PERIOD_M1 PERIOD_M1}, {@var/PERIOD/PERIOD_M5 PERIOD_M5}, {@var/PERIOD/PERIOD_M15 PERIOD_M15} и т. д. Значение параметраperiodЕсли этот параметр не выполняется, период запрошенных по умолчанию данных K-линии является по умолчанию периодом K-линии текущей конфигурации стратегии реального времени / обратного теста. Период ложное Номер Параметрlimitиспользуется для указания длины запрашиваемых данных K-линии. Если этот параметр не передан, длина запроса по умолчанию - это максимальное количество строк K-линии, запрашиваемых в момент обмена интерфейсом K-линии. Этот параметр может привести к поиску данных K-линии обмена, и время потребления вызова функции увеличится во время поискового запроса. предел ложное Номер

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]);
}

Получите данные по К-линии для индивидуального периода.

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]);
}

Выходные K-линейные строки:

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);
}

Когда конфигурацияexchangeОбъект является объектом фьючерсного обмена, используйтеsymbol, period, иlimitпараметры для запроса данных K-линии конкретного продукта (будущий продукт).

По умолчанию K-линейный период может быть установлен на страницах backtest и реального трейдинга.exchange.GetRecords()Если при вызове функции не указан параметр, соответствующие данные K-линии возвращаются в соответствии с периодом K-линии, установленным в обратном тесте и реальных параметрах рынка. Возвращаемое значение - массивRecordВ случае, если вы хотите, чтобы использовать эти структуры, возвращенные K-линейные данные будут накапливаться с течением времени, верхний предел накопленных K-линейных баров влияет наexchange.SetMaxBarLen()Ограничение по умолчанию составляет 5000 баров, когда оно не установлено. Когда данные K-линии достигают ограничения накопления K-линейной строки, они обновляются путем добавления K-линейной строки и удаления самой ранней K-линейной строки (например, очереди в / из).Tradeструктурированный массив) в реальном времени для генерации K-линий. Если интерфейс K-линии обмена поддерживает поиск страниц, несколько запросов API будут выполнены при вызовеexchange.SetMaxBarLen()Функция для установки большей длины K-линии. Когдаexchange.GetRecords()Если функция называется изначально, количество полученных K-линейных баров различается между обратным тестированием и реальной торговлей: - Система обратного тестирования будет получать определенное количество K-линейных баров до начала временного диапазона обратного тестирования заранее (по умолчанию 5000, настройки системы обратного тестирования и количество данных повлияют на окончательное количество возвращенных данных), как первоначальные K-линейные данные. - Количество K-линейных баров, полученных во время фактической торговли, основано на максимальном количестве данных, которые могут быть получены из интерфейса K-линии биржи. Вperiodпараметр установлен на 5, что является запросом на получение данных K-линии с периодом 5 секунд.periodПараметр не делится на 60 (т. е. представленный период не делится на минуты).exchange.GetTrades()Для получения данных записи транзакций и синтеза необходимых данных K-линии.periodпараметр делится на 60, то требуемые K-линейные данные синтезируются с использованием минимум 1-минутных K-линейных данных (если возможно, требуемые K-линейные данные синтезируются с использованием большего периода). Симулируемое обратное тестирование уровня в системе обратного тестирования требует установки базового периода K-линии (когда система обратного тестирования имитирует обратное тестирование уровня, соответствующие данные K-линии используются для генерации данных Tick в соответствии с установленным базовым периодом K-линии). Следует отметить, что период данных K-линии, полученных в стратегии, не должен быть меньше базового периода K-линии. ВC++язык имеет следующий пример кода, если вам нужно построить свои собственные данные K-линии:

#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);                     
}

Обмены, которые не поддерживаютexchange.GetRecords()Функция:

Имя функции Не поддерживаемые спотовые обмены Фьючерсные биржи без поддержки
GetRecords Zaif / Coincheck / BitFlyer Фьючерсы_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