Deriv API
Documentación

Actualización de contrato

TradingRequiere autenticación

Actualice parámetros de contrato como take profit y stop loss. El parámetro loginid eliminado, objeto de respuesta ahora requerido y nuevo campo display_order_amount agregado.

Comparación rápida

AspectoLegacy APINew APIAcción
Endpointcontract_updatecontract_updateNinguno
Requiere autenticaciónNinguno
Parámetro loginidOpcionalEliminadoEliminar de las solicitudes
contract_update en RespuestaOpcionalObligatorioSimplificar manejo de errores

Cambios importantes

1. parámetro loginid eliminado

El parámetro loginid ha sido eliminado en New. Este parámetro se usaba anteriormente para especificar qué cuenta actualizar contratos cuando se proporcionaban múltiples tokens durante la autorización.

Cambio requerido: Elimine el campo loginid de sus solicitudes de contract_update. La selección de cuenta ahora se maneja a través del token de autorización.

2. objeto contract_update ahora requerido en la respuesta

El objeto contract_update ahora es un campo obligatorio en el nivel raíz de la respuesta.

Cambio requerido: Ahora puede confiar en que el objeto contract_update siempre estará presente en respuestas exitosas. Elimine cualquier verificación condicional de su existencia.

3. Nuevo campo display_order_amount agregado

Se ha agregado un nuevo campo de cadena display_order_amount a los objetos stop_loss y take_profit en la respuesta.

Cambio requerido: Opcionalmente puede usar este nuevo campo para mostrar cantidades de orden en la interfaz de usuario en lugar de formatear el número order_amount usted mismo.

Estructura de solicitud

Legacy APIejemplo de solicitud
{
  "contract_update": 1,
  "contract_id": 123456789,
  "limit_order": {
    "stop_loss": 15.00,
    "take_profit": 25.00
  },
  "loginid": "CR123456"
}
New APIejemplo de solicitud
{
  "contract_update": 1,
  "contract_id": 123456789,
  "limit_order": {
    "stop_loss": 15.00,
    "take_profit": 25.00
  }
}

Estructura de respuesta

Legacy APIejemplo de respuesta
{
  "contract_update": {
    "stop_loss": {
      "display_name": "Stop loss",
      "order_amount": 15.00,
      "order_date": 1234567890,
      "value": "1234.56"
    },
    "take_profit": {
      "display_name": "Take profit",
      "order_amount": 25.00,
      "order_date": 1234567890,
      "value": "1256.78"
    }
  },
  "echo_req": { "contract_update": 1, "contract_id": 123456789 },
  "msg_type": "contract_update"
}
New APIejemplo de respuesta
{
  "contract_update": {
    "stop_loss": {
      "display_name": "Stop loss",
      "display_order_amount": "15.00 USD",
      "order_amount": 15.00,
      "order_date": 1234567890,
      "value": "1234.56"
    },
    "take_profit": {
      "display_name": "Take profit",
      "display_order_amount": "25.00 USD",
      "order_amount": 25.00,
      "order_date": 1234567890,
      "value": "1256.78"
    }
  },
  "echo_req": { "contract_update": 1, "contract_id": 123456789 },
  "msg_type": "contract_update"
}

Ejemplos de código

async function updateContract(contractId, loginId = null) {
  const request = {
    contract_update: 1,
    contract_id: contractId,
    limit_order: {
      stop_loss: 15.00,
      take_profit: 25.00
    }
  };

  // Add loginid if provided (for multi-account)
  if (loginId) {
    request.loginid = loginId;
  }

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

  ws.onmessage = (event) => {
    const response = JSON.parse(event.data);
    if (response.msg_type === "contract_update") {
      // contract_update may be undefined
      if (response.contract_update) {
        const sl = response.contract_update.stop_loss;
        const tp = response.contract_update.take_profit;
        // Format order_amount manually
        console.log("Stop Loss:", sl?.order_amount);
      }
    }
  };
}
Click to open live chat support. Get instant help from our support team.