Selection of a Platform For Algorithmic Trading

RANDOM TRADING

Do you know that well over 90% of traders are using technical analysis, and well over 90% of traders are not making any money? Traders with random strategies, with no edge? Many new to the trading world are not aware of this critical information. 

They are very naive and, as a result, fall victim to one of the most common beginner mistakes: Random trading. Here is what novice traders need to consider: Price action in the form of technical analysis is random. 

Head and shoulders, trendlines, double tops, double bottoms, etc. are random if they can not be quantified and verified how they worked in the past for a chosen market. This type of trading is called discretionary trading.

selection of platform

Less-experienced traders are attracted by this type of trading because it looks easy and because self-proclaimed trading guru told them to follow this nonsense. Example: You see a 60-minute double bottom, you react and get long. It fails. The market pulls back, and then another double bottom appears. This one works. Yes, we all know that. It’s frustrating. 

So does it work or not? The real reason that this whole technical analysis and discretionary trading were created is to force you to execute trades more often and make money to brokers from commissions. It’s just like a casino! Once you get into it, it’s hard to stop. 

They are feeding you with this because technical analysis is super easy to do on every platform. Every platform has the indicators inside. There is Tradingview, NinjaTrader, SierraChart, and a lot of software that are supporting technical analysis. The whole business became such a dogma that people lost all their common sense to know what they should trade and how. 

My point here is that you can draw there so many things, use so many different indicators, yet still, you will never know if it works because you don’t have any proof in your pocket. Drawing lines in a chart does not have any predictive value. It is just analyzing the past. 

What newer traders need to understand urgently is to focus on facts. After struggling with a discretionary approach where I couldn’t verify any of those trading rules, I realized that all of these books and technical analysis courses are useless. They provide tons of theory, technical analysis, market volumes profiles. Whatever… 

Just the same as those trading gurus are claiming that their strategies work. But did those trading gurus who most probably don’t even know if their idea works showed you a proof of concept?

If somebody doesn’t provide you a necessary backtest or live track record – how can you trust that person? Are you sure that the only money this trading guru makes is not from selling his courses?

So you already realized that I insist that discretionary trading is random because it can not provide any past performance in the form of backtesting, respectively some mathematical proof of the theory. If so, what is systematic trading?  Is it the synonym for algorithmic trading? Of course, it is!

Most discretionary traders demonize and execrate algorithmic trading. As it was said, discretionary trading is based on chart drawings hand in hand with indicators (moving averages, oscillators, and trading oversold/overbought areas). Entry and exit orders are placed manually in the market. In other words, if you want to execute an order, you must be physically present in front of your computer screen in real-time.

Moreover, they include their feelings of the current market situation to their analyses, which brings a lot of randomness to their trading. Every discretionary trading decision is affected by mood, external events like news, and traders are unaware that it’s affecting them.

The most significant disadvantage of discretionary trading is the absence of backtesting. Backtesting is a crucial component of the trading strategy development process. It is accomplished by rebuilding trades that would have been executed in the past market data using entry and exit conditions defined by a trading strategy. The result provides statistics to measure the performance of the strategy.

On the other hand, algorithmic trading is based on the coding algorithms that define entry and exit conditions applied to a given market or group of markets. It enables fully relevant backtests and automated executions of trades. So no sitting behind the screen.  No need to put orders manually.

Advice: Don't believe in something that you can't quantify and verify. Make trading decisions based on facts. Take the formations in the charts with a reserve until you see the proof that they work

The main disagreement of day traders is that an algorithm can never accurately catch specific nuances in markets.  They say the human eye can only detect it. I believed this argument for a very long time, perhaps only because I wanted to. I was too afraid of algo trading. 

At the beginning of my trading studies, I never programmed anything by myself. I studied rather technical analysis and chart drawings, and I tried to stay away from programming as long as possible. I thought that coding strategies was definitely beyond my abilities. I never considered myself a person who has a talent for programming (what was obviously due to lack of self-confidence). 

But to my prejudice, I was robbing myself of rare time. In the beginning, I aimlessly believed in the manual day trading (of course, it can be very profitable if appropriately applied). Unfortunately, I missed the massive potential of algo trading for many years. And I don’t want you to make the same mistake as I did. Honestly, I do not remember when the breaking point came, but I am happy it did.

Getting better oriented in trading, I found out that advanced traders used either the automated trading software TradeStation or Python. TradeStation is a commercial trading software with brokerage service at the same time. In comparison, Python is more advanced and is appropriate for people with a data scientist or a programming background.  

As Python seemed to be too complicated for me, I decided to study the Tradestation platform in detail. With this right decision, my life completely changed… For better…

I began to study the software. The crucial part of this software for quant trading is the EasyLanguage programming language. I learned this language through various tips and tricks available on the internet.  I was very motivated by the acceleration of my algo trading evolution.

If you are a newbie, you are still not fully aware of discretionary and algo trading differences. So first of all, algorithmic trading has a very significant advantage because it’s 100% mechanical. There are no emotions involved than discretionary traders because algorithms don’t feel any fear and greed. 

We have feelings, and our emotions almost always influence our decisions. When it comes to relationships, sometimes it is good, sometimes bad for us. But when it comes to trading markets, it is almost always harmful to us. 

Furthermore, algorithms can watch the market 24-7, which is not the case for discretionary traders sitting behind the screen. One of my students, a former discretionary trader, switched to algo trading. He spent too much time watching the live charts and somehow forgot to manage his day to day life. 

Advice: You don’t have to be afraid of Algorithmic Trading. You don’t have to be a programmer to make it work for you. Don’t be discouraged. It’s not hard at all

Another advantage of algorithmic trading is that you can backtest your trading strategies. It means you can test your trading strategies on historical data. You can’t do this to the same extent for discretionary trading strategies. That is why I call them random. You can not verify if they worked in the past. 

As a discretionary trader, try to prepare an Excel spreadsheet and write down all trades (by manually going through the data bar after the bar). It will be too exhausting yet inaccurate. Before my algo trade career, I did that in the past, and it was wasting time. Many types of research were confirming that people tend to improve discretionary backtest results. So, where is the relevancy?

There is no doubt the algorithmic trading process is very consistent. When the algorithm confronts the same situation as many times as possible, it will always make the same decision with no excuses. However, this cannot be set for human traders because, as being said earlier, humans are entirely emotional beings. 

Therefore they might make two different decisions if they are confronted with the same situation twice, which is not a good thing for trading because nobody wants to trade randomly unless you are foolish.

To sum things up, algorithmic trading is as good as your code. However, the trading of the discretionary trader is as good as the person who is trading. And the problem is that you can not copy the human because simply you don’t see inside his brain. Contrary, you can reproduce a code pretty quickly.

When I’m talking about algorithmic trading, I mean algorithms that you create yourself that will trade for you, and by you, I mean someone like you as a retail trader. I’m not talking about big institutions using very complex algorithms; it costs millions of dollars to develop and work. 

I’m talking about something that you and I could use to our advantage. Institutions have to consider not only trading logic but especially capacity constraints. The smallest ones trade with millions of dollars and the biggest ones with billions of dollars. I have years of experience with trading millions of dollars in a hedge fund. 

It is more challenging and complex than trading with a small retail account in thousands of dollars. So retail traders don’t need to be afraid of capacity constraints, which is excellent news for you. Unless you are not a billionaire and you have to face the same issues as institutions. 🙂

Advice: As a small capital trader, you have the advantage that you can trade strategies that are unavailable to large institutions due to their need to trade very large volumes. Look for your competitive advantage here.

And just to make it clear, I should also cover the topic of high-frequency trading. Lots of retailers are interested in it because they heard somewhere that it could be very profitable. And I say forget it. Because it is all about speed, and you don’t stand a chance against other huge billion-dollar companies. 

So, when I’m talking about algorithmic trading, I’m mostly talking about how you can develop your trading strategy that makes all trading decisions itself. The goal of this is that the trading algorithm is better or at least more efficient in trading than you would.

Now, let me give you a concrete example of how a trading algorithm could look like. The trading algorithm usually has a few requirements that have to be met for the algorithm to make a trading decision. 

So, for example, it could say: Every time if the close price is lower than the 20-day moving average, that algorithm buys. Whenever the close price is higher than the 20-day moving average, it sells.

I already mentioned TradeStation and its programming language: EasyLanguage. Let’s have a look at how the code looks like in case of these simple reversal entry and exit conditions:

If Close < Average(Close, 20) and Marketposition < 1 then Buy (“Long”) this bar at close;

If Close > Average(Close, 20) and Marketposition > -1  then Sellshort (“Short”) this bar at close;

reversal moving average

Figure 1: Example of Reversal Moving Average strategy in TradeStation chart

This is how this simple trading rule looks in a chart (Figure 1). It sounds like a simple strategy. No surprise that it doesn’t work at all:

Figure 2: Equity curve of simple reversal moving average strategy

Advice: Work with minute data for futures and intelligently create your own trading sessions. Get rid of alternative bars, they won't bring you anything.

So what you see here is the elementary form of backtesting and the equity curve of this simple strategy. On the horizontal axis, you see the number of trades from 2003 – 2020 backtested period. On the vertical axis, you see the total cumulated Net Profit that is negative. And it is without any costs (slippage and commissions), so if we had included them, the result would be even worse.

PLATFORM FOR BACKTESTING

Ok, so let’s say that you made an important decision that you don’t want to be a random (discretionary) trader anymore. So what is the next step? Every trader who decides to start with algorithmic trading should research software to develop the strategies. It is crucial to realize that choosing the right software is in developing algorithmic trading strategies. 

When trading financial markets, you are in a very competitive war. That is why you need to use the strongest weapons. A weak software can cause huge losses, so bear this in mind.

There are two options for you:

  1. The first one is the ready-made algorithmic trading software. There is plenty of commercial software available on the internet. One of the widely used software is Metatrader. The developers made this software for the needs of hundreds of FOREX brokers who wanted to offer a trading platform for their clients. The trick about this platform is that it is entirely for free, so it might be tempting to try it initially. If you are serious about algorithmic trading, please forget it. I don’t think that it is a professional solution as it has many limitations. Let’s not waste your time with too many details. I think when you go through this platform yourself, you will realize how limited it is. There are few other platforms that you probably heard about: NinjaTrader, Multicharts, TradeStation. I know some traders who are very satisfied with NinjaTrader software. It can have some added value. Nevertheless, I am not able to evaluate this software as I don’t have experience with it. I have good experience with two commercial software, and that is TradeStation and Multicharts. TradeStation represents a combination of advanced technology and online brokerage services to attract retail traders who want to get all in: for brokerage services and a robust platform. The critical feature of TradeStation is EasyLanguage. It is an easy and understandable programming language that helps traders develop trading strategies. The inventors of Multicharts took (I will not discuss the copyright law here) this EasyLanguage programming language and call it PowerLanguage. So the strategy code is fully compatible between these platforms. Unlike TradeStation, Multicharts is not a brokerage company. But you can connect many different brokers to the platform for live trading. We will compare TradeStation and Multicharts in the comparison table later. Let’s talk about a more professional solution that is also definitely more difficult to do.
  1. And that is your own built algorithmic trading software. There are a lot of options again. Many professional traders and institutions use programming languages like C, Java, C++, and C# to develop their back-testing and, consequently, execution software. It is very time demanding, and you need to be a very advanced programmer to build and finish such a challenging project. And we would not recommend you going this way unless you have a powerful motivation to do a very advanced trading platform for a specific reason. We have an outstanding experience with Python. Its system of impressive packages is the technology platform of choice for algorithmic trading. For example, compared to TradeStation and Multicharts, it demands years of studies to backtest and execute algo traders. Among others, Python has a great potential to perform efficient data analytics (with e.g. pandas), to apply machine learning to stock market prediction (with e.g. scikit-learn) or even make use of Google’s deep learning technology (with tensorflow).

We decided to make a table comparison where we cover most of the critical features:

 

TradeStation

Multicharts

Python

Programming language

EasyLanguage: It is an easy and understandable programming language that helps traders develop trading strategies. Multicharts call it PowerLanguage

Object-oriented programming language which is used in many different fields.

Backtesting

Backtesting applied to the single market with EasyLanguage. Portfolio Backtesting is possible to perform with the Portfolio Maestro app. But we found many issues with it.

Backtesting applied to the single market or portfolio with PowerLanguage. Portfolio Backtesting is possible to perform. Portfolio Backtester has better quality than TradeStation, and you can use dynamic portfolio sizing solutions

If you learn Python you can effectively do backtesting for a single market as well as portfolio. It is more complicated and time-demanding than TradeStation and Multicharts but it worths

Brokerage

TradeStation is all in one solution: Brokerage services and platform at the same time.

Multicharts has to be connected to a brokerage firm. It demands settings and can potentially lead to issues

Python has to be connected to a brokerage firm. It demands a lot of programming and experience. However, if there is an issue with connectivity and executions, unlike Multicharts, you can fix that if you are a skilled programmer. Most of the relevant brokers have API to Python or to other languages.

Historical data

TradeStation provides very high-quality minutes data of futures and stocks up to 20 years of history. Tick data are available for the last six months.

You have to connect Multicharts to some data provider. If you have TradeStation, you can download the historical data there. Otherwise, you need to buy some service.

You have to upload data into Python from some data providers.

 

 

 

 

 

 

Historical Funtamental data

Very limited possibilities (practically impossible) of working with fundamental data, such as news feed, earnings, macroeconomic data, etc.)

Very limited possibilities (practically impossible) of working with fundamental data, such as news feed, earnings, macroeconomic data, etc.)

If an alternative data source with possible predictive power is found, it is possible to integrate any data source into the development.

Live Market data

Provided automatically in the platform if you pay for that

You need to connect it with live brokerage market data

You need to program and connect it with live brokerage market data, usually via broker’s API

Robustness / Stress testing

TradeStation has very good optimization tests and out of sample testing and Walk-Forward Optimizer – a great app containing cluster walk forward analysis

Multicharts has very good optimization tests and out of sample testing and containing cluster walk forward analysis

With advanced knowledge of Python programming, you can program yourself any kind of robustness/stress tests

Live trading

Effortless and good live algorithmic trading. The clear benefit of all in one solution.

You need to connect the brokerage firm and do a lot of testing to be sure that connection ande execution is working well

You need to connect Python to your broker’s API. We have very good experience with Interactive Brokers. This broker has very good documentation on how to connect Python

Latency

Very low slippages for market orders for futures markets and stock markets

We don’t have enough live trading experience with Multicharts

Very good with Interactive Broker based on our experience

Configurability and Customization

Limited – not open source

Limited – not open source

Unlimited

Integration with other software

Not possible

Not possible

Unlimited if possible

Platform-Independent Programming

Not possible

Not possible

Unlimited if possible

TradeStation

Multicharts

Python

Programming language EasyLanguage: It is an easy and understandable programming language that helps traders develop trading strategies. Multicharts call it PowerLanguage Object-oriented programming language which is used in many different fields.
Backtesting Backtesting applied to the single market with EasyLanguage. Portfolio Backtesting is possible to perform with the Portfolio Maestro app. But we found many issues with it. Backtesting applied to the single market or portfolio with PowerLanguage. Portfolio Backtesting is possible to perform. Portfolio Backtester has better quality than TradeStation, and you can use dynamic portfolio sizing solutions If you learn Python you can effectively do backtesting for a single market as well as portfolio. It is more complicated and time-demanding than TradeStation and Multicharts but it worths
Brokerage TradeStation is all in one solution: Brokerage services and platform at the same time. Multicharts has to be connected to a brokerage firm. It demands settings and can potentially lead to issues Python has to be connected to a brokerage firm. It demands a lot of programming and experience. However, if there is an issue with connectivity and executions, unlike Multicharts, you can fix that if you are a skilled programmer. Most of the relevant brokers have API to Python or to other languages.
Historical data TradeStation provides very high-quality minutes data of futures and stocks up to 20 years of history. Tick data are available for the last six months. You have to connect Multicharts to some data provider. If you have TradeStation, you can download the historical data there. Otherwise, you need to buy some service.

You have to upload data into Python from some data providers.

Historical Funtamental data Very limited possibilities (practically impossible) of working with fundamental data, such as news feed, earnings, macroeconomic data, etc.) Very limited possibilities (practically impossible) of working with fundamental data, such as news feed, earnings, macroeconomic data, etc.) If an alternative data source with possible predictive power is found, it is possible to integrate any data source into the development.
Live Market data Provided automatically in the platform if you pay for that You need to connect it with live brokerage market data You need to program and connect it with live brokerage market data, usually via broker’s API
Robustness / Stress testing TradeStation has very good optimization tests and out of sample testing and Walk-Forward Optimizer – a great app containing cluster walk forward analysis Multicharts has very good optimization tests and out of sample testing and containing cluster walk forward analysis With advanced knowledge of Python programming, you can program yourself any kind of robustness/stress tests
Live trading Effortless and good live algorithmic trading. The clear benefit of all in one solution. You need to connect the brokerage firm and do a lot of testing to be sure that connection ande execution is working well You need to connect Python to your broker’s API. We have very good experience with Interactive Brokers. This broker has very good documentation on how to connect Python
Latency Very low slippages for market orders for futures markets and stock markets We don’t have enough live trading experience with Multicharts Very good with Interactive Broker based on our experience
Configurability and Customization Limited – not open source Limited – not open source Unlimited
Integration with other software Not possible Not possible Unlimited if possible
Platform-Independent Programming Not possible Not possible Unlimited if possible

Table 1: Comparison between TradeStation, Multicharts, and Python

If you are at the beginning of your trading career, at a productive age and have enough time for years ahead to study, then Python is definitely the right choice. It offers endless and practically unlimited possibilities for your further development. Studying Python and programming strategies is really a long run. 

We will devote a substantial portion of our content to Python and the development of strategies in this software, as a part of our training.

But if you’re looking for a faster and easier solution because you have a time demanding profession, you have to take care of your family and have it all over your head, but you would love trading, the TradeStation and Multicharts platforms are great alternatives.

According to practice, we can clearly say that potentially profitable strategies can be developed in it. As a part of this Ebook, which is intended for intermediate traders, we will continue to work with the TradeStation platform. 

We will explain the EasyLanguage programming language in more detail and show practical examples of the possible development of business strategies. However, if you chose Python, don’t stop reading the Ebook here. It is important to learn the general principles and methodologies that we will explain in this book, regardless of which platform you will work with in the future.

Advice: If you are at the beginning of your trading career, at a productive age and have enough time for years ahead to study, then Python is definitely the right choice. But if you're looking for a faster and easier solution the TradeStation and Multicharts platforms are great alternatives.

As already explained in the previous Market Selection article, we will continue to work with the futures market E-mini Russell 2000, timeframe 60min, 08:45 to 15:03 trading session.

If you don’t want to read all I want to share with you article by article, grab our Ultimate Guide To Successful Algorithmic Trading here and read it anytime you want! 12 chapters, 112 pages: all in one place and completely FREE of charge! 

Leave a comment