- Why did you and your team choose the technologies you did?
Our project is an industry project that builds off of previous capstone projects. So our choice of technology is somewhat constrained to those of our predecessors. The main technology that we’re using is a Python algorithm that will drive our backend. Our goal is to host our project in the cloud using AWS, and we are planning on using Amazon Relational Database to support any persistent data requirements. We’re planning on a simple frontend that will mostly use vanilla js.
- How will your project use them?
The largest portion of our project is optimizing models that analyze securities to train. This will occur with a python library plugged into an open source financial engine project called Quant Connect Lean.
Because we are planning on hosting this project in the cloud, we will use AWS and the proprietary Amazon database for storage needs.
As mentioned above, our frontend will be fairly simply, and will use mostly vanilla JS, but we are open to incorporating more modern web frameworks if time permits.
- What are their pros and cons?
Python will provide a readable approach that will help simplify some of the business logic of the financial algorithms. We anticipate it will also be relatively straightforward to build off of Quant Connect Lean.
Our mentor’s goal is to be able to expand the algorithms to analyze a variety of securities. Because of the computing power and data requirements, the cloud can offer a viable solution as this project gets larger.
Because we’re more concerned with the algorithms, we anticipate building only a simple front-end. HTML and JS should be a simple approach to getting a basic UI running.
Python supports object oriented programming features, but it may be easier to organize a larger project with C++ or C#. However, we expect the algorithm that we are building to stay relatively small.
AWS offers a flexible solution, however we have to be aware of potential costs that come with hosting in the cloud. Only one of our group members has experience working in the cloud.
A simple UI may not provide the most compelling aesthetic appearance. Using a modern web framework may give more flexibility as this project expands.
- What were the alternatives?
Because the algorithm needs to run on Quant Connect Lean, our options for the algorithm are C# or Python. We could potentially search for another financial analysis engine, but previous groups have used Python, and we are building off their work.
Other cloud hosting options include Azure or possibly google cloud. We could also host our app on a dedicated server. However, our mentor believes the cloud will offer the greatest flexibility.
Regarding the frontend, a web framework like flask, React, or Blazor could be used to construct our frontend.
- What do you like or dislike about your system UI/UX?
I like that our goal is to keep the frontend simple. Ultimately, I think we should have a small number of results that can be displayed in a basic interface.
I do think it would be more interesting to use a more modern web framework though.
- What do you like or dislike about your server/backend system/API?
Our mentor provided us with an example algorithm in Python. It’s readable, and easy to grasp the business logic.
I haven’t used AWS, and I’m cautious about diving into a proprietary technology, especially one that might have unanticipated costs.
- What do you like or dislike about your design modularity? Does it enable each of your to work independently?
Our design modularity allows us to work on the different concrete parts of the project fairly independently. However, a larger part of our project will consist of communicating and brainstorming between our team members in order to optimize our algorithm. This work will be difficult to do independently.
Something that has taken a bit of time for each of us is learning more about the financial logic behind the project. This is exciting, and there’s many aspects to learn. Ultimately we’re trying to use a genetic algorithm to develop a number of potential optimal trading strategies. Our mentor suggested NSGA-2. The optimization problem is particularly interesting to me.