Chileabolsa.com/blog
Loading

No estas registrado.

#931 17-06-20 10:10

Sensei
Miembro
Calificacion :   

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

Fue solo ayer. Hoy funciona perfecto. Gracias!


Twitter: @SenseiMarket

Desconectado

#932 24-06-20 18:57

Pontifex
Moderador
Calificacion :   108 

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

Hola Get Free
Me tome la libertad de enviarte un correo electronico al correo asociado en el foro, seria de tremenda ayuda que lo vieras

saludos y gracias por todo


"LASCIATE OGNI SPERANZA, VOI CH’ENTRATE" Dante " La divina Comedia"

Desconectado

#933 24-06-20 22:18

get free
Miembro
Calificacion :   160 

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

Pontifex escribió:

Hola Get Free
Me tome la libertad de enviarte un correo electronico al correo asociado en el foro, seria de tremenda ayuda que lo vieras

saludos y gracias por todo

Bajar los datos de la BCS con Python?
Me extraña la pregunta, porque Ultra te respondió exactamente lo mismo en el post: #764

import requests
import json
import pandas as pd
import os
import datetime

if __name__ == "__main__":
    #el simbolo que queremos bajar
    ticker="CAP"

    #la URL correspondiente al simbolo
    url = "https://servicioscms.bolsadesantiago.com/DatosGraficos/DatosGraficos-ChartIQ/"+ticker+"-DAYS.js"

    #obtenemos el contenido de la URL mediante una conexion HTTP
    response = requests.get(url)
   
    #el status code 200 indica que la conexion fue exitosa
    if response.status_code == 200:

        #TOMA LA RESPONSE, LO INTERPRETA COMO JSON Y LO INSERTA EN UN DATAFRAME DE PANDA
        datastore=response.json()
        dfdata = pd.DataFrame.from_dict(datastore)

        #ABRE ARCHIVO EN ESCRITURA E INSERTA LA CABECERA
        file1 = open("D://DATA_"+ticker+".txt","w")
        file1.write("<TICKER>,<DATE>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>"+ os.linesep)
       
        #NAVEGA EL DATAFRAME Y LO VA GUARDANDO EN EL TXT
        for index, row in dfdata.iterrows():
            datetime_object = datetime.datetime.strptime(row["Date"], "%Y-%m-%d")
            file1.write(ticker+","+datetime_object.strftime("%Y%m%d")+","+str(row["Open"])+","+str(row["High"])+","+str(row["Low"])+","+str(row["Close"])+","+str(row["Volume"])+  os.linesep)
        file1.close()

En general, el prodedimiento es:

1. Obtener el contenido de la URL: https://servicioscms.bolsadesantiago.com/DatosGraficos/DatosGraficos-ChartIQ/CAP-DAYS.js

2. El contenido es texto en formato JSON. Hay que convertir ese texto a una estructura de datos (a eso se le llama "parsing").

3. En Python, esa estructura de datos va a ser un "list" o un "dict". Hay que recorrer la estructura y hacer algo con cada elemento en ella, por ejemplo, escribir a un archivo o guardar en una base de datos o lo que sea.


Existen 10 clases de traders: los que entienden binario y los que no.

Desconectado

#934 25-06-20 19:53

Pontifex
Moderador
Calificacion :   108 

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

uff, no lo habia visto, gracias!


"LASCIATE OGNI SPERANZA, VOI CH’ENTRATE" Dante " La divina Comedia"

Desconectado

#935 27-06-20 20:25

Pontifex
Moderador
Calificacion :   108 

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

Sorry Getfree, dos consultas:
1 - Porque no se puede acceder a esta URL desde el navegador cambio la dirección?
2 - Como el programa toma la data desde un gráfico y lo convierte en data?

saludos


"LASCIATE OGNI SPERANZA, VOI CH’ENTRATE" Dante " La divina Comedia"

Desconectado

#936 06-07-20 18:24

eluspa_2010
Miembro
Calificacion :   

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

GETFREE, favor tu ayuda, al bajar  los multifondos, no me apare la información anterior a 2019 y parte de este. ¿Existe un nuevo downloader o algo cambio en el scripts, gracias de antemano.

1051_2020-07-06_cuprumb.png

Desconectado

#937 06-07-20 19:57

get free
Miembro
Calificacion :   160 

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

Pontifex escribió:

1 - Porque no se puede acceder a esta URL desde el navegador cambio la dirección?

Te refieres a esta URL?
https://servicioscms.bolsadesantiago.co … TM-DAYS.js
Funciona bien en cualqueir navegador.

Pontifex escribió:

2 - Como el programa toma la data desde un gráfico y lo convierte en data?

Los datos se sacan de una URL, no de un gráfico directamente. La mayoría de las URLs dan los datos en formato JSON. Hay que convertir el contenido de la URL (que es texto) a una estructura de datos.
El proceso de convertir el texto en formato JSON a una estructura de datos se llama "parsing".

Ese ejemplo en Python hace el parsing a traves de la biblioteca "request". La parte que dice response.json() estrega la estructura de datos.


Existen 10 clases de traders: los que entienden binario y los que no.

Desconectado

#938 06-07-20 20:00

get free
Miembro
Calificacion :   160 

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

eluspa_2010 escribió:

GETFREE, favor tu ayuda, al bajar  los multifondos, no me apare la información anterior a 2019 y parte de este. ¿Existe un nuevo downloader o algo cambio en el scripts, gracias de antemano.

http://www.chilebolsa.com/foro/uploads/ … uprumb.png

Si estás usando la configuracion que incluye a AFP UNO, esa solo baja datos hasta octubre del 2019 que es cuando comenzó esa AFP.


Existen 10 clases de traders: los que entienden binario y los que no.

Desconectado

#939 06-07-20 20:40

eluspa_2010
Miembro
Calificacion :   

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

get free escribió:
eluspa_2010 escribió:

GETFREE, favor tu ayuda, al bajar  los multifondos, no me apare la información anterior a 2019 y parte de este. ¿Existe un nuevo downloader o algo cambio en el scripts, gracias de antemano.

http://www.chilebolsa.com/foro/uploads/ … uprumb.png

Si estás usando la configuracion que incluye a AFP UNO, esa solo baja datos hasta octubre del 2019 que es cuando comenzó esa AFP.

ok, muchas gracias.

Desconectado

#940 07-07-20 11:18

Muchout
Miembro
Calificacion :   

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

Estimados revisando me econtré con diferencias en la data de precios históricos de acciones entre los obtenidos de la BCS y los de CCBOLSA, por ejemplo para Cencosud año 2010. Alguien ha tenido el mismo problema o que sepa porqué se da esta diferencia? (o quizás estaré haciendo algo mal)

Acá están las dos fuentes de información:

https://www.ccbolsa.cl/apps/script/modu … l=cencosud
http://servicioscms.bolsadesantiago.com … ud-DAYS.js

Desconectado

#941 07-07-20 12:49

get free
Miembro
Calificacion :   160 

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

Muchout escribió:

Estimados revisando me econtré con diferencias en la data de precios históricos de acciones entre los obtenidos de la BCS y los de CCBOLSA, por ejemplo para Cencosud año 2010. Alguien ha tenido el mismo problema o que sepa porqué se da esta diferencia? (o quizás estaré haciendo algo mal)

Acá están las dos fuentes de información:

https://www.ccbolsa.cl/apps/script/modu … l=cencosud
http://servicioscms.bolsadesantiago.com … ud-DAYS.js

Esas diferencias son comunes. Cada corredora calcula sus propios OHLC a partir de las transacciones diarias.
Unas hacen al cálculo bien y otras lo hacen mal.
Unas calulan bien el CLOSE pero mal el OPEN, otras calculan bien el HIGH/LOW, pero mal el OPEN/CLOSE.
Hay de todo.


Existen 10 clases de traders: los que entienden binario y los que no.

Desconectado

#942 07-07-20 13:15

just loo king
Miembro
Calificacion :   120 

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

Muchout escribió:

Estimados revisando me econtré con diferencias en la data de precios históricos de acciones entre los obtenidos de la BCS y los de CCBOLSA, por ejemplo para Cencosud año 2010. Alguien ha tenido el mismo problema o que sepa porqué se da esta diferencia? (o quizás estaré haciendo algo mal)

Acá están las dos fuentes de información:

https://www.ccbolsa.cl/apps/script/modu … l=cencosud
http://servicioscms.bolsadesantiago.com … ud-DAYS.js

Estimado much...
Te respondo como era antes ... que puede que siga igual (con cambios en las plataformas ... no sé si en las fuentes de datos)

Los datos de consorcio son los históricos "tal cual" sin ninguna clase de ajuste ... en cambio BCS si bien no ajusta por dividendos (yo tampoco smile ) sí ajusta por otros eventos de capital y como CENCOSUD tuvo emisión de acciones en 2013 y hace el ajuste ... queda(ba) la diferencia entre grafs de BCS y de consorcio.  esto era particularmente observable en CHILE con emisiones (crías) todos los años.

Espero que la info te sirva ... y este comentario ... no necesariamente hay data buena o mala, sino que hay que saber que data estamos mirando.

Suerte

Desconectado

#943 07-07-20 13:24

Aprendiz_de_Mago
Miembro
Calificacion :   31 

Re: PriceDownloader_Generic: El downloader todo terreno (y en 3 clics)

get free escribió:
Pontifex escribió:

Hola Get Free
Me tome la libertad de enviarte un correo electronico al correo asociado en el foro, seria de tremenda ayuda que lo vieras

saludos y gracias por todo

Bajar los datos de la BCS con Python?
Me extraña la pregunta, porque Ultra te respondió exactamente lo mismo en el post: #764

import requests
import json
import pandas as pd
import os
import datetime

if __name__ == "__main__":
    #el simbolo que queremos bajar
    ticker="CAP"

    #la URL correspondiente al simbolo
    url = "https://servicioscms.bolsadesantiago.com/DatosGraficos/DatosGraficos-ChartIQ/"+ticker+"-DAYS.js"

    #obtenemos el contenido de la URL mediante una conexion HTTP
    response = requests.get(url)
   
    #el status code 200 indica que la conexion fue exitosa
    if response.status_code == 200:

        #TOMA LA RESPONSE, LO INTERPRETA COMO JSON Y LO INSERTA EN UN DATAFRAME DE PANDA
        datastore=response.json()
        dfdata = pd.DataFrame.from_dict(datastore)

        #ABRE ARCHIVO EN ESCRITURA E INSERTA LA CABECERA
        file1 = open("D://DATA_"+ticker+".txt","w")
        file1.write("<TICKER>,<DATE>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>"+ os.linesep)
       
        #NAVEGA EL DATAFRAME Y LO VA GUARDANDO EN EL TXT
        for index, row in dfdata.iterrows():
            datetime_object = datetime.datetime.strptime(row["Date"], "%Y-%m-%d")
            file1.write(ticker+","+datetime_object.strftime("%Y%m%d")+","+str(row["Open"])+","+str(row["High"])+","+str(row["Low"])+","+str(row["Close"])+","+str(row["Volume"])+  os.linesep)
        file1.close()

En general, el prodedimiento es:

1. Obtener el contenido de la URL: https://servicioscms.bolsadesantiago.com/DatosGraficos/DatosGraficos-ChartIQ/CAP-DAYS.js

2. El contenido es texto en formato JSON. Hay que convertir ese texto a una estructura de datos (a eso se le llama "parsing").

3. En Python, esa estructura de datos va a ser un "list" o un "dict". Hay que recorrer la estructura y hacer algo con cada elemento en ella, por ejemplo, escribir a un archivo o guardar en una base de datos o lo que sea.


Hola,

Un poco tarde pero aca va otra manera de bajar directo a un df en python:
-------------------------------------------------------------------------------------
import pandas as pd

# Seteamos la url
url = ("https://servicioscms.bolsadesantiago.co … SA-days.js")

# Bajamos la info
df = pd.read_json(url)

# Seteamos el indice
df = df.set_index('Date')

# revisamos datatype del index
print(df.index.dtype)

#revisamos datatype de los datos
print(df.dtypes)
-------------------------------------------------------------------------------------
Saludos

AdM


"La rentabilidad o ganancia obtenida en el pasado por este aprendiz, no garantiza que ella se repita en el futuro."

Desconectado

Pie de página

Powered by FluxBB