es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

IB Python API no puede encontrar la definición de seguridad.

Tengo el siguiente código que intenta obtener datos históricos de barras utilizando la API de IBKR Python. Me aseguré de que la estación de trabajo TWS estuviera en funcionamiento y de que los sockets/ActiveX estuvieran habilitados con el puerto correcto para el trading en papel. También verifiqué que puedo abrir un gráfico para EUR.USD dentro de TWS y que todas las fuentes de datos de mercado se muestran como “conectadas”. El código debería ser capaz de obtener datos de barras de 5 minutos para EUR.USD, pero estoy obteniendo un error en la salida:

Código:

from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
import threading
import time

Clase TradingApp(EWrapper, EClient):
def init(self):
EClient.init(self,self)

def historicalData(self, reqId, bar):
print(“DatosHistoricos. ReqId:”, reqId, “DatosDeBarra:”, bar)

def websocket_con():
app.run()

app = TradingApp()
app.connect(“127.0.0.1”, 7497, clientId=1)

con_thread = threading.Thread(target=websocket_con, daemon=True)
con_thread.start()
time.sleep(1)

contrato = Contract()
contrato.symbol = “EUR.USD”
contrato.secType = “CASH”
contrato.currency = “USD”
contrato.exchange = “IDEALPRO”

app.reqHistoricalData(reqId=1,
contract=contrato,
endDateTime=”,
durationStr=’3 M’,
barSizeSetting=’5 mins’,
whatToShow=’MIDPOINT’,
useRTH=0,
formatDate=1,
keepUpToDate=0,
chartOptions=[])
time.sleep(5)

La salida es la siguiente:

ERROR -1 2104 La conexión con el proveedor de datos de mercado es correcta: usfarm.nj
ERROR -1 2104 La conexión con el proveedor de datos de mercado es correcta: usfuture
ERROR -1 2104 La conexión con el proveedor de datos de mercado es correcta: cashfarm
ERROR -1 2104 La conexión con el proveedor de datos de mercado es correcta: usfarm
ERROR -1 2106 La conexión con el proveedor de datos de HMDS es correcta: cashhmds
ERROR -1 2106 La conexión con el proveedor de datos de HMDS es correcta: ushmds
ERROR -1 2158 La conexión con el proveedor de datos de definición de seguridad es correcta: secdefil
ERROR 1 200 No se ha encontrado una definición de seguridad para la solicitud

¿Cómo puedo resolver este error y obtener los datos de las barras?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que no hay una definición de seguridad para el contrato solicitado. Esto puede ser debido a una especificación incorrecta del contrato, como un símbolo o intercambio no válido.

    Para resolver este error, verifique nuevamente las especificaciones del contrato para asegurarse de que sean exactas. En este caso, verifique que el símbolo “EUR.USD”, el tipo de seguridad “CASH”, la moneda “USD” y el intercambio “IDEALPRO” sean válidos y correctos.

    Si las especificaciones del contrato son correctas y el error persiste, puede ser útil consultar la documentación de Interactive Brokers o ponerse en contacto con su servicio de atención al cliente para obtener ayuda adicional.

Comments are closed.