Investormate is a automated financial assistant for investors, providing them financial data

Investormate provides a simple, easy-to-use interface for retrieving financial data from any company on the NASDAQ. It can retrieve not only the prices, but it also calculates technical indicators such as the exponential moving average and stochastic oscillator values.

It has a minimalist design and provides data in a very clean fashion so users do not have to dig tons of financial information to get what they want. Investormate also interprets natural language so no complex syntax is required to make a query.
## Inspiration

Our project aims to democratize algorithmic trading and the data associated with it to capture a 150 billion dollar a month trade volume and aim it towards transparency and purpose. Our project is a culmination of the technical depth and breadth of a new step forward in technology. We really wanted to open up the centralized and ever exclusive profession of algorithmic trading, giving the average retail trader the same tools and data as billion dollar companies. Empowering curiosity and innovation through open sourced data and tools.

## What it does

Our project is an brokerage platform that hosts compute, data APIs, processing tools, algorithms, and data-stream. A mix of the usability of Robinhood with the decentralized community building of technical people like Kaggle. We transform strategies and ideas that require a huge amount of capital and expertise, and hand it to the every-day retail investor. When customers upload code, our platform allows them to test their ideas out on paper trades, and when they are confident enough, we host and execute with a small fee on our infrastructure.

There are two distinct properties of our project that stand out as unique:

1. **Algorithm Marketplace**: Anyone can create an algorithm and earn commission by allowing others to run the algorithm. This means investors can invest in unorthodox and unique public algorithms, which removes all financial and technological barriers young analysts and programmers without any capital might face. By doing so, the project opens up the investment community to a new diverse and complex set of financial products.
2. **Collaborative Data Streams**: All users are encouraged to connect their individual data streams, growing a community that helps each other innovate and develop refined and reliable sources of data. This can serve as both a gateway to accessibility and a lens of transparency, enabling users to track and encourage responsible investments, allowing users to monitor and invest in entities that emphasize certain causes such as sustainability or other social movements.

## How we built it

Our project was specifically made in two stages, the framework and then the use cases. We used our combined experience at Bloomberg and Amazon working with this type of data to create a framework that is both highly optimized and easy to use. Below, we highlight three use case examples that were developed on our platform.

## Use Case 1: Technical Analysis Using Independent Component Analysis (ICA)

1. **Traditional Stock Analysis Using ICA**:

	* We utilize **Independent Component Analysis (ICA)** to decompose a data matrix 𝑋 (observations) into independent components. The goal is to estimate 𝐴 (mixing matrix) and 𝑆 (source signals), assuming 𝑆 contains statistically independent components.
	* ICA maximizes non-Gaussianity (e.g., using kurtosis or negentropy) to ensure independence, allowing us to identify independent forces or components in mixed signals that contribute to changes in the overall system.
2. **Cosine Similarity Between Stocks**:

	* By analyzing the independent components driving the stock prices, we perform **cosine similarity** between them. This generates a value within the range of [-1, 1], representing how much any two stocks share these independent components.
3. **Dynamic Graph Representation**:

	* We build an **updating graph** based on the relationships derived from the cosine similarity, providing real-time insight into how stocks are interrelated through their independent components.

## Use Case 2: Prediction Algorithm

* Our second use case involves a **prediction algorithm** that tracks stock movement and applies trend-based estimation across various stocks.
* This demonstrates a **low latency real-time application**, emphasizing the capability of **SingleStore** for handling real-time database operations, and showing how the platform can support high-speed, real-time financial data processing.

## Challenges we ran into

We encountered several challenges, including latency issues, high costs, and difficulties with integrating real-time data processing due to rate limits and expenses. Another hurdle was selecting the right source for real-time stock data, as both maintaining the database and processing the data were costly, with the data stream alone costing nearly $60.

## Accomplishments that we're proud of

We collectively managed to create a framework that is impressive on a technical scale and scalable as we look into the future of this project.

## What we learned

We gained experience with data normalization techniques for stock data and learned how to sync time series datasets with missing information. We also had to think deeply about the scalability of our platform and the frictionless experience we wanted to present.

## What's next for The OpenTradeLab

We have several initiatives we're excited to work on:

1. **Growing Communities Around Social Investments**:

	* We aim to explore sustainable ways to build and foster communities focused on investment in social causes.
2. **Direct Exchange Connectivity**:

	* We're looking into the possibility of connecting directly to an exchange to enable real-time trade routing.
3. **Optimized Code Conversion**:

	* We plan to develop an API and library that converts Python code into optimized C++ code for enhanced performance.
4. **Investment Safeguards**:

	* Implementing safeguards to promote responsible and secure investment practices is another key area of focus.
## Inspiration

We all know that great potential lies within the stock markets, but how many of us have the time and money to put into investments? With Minvest anyone can start investing with no minimum portfolio balance, and no prior experience with investments needed. Our platform is well integrated to your bank account, and you decide how much money to invest in, with the option to withdraw any amount at any time. Sit back and watch your investments grow as we expertly manage a well diversified portfolio on your behalf.

## What it does

Minvest is an application which uses algorithmic trading to manage clients' investment portfolios. The client simply transfers any amount of money from their bank account into the investment platform, and our algorithms take care of the rest. Each user is classified to a certain investment "style" or "strategy", depending on their own personal preferences, and based on these profiles, our algorithms pick out the best investments, and perform appropriate trades on the stock market when the timing is right. Our platform is a form of "crowd investing" in that users pool their money together in order to make investments that they normally would not be able to on their own. There are two current challenges with investments: either one cannot afford to make the minimum investments (usually minimum 100 shares, or a minimum dollar investment amount), or one cannot afford to diversify their portfolio in order to minimize their risks and maximize their opportunities. With Minvest, users now have access to investments previously out of their reach, and with trading and portfolios managed through algorithms, the management cost stays low, allowing us to offer no minimum investment required for our users. We believe that with this platform, more individuals will be able to benefit from the markets, as well as have a financial peace of mind that their money is expertly managed and will grow in the future.

## How we built it

Our front-end client is an Android application, and our back end is created with Django. We used several APIs in our back-end to build our services algorithms. Using Capital One Nessie API we tightly integrate users' bank accounts, and allow them to easily transfer money from their bank into the platform, or withdraw from the platform and deposit into their bank accounts. In creating our algorithm that determines which securities to build our portfolio with, we used the Yahoo Finance API, which brings us key performance indicators of securities in which we analyze to select the best investments. The actual trading of these securities would be done through the Zipline API, which is built with Python. This API is used to create professional trading algorithms, and allows us to build and backtest our algorithms to 10 years of historical data, with full performance and risk indicators. Displaying all this information is our Android client, which gives users the commands to deposit into and withdraw from the investment platform, to view their book value, portfolio value, change, and percentage change.

## Challenges we ran into

The greatest challenge we ran into was developing our algorithms. We had to do in depth research about investment performance indicators, from P/E and P/B ratios to alpha beta risk ratios, to how book values are properly calculated when it comes to making multiple trades with different securities at different prices. However, once we got a hang of it, we were able to identify important traits of the securities that would help us make investment decisions.

## Accomplishments that we're proud of

We're proud of the fact that we were able to learn a lot about investments, as well as being able to implement a few different APIs together to make a final product!

## What we learned

We learned a lot not only about investments, but applied our learning to create algorithms.

## What's next for Minvest

Next steps would be to further develop our algorithms to be able adapt to more market situations, and to allow for users who may be more advanced to have the option of further narrowing down what industries they would like to invest in, such as financial services, utilities, commodities, etc.