Advertisement
von_mises

Untitled

Jun 29th, 2020
1,464
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.72 KB | None | 0 0
  1. import investpy as inv
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import pandas as pd
  5. import json
  6.  
  7. class Historical_data:
  8.     def __init__(self, data_inicial, data_final, pais = 'brazil', json = False, ordem = 'ascending', intervalo = 'Daily'):
  9.  
  10.         self.data_inicial = data_inicial
  11.         self.data_final = data_final
  12.         self.pais = pais
  13.         self.json = json
  14.         self.ordem = ordem
  15.         self.intervalo = intervalo
  16.  
  17.     def historico_acoes(self, acao, status = 'Close'):
  18.  
  19.  
  20.         if len(acao) > 1:
  21.             dados = pd.DataFrame()
  22.             for papel in acao:
  23.                 dados[papel] = inv.get_stock_historical_data(papel, self.pais,
  24.                                                              from_date=self.data_inicial,
  25.                                                              to_date=self.data_final,
  26.                                                              as_json= False,
  27.                                                              order=self.ordem,
  28.                                                              interval=self.intervalo)[status]
  29.         else:
  30.             dados = pd.DataFrame()
  31.             for papel in acao:
  32.                 dados = inv.get_stock_historical_data(papel, self.pais,
  33.                                                              from_date=self.data_inicial,
  34.                                                              to_date=self.data_final,
  35.                                                              as_json= False,
  36.                                                              order=self.ordem,
  37.                                                              interval=self.intervalo)
  38.  
  39.         if self.json:
  40.             stock_json = dict()
  41.             dados['Date'] = dados.index
  42.             stock_json['stock'] = dados.to_dict('records')
  43.             return stock_json
  44.         else:
  45.             return dados
  46.  
  47.     def historico_index(self, indice, status = 'Close'):
  48.         dados = pd.DataFrame()
  49.         if len(indice) != 1:
  50.             for papel in indice:
  51.                 dados[papel] = inv.get_index_historical_data(papel, self.pais,
  52.                                                              from_date=self.data_inicial,
  53.                                                              to_date=self.data_final,
  54.                                                              as_json= self.json,
  55.                                                              order=self.ordem,
  56.                                                              interval=self.intervalo)[status]
  57.             return dados
  58.  
  59.         else:
  60.             for papel in indice:
  61.                 dados= inv.get_index_historical_data(papel, self.pais,
  62.                                                              from_date=self.data_inicial,
  63.                                                              to_date=self.data_final,
  64.                                                              as_json= self.json,
  65.                                                              order=self.ordem,
  66.                                                              interval=self.intervalo)
  67.                 return dados
  68.  
  69.  
  70. #ativos = Historical_data('01/01/2015', '31/12/2020', json=True).historico_acoes(['ITUB4', 'PETR4', 'VALE3'])
  71. ativo = Historical_data('01/01/2019', '31/12/2020').historico_acoes(['ITUB4', 'PETR4', 'PETR3'])
  72. #index = Historical_data('01/01/2015', '31/12/2020').historico_index(['bovespa'])
  73.  
  74. limpando = dict()
  75. limpando2 = dict()
  76. teste = list()
  77. for a in ativo.columns:
  78.     teste.clear()
  79.     for b in range(len(ativo)):
  80.         limpando = {
  81.             'data': ativo.index[b],
  82.             'preço': ativo[a][b]
  83.         }
  84.  
  85.         teste.append(limpando)
  86.  
  87.     limpando2[a] = teste
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement