Получить массив структуры {@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
Если вам нужно запросить данные ордерной книги BTCsymbol
является:"BTC_USDT.swap"
, а формат представляет собой сочетаниеторговые парыикод контрактаопределяется платформой FMZ, разделенной символом exchange.GetRecords(symbol)
функция,exchange
Если вам нужно запросить данные ордерной книги BTCsymbol
является:"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