crapher / pyhomebroker Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Buenas tardes, espero se encuentren muy bien.
Quisiera consultarles si hay manera de recibir una notificación del servidor cada vez que una orden en curso cambie de estado, esto es, sea cancelada, ejecutada total o parcialmente.
Muchas gracias.
Saludos
Hola Diego, estoy intentando obtener los datos (bid, ask, volumen, nombre, etc.) retornados por el parámetro quote
, pero aparentemente trae más información que la que yo necesito.
Te muestro un ejemplo:
def on_personal_portfolio(online, quotes)
print("{} {}".format(quotes["bid"], quotes["ask"]))
Retorna esto:
symbol settlement
AE38D 48hs 38.21
Name: bid, dtype: float64 symbol settlement
AE38D 48hs 38.34
Name: ask, dtype: float64
O sea, yo pedí imprimir dos variables {} {}
, la 1era es el bid
y la 2da el ask
, pero trae el siguiente bloque para el bid:
symbol settlement
AE38D 48hs 38.21
Name: bid, dtype: float64 symbol settlement
y el siguiente para el ask:
AE38D 48hs 38.34
Name: ask, dtype: float64
¿Tenés idea cómo obtener sólo el 38.21
y el 38.34
?.
Warning (from warnings module):
File "C:\Users**\pyhomebroker\main_HM.py", line 100
loop = asyncio.get_event_loop()
DeprecationWarning: There is no current event loop
Al actualizar a python 3.10 me salta este warning, al parecer la planilla sigue actualizando normalmente.
Buenas.
Sé que el módulo de órdenes es un "alpha" y que el funcionamiento no está asegurado, pero por si te sirve te dejo un problema que tengo a ver si lo podés replicar.
Uso Cocos como broker.
Mando una orden de compra por 1 nominal de CVX
Cocos recibe una orden por 10 nominales. No sé si el problema es Cocos o Gallo (van por su API las órdenes?).
Me pasó con otros instrumentos pero no los registré como para decirte.
Existe la posibilidad de agregar futuros, estoy interesado en acceder a info de ROFEX y Dolar Futuro. Muchas gracias!
Hola Diego,
Estoy replicando el ejemplo de github y obtengo este mensaje al intentar detectar ordenes activas en home broker. ¿tiene sentido?
orders = hb.orders.get_orders_status(account_id)
AttributeError: 'HomeBroker' object has no attribute 'orders'
Muchas gracias,
David
Luego de la actualizacion que tuvo Home Broker, el personal portfolio da error cuando se intenta utilizar.
Falta agregar el parametro idgroup. Chequear llamada de HB.
Hola,
¿Es posible acceder a la caja de puntas online para una dada especie?
Gracias
Cuando intento hacer hb.online.connect() después de loguearme me tira:
WebSocketBadStatusException("Handshake status %d %s", status, status_message, resp_headers)
websocket._exceptions.WebSocketBadStatusException: Handshake status 400 Bad Request
Con cocos funciona perfecto usando el mismo código
Hola,
Al realizar una hb.orders.send_sell_order('AL30D','spot',float(38.30),int(1))
El servidor responde:
File "<ipython-input-7-4b4068eaf849>", line 1, in <module>
order_number3 = hb.orders.send_sell_order('AL30D','spot',float(38.30),int(1))
File "d:\Users\xxx\anaconda3\lib\site-packages\pyhomebroker\orders\orders.py", line 192, in send_sell_order
return self.__send_order_confirmation()
File "d:\Users\xxx\anaconda3\lib\site-packages\pyhomebroker\orders\orders.py", line 433, in __send_order_confirmation
raise ServerException('Order not accepted by server.\nError Received from server: {}'.format(response['Result']['ResponseOrden']['ErrorMessage']))
ServerException: Order not accepted by server.
Error Received from server: None
Esto puede deberse a la declaración jurada que obliga a aceptar el broker:
Si vamos al listado de órdenes del broker curiosamente la orden fue ingresada y anulada automáticamente:
Aclaro que los AL30 están parkeados hace más de 1 día y puedo ingresar correctamente la venta desde la plataforma del broker.
Saludos!
Buenos dias Diego.
Muchas gracias por el excelente trabajo !!!!
Queria informar que no es posible conectarse al broker 88.
El sistema reporta un mensaje de broker inexistemte, a pesar de que esta en la lista de brokers.
Saludos
Traceback (most recent call last):
File "Conectar.py", line 99, in
example_online()
File "Conectar.py", line 31, in example_online
hb = HomeBroker(int(broker),
File "C:\Users\PC\AppData\Local\Programs\Python\Python38\lib\site-packages\pyhomebroker\home_broker.py", line 89, in init
self._broker = self.__get_broker_data(broker_id)
File "C:\Users\PC\AppData\Local\Programs\Python\Python38\lib\site-packages\pyhomebroker\home_broker.py", line 120, in __get_broker_data
raise BrokerNotSupportedException('Broker not supported. Brokers supported: {}.'.format(supported_brokers))
pyhomebroker.exceptions.BrokerNotSupportedException: Broker not supported. Brokers supported: 12, 20, 81, 127, 164, 203, 209.
Repl Closed
Sería importante aclarar en la documentación que la función on_options=on_options_callback
trae los tickers registrados en Favoritos.
P.d.: Estoy usando el pythomebroker a full, una masa, felicitaciones.
Usando el ejemplo otorgado, después de traer la primer info de la suscripción da un error.
por ejemplo:
hb.online.subscribe_order_book('AL30', '48hs')
te trae
------------------ Order Book (Level 2) ------------------
bid_size bid bid_offers_count ask_size ask ask_offers_count
symbol settlement position
AL30 48hs 1 84020 6058.0 2 85045 6059.0 2
2 16064 6056.5 2 61792 6059.5 3
3 408 6056.0 2 67103 6060.0 6
4 59015 6055.5 3 200 6061.0 1
5 5988 6055.0 10 50000 6061.5 1
pero luego da error.
Si imprimís la exception en la función que agarra los errores sale 'NoneType' object is not iterable.
Hola, estuve probando el tema de las ordenes anda muy bien.
Ahora si queres trabajar en otros plazos como CI, como quedaria el Ticker por ejemplo para un GD30? "GD30 CI" para armar la pregunta en el #Get Intra day Information y en el plazo del BUY
order_number = hb.orders.send_buy_order('GD30D', 'C.I.', 36.381, 1) ??
Saludos, Gracias.
Martín, te hago una consulta. Hay alguna forma de tomar el último precio (u otro dato del book) de un activo en especial sin tener que hacer una suscripción online? Por ejemplo quiero saber último precio y volumen de CECO2, pero necesito eso solo y no que se vaya actualizando. Se puede hacer?
Disculpen,
Queria saber si existe una funcion que devuelva las posiciones actuales y la liquidez de la cuenta para operar. Si no me equivoco, esta en el endpoint Consultas/GetConsulta con el proceso 22, pero queria saber si ya estaba incorporada la funcionalidad.
Probe con BCCH y PSEC, este ultimo al consulta datos historicos me trae:
Empty DataFrame
Columns: [date, open, high, low, close, volume]
Utilizando el mismo programa, solo cambiando los datos de login, decime si te puedo pasar alguna datos mas, desde la pagina puedo consultar el historico.
Ver de agregar is_connected a online module para saber si hay que desconectar o no o no disparar excepcion si se intenta desconectar y no se esta conectad.
Diego, está dando ese error al querer conectarme:
Caller is not authorized to invoke the JoinGroup method on StockPricesHub.
Hola Diego, estoy comparando los ticks que van entrando a Pyhomebroker y comparándolos contra Rodi. Noté que hay un cierto delay y en muchos casos datos que nunca llegan, siempre RODI tiene información más actualizada.
¿Vos encontraste las mismas diferencias?. Desconozco si la instancia de Gallo es la misma para todos los brokers, en mi caso uso TM.
Seguramente esto no es un problema de PyhomeBroker, sino de Gallo, pero quería consultarte esto para sacarme la duda.
Datos tomados alas 13:12
Hi, which settlement should I configure for options?, I've tried 48hs
, ''
and None
but all of them rase the exception pyhomebroker.exceptions.DataException: Settlement is not assigned
.
Here's my config:
hb.online.subscribe_order_book('GGAL', '48hs')
hb.online.subscribe_order_book('AL29D', '48hs')
hb.online.subscribe_order_book('AL30D', '48hs')
hb.online.subscribe_order_book('GFGC10081D', None)
hb.online.subscribe_order_book('GFGC10981D', None)
hb.online.subscribe_order_book('GFGC11281D', None)
hb.online.subscribe_order_book('GFGC11581D', None)
hb.online.subscribe_order_book('GFGC11881D', None)```
Hola, antes que nada gracias por el gran laburo que hay en este repo! más que útil!
Esto más que un issue es una consulta (que tal vez sea un pequeño bug):
Estaba viendo el ejemplo de "get_market_snapshot" y no estoy seguro de que los valores de las columnas "turnover" y "volume" sean los correctos. Parece como que estuviesen invertidas. Por lo que veo, "turnover" está tomando el valor de "TotalAmountTraded" (que es el monto total operado en pesos) y "volume" de "TotalQuantityTraded". Esto es correcto? No debería estar tomándose "TotalAmountTraded" en volume?
Saludos y gracias!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.