One day, you learn that trading can make you rich. You learn about few indicators that can tell you when to buy and sell. You probably learn about few strategies from friends and colleagues.
You’re excited about making money in the stock market. Finally, you can give your parents a better life. Finally, you can buy your spouse all the luxuries they deserve.
Only, when you finally learn and start trading, you’re not making money. Worse yet, you’re losing money. Hard earned, blood and sweat money.
You’re confused. “What’s happening? I was supposed to make money.”
“But, the trader on Youtube said he made 55 lakhs in a month!”
“But, but, the trader on Twitter said he made 1 crore in 15 days!”
If you didn’t come here, you’d most likely have gone into the rabbit hole of trading psychology. But all the trading psychology in the world won’t matter unless you have an edge.
That’s where programming comes in.
Stop losing money trading untested strategies
You can finally stop losing money, trading untested strategies.
Identify if what you’re currently trading has an edge. Stop trading strategies without an edge.
You can finally stop paying buggy algo-trading platforms to automate your strategies.
You can stop letting other people control your trading results directly or indirectly.
Do you want to thoroughly test any trading idea you can think of?
Learn Python and relevant libraries. It will not a pipe dream anymore.
Are you tired of paying different service providers hefty subscription fees just to be able to backtest different strategies?
Stop testing the same strategies everyone else is testing.
Go beyond the regular strategies available on Fintwit, YouTube, etc.
Test any strategy you can think up.
Do you want to be able to go beyond basic strategies and test any combination of strategies, indicators, price patterns you can think of?
You can test
- Option spreads & strategies
- Directional Strategies
- Non-directional strategies
- Trend-Following Strategies
- Mean-reversion strategies
Any mechanical strategy you can think up, you name it.
Do you want to uncouple your time from trading effort, and automate the entire process?
With the skills gained from this course, you can automate your trading process.
You can finally stop looking at the monitor throughout the trading hours.
Divorce yourself from your time and money-making trading process.
Let your system do the trading for you.
If you want all this, you have come to the right place.
System Trader Academy - Backtesting with Python
Future Proof yourself in trading, with coding
Who am I & why should you listen to me?
I’m Shravan from Chennai. I worked as a Software Developer at PayPal in their Risk Mitigation product team until 2017 July.
After venturing into the stock markets in 2016 and swing trading profitably until 2018, I cashed out and focused on my business. By 2019, I picked up trading again, this time encouraged by an acquaintance who is an intraday trader.
Discretionary intraday trading didn’t work for me and I was in a sizeable drawdown. Then, I found a seminar of Mark Douglas on Youtube. It completely changed my perspective.
Took Madan Kumar’s advice from one of his tweets and started manually backtesting a strategy that a friend had suggested from a forum.
I spent 6 months testing this strategy.
All the while, I wondered, “what if there were better strategies? How do I find such strategies?” I traded this backtested strategy, made some money in the March correction, lost some money thereafter, and ended up close to breakeven by June 2020.
I decided that I should be able to test many strategies and wanted to have my pick. Used my Python skills to start backtesting ideas.
Still, I was limited by my own coding skills. I needed a backtesting framework. That’s when I discovered BackTrader library. It’s an open source backtesting framework which is the only one that’s platform agnostic, user friendly, and has a strong community.
Then, I started learning Backtrader and testing different trading strategies. I have tested 200+ strategies so far, and was able to discard most of them as they all turned useless results.
Eventually, I was able to come across a couple of very good strategies, that I have thoroughly backtested and been trading in the Indian market currently.
And, I want to help cut your learning curve short, in being able to backtest any idea you want to.
If you’re like most traders in the market, you’re facing one or more of the following challenges right now.
Trading the strategies other people share, but not finding much success with them.
Twitter, YouTube, Traderji forums, and even other trading forums. You lurk everywhere. You look up to the visibly successful traders. You hope they will spill one of their strategies that they use to make lakhs and crores in profits.
When one such trader shares their trades, you follow the trade blindly. When they share a strategy in one of their interviews, you start trading it immediately.
You make profits in first one or two trades. You’re happy you figured it out. Then, the strategy starts going haywire. You start losing money. Soon, you can’t take the losses and you abandon the strategy.
Having to pay a hefty amount for backtesting tools with limited features
If you are already backtesting different strategies, you’re limited by the tools you use for backtesting.
**Tradingview, Stockmock, Streak, Opstra, you name it. **
All of them have their limitations.
- They all have limited data
- They can all test very limited combination of strategies
- With some platforms, you don’t know what the data source is, and whether the data has any errors.
- You don’t get comprehensive backtest reports with all the parameters you want to look for, in a backtest.
- Number of backtests you can run per day is limited, and you have to pay money for every additional backtest.
- You don’t know the integrity of the backtest. You can’t run advanced methods to verify if a backtest was curve fitted or not.
In addition to all these, you can’t backtest many strategies in each platform.
On Streak, you can’t backtest futures trading strategies.
On TradingView, you can’t test option strategies.
And, there are similar limitations to each backtesting platform.
So many people are testing the same strategies you are, on backtest platforms. Where’s the edge?
When a lot of people are doing the same thing, and testing the same strategies, the space eventually gets crowded.
This is more applicable to intraday timeframes, which is what most people seem to be looking for strategies at.
So, where will your edge come from? If you’re doing the same thing everyone else is doing, you will have significant competition.
Depending on developers and buggy algo-trading platforms/services for automation.
If you want to automate, you only have two ways right now.
Either pay a developer to do it.
This could take anywhere from 25000 to 1L rupees, depending on the developer.
Or join an algo-trading platform
Or an algo-trading service-provider (you know who the popular ones are), and deploy your strategy with them.
Once deployed, you hope everything goes right.
Only that, it doesn’t.
Slippages, outages, server issues, lags, broker integration issues, service-provider’s client-side issues, and so on.
The issues are endless.
Lack of control over the end-to-end process in your trading, from backtesting to live deployment.
At every step of the way, you are dependent on someone else.
You also pay these people for their services or their platforms.
All for what? Mostly shoddy results.
With most of these platforms and service providers,
- you’re only acting as a beta tester
- being used as a guinea-pig for them to test their service/product
- alongside all of this, you’re staking your real, hard earned money.
Enough is enough.
You don’t feel very good losing money due to other people’s mistakes, let alone your own.
But, if you’re constantly picking people/products whose mistakes cost you your money, then it’s your mistake too.
Let’s fix that right away.
By the end of this Backtesting with Python course,
- You will take back the control over your end to end trading pipeline in your hands.
- You will stop losing money trading untested strategies, and strategies without any semblance of an edge.
- You will be able to test any strategy you can think up.
- You will be able to test any number of strategies, without any limit.
- You can finally stop paying through your nose to the backtesting platforms for the limited features they offer.
- You will be able to objectively verify any strategy a trader claims to be profitable. This could be a system seller, or a workshop trainer/trader. Anyone who gives you a strategy, you can test and objectively verify if it works.
- You will have the skills required to automate many of your routine tasks with the help of Python.
- You will be able to pick up the requisite skills required to automate your strategies and separate yourself from the trading process forever.
- You will finish this course with a framework and a mental-model for algorithmic-thinking, logic, and applying that logic using coding.
- You will have a network and a community of fellow traders who are walking the systematic trading path, regularly accessible on the community forum.
- You will be able to exchange ideas, vet different trading strategies and ideas with fellow traders, share resources that help you, get to know the resources that helped other people in their trading, etc., all through this community of traders
While these are some of the core benefits of this course that you will take away, the following are some of the potential benefits you could take away if you’re interested.
- You will be able to pick up Data Science and Machine Learning skills with the foundations you build in this program.
- You will be able to write automation scripts for mundane activities that you do in your job (if you’re a job goer)
- You will be able to pick up any framework built on Python, understand it, and utilize it for its intended purposes.
- You will be able to read other people’s code, use StackOverflow, and understand any Python based documentation.
The benefits do not stop with this.
These are just the core benefits expected out of this course.
If you dedicate yourself to the course and the community interactions, there’s no telling what level you could take your trading game to. The potential is endless.
Who is this course for?
Just about anyone can sign up for this course.
- Amateurs who are just entering the stock markets, and want to trade profitably
- Investors who want to learn Python to backtest their strategies
- Expert discretionary traders who want to go full systematic
- Beginner to intermediate level traders who want to improve their trading results
- Programmers who want to get into trading, but don’t know where to start
- Those who want to future proof themselves for the technological advancements happening in the stock markets currently, and to not be left out
are some of the intended audience.
That said, this course doesn’t need for you to know trading or programming already.
The course curriculum is being built keeping in mind the non-tech people. This course will tech-enable you to improve your trading.
- If you don’t have prior programming knowledge, nothing to worry. We’ll be covering from the very basics in Python.
- If you already have programming knowledge, you will be able to thoroughly brush up your basics, alongside learning the backtesting framework and the relevant content.
- If you’re an amateur in the stock markets, nothing to worry. This course assumes you have zero knowledge about the markets. All we need for this course will be covered in the course itself.
- If you’re an expert in trading in the stock markets, you will be able to walk away with improved perspective, having future proofed yourself.
Who is this course NOT for?
If you belong to one of the following categories of people, this course is strictly not for you. Avoid signing up if any of the following sounds like you.
- You expect to be spoonfed everything in the curriculum and you want to just see and do only whatever I do on the video, and get the results.
- You expect to be a proficient Python Jedi by the end of 12 weeks of course and be able to get a job anywhere.
- You want to take this course and join a quant trading firm.
- You don’t want to put in the effort to do the daily coding assignments, weekly mini-projects and the capstone project.
- You want me to give you a profitable strategy (which I can’t and won’t be able to)
- You want me to test a strategy for you. (I am not going to feed you fish. I am going to teach you to fish for yourself.)
Let me explain why you shouldn’t sign up if you’re one among the above mentioned cases.
There will be a lot of Googling and StackOverflow-ing in this course. One of the expected outcomes of this course is for you to be able to search for everything you need and find solutions. Almost any problem you can come across has been faced by someone else who has shared their solutions openly on the web. One of my intentions is to teach you how to use the web to fend for yourself.
You can’t be an expert in anything with just 12 weeks of effort, let alone be a Python Jedi. I have been coding on and off in Python, Java, and C++ for years now. And, I am not an expert at any of those languages. What I can do is make use of those languages to accomplish any outcome I want programmatically.
That should be your goal with this course too: to be able to pick up any library, any problem, and work with Python to get to your intended solution.
I can’t give you a profitable strategy. I don’t believe in doing that. Plus, it takes a lot of effort to even arrive at one. I had to test 200+ strategies to arrive at one or two that worked decently enough to deploy. I would be disrespecting the effort it takes, if I were to share a strategy.
I can’t test a strategy for you. That’s what this course is for - to enable you to test strategies yourself. You want to pay someone everytime you want a strategy tested, or do you want to save that money and test it all yourself?
The course as I’ll explain below is 25% lectures 75% projects driven. It requires significant effort and discipline from your end. At one end of the course is hard work, discipline, commitment, and daily coding practice. At the other end is having all the abilities listed above in the section titled “By the end of this course”.
So, if you cannot agree with any of this, you’re better off not signing up for this course.
On the other hand, if you want to improve your trading, and make a career out of it, this course will be a very much value add for your arsenal of skills.
What's in the course?
- 12 weeks of course
- 3 modules
- Pre-recorded videos delivered every day
- Assignments delivered every day
- A compound assignment every week
- Live QNA session on Zoom every Sunday
- One project per module
- A final capstone project
- A Discord community group for exchanging ideas, solving doubts, and discussing questions regarding the course.
NOTE: The exhaustive course curriculum with details about assignments, projects, and capstone will be shared with all the registrants once the registrations are closed.
An overview of the curriculum is given below:
Module 1: Python from the ground up
Introducing with the basic environment setup, this module will cover the fundamental building blocks required for Python programming.
From working with different data types, to learning how to think iteratively, this module will teach you the constructs required for you to do scripting in Python.
Module 2: Building Blocks for Backtesting
This module will introduce backtesting in its entirety. You will learn about how to think about backtesting, a proper framework based approach to backtesting, understanding backtest reports, etc.
Alongside, you will learn functional and object oriented programming in Python building on the foundations laid out in the first module.
This module will introduce Backtrader framework’s constructs and will take you through the basic process of testing simple price and indicator based strategies with Backtrader.
Module 3: Deep Dive Backtesting with Backtrader
In this module, you will learn the parts of the Backtrader framework and each section of Backtrader required to completely piece together a backtest engine.
You will learn to handle different types of data, backtest different kinds of strategies, and work with a scalable system.
You will also understand how to approach optimizing a strategy, generate thorough backtest reports, customise the report according to your requirements.
This module will also introduce you the live automation feature in Backtrader which you can use when you build your strategy automation for live trading.
Project based learning:
This course will be heavily loaded with assignments and projects.
Learning Python theoretically wouldn’t mean anything if you can’t translate the learning into a practical skill.
So, the content and work in this course will be divided 25-75.
It will be 25% lectures and teaching (which includes the live session) and 75% assignments, projects, community interactions, getting into the pool and figuring things out.
Working with Financial & Time Series data from the very first day
It’s very important for you to learn different ways to handle and manipulate the financial and time-series data.
You will predominantly be working with OHLCV data (Open-High-Low-Close-Volume) with relevant timestamps. This is how most of the trading data is structured.
So, it’s only fair to start working on it from the very first day. The assignments will be structured in such a way that each day you will work on some aspect of the time series data and understand the process piece by piece.
Piece meal approach:
Dumping all the content on you every week once and expecting you to pace yourself through the content is not how I will run the course.
That’s very unproductive and will not help you achieve your objectives with the course.
That said, if you want to do that, that’s completely upto you.
But let me tell you the best way to pick up Python programming.
By the end of 3 months, when the course ends, you need to have accomplished all the intended outcomes of the course. For that, it requires a piece-meal approach.
- This means, small, bite-sized lessons and assignments every day, building on top of each other.
- Those assignments will lead to the compound mini-project every week.
- Those mini-projects will all form building blocks of a major project.
- These major projects will contribute to the final capstone project.
This will ensure you stay in touch with coding every day.
They say it takes 21 days to build a habit.
It actually takes 60-90 days to build a habit and keep it.
That’s the reason the course is also 90 days.
My intention is for you to become completely independent and self-reliant when it comes to testing any strategy, and putting together any missing pieces by yourself, given the documentation for any library.
That’s what I will help you achieve with this approach.
Hardware Requirements for the course:
You will essentially need a Laptop or a Desktop with at least 4GB RAM, 30-50GB of hard disk space.
Data Requirements for the course:
For the course, freely available data will be used.
This will consist of
- EOD data from NSE archives - for options, futures, and stocks/indices.
- IEOD Options data made available by Tradecatcher blog
- IEOD futures and spot 1min data made available in Dropbox by a generous person who keeps uploading every day.
I encourage backtesting in clean data free of errors and survivorship bias (depending on what’s being tested). But I understand that such data will run through in Lakhs of rupees per instrument. So, it’s upto you as and when you start testing.
In my case, I use the data that’s freely available, and generously forward test (50-100 trades live forward testing) for strategies whichever use instruments for which I don’t have clean bias-free and error-free data.
Time commitment required for the course:
The daily lectures and assignments will take 1-2 hours tops. Lesser time if you pick up concepts fast.
That said, daily work is required although you can be flexible on how you finish your daily assignments.
Weekend mini-projects will take significant time investment, along with the QNA session to clarify doubts from that week.
So, altogether, you can expect to devote 20 hours at least per week, for this course.
If you’re going through with the course and paying, I think you owe it to yourself to dedicate as much time as possible and
spend time crafting your coding skills in tandem with the program.
What you’ll save by taking this course:
Expected Outcome & Savings
- Avoid any other Advanced Python course: 10,000/- (at least)
- Avoid subscription fees to Stockmock: 18,000/- per annum
- Avoid subscription fees to TradingView: 15,000/- per annum
- Avoid subscription fees to Zerodha Streak: 12,000/- per annum
- Avoid losses you’ll make trading strategies without an edge: 5L-10L over next 5 years
- Eventually be able to arrive at strategies with an edge: Profit potential is only upto how you scale
- Have the ability to automate mechanical strategies yourself: 25,000-50,000/- per strategy dev cost
TOTAL SAVINGS : 15,00,000/- at least, over the next 5 years.
If you consider how many workshops and seminars you can avoid, the cost savings will be even higher.
This being the very First Cohort, the fees of the program for three months is discounted to
Rs. 10,000/- Rs. 8,000/-
You are trusting me enough to sign up. That trust means a lot, given that this is the first batch of the first course I am taking up. That trust is what I price highly above everything else, and hence the discounted fees.
That said, THE PRICE WILL GO UP FOR THE SECOND COHORT AND ONWARDS.
Benefits of signing up in the First Cohort:
- Lifetime access to the Support community (It will be initially on Discord, later once we have the second cohort and further, will decide on a self-hosted forum)
- Access to the second cohort, the peer group, and all the materials in the second edition of the course.
- Private group access to discuss strategies, receive feedbacks, exchange ideas, and group test strategies that would take more effort.
- Ample opportunity to ask any and all questions you need on the 12 x Zoom QNA sessions.
Course Dates & Registration:
The course will start in January. Exact dates will be announced by the last week of December.
Registrations will be open from November 27, 2020 until December 20, 2020.
Registrations will be closed before 20th December if the number of slots available are filled.
The course will run for 3 months (12 weeks). So, plan accordingly.
You came here because you trust me based on the kind of person I am on Twitter.
But, this is your hard earned money we’re talking about.
If you watch the video lessons, attend the zoom QNA sessions, do the assignments and the projects, interact with the community, and still don’t find the course valuable, I’ll gladly refund your full payment within 30 days of the start of the course.
How do I pay?
You can send across the payment in any one of the following modes:
Fees to be paid: Rs. 8,000/- (Rupees Eight Thousand Only)
A/C No: 282301000100793
A/C holder name: SHRAVAN V
A/C type: Savings Account
IFSC Code: IOBA0002823
Bank/Branch: Indian Overseas Bank, Mudichur Branch
Once the payment is done, email the payment receipt/acknowledgement to email@example.com.
For any queries, doubts, questions, that aren’t addressed in this page, please contact me at:
Please send your mail with subject “Python Backtesting Course Queries” for your questions.
For sharing payment receipt/transaction acknowledgement, please have the subject of the mail as “Python Backtesting Course Payment”.