<jupyter_start><jupyter_text>Test 1:Aplicación de Extracción de Informacion del API de Google junto con la aplicacion de la creación de un modelo de ML de regresion Lineal para el calculo de presion de las acciones en un instante de tiempo siguiente. Disclaimer: La aplicacion del algoritmo de regresion lineal no necesariamente sea lo adecuado para la prediccion de los precios de acciones a futuro. Se usa en este caso solo como ejemplo inicial. Mas adelante se buscara presentar la implementacion correcta para este problema. ---  Descargar librerias Importar Librerias<jupyter_code>import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
from datetime import datetime
import requests
from matplotlib import rcParams<jupyter_output><empty_output><jupyter_text>Inicializacion de la data global<jupyter_code>RAPID_KEY = '<KEY>'
RAPID_HOST = 'apidojo-yahoo-finance-v1.p.rapidapi.com'

symbol_string = ''
inputdata = {}<jupyter_output><empty_output><jupyter_text>Obtener Data del API<jupyter_code>def fetchStockData(symbol):
  url = "https://apidojo-yahoo-finance-v1.p.rapidapi.com/market/get-charts"
  querystring = {
      "comparisons":"%5EGDAXI%2C%5EFCHI",
      "region":"US",
      "lang":"en",
      "symbol":symbol,
      "interval":"1d",
      "range":"3mo"
      }
  headers = {
    'x-rapidapi-host': "apidojo-yahoo-finance-v1.p.rapidapi.com",
    'x-rapidapi-key': "<KEY>"
    }
  response = requests.request("GET", url, headers=headers, params=querystring)

  if response.status_code == 200:
    return response.json()
  else: 
    return None
# testdata = fetchStockData('AAPL')
# print(testdata)  
print(type(inputdata))<jupyter_output><class 'dict'><jupyter_text>Extraer la data<jupyter_code>#Parse and get timestamp
def parseTimestamp(inputdata):
  timestamplist = []
  
  timestamplist.extend(inputdata['chart']['result'][0]['timestamp'])
  timestamplist.extend(inputdata['chart']['result'][0]['timestamp'])
  #Se corre dos veces, una para open y otra para closing

  calendartime = []

  for ts in timestamplist:
    dt = datetime.fromtimestamp(ts)
    calendartime.append(dt.strftime("%m/%d/%Y"))
  return calendartime

#FOR TEST
#print(parseTimestamp(testdata))
#Extract opening and closing.
def parseValues(inputdata):
  valueList = []
  
  valueList.extend(inputdata['chart']['result'][0]['indicators']['quote'][0]['open'])
  valueList.extend(inputdata['chart']['result'][0]['indicators']['quote'][0]['close'])

  return valueList

#FOR TEST
#print(parseValues(inputdata))
#Get the open and close events
def attachEvent(inputdata):
  eventlist = []

  for i in range(0, len(inputdata['chart']['result'][0]['timestamp'])):
    eventlist.append('open')

  for i in range(0, len(inputdata['chart']['result'][0]['timestamp'])):
    eventlist.append('close')

  return eventlist

#FOR TEST
#print(attachEvent(inputdata))<jupyter_output><empty_output><jupyter_text>Extraccion de Data en un DataFrame de Pandas<jupyter_code>#Verificacion de la entrada del usuario. 

def main():
  symbol_string = ''
  try: 
    while (len(symbol_string) <= 2): 
      symbol_string = input('Introduzca el simbolo de la accion: ')

    retdata = fetchStockData(symbol=symbol_string)

    if (None != inputdata):

      inputdata["Timestamp"] = parseTimestamp(retdata)
      inputdata["Values"] = parseValues(retdata)
      inputdata["Events"] = attachEvent(retdata)

      df = pd.DataFrame(inputdata)
      #print(df)
      sns.set(style='darkgrid')

      rcParams['figure.figsize'] = 13,5
      rcParams['figure.subplot.bottom'] = 0.2

      ax = sns.lineplot(
          x='Timestamp', 
          y='Values', 
          hue='Events', 
          dashes=False,
          markers=True,
          data=df,
          sort=False
          )
      
      ax.set_title('Symbol: ' + symbol_string)
      
      plt.xticks(
          rotation=45,
          horizontalalignment='right',
          fontweight='light',
          fontsize='xx-small'
      )

      plt.show()

  except:
    print('Error ')
    print(e)<jupyter_output><empty_output><jupyter_text>Correr la Aplicacion: >Dadole Play a la siguiente seccion de codigo se puede lograr ver los precios de las acciones de la compañia que se desee. Como por ejemplo para Apple se puede poner AAPL<jupyter_code>main()<jupyter_output>Introduzca el simbolo de la accion: TSLA
{'fraction_non_alphanumeric': 0.12430811808118081, 'fraction_numerical': 0.006918819188191882, 'mean_word_length': 4.156956004756243, 'pattern_counts': {'":': 6, '<': 27, '<?xml version=': 0, '>': 27, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '358207', 'license': 'MIT', 'n_tokens_mistral': 1480, 'n_tokens_neox': 1433, 'n_words': 332, 'path': 'ConsultAPIandLinearRegression.ipynb', 'repo_name': 'gverebl6/InvestmentPortfolioML', 'size': '4426'}