============
User Guide
============
This guide provides a quick overview to get started with :mod:`BharatFinTrack`.
Verify Installation
---------------------
Ensure a successful installation by running the following commands.
.. code-block:: python
import BharatFinTrack
Equity Index Base Parameters
--------------------------------
Save the MultiIndex DataFrame containing the base parameters of equity indices to an Excel file.
.. code-block:: python
nse_product = BharatFinTrack.NSEProduct()
nse_product.equity_base_parameter_midf(
excel_file=r'C:\Users\Username\Folder\base_parameter.xlsx'
)
Download Data
----------------
A brief overview of features related to data downloading. Start by instantiating the classes.
.. code-block:: python
nse_pri = BharatFinTrack.NSEIndex()
nse_tri = BharatFinTrack.NSETRI()
PRI Summary
^^^^^^^^^^^^^^^^^
Download the daily summary report of ``PRI`` closing values, published daily
on the `Nifty Indices Reports `_, and save
it as a CSV file.
.. code-block:: python
nse_pri.download_equity_close(
csv_file=r"C:\Users\Username\Folder\PRI_closing.csv"
)
.. _f_download_daily_tri:
Historical TRI Daily Data
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Download historical daily ``TRI`` data for the ``NIFTY 50`` index. Currently, the function supports only equity indices.
.. code-block:: python
# Downloading daily closing TRI data up to a specified date
nse_tri.download_daily_data(
index='NIFTY 50',
start_date=None,
end_date='31-Mar-2024',
csv_file=r"C:\Users\Username\Folder\NIFTY 50.csv",
)
# Using the same CSV file to update daily closing TRI data to the present date
nse_tri.update_daily_data(
index='NIFTY 50',
csv_file=r"C:\Users\Username\Folder\NIFTY 50.csv"
)
TRI Closing Values
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Download the closing ``TRI`` values for all equity indices. These values are not updated daily on the website.
It is recommended to run this function at night when web traffic is lower, as it sends multiple requests to retrieve the required data.
.. code-block:: python
nse_tri.download_equity_close(
csv_file=r"C:\Users\Username\Folder\TRI_closing.csv"
)
CAGR and SIP
-----------------
A brief overview of features related to Compound Annual Growth Rate (CAGR) and Systematic Investment Plan (SIP). Start by instantiating the classes.
.. code-block:: python
cagr = BharatFinTrack.CAGR()
sip = BharatFinTrack.SIP()
CAGR Summary Since Inception
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following methods can be used to compute CAGR (%) of all equity indices since inception. The resulting CAGR (%) values are used to sort the equity indices in descending order, either overall or within each category.
.. code-block:: python
# Sort equity indices by CAGR (%) since launch
cagr.sort_since_inception(
csv_file=r"C:\Users\Username\Folder\TRI_closing.csv",
excel_file=r"C:\Users\Username\Folder\sort_cagr.xlsx"
)
# Sort equity indices by CAGR (%) since launch within each category
cagr.sort_since_inception(
csv_file=r"C:\Users\Username\Folder\TRI_closing.csv",
within_category=True,
excel_file=r"C:\Users\Username\Folder\sort_cagr_within_category.xlsx",
)
Year-wise SIP Growth
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Compute the year-wise SIP returns for a fixed monthly contribution to a specified equity ``TRI`` index.
.. code-block:: python
sip.yearly_return(
csv_file=r"C:\Users\Username\Folder\NIFTY 50.csv",
invest=1000,
excel_file=r"C:\Users\Username\Folder\NIFTY 50_SIP.xlsx",
)
Year-wise SIP and CAGR Comparison
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This section compares the year-wise XIRR (%) and growth multiples (X) of a fixed monthly SIP investment, along with the year-wise CAGR (%) and growth multiples of a one-time investment across selected ``TRI`` indices.
The required data are sourced from CSV files generated in the :ref:`Historical TRI Daily Data ` section. Ensure that all input CSV files are stored in the designated folder, with each file named as ``{index}.csv`` to match the index names provided in the list. The output highlights the highest growth cells in green-yellow and the lowest growth cells in sandy brown.
.. code-block:: python
index_list = [
'NIFTY 50',
'NIFTY ALPHA 50',
'NIFTY MIDCAP150 MOMENTUM 50',
'NIFTY500 MOMENTUM 50'
]
# SIP comparison
sip.compare_performances(
indices=index_list,
dir_path=r"C:\Users\Username\Folder",
excel_file=r"C:\Users\Username\Folder\compare_sip.xlsx"
)
# CAGR comparison
cagr.compare_performance(
indices=index_list,
dir_path=r"C:\Users\Username\Folder",
excel_file=r"C:\Users\Username\Folder\compare_cagr.xlsx"
)
Correction and Recovery Cycles
---------------------------------
This functionality identifies key turning points in an index's historical values based on consecutive corrections and recoveries. It applies minimum gain and multiplier filters to analyze the frequency and behavior of these movements over time.
.. code-block:: python
analyzer = BharatFinTrack.Analyzer()
analyzer.correction_recovery_cycles(
csv_file=r"C:\Users\Username\Folder\NIFTY 50.csv",
excel_file=r"C:\Users\Username\Folder\NIFTY 50_correction_recovery.xlsx"
)
Visualization
----------------
A brief overview of features related to data visualization. Start by instantiating the class.
.. code-block:: python
visual = BharatFinTrack.Visual()
CAGR Leaders
^^^^^^^^^^^^^^^^^^
This section presents bar plots of equity index CAGR (%) in descending order, either overall or within each category.
The following code plots the top 15 equity indices by overall ``TRI`` CAGR (%).
.. code-block:: python
visual.cagr_leaders(
excel_file=r"C:\Users\Username\Folder\sort_cagr.xlsx",
figure_file=r"C:\Users\Username\Folder\sort_cagr.png"
)
.. image:: _static/sort_cagr.png
:align: left
The following code plots the top five equity indices by ``TRI`` CAGR (%) within each category since launch.
.. code-block:: python
visual.cagr_leaders_by_category(
excel_file=r"C:\Users\Username\Folder\sort_cagr_within_category.xlsx",
figure_file=r"C:\Users\Username\Folder\sort_cagr_within_category.png"
)
.. image:: _static/sort_cagr_within_category.png
:align: left
SIP Comparison with Government Securities
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following code displays a bar plot comparing SIP returns over time for the ``TRI`` data of an index and government securities with an assumed yield.
.. code-block:: python
visual.compare_sip_to_bond_benchmark(
excel_file=r"C:\Users\Username\Folder\NIFTY MIDCAP150 MOMENTUM 50_SIP.xlsx",
figure_file=r"C:\Users\Username\Folder\sip_growth_vs_bond_benchmark.png"
)
The resulting plot will resemble the example shown below.
.. image:: _static/sip_growth_vs_bond_benchmark.png
:align: left
SIP Comparison Across Indices
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This section presents a plot comparing the year-wise growth multiples (X) of a monthly SIP investment across ``TRI`` indices.
.. code-block:: python
visual.compare_performance(
excel_file=r"C:\Users\Username\Folder\compare_sip.xlsx",
figure_file=r"C:\Users\Username\Folder\compare_sip.png"
)
The resulting plot will resemble the example shown below.
.. image:: _static/compare_sip.png
:align: left