Create an Intelligent Financial Assistant in Python
Table of Contents
- Introduction
- Installing the Required Libraries
- Creating the Financial Assistant
- Adding Stocks to the Portfolio
- Removing Stocks from the Portfolio
- Viewing the Portfolio
- Calculating the Portfolio Worth
- Analyzing the Portfolio Gains
- Plotting a Stock Chart
- Exiting the Program
📚 Introduction
In this article, we will learn how to build an intelligent financial assistant in Python. This assistant will be able to perform various functions such as adding stocks to the portfolio, removing stocks from the portfolio, viewing the portfolio, calculating the portfolio worth, analyzing the portfolio gains, and plotting a stock chart. We will use external libraries like neural-intense
, matplotlib
, mpl-finance
, pandas
, and pandas-datareader
to help us create this assistant.
📝 Installing the Required Libraries
Before we start coding, let's install the necessary libraries. Open the command line and use the pip
command to install the following libraries:
neural-intense
: A library for creating chatbots and AI assistants.
matplotlib
: A library for visualizations.
mpl-finance
: A library for creating Candlestick charts.
pandas
: A library for working with data frames.
pandas-datareader
: A library for retrieving data from the Yahoo Finance API.
💻 Creating the Financial Assistant
To create the financial assistant, we first import the required modules and define the portfolio as a dictionary. The portfolio contains the company names as keys and the number of shares as values. We then save the portfolio to a pickle file for serialization.
Next, we define a function to save the portfolio into the file whenever a change occurs. We then implement the add_portfolio
function, which asks the user for the ticker symbol and the number of shares to be added. If the stock is already in the portfolio, we increase the number of shares. Otherwise, we create a new field for the stock in the portfolio. The remove_portfolio
function allows the user to remove stocks from the portfolio by specifying the ticker symbol and the number of shares to be sold.
To view the portfolio, we implement the show_portfolio
function, which prints the current stocks and their respective share values. The portfolio_worth
function calculates the total worth of the portfolio by retrieving the latest stock prices from the Yahoo Finance API. The portfolio_gains
function compares the current portfolio value to a specified date in the past to determine the relative and absolute gains.
For plotting a stock chart, we use the plot_chart
function. This function prompts the user to enter a ticker symbol and a starting date, and then plots the corresponding candlestick chart using the mpl-finance
library.
Finally, we implement the buy
function to exit the program.
📈 Adding Stocks to the Portfolio
To add stocks to the portfolio, select the "Add Stock to Portfolio" option and enter the ticker symbol and number of shares you wish to add. The assistant will check if the stock is already in the portfolio. If it is, the number of shares will be increased. Otherwise, a new entry will be created in the portfolio.
🗑️ Removing Stocks from the Portfolio
To remove stocks from the portfolio, choose the "Remove Stock from Portfolio" option and enter the ticker symbol and number of shares to be sold. The assistant will check if the stock exists in the portfolio and if the specified number of shares is available. If both conditions are met, the shares will be deducted from the portfolio.
👥 Viewing the Portfolio
To view the current portfolio, select the "Show Portfolio" option. The assistant will display a list of stocks in your portfolio along with the number of shares for each stock.
💰 Calculating the Portfolio Worth
To calculate the worth of your portfolio, choose the "Portfolio Worth" option. The assistant will retrieve the latest stock prices from the Yahoo Finance API and calculate the total worth of your portfolio. The worth will be displayed in US dollars.
📊 Analyzing the Portfolio Gains
To analyze the performance of your portfolio, select the "Portfolio Gains" option. The assistant will Prompt you to enter a starting date for comparison. It will then compare the current value of your portfolio to its value on the specified date and calculate the relative and absolute gains.
📈 Plotting a Stock Chart
To plot a stock chart, choose the "Plot Chart" option. Enter the ticker symbol of the stock you want to plot and the starting date of the chart. The assistant will retrieve the necessary data from the Yahoo Finance API and generate a candlestick chart using the mpl-finance
library.
🚪 Exiting the Program
To exit the program, select the "Exit" option or enter the command buy
. The assistant will display a goodbye message and the program will terminate.
That's it! You now have the knowledge to create your own intelligent financial assistant in Python. Feel free to customize the assistant's functionalities and add more features as per your requirements.
FAQ:
Q: Can I add multiple stocks to the portfolio at once?
A: Currently, you can only add one stock at a time. However, you can repeat the process to add multiple stocks.
Q: Can I remove stocks that I don't own from the portfolio?
A: No, you can only remove stocks that are currently in your portfolio.
Q: Can I plot charts for multiple stocks at once?
A: No, you can only plot charts for one stock at a time.
Q: Is the portfolio worth updated in real-time?
A: No, the portfolio worth calculation relies on the latest available stock prices from the Yahoo Finance API.
Q: Can I customize the styling of the candlestick charts?
A: Yes, you can modify the styling by changing the mpf_style
definition in the plot_chart
function.
Resources: