This repository has been archived by the owner on Dec 2, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
46 lines (41 loc) · 1.6 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from dotenv import load_dotenv
import os
from commonIOL import IOLClient
from ghostfolio import GhostfolioClient
def create_client(client_type="IOL"):
if client_type == "IOL":
return IOLClient(
usuario=os.getenv("IOL_USUARIO"),
contrasena=os.getenv("IOL_CONTRASENA"),
fecha_desde=os.getenv("IOL_FECHA_DESDE")
)
raise Exception("Broker no soportado")
def actualizar_portfolio(client, ghostfolio):
operaciones = client.obtener_operaciones()
for operacion in operaciones:
simbolo = client.obtener_simbolo(operacion)
cantidad = client.obtener_cantidad(operacion)
precio = client.obtener_precio(operacion)
fecha = client.obtener_fecha(operacion)
tipo = client.obtener_tipo(operacion)
moneda = client.obtener_moneda(operacion)
mercado = client.obtener_mercado(operacion)
ghostfolio.insertar_operacion(simbolo, cantidad, precio, fecha, tipo, moneda, mercado)
fallas = ghostfolio.obtener_operaciones_fallidas()
if fallas:
print("Operaciones fallidas:")
for falla in fallas:
print("------------------")
print(f"Símbolo: {falla['symbol']}, Fecha: {falla['date']}")
print(f"Error: {falla['error']}\n")
def main():
load_dotenv()
client = create_client()
ghostfolio = GhostfolioClient(
security_token=os.getenv("GHOSTFOLIO_SECURITY_TOKEN"),
server=os.getenv("GHOSTFOLIO_SERVER"),
account_id=os.getenv("GHOSTFOLIO_ACCOUNT_ID")
)
actualizar_portfolio(client, ghostfolio)
if __name__ == "__main__":
main()