Renta Variable
==============

.. _stock_prices:

Precios de cierre
-----------------

Puedes descargar fácilmente los precios de cierre en pocas líneas de código.
Como mencionamos en la sección anterior, usaremos módulos de Python para obtener los datos.
Requests se encarga de conectarse con la API Dolphin Markets, mientras que Pandas del manejo de los datos.

En este ejemplo, descargaramos los precios de cierre para Copec y CMPC desde el año 2018.

.. code-block:: python

   import pandas as pd
   import requests
   
   API_KEY = 'api_key'

   payload = {
      "key": API_KEY,
      'tickers': ['CMPC', 'COPEC'],
      'values': ['close'],
      'start': '2018-01-01',
   }

   r = requests.post('https://dolphin.markets/api/stocks', json=payload)
   df = pd.DataFrame(r.json())
   
   print(df.head())

Con esto obtenemos lo siguiente:

.. code-block:: none

          close	      date	ticker
   490	7480.0	2021-01-04	COPEC
   492	8064.0	2021-01-07	COPEC
   495	8090.0	2021-01-13	COPEC
   497	7911.0	2021-01-11	COPEC
   499	8000.0	2021-01-08	COPEC

.. note:: Si quieres acotar los resultados de la consulta, puedes utilizar los parámetros ``start`` y ``end``, en formato ``YYYY-MM-DD``.
   Estos parámetros están disponibles para todos los endpoints que entregan datos históricos.

.. _stock_dividends:

Dividendos de acciones
----------------------

.. code-block:: python

   import pandas as pd
   import requests

   API_KEY = 'api_key'

   payload = {
      "key": API_KEY,
      'tickers': ['CMPC', 'COPEC'],
   }

   r = requests.post('https://dolphin.markets/api/dividends', json=payload)
   df = pd.DataFrame(r.json())

   print(df.head())


.. _stock_dividends_funds:

Dividendos de fondos de inversión
---------------------------------

.. code-block:: python

   import pandas as pd
   import requests

   API_KEY = 'api_key'

   payload = {
      "key": API_KEY,
    'tickers': ['CFIMRCLP'],
   }
   r = requests.post('https://dolphin.markets/api/dividends', json=payload)
   df = pd.DataFrame(r.json())
   df['payment_date'] = pd.to_datetime(df['payment_date'])
   
   pivot = df.pivot_table(index='date', values='value', columns='ticker')
   
   print(pivot.tail())

.. _stock_dividend_yield:

Dividend Yield
--------------

.. code-block:: python

   import pandas as pd
   import requests

   API_KEY = 'api_key'

   payload = {
      "key": API_KEY,
      'tickers': ['CMPC', 'COPEC'],
      'values': ['dvd_yield'],
   }

   r = requests.post('https://dolphin.markets/api/stocks', json=payload)
   dvd_y = pd.DataFrame(r.json())
   dvd_y['date'] = pd.to_datetime(dvd_y['date'])
   
   pivot_dvd_y = dvd_y.pivot_table(index='date', columns='ticker', values='dvd_yield')
   pivot_dvd_y = pivot_dvd_y.resample('y').last().loc['2015':].T
   pivot_dvd_y.columns = pivot_dvd_y.columns.year
   
   print(pivot_dvd_y)


Número de acciones emitidas
---------------------------

.. note:: Para las sociedades que posean más de una serie de acciones emitida, puedes considerar lo siguiente: ``shares_outstanding`` entrega el número de acciones por serie emitida, mientras que ``shares_outstanding_all_series`` entrega el número total de acciones emitidas del emisor, sin tomar en cuenta la serie.

**Ejemplo de solicitud**

A continuación se presenta un ejemplo de Embotelladora Andina, obteniendo el número de acciones emitidas para cada serie.

.. code-block:: python

   payload = {
      "key": API_KEY,
      'tickers': ['ANDINA-A', 'ANDINA-B'],
      'values': ['shares_outstanding'],
      'start': '2020-01-01',
   }

   r = requests.post('https://dolphin.markets/api/stocks', json=payload)
   df = pd.DataFrame(r.json())
   pivot = df.pivot_table(index='date', columns='ticker', values='shares_outstanding')
   pivot = pivot.ffill()