Historial de actualización de contratos
TradingRequiere autenticaciónRecupera el historial y el estado de actualización más reciente de un contrato, incluyendo todos los cambios realizados en los parámetros del contrato como valores de stop loss y take profit.
3 Cambios Importantes
loginid ha sido eliminado, el campo de respuesta contract_update_history ahora es obligatorio, y los elementos del array de respuesta ahora tienen campos obligatorios.Comparación rápida
Cambios importantes
1. Parámetro LoginID eliminado
El parámetro loginid utilizado para escenarios de autorización de múltiples tokens ha sido eliminado. El contexto de la cuenta ahora debe gestionarse a través del flujo de autorización.
2. Campo de respuesta contract_update_history ahora requerido
El array contract_update_history en la respuesta ahora es un campo obligatorio.
Cambio requerido: Update response handling code. You can now rely on this field being present without null checks for the array itself.
3. Los elementos del array de respuesta tienen campos obligatorios
Cada elemento en el array contract_update_history ahora requiere cuatro campos: display_name, order_amount, order_date, y order_type.
Cambio requerido: You can simplify your code by removing defensive null checks for these now-required fields.
Estructura de solicitud
{
"contract_update_history": 1,
"contract_id": 123,
"limit": 500, // Optional: defaults to 500, min 1, max 999
"loginid": "CR123456" // ❌ Removed in New
}{
"contract_update_history": 1,
"contract_id": 123,
"limit": 500
}Estructura de respuesta
// contract_update_history: OPTIONAL
// All array item fields: OPTIONAL
{
"contract_update_history": [
{
"display_name": "Stop Loss",
"order_amount": "10.50",
"order_date": 1699564800,
"order_type": "stop_loss",
"value": "1234.56"
}
],
"msg_type": "contract_update_history"
}// contract_update_history: ✅ REQUIRED
// Required fields: display_name, order_amount, order_date, order_type
{
"contract_update_history": [
{
"display_name": "Stop Loss",
"order_amount": "10.50",
"order_date": 1699564800,
"order_type": "stop_loss",
"value": "1234.56"
}
],
"msg_type": "contract_update_history"
}Ejemplos de código
async function getContractUpdateHistory(contractId) {
const request = {
contract_update_history: 1,
contract_id: contractId,
limit: 500,
loginid: "CR123456"
};
ws.send(JSON.stringify(request));
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
if (response.msg_type === "contract_update_history") {
const updates = response.contract_update_history;
updates?.forEach(update => {
console.log(update.display_name + ": " + update.order_amount);
});
}
};
}¿Alguna otra pregunta? Póngase en contacto