Obtener la matriz de estructura {@struct/Record Record} del spot o contrato correspondiente al par de operaciones establecido actualmente, código del contrato, es decir, datos de línea K.
Elexchange.GetRecords()
función devuelve una matriz de {@struct/Record Record} estructuras cuando la solicitud de datos tiene éxito, y devuelve valores nulos cuando la solicitud de datos falla.
{@struct/Record Record} matrices, valores nulos
¿ Qué pasa con los registros? intercambio.GetRecords (símbolo) intercambio.GetRecords (símbolo, punto) intercambio.GetRecords (símbolo, punto, límite) El cambio.GetRecords (período) intercambio.GetRecords (período, límite)
El parámetrosymbol
Se utiliza para especificar el par de operaciones específico y el código del contrato correspondiente a los datos de la matriz {@struct/Record Record} solicitados. Si este parámetro no se pasa, se solicitarán por defecto los datos de la línea K del par de operaciones actualmente establecido y el código del contrato.exchange.GetRecords(symbol)
función,exchange
Si necesita solicitar obtener los datos con la moneda denominada como USDT y la moneda de la transacción como BTC, el parámetrosymbol
es:"BTC_USDT"
, y el formato es el formato del par de operaciones definido por la plataforma FMZ.exchange.GetRecords(symbol)
función,exchange
Si necesita solicitar los datos del libro de pedidos del contrato perpetuo estándar U de BTCsymbol
es:"BTC_USDT.swap"
, y el formato es una combinación dePares de negociaciónycódigo del contratodefinido por la plataforma FMZ, separado por el carácter exchange.GetRecords(symbol)
función,exchange
Si necesita solicitar los datos del libro de pedidos del contrato de opción estándar U de BTCsymbol
es:"BTC_USDT.BTC-240108-40000-C"
(tomando Binance Option BTC-240108-40000-C como ejemplo), el formato es la combinación dePares de negociacióndefinido por la plataforma FMZ y el código del contrato de opción específico definido por la bolsa, separado por el carácter period
especifica el período de los datos de línea K solicitados, por ejemplo: {@var/PERIOD/PERIOD_M1 PERIOD_M1}, {@var/PERIOD/PERIOD_M5 PERIOD_M5}, {@var/PERIOD/PERIOD_M15 PERIOD_M15}, etc. El valor del parámetroperiod
Si este parámetro no se pasa, el período de los datos de línea K solicitados por defecto es el período de línea K predeterminado de la configuración actual de estrategia en tiempo real/backtest.
el período
falsos
Número
El parámetrolimit
Se utiliza para especificar la longitud de los datos de línea K solicitados. Si este parámetro no se pasa, la longitud de la solicitud predeterminada es el número máximo de barras de línea K solicitadas en un momento de la interfaz de línea K de intercambio. Este parámetro puede causar que la paginación solicite los datos de línea K de intercambio, y el consumo de tiempo de la llamada de función aumentará durante la consulta de paginación.
el límite
falsos
Número
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]);
}
Obtener datos de línea K para un período personalizado.
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]);
}
Datos de barra de la línea K de salida:
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);
}
Cuando el configuradoexchange
objeto es un objeto de intercambio de futuros, utilizar elsymbol
, period
, ylimit
los parámetros para solicitar los datos de línea K de un producto específico (producto futuro).
El período predeterminado de la línea K se puede establecer en las páginas de backtest y de operaciones reales.exchange.GetRecords()
Si no se especifica ningún parámetro cuando se llama la función, se devolverán los datos de línea K correspondientes de acuerdo con el período de línea K establecido en el backtest y los parámetros reales del mercado.
El valor de retorno es una matriz deRecord
En el caso de las estructuras, los datos de línea K devueltos se acumularán con el tiempo, el límite superior de las barras de línea K acumuladas se ve afectado por laexchange.SetMaxBarLen()
El límite predeterminado es de 5000 bares cuando no está establecido. Cuando los datos de la línea K alcanzan el límite de acumulación de la barra de la línea K, se actualizarán agregando una barra de la línea K y eliminando la barra de la línea K más temprana (por ejemplo, cola de entrada/salida).Trade
Las líneas K se generan en tiempo real.
Si la interfaz de línea K del intercambio admite consultas de paginación, se realizarán varias solicitudes de API al llamar alexchange.SetMaxBarLen()
función para establecer una longitud de línea K más grande.
Cuando elexchange.GetRecords()
Cuando la función se llama inicialmente, el número de barras de línea K obtenidas difiere entre la prueba posterior y la negociación real: - El sistema de prueba posterior obtendrá un cierto número de barras de línea K antes del inicio del intervalo de tiempo de prueba posterior por adelantado (el valor predeterminado es 5000, la configuración del sistema de prueba posterior y la cantidad de datos afectarán al número final devuelto), como los datos iniciales de línea K. - El número de barras de línea K obtenidas durante la negociación real se basa en la cantidad máxima de datos que se pueden obtener de la interfaz de línea K de la bolsa.
Elperiod
Si el parámetro se establece en 5, que es una solicitud para obtener datos de línea K con un período de 5 segundos.period
el parámetro no es divisible por 60 (es decir, el período representado no es divisible por minutos).exchange.GetTrades()
En el caso de las transacciones, los datos de registro de transacciones deben ser obtenidos y los datos de línea K requeridos sintetizados.period
Si el parámetro es divisible por 60, entonces los datos de línea K requeridos se sintetizan utilizando un mínimo de datos de línea K de 1 minuto (si es posible, los datos de línea K requeridos se sintetizan utilizando un período más largo).
La simulación de nivel de backtesting en el sistema de backtesting requiere la configuración del período de la línea K subyacente (cuando el sistema de backtesting simula la backtesting de nivel, los datos de la línea K correspondientes se utilizan para generar datos de Tick de acuerdo con el período de la línea K subyacente).
ElC++
lenguaje tiene el siguiente ejemplo de código si necesita construir sus propios datos de línea 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);
}
Los intercambios que no apoyan laexchange.GetRecords()
Función:
Nombre de la función | Intercambios al contado sin soporte | Exchanges de futuros no respaldados |
---|---|---|
Obtener registros | Zaif / Coincheck / BitFlyer. ¿ Qué es esto? | El valor de las pérdidas |
Se trata de un sistema de intercambio de datos que permite a los operadores de los mercados de datos de obtener información sobre las operaciones de intercambio de datos.
exchange.GetTrades exchange.GetPeriod