Language | Dependencies | Build Method | Repository | |
---|---|---|---|---|
Core | --- | --- | --- | --- |
Pro | C++ | Boost, SDL2, ImGui | gcc | Source |
Mobile | Swift | iOS-Charts | LLVM | Source |
Web | --- | --- | --- | --- |
The goal of Premia is to provide an advanced experience for investors and traders to manage their portfolios.
Currently, Premia exists as a desktop application that communicates with brokerage and exchange APIs such as TDAmeritrade and Coinbase Pro to display price history charts, portfolio data, watchlists, and other information.
Going forward, I plan on breaking up the existing application into a series of microservices, as to support multiple clients such as phone app or a web interface. This will open the door for a more dynamic user experience based on connecting directly to a server to get data.
Users will be able to link existing accounts they have with other financial services that we're capable of supporting via APIs and their portfolio information will be organized and presented to them in the application. They'll have the ability to look at the performance of their assets with a variety of portfolio measurements.
Premia will also provide advanced models based on financial data to help investors and traders make decisions based on a broader array of information available to them. Some experiments could include:
The desktop application will have a focus on advanced charting with speed and efficiency. The analytical models will also have their most detailed graphical representation as opposed to the mobile and web versions. Users will be able to use a console to control aspects of the program with more freedom, as well as plans to provide a scripting language for increased versatility. The goal is to allow the user to make Premia more useful for themselves than we can.
This makes customization a huge design philosophy for Premia.
The mobile app for Premia will have a focus on consistent engagement by taking advantage of the Core engines user database as means of faciliating some social connections. This can be in the form of user profiles with options of displaying investments and their performance or even a chat room where people can share their trades live. This will tie well into the integration with other brokerages, if a user makes a purchase they can easily share it from the Premia mobile app with a more aesthetically appealing image export option.
The web interface will likely be the most reliable place to go in terms of managing a users account and the status of their subscription and payment method, but its performance as a valid client for charting will be subjective to the ability of any potential developers hired onto the project in the future.
To improve the efficiency of Premia and to allow for multiple client endpoints, I plan on transitioning it into a microservice architecture. The transition to a microservice architecture will take place over three phases as follows.
Basics of the Core server program will be set up.
Core includes the analytical models and user database.
Mobile app and web interface are linked to the API gateway of the server.
Basic API requests are linked to GUI of the mobile and web.
Testing IEXCloud Sandbox before subscribing for Premium Data
User features like registration, login, connection status
WebSocket streaming for real time quotes and cached databases of frequently accessed data
API Microserives as Daemons on the Core server with their own databases
Subscribing to IEXCloud Individual for Premium Data
Pro desktop application features expanded significantly based on Premium Data
Core Models developed based on Quantitative Finance and Statistical Market Analysis
More advanced server scaling techniques
Moving API microservices onto their own servers
Splitting up the Core engine into multiple servers
Upgrading to IEXCloud Business for more features
Somewhere between phase 2 and phase 3, Premia will start taking the form of a product that can be offered to early investors and beta testers. This is where the basis of the subscription model will begin to take shape, which I will explain further below.
Many features in Premia will be offered to users for free, such as the charting and the portfolio tools. However, built into Premia will be the ability for users to subscribe on a monthly basis for access to premium data and technical analysis of that data. This will be done by using the service IEXCloud for market data.
Using Premia with the Premium Data will allows users to have a convenient place for all the information they need and introduce them to potentially beneficial analytical models based on that data designed by the developers. Beyond just premium data, the subscription will provide access to more features within the program like additional technical indicators for their charts and access to more algorithmic trading models.
The value proposition built into the subscription model will be directly proportional with the quality of the financial analysis made available by the developers, which is why concepts like risk management, performance backtesting, probability and statistics will all be used heavily in any intellectual works provided in the application.
In the early stages of the subscription model, pricing will be based primarily on the cost of the data and the server as well as factoring in labor costs from myself and any other developers involved in the project. As time progresses and the project expands in detail, that pricing model will be subject to adjustments based on the value proposition provided by the software at that time.
The current vision for Premia is quite amibitious and I can no longer feasibly accomplish it alone.
For this reason I'm looking for developers willing to assist in the following tasks.