CFDs are complex instruments and come with a high risk of losing money rapidly due to leverage. -- % of retail investor accounts lose money when trading CFDs with this provider. You should consider whether you understand how CFDs work and whether you can afford to take the high risk of losing your money.

Why traders need to start learning Python, and what they will do with it

Browsing through certain threads on the forum, I often come across conversations that exhibit a degree of aversion (for lack of a better term) to the mere idea of learning a bit of programming for trading / R&D purposes…

If we aren’t using ticker tape today, if we aren’t traveling to work in horse chariots anymore, what is preventing “non-programmer” traders from expanding their analytical toolkit?

I think the author of this article sums it up quite nicely, hence I thought it’d be good to share it with you all :slightly_smiling_face:

Note to other moderators: This is not off-topic, quite the contrary in fact. Please leave this post under Trading Topics as it is, thanks!

Learning a programming language is by no means mandatory, but with the sheer volume of data we use in trading today, it is without a doubt a lot more than a nice-to-have.

Just my $0.02 for those interested :+1:


Just a bit of trackrecord about this subject. :wink:

1 Like

Yes indeed that was a good discussion! :slight_smile:

While MQL is good (and of course necessary) for those who trade (keyword) exclusively in the MetaTrader environment, it is very much a language for designing the end-product -> the EA, Script or Indicator that will execute on the platform, taking the trader to market.

i.e. it is only necessary for execution and trade management, hence traders shouldn’t feel compelled to stick to MQL for everything just because they trade via MetaTrader… such a practice is fraught with issues, inefficient and disadvantageous.

Knowing only MQL disadvantages an individual as the language is unfit for robust analysis purposes.

This post emphasizes the need for traders to consider adding to their analysis toolkit, a language like Python being by far the easiest to learn (leagues easier than MQL for instance).

Imagine being able to:

  1. analyze tick data for mispricings super fast,

  2. crunching data from economic calendars on the web to create a time series of EURUSD price movement vs analyst estimates on NFP numbers for example,

  3. parsing company filings and analysing them for sentiment (for those who trade stocks for example)

  4. analyzing how correlated your strategy is to market volatility, or even another DARWIN’s performance for instance

  5. being able to improve your strategy’s entries by studying the behaviors of DARWIN providers who trade in similar ways to you, e.g. LVS or THA if you’re a volatility trader,

  6. backtesting with a lot more than just “price” available to you via MetaTrader or any other venue, which is extremely low in signal to noise,

… to name a few things… the list goes on.

The advantages are plentiful - the more equipped traders are to handle more diverse, larger volumes of data (discretionary and algorithmic alike), the more equipped they are to analyze strategy outcomes or in/out-of-sample behaviours, for instance, good or bad.

My point is: it is simply not good enough anymore for a trader to not diversify their skill set just because their end-product works in some singular environment, e.g. MetaTrader.

I simply don’t understand the aversion of some to learning new skills in order to grow in their pursuits.

If traders are to treat trading as a business, they need to be open as business owners to manage their own performance as business owners, and mandate the maintenance and upgrade of existing skills and methods in order to stay competitive in a market that is extremely good at arbitraging away both alpha and the trader who doesn’t keep up with the market as best as she can.

To be clear: No one is saying don’t use MQL, because without it execution will become impossible in a MetaTrader environment. The contents of this post refer to everything that happens before, during and after a trader gets to execution -> MetaTrader.

Again, these are my personal views on the issue, I am not speaking on anyone’s behalf but my own :slight_smile:


I agree. It’s about having the right tools for each job. MQL is absolutely fine for execution in my opinion, and if using MT5, the Strategy Tester is also a good tool to test and optimize the system built in MQL. (The MT4 Strategy Tester on the other hand is becoming the poor relative in comparison).

[I know this is an aside to the main discussion, but it is well worth the investment to move to MT5/MQL5 and it isn’t quite as difficult as some people suggest]

Back to topic. I think that for many traders that would call themselves ‘algo traders’ there are actually much more fundamental problems than have been mentioned so far. I’m in contact with aspiring traders every day, and a significant proportion of them think it’s fine to simply buy a pre-built system off the web and expect that to work for them. They have no interest in investing in their own future and learning to code themselves. This is a fundamental flaw. Even if the system they buy does work for the developer (which is unlikely - why would they sell such a system?) because the buyer doesn’t fully understand the underlying premise, methodologies or intricacies of the strategy, to get it to work reliably for them is also unlikely.

So yes, I agree that if you can learn Python in addition to MQL then that will serve you very well - right tools for the job as I said before. But for swathes of hopeful ‘algo traders’ out there, they first need to be prepared to learn just ONE coding language.

Trying to be an algo trader without learning to code is like trying to swim with one arm tied behind your back. Many reading this will disagree with me but for those that took the leap and did eventually learn to code, they will hopefully agree with me.


Brilliantly said… I’m swiping this for my #awesomequotes journal :slight_smile:

In my opinion it is not a learning aversion case.
Many traders here (including me) are in the phase of turning thousands of hours of study and research to profit.

I work in a lab for a company and the company wants to make money with actual products before researching new ones.

Study and research never end but I work alone and I have to benefit and earn to justify the time already invested .


You dont have to learn a coding language by yourself. You can hire someone to code the strategy for you.

Of course, you must come up with the strategy logic. Then you work with the programmer to bring the strategy to life

It’s more about analysis than coding a trading EA. Python can massively speed up the process of collecting and analysing data even if you’re a full manual trader.

1 Like

For those interested in learning Python, just a short note that Pluralsight is free in April 2020.