Historial de ticks
DatosSin autenticaciónObtenga datos históricos de ticks para un símbolo. Los campos requeridos de respuesta cambiaron, la validación se relajó y se agregaron nuevas opciones de parámetros.
6 cambios importantes
history y candles cambiaron. El campo echo_req ya no está garantizado.Comparación rápida
Cambios importantes
1. Campos requeridos en el objeto history cambiados
Los arrays prices y times dentro del objeto history ahora son campos obligatorios.
- Legacy: Ambos
pricesytimeseran opcionales. - Nuevo: Ambos ahora son obligatorios cuando el objeto
historyestá presente.
Cambio requerido: Ahora puede acceder de forma segura a history.prices y history.times sin verificaciones de nulos cuando existe el objeto history.
2. Campos obligatorios en el array de velas modificados
Todas las propiedades de velas (close, epoch, high, low, open) ahora son obligatorias.
- Legacy: Todas las propiedades de velas eran opcionales.
- New: Las cinco propiedades son obligatorias dentro de cada objeto de vela.
Cambio requerido: Ahora puede desestructurar de forma segura todas las propiedades de velas sin verificaciones nulas.
3. echo_req ya no es requerido en la respuesta
El campo echo_req ya no es un campo requerido en la respuesta.
- Legacy:
echo_reqymsg_typeeran requeridos. - New: Solo se requiere
msg_type.
Cambio requerido: Agregue verificaciones de existencia antes de acceder a response.echo_req.
4. Restricción de enumeración de granularidad eliminada
El parámetro granularity ya no tiene un conjunto fijo de valores permitidos.
- Legacy: Restringido a [60, 120, 180, 300, 600, 900, 1800, 3600, 7200, 14400, 28800, 86400].
- New: Se acepta cualquier valor entero.
Cambio requerido: Ahora tiene más flexibilidad en los valores de granularidad.
5. Patrones de validación de entrada eliminados
La validación de patrón en los parámetros ticks_history y end ha sido eliminada.
- Legacy:
ticks_historyrequired pattern^\w{{2,30}}$,endrequired pattern^(latest|[0-9]{{1,10}})$. - New: Sin validación de patrón en estos parámetros.
6. subscribe y adjust_start_time ahora aceptan 0
Ambos parámetros ahora aceptan 0 como valor válido además de 1.
- Legacy: Ambos parámetros solo aceptaban
1. - New: Ambos aceptan
0o1.
Cambio requerido: Esta es una nueva capacidad. Use subscribe: 0 para solicitudes únicas sin suscripción.
Estructura de solicitud
{
"ticks_history": "frxEURUSD",
"end": "latest",
"start": 1234567890,
"style": "ticks",
"count": 100,
"adjust_start_time": 1, // Only 1 allowed
"subscribe": 1 // Only 1 allowed
}{
"ticks_history": "frxEURUSD",
"end": "latest",
"start": 1234567890,
"style": "ticks",
"count": 100,
"adjust_start_time": 1,
"subscribe": 1
}Estructura de respuesta
{
"echo_req": { // REQUIRED in legacy
"ticks_history": "frxEURUSD",
"end": "latest"
},
"history": {
"prices": [1.0850, 1.0851], // Optional
"times": [1234567890, 1234567891] // Optional
},
"pip_size": 5,
"msg_type": "history"
}{
"echo_req": { // Now OPTIONAL
"ticks_history": "frxEURUSD",
"end": "latest"
},
"history": {
"prices": [1.0850, 1.0851], // REQUIRED
"times": [1234567890, 1234567891] // REQUIRED
},
"pip_size": 5,
"msg_type": "history" // Only required field
}Ejemplos de código
async function getTicksHistory(symbol) {
const request = {
ticks_history: symbol,
end: "latest",
start: Date.now() / 1000 - 86400,
style: "ticks",
count: 100,
adjust_start_time: 1, // Only 1 is valid
subscribe: 1 // Only 1 is valid
};
ws.send(JSON.stringify(request));
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
// echo_req is guaranteed
console.log('Request:', response.echo_req);
if (response.msg_type === 'history') {
// history.prices and history.times may be missing
if (response.history) {
if (response.history.prices) {
console.log('Prices:', response.history.prices);
}
if (response.history.times) {
console.log('Times:', response.history.times);
}
}
}
if (response.msg_type === 'candles') {
response.candles?.forEach(candle => {
// Each property may be missing
const close = candle.close ?? null;
const open = candle.open ?? null;
const high = candle.high ?? null;
const low = candle.low ?? null;
console.log({ open, high, low, close });
});
}
};
}¿Alguna otra pregunta? Póngase en contacto