Trading Strategy Development – Post #3

Intro: Our project is creating a algorithmic stock trading optimization system. Our goal is to create profitable trading strategies, and develop the software system for building, testing, and storing those strategies. The audience for this software would be anyone interested in systematic investing.



Q1: How is the journey so far?

The journey so far has been challenging, but enjoyable. Our project introduced a few new concepts to our team, including systematic trading principles and optimization algorithms. As a result, the first few weeks of the capstone were very research heavy. However, over the past week we have shifted from our research/planning phase into our development phase so I believe we are still on track.

I am pretty passionate about the subject we are working on, so that really helps make the process enjoyable for me. Designing and building quantitative trading systems is something I have wanted to do for a long time, so this experience has been invaluable.

Finally, we have a great team, which always makes work better. We have weekly group meetings, and a weekly sponsor meeting, which have all been a positive experience so far.


Q2: How well is your team following your original Team Standards?

I think our team has been following the standards well, and looking back I am grateful we went through that process.

We have done a good job at trying to follow our weekly schedule, which has helped us stay on track during a very busy month. Also, there has been good communication about our schedules so that we can plan around others, and keep everyone involved. Overall, I think our team has communicated well which is really the key to following the team standards.


Q3. Do you feel your project is on-track to succeed? If not, what do you plan to do to help the team get back on track?

I do feel that our project will succeed. This project ended up being a little bigger then I originally thought, but I still think we are on track. Right now we are working on implementing the trading algorithms, which I believe is the hardest part of the project. The reason being is that creating a profitable trading strategy is extremely difficult.

However, as long as we can accomplish that in a timely manner, I believe the reaming parts of the project should be easier. For example, we will be creating a backend database and pushing our software to the cloud. These are software tasks, and those are concepts our team already has some experience with.

Thanks for reading,

Eric Slater

Trading Software Blueprint — Blog #2

Intro: Over the past week we have been working on our general design for our trading algorithm optimization software. Below is a diagram of the various technologies we plan on implementing.


Why did you and your team choose the technologies you did?

Quant Connect – This was requested by our sponsor, but after using it this week I can see why. Its a well designed and powerful open source trading engine. It handles alot of the heavy lifting, such as gathering and organizing price data. At the same time it gives the user unlimited freedom for designing and implementing new strategies.

Docker – We are using docker because it works well with quant connect. To install quant connect, we first needed to install docker. Our group did not have any other good alternatives, so we plan to stick with Docker for containerizing out code.

AWS – Our sponsor asked us to put the software on the cloud. AWS was our first choice since it is one of the largest cloud providers. There are also many tutorials for learning which should help us. Finally, they offer some free services which is great for a school project.

MongoDB – For the database backend, we picked MongoDB. While we do not have much experience with it, we know its a very popular database program and it is something we wanted to try.

Flask – Since we are using python for this project, we decided it would be best to use Flask, a python based web framework, for building our user interface.


How will your project use them?

Quant Connect – After we optimize our trading algorithm, we will need to backtest against price data to see how the strategy would preform. This is where quantconnect comes in. Quant connect will allow us to test the algorithm and collect performance results. This will provided all the data we need to implement and optimize the algorithm

Docker – We will implement docker into our software. It will allow us to containerize our program. This way we can share our program with others, and they do not have to worry about having a specific environment set up.

AWS – For this assigment we are required to house our software in the cloud. AWS will provide the cloud infrastructure for us.

MongoDB – We will use mongoDB to build a database to keep track of our trades, and trading peformace metrics.

Flask – Finally we will use flask to build a user interface that will display the trading results that are stored in MongoDB.


What are their pros and cons?

Quant Connect:

  • Pro: The pro is it is pretty easy to use and back test trading strategies.
  • Con: The downside is that it is a slow program, and the type of optimization we will be doing will require speed.

Docker:

  • Pro: Quick development time. Containerizing our code will make deployment easier, and it should also be easier for the user since they do not need to install anything new. Another benefit is that there is good documentation, which is important because we have not used it before.
  • Con: The learning curve. It is a technology our group does not have much experience with, so there could be difficulties as we learn.

AWS

  • Pro: Since AWS is so popular, there are many tutorials and documentation. As new users, this should be helpful compared to a less popular cloud service. AWS also provides a free service, so hopefully we can utilize that without incurring costs.
  • Cons: Once we move our application to the cloud, there can be possible down time involved so we need to make sure everything is running correctly before the project is due. There are also some limitation to how much you can do for free, so there is a possibility that there may be costs associated with running our software eventually.

MongoDB

  • Pro: MongoDB is known to be fast with high performance. It is also simple to use, which will be good for beginners. It is also quick to set up, which is good because we have limited time.
  • Con: I have read that mongoDB can have complications with joins and indexing(knowledgenile.com). Since I am not completley sure at this point how we will need to set up the database, the risk is our software will need to do something mongoDB struggles with.

Flask

  • Pro: The main pro is that it is a python framework, so the keeps consitent with the rest of the project. The other big pro is that it is pretty easy to use. Since the user interface is only a small part of our project, being able to get it set up quickly is important.
  • Con: The cons are that it is “too easy” and has scalability issues. However since the user interface is only a small piece of the project, I think Flask does what we need.

Sources Referenced

https://medium.com/analytics-vidhya/why-aws-advantages-and-disadvantages-f0e666b869b3

https://data-flair.training/blogs/advantages-and-disadvantages-of-docker/

https://www.knowledgenile.com/blogs/pros-and-cons-of-mongodb/

https://dev.to/detimo/python-flask-pros-and-cons-1mlo

Corn and Computer Science – Blog #1

Hi, my name is Eric and I live in Louisville KY. I Currently work in commodities trading, specifically agricultural products like corn and soybeans (my first degree was in Ag Economics). I have been working in this field the last 10 years, and I have been pursuing a second degree in Computer Science part time with the goal of combining my experiences in commodities trading and software engineering.

Page 4 | corn field HD wallpapers | Pxfuel

Why did you choose Computer Science?:

Early in my career I found a passion for Excel, and quickly became known as “The Excel Guy” at work. I loved automating things and building formulas, and I spent most of my time performing data analysis tasks. As a natural next step, I started to teach myself programming to help with those tasks. Although I was considering being self-taught, I knew if I wanted to break into Quantitative Trading I would need the fundamental knowledge a CS degree would bring.

Why did you choose the project on the survey? What makes them interesting to you?

I requested projects related to either financial market, or data analysis. With my number 1 choice being Cloud-Based Optimization of Algorithmic Stock Market Trading Strategies. I have been involved in trading and finacial markets for a long time now, and my goal has always been to become a Quantitative trader or Developer, so this project seems like a great fit.

Why type of person are you in terms of a group dynamic?

Of course the answer will depend on the makeup of the group, from my experience so far I would say leader or communicator. I have met alot of others with more programming experience (some people are already software developers at this point in the program) so someone else may be a better technical leader. However I do have experience running a trading team and delivering on business objectives, so I am hoping to add value with that experience.