Taming the markets - creating an end-end-system for automated trading
Uber Machine (~uber44) |
Financial markets are fascinatingly deceptive. It is a known fact that most retail traders/investors lose money in stock markets. This workshop would focus on developing a trading strategy, simulating its performance, deploying it and evaluating the performance. We would be taking a hands-on structured approach with this system so that you could deploy it and make real trades and possibly profits.
What are we going to build?
A day trading system where you place orders at the start of the day and close the orders by the end of the day or exit by a stop loss. We would be using the end of the day data as our source data and one-click order execution. We would restrict ourselves to cash markets (no derivatives)
Based on this framework, the following details would be covered
- Creating a trading strategy
- Backtesting and simulation
- Deploying the system and order execution
- Evaluating the performance of the system
The system presented here is a live system that's being traded on the NIFTY. So you could use them straight away but beware of your broker margins and software.
We have a simple mission - Don't waste your money
A draft outline
Introduction - 5 minutes
Introduction to financial concepts - 10 minutes
- Risk and return
- Pay off
- Leverage and stop loss
- Evaluating your risk
The setup - 10 minutes
- Software installation
Data Collection and storage - 10 minutes
- Where to get data?
- How to format data?
The framework of a simple trading strategy - 15 minutes
- Defining a trading strategy and its parameters
- Create a strategy with a single rule
Evaluating and simulating historical performance - 10 minutes
- Backtesting your performance
- Pitfalls of backtesting
- Using simulation to understand the strategy better
Visualizing the data and metrics to evaluate a strategy - 10 minutes
- Common metrics to gauge performance
- Can the parameters be adjusted after looking at the performance
- Visualizing with histograms and box plots
Running variations of the same strategy - 10 minutes
- Modifying the parameters and interpreting results
- Can I optimize my strategy based on the variations?
Creating an API for placing orders - 10 minutes
- placing orders with zerodha publisher
- placing orders by importing a CSV file into NEST trade
- generate a suitable format for your API
Evaluating simulation and actual results - 10 minutes
- analyzing the trade book
- Replication ratio and Information ratio
- evaluating real performance - what you see is not what you get
Extending the system - 20 minutes
- extend the system to different time frames
- using intraday data and adding more columns
- compare different strategies with one another
- converting the strategy to a descriptive format
Where to go from here - 30 minutes
- moving towards an event-based system
- ML-based approaches
- More rigorous testing
- Deploying your system in the cloud
If you want to cover other details, kindly post them in comments. Note this is an introductory workshop for algorithmic trading system development and this is not akin to investment advice.
- Basic python knowledge (loops, functions, dictionaries)
- Basic arithmetic and statistics (mean, histogram and probability)
- Basic knowledge about financial markets (short selling, leverage, and stop loss)
- Some familiarity with pandas
- Laptop with anaconda python distribution and jupyter lab installed
- An account with a stockbroker, preferably zerodha (this is optional)
The actual contents for this workshop would be posted here.
Most of the material would be based on the material in this link
The speaker is a registered investment adviser and an active day trader for the past 5 years