Documentación

Actualización de contrato

TradingRequiere autenticación

Actualice el Take Profit y el Stop Loss de un contrato. El parámetro loginid se eliminó; la respuesta no cambia.

Comparación rápida

AspectoLegacy APINew APIAcción
Endpointcontract_updatecontract_updateNinguno
Requiere autenticaciónSíSíNinguno
loginid parámetroOpcionalEliminadoEliminar de las solicitudes

Cambios importantes

1. loginid parámetro eliminado

En la Legacy API, loginid seleccionaba la cuenta cuyo contrato se actualizaría cuando autorizaba varias cuentas. La New API no lo acepta.

Cambio obligatorio: Elimine loginid de sus solicitudes de contract_update . Su token selecciona la cuenta.

Estructura de solicitud

Legacy APIejemplo de solicitud
{
  "contract_update": 1,
  "contract_id": 123456789,
  "limit_order": {
    "stop_loss": 15,
    "take_profit": 25
  },
  "loginid": "CR123456",
  "req_id": 1
}
New APIejemplo de solicitud
{
  "contract_update": 1,
  "contract_id": 123456789,
  "limit_order": {
    "stop_loss": 15,
    "take_profit": 25
  },
  "req_id": 1
}

Estructura de respuesta

Legacy APIejemplo de respuesta
{
  "contract_update": {
    "stop_loss": {
      "display_name": "Stop loss",
      "order_amount": -15,
      "order_date": 1760000000,
      "value": "1234.56"
    },
    "take_profit": {
      "display_name": "Take profit",
      "order_amount": 25,
      "order_date": 1760000000,
      "value": "1256.78"
    }
  },
  "echo_req": {
    "contract_update": 1,
    "contract_id": 123456789,
    "limit_order": {
      "stop_loss": 15,
      "take_profit": 25
    },
    "req_id": 1
  },
  "msg_type": "contract_update",
  "req_id": 1
}
New APIejemplo de respuesta
{
  "contract_update": {
    "stop_loss": {
      "display_name": "Stop loss",
      "order_amount": -15,
      "order_date": 1760000000,
      "value": "1234.56"
    },
    "take_profit": {
      "display_name": "Take profit",
      "order_amount": 25,
      "order_date": 1760000000,
      "value": "1256.78"
    }
  },
  "echo_req": {
    "contract_update": 1,
    "contract_id": 123456789,
    "limit_order": {
      "stop_loss": 15,
      "take_profit": 25
    },
    "req_id": 1
  },
  "msg_type": "contract_update",
  "req_id": 1
}

Ejemplos de código

function updateContract(contractId, loginId) {
  const request = {
    contract_update: 1,
    contract_id: contractId,
    limit_order: { stop_loss: 15, take_profit: 25 },
    req_id: 1
  };
  // Needed only when you authorised several accounts
  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") return;
    if (response.error) {
      console.error(response.error.message);
      return;
    }
    if (response.contract_update) {
      const { stop_loss, take_profit } = response.contract_update;
      console.log("Stop loss:", stop_loss?.order_amount);
      console.log("Take profit:", take_profit?.order_amount);
    }
  };
}
Click to open live chat support. Get instant help from our support team.