System Trader Academy's Python Backtesting + Automation Course



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
  • Momentum 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 backtesting and trading process.

You can finally stop looking at the monitor throughout the trading hours except for monitoring.

Divorce yourself from your time and money-making trading process.

Let your system do the trading for you. You don’t have to let your psychology or manual execution hamper your results.

If you want all this, you have come to the right place.


System Trader Academy - Backtesting & Live Trading 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 a trader’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 thoroughly backtested and traded in the Indian market until I joined the prop firm I currently work at.

At my workplace, I am exploring systems in the energy market based structures.

Here, I am using these skills to weed out ideas that truly don’t have any merit or edge, instead of just testing things randomly based on hearsay.

And, I want to help cut your learning curve short, in being able to backtest any idea you want to and automating it.


The Challenges


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.

    For instance,

    On Streak, you can’t backtest futures trading strategies.

    On TradingView, you can’t test option strategies.

    On Amibroker, 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.

So,

  • 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 and weekly mini-projects.
  • 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.)
  • You expect to automate a strategy end to end immediately after this course.

Setting the right expectations is important for this course. If you’re not serious about the commitment required for the course, do not register.

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 or automate one for your live trading. That’s what this course is for - to enable you to test and deploy 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 (might extend if more needs to be covered, might be lesser if we cover it within 12 weeks)
  • 3 modules + Live Automation module.
  • Pre-recorded videos structured for weekly consumption.
  • Assignments along with the videos every day
  • A compound project assignment every week
  • Discussions on Discord channel for all QNA.



Course curriculum:


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 backtesting 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.


Module 4: Live Automation (primarily Zerodha)


In this module, you will learn the different concepts and methods required for you to piece together an automation of any strategy with Python, on Zerodha.

You will learn to setup your AWS account, handle remote connection, receive streaming and historical data, write your strategy, take buy/sell decisions, and place/exit/cancel orders on your broker platform through their api.

You will also learn how to connect telegram to your automation so that you can receive telegram alerts based on certain events (order related) on your telegram.

You will learn how to build defenses against platform glitches, protect yourself from adverse events, and optimize your execution at code and infrastructure level.

And, much more will be covered. Additionally I will try and cover Fyers API, Interactive Brokers API (with Backtrader) also to a certain extent.

Apart from all these, Systematic Trading as a topic with all the concepts around it from Money Management, Risk Management, to Position Sizing, Compounding, many things will be covered.



Course Methodology:



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 goal of backtesting and optimising any strategy, and automating live trading of the strategies you want.

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.

It’s preferable to have 8GB RAM or more.


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.

That said, while it is good to practice on this data, there are several missing data points, rows, days, etc., and it will not give you reliable results.

I strongly suggest buying data from a reliable data vendor, and make sure the data is clean when you buy it.

As part of the course, you can batch together with the rest of the batch and buy data from a reliable NSE/MCX data vendor at subsidised rate on a per segment basis, from 2008 till date.

Do your due diligence on the costing, on the cleanliness and reliability of the data, and then go ahead with the purchase.

That said, a reliable, authentic, clean dataset is very much important for whatever you test.

Without clean data, you can use the freely available data and backtest. But assume 20-30% error in the results and forward test to verify the backtest results (for at least 4-6 months).

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 be costly. 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.

For whichever instrument I have clean data, I use that to backtest and trade the system conservatively for 30 trades after which I will decide the level of aggression in scaling up based on backtest parameters.


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.

Depending on your pace of picking up the ideas and concepts, you might have to put in more time than mentioned.

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

  1. Avoid any other Backtesting course: 10,000/- (at least)
  2. Avoid subscription fees to Stockmock: 18,000/- per annum
  3. Avoid subscription fees to TradingView: 15,000/- per annum
  4. Avoid subscription fees to Zerodha Streak: 12,000/- per annum
  5. Avoid losses you’ll make trading strategies without an edge: 5L-10L over next 5 years
  6. Eventually be able to arrive at strategies with an edge: Profit potential is only upto how you scale
  7. 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.



Fees:


The fees for accessing the materials are as follows:

Backtesting Module: Rs. 13,000/-

Backtesting + Automation modules: Rs. 15,000/-

For testimonials from the previous participants, check the Testimonials page.

Whatever questions you have - please see the Frequently Asked Questions(FAQ) page before sending me a message.

Benefits of signing up:

  • Lifetime access to the Support community (It will be on Discord/Telegram)
  • Access to the peer group
  • 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 to ask, through the group and using the QNA channel.


How do I pay?

You can send across the payment in any one of the following modes:

Fees to be paid: Refer the Fees section above.

GOOGLE PAY

9751645546

UPI ID

heraclesphaeton@okicicibank


NEFT/IMPS

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, fill the following form: Payment Acknowledgement Form

And, email the payment receipt/acknowledgement to shravan.venkataraman100793@gmail.com.

You will be sent an email with the details of how to access the materials within a day or two of registering.


CONTACT

For any queries, doubts, questions, that aren’t addressed in this page, please contact me at:

Whatsapp: 9751645546

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”.