Categories
Senior Software Project

Creating Clouds: AWS Setup

Welcome back to Sean’s Syntax!
This week, I’ve been working on setting up an AWS Elastic Beanstalk environment for my groups trading algorithm project. While we haven’t deployed anything just yet, the foundation is ready. I’m excited to share what went into preparing this cloud.

Why Elastic Beanstalk?

AWS Elastic Beanstalk provides simplicity and scalability. It’s designed with great tools for hosting our Python-based trading algorithm application since it automates server administration, scaling, and load balancing. This lets us focus on building and optimizing algorithms and leaving the infrastructure to Elastic Beanstalk.

Getting Started

Here’s what I’ve done so far to get the environment ready:

  1. Platform Setup
    I selected Python as the platform for Elastic Beanstalk. It’s compatible with the tools I’m using like backtesting.py for the trading strategies. Elastic Beanstalk automatically provisions resources like EC2 instances, so all I had to do was pick the right options.
  2. Environment Configuration
    I set up the basics:
    • Created environment variables so we can plug in API keys and database credentials.
    • Set up Elastic Beanstalks real-time monitoring of performance.
  3. Preparing the Application
    Even though my group hasn’t deployed yet, Here is what the full structure of the application will look like. The app includes:
    • Application files for the trading dashboard.
    • A requirements.txt file listing all the Python libraries the app needs.
    • Config files for connecting to AWS services like RDS (database) and S3 (storage).

Next Steps

Now that the cloud environment is ready our next task is to deploy the app and start testing it in the cloud. Elastic Beanstalk will help with this and once the app is live, I’ll tweak the setup based on performance and scalability needs.

Categories
Senior Software Project

Algorithms For Stock Trading

Welcome back to Sean’s Syntax! I’m excited to share the latest on my algorithmic trading strategy project. This post is all about algorithms, optimization, and the tech that powers it—don’t worry, I’ll keep things simple and fun! Think of this as a peek into how we’re building the brains of a smart trading system, designed to help individual investors make smarter choices in the stock market. Let’s dive in!

Algorithms & Optimization: The Heart of the Project

In any trading system, the algorithm is the “secret sauce.” It’s responsible for figuring out when to buy and sell, with the goal of making a profit. In my project, the Algorithms and Optimization module is central. It’s where we create, test, and improve different trading strategies based on factors like price velocity, price acceleration, and market volatility (all that basically means is: we’re looking at how fast the price changes and how jumpy it is). This module also includes risk management tools, which help the system avoid big losses when the market suddenly gets rocky.

The Cool Part: A Genetic Algorithm

Our trading system’s algorithm uses a genetic algorithm for optimization. Think of it as a survival-of-the-fittest process, where we’re constantly testing new trading strategies to see which performs best. We do this by setting different configurations (like how many days we hold a stock before selling), then watching which setups make the most profit, minimize losses, and maintain a high win rate. The most successful setups “survive,” while weaker ones get left behind, just like evolution!

With this system, users can customize parameters like how many “generations” of strategies to test or the size of the “population” (which is just the number of different strategy versions tested at once). The goal? Finding that perfect balance between returns, drawdown, and win rate to beat a basic buy-and-hold strategy.

Performance Metrics: How We Measure Success

To know if a strategy is working, we track key performance metrics:

  • Sharpe Ratio: Shows how much risk we’re taking to get returns.
  • Maximum Drawdown: The biggest drop from the highest point to the lowest.
  • Win Rate: The percentage of successful trades.

We display these metrics in interactive charts to make it easy for users to see what’s working and where to tweak things. It’s like having a fitness tracker but for trading strategies!

That’s it for this blog! Thank you so much for reading and stay tuned for more progress.

Categories
Senior Software Project

Introduction To Sean’s Syntax

Welcome to Sean’s Syntax, my name is Sean and in this blog post, I will be introducing myself and the plans for this blog. I live in San Diego, CA where I was born and raised. Living near the beach has influenced my hobbies as I spend my free time surfing, diving, taking photographs, or messing with code.  I’m currently a senior at Oregon State University majoring in Applied Computer Science with the goal of becoming a software engineer.  

One of my photos captured in San Diego, CA

My blog will be about my senior software engineering project. Throughout the year, I will be going through the design, implementation, and testing of my project. While I’m building my project I will be documenting most of the process with this blog. There will be posts about coding breakthroughs, the ways I keep track of my project, and the occasional rant when things don’t quite go my way.

In each post, I’ll focus on a specific topic, whether it’s a new technology I’m learning or a challenge I’ve recently overcome. The idea behind this is to document the real ups and downs of working on a large software project. While at the same time, offering insights into anything that may be helpful for others.

Project Brainstorming

As I am waiting to hear back about which project proposal I will be chosen for, I want to highlight some of my favorite project proposals. My goal for this project is to work on something that is AI or algorithm-based. This is because I want to gain some practical experience with these topics while working in a professional environment.

My Top Project Proposals:
AI-assisted Features for BRI’s Growth Forge® Software
  • I’m interested in this project of building AI-powered features for BRI because it helps to turn fast data into effective insights. It will also help me expand my knowledge of integrating AI into existing software.
Cloud-Based Algorithmic Trading Strategies for Individual Investors.
  • I am quite excited about the project proposal since it teaches you about learning investment and algorithmic trading in-depth. While also providing you with hands-on building of a cloud-based trading application.
Leveraging AI for Improved Public Transit
  • I am super interested in the project because it incorporates AI into real-life applications that create an impact. It also provides the opportunity to learn from experienced data engineers.

So, here’s to a year of coding, learning, and documenting the progress. Time to get started!