Deriv API
Documentación

Ticks

DatosSin autenticación

Suscríbase al flujo de ticks en tiempo real para datos de mercado. Los campos de respuesta requeridos cambiaron y el parámetro subscribe se extendió.

Comparación rápida

AspectoLegacy APINew APIAcción
EndpointticksticksNinguno
Requiere autenticaciónNoNoNinguno
Valores de Suscripción1 solamente0 o 1Opcional: use 0 para tick único
Objeto tickOpcionalObligatorioActualizar manejo de respuesta

Cambios importantes

1. Campos requeridos en respuesta de tick cambiados

Los campos obligatorios dentro del objeto tick han cambiado:

  • Legacy: Solo se requería pip_size.
  • Nuevo: epoch, quote, y symbol ahora son obligatorios.
  • pip_size ahora es opcional y puede no estar siempre presente.

Cambio requerido: Añada verificaciones de existencia antes de acceder a pip_size. Ahora puede confiar en que epoch, quote, y symbol siempre estarán presentes.

2. Objeto tick ahora requerido en la respuesta

El objeto tick ahora es un campo obligatorio en la respuesta.

  • Legacy: Solo echo_req y msg_type eran requeridos en el nivel superior.
  • Nuevo: tick y msg_type son obligatorios; echo_req ahora es opcional.

Cambio requerido: Ahora puede acceder de forma segura a response.tick sin verificar su existencia. Actualice cualquier código que dependa de que echo_req siempre esté presente.

3. El parámetro Subscribe ahora acepta 0

El parámetro subscribe ahora acepta tanto 0 como 1.

  • Legacy: Solo 1 era válido.
  • Nuevo: 0 (tick único, sin suscripción) o 1 (flujo continuo).

Cambio requerido: Esta es una nueva capacidad. Use subscribe: 0 cuando solo necesite una instantánea de tick único sin actualizaciones continuas.

4. Patrón de validación de entrada eliminado

La validación de patrón en el parámetro ticks ha sido eliminada.

  • Legacy: Pattern ^\w{2,30}$ was enforced.
  • Nuevo: Sin validación de patrón en nombres de símbolos.

Cambio requerido: Este cambio relaja la validación de entrada. Los nombres de símbolos válidos existentes seguirán funcionando. Si dependía del API para validar el formato de símbolos, considere agregar validación del lado del cliente.

Estructura de solicitud

Legacy APIejemplo de solicitud
{
  "ticks": "frxEURUSD",
  "subscribe": 1
}
New APIejemplo de solicitud
{
  "ticks": "frxEURUSD",
  "subscribe": 1
}

Estructura de respuesta

Legacy APIejemplo de respuesta
{
  "echo_req": {            // Required in legacy
    "ticks": "frxEURUSD",
    "subscribe": 1
  },
  "tick": {                // Optional in legacy
    "ask": 1.08501,
    "bid": 1.08499,
    "epoch": 1234567890,   // Optional
    "id": "tick-id-123",
    "pip_size": 5,         // REQUIRED in legacy
    "quote": 1.08500,      // Optional
    "symbol": "frxEURUSD"  // Optional
  },
  "msg_type": "tick",
  "subscription": { "id": "sub-123" }
}
New APIejemplo de respuesta
{
  "echo_req": {            // Now optional
    "ticks": "frxEURUSD",
    "subscribe": 1
  },
  "tick": {                // REQUIRED in new API
    "ask": 1.08501,
    "bid": 1.08499,
    "epoch": 1234567890,   // REQUIRED
    "id": "tick-id-123",
    "pip_size": 5,         // Now optional
    "quote": 1.08500,      // REQUIRED
    "symbol": "frxEURUSD"  // REQUIRED
  },
  "msg_type": "tick",
  "subscription": { "id": "sub-123" }
}

Ejemplos de código

async function subscribeTicks(symbol) {
  const request = {
    ticks: symbol,
    subscribe: 1  // Only 1 is valid
  };

  ws.send(JSON.stringify(request));

  ws.onmessage = (event) => {
    const response = JSON.parse(event.data);
    if (response.msg_type === 'tick') {
      // tick object may not exist
      if (response.tick) {
        // pip_size is guaranteed
        const pipSize = response.tick.pip_size;

        // These fields are optional
        const quote = response.tick.quote;
        const epoch = response.tick.epoch;
        const symbol = response.tick.symbol;

        console.log('Pip size:', pipSize);
        if (quote) console.log('Quote:', quote);
      }

      // echo_req is always available
      console.log('Request:', response.echo_req);
    }
  };
}
Click to open live chat support. Get instant help from our support team.