For the every day user, diversifying one's portfolio is not an easy task. One either needs pre-existing knowledge about assets and asset interdependence, spare time to learn about it, or the funds to hire someone else to invest for them. Our tool helps users visualize and understand financial markets and asset interdependence simply without any research.
What it does
The Money Mosaic is a visualization tool that uses a correlation matrix and several algorithms to calculate the correlation between assets and visualizes them in a graph that shows the correlation score through an edge between two nodes. Users input one word or phrase that they're interested in investing in (i.e. Gold) and AI automatically generates several assets that are related. Then, we used four different correlation methods - Kendall, Spearman, Pearson, and Dynamic Time Warping to calculate the correlation. Each method performs interdependence computations differently to build edges on the graph network. The user selects which of the four methods to use in our GUI and our Python back-end either pulls or computes weights to then visualize the graph for our user.
How we built it
We built this tool using Python (scikit-learn, datetime, requests etc.), Flask, Dash, and the OpenAI API.
Challenges we ran into
Our primary challenge has been working with ChatGPT and the OpenAI API. We tried countless queries to try to produce the desired output from ChatGPT. We also ran into some trouble integrating the OpenAI API with Flask and Dash since we have never used ChatGPT with Dash before, but over time, we figured it out with the help of online resources.
Accomplishments that we're proud of
We are proud that we were able to incorporate so many correlation methods. We hope to be able to test the different correlation methods on various test data to see which gives the best result.
What we learned
We learned a lot about the Python frameworks Dash and Flask and more about how financial systems work ourselves.
What's next for Asset Interdependence Project
We hope to refine our algorithm further, either through more correlation methods or a combination of a few to make our tool really useful.