We will now focus on the EasyLanguage programming language (see Fig. 1) which is part of the TradeStation software platform. Even its name implies that it is a programming language for “non-programmers”. Its biggest advantage is that if you know the basics of English and you are familiar with conditional functions in Microsoft Excel, you can very easily to learn the substantial part of this programming language. The basic motivation for creation of EasyLanguage was a vision that algorithmic trading should be available to traders who are not skilled in programming. I myself am a very good proof that EasyLanguage can be relatively easily mastered even I you do not have any knowledge of programming.
Fig. 1: EasyLanguage user environment
EasyLanguage allows you to create:
- Functions which are the backbone of EasyLanguage. Thanks to them this programming language is suitable even for “non-programmers”. Functions contain programmed codes of technical indicators. Technical indicators are the essential building blocks of robust ATS.
- Indicators are technical indicators that are directly displayed in the price chart (see Fig. 2).
Fig. 2: TradeStation and the Stochastic Fast indicator below the price chart
- colouring of bars (PaintBar) – a function serving for colouring candles in case a condition predefined in the code is met (see Fig. 3).
Fig. 3: TradeStation and PaintBar function colouring bars in the price chart
- automated trading system – ATS (Strategy)– ATS enters and exits positions as defined in the programmed algorithm (see Fig. 4).
Fig. 4: TradeStation and an example of a simple strategy displayed in the price chart
EasyLanguage contains a huge number of pre-programmed functions and indicators which are the cornerstones of ATS. Therefore you can save many hours of work right from the beginning because you do not have to program these particular functions and indicators.
We have explained that there are software tools that can build almost unlimited number of ATS Yet we should understand what the codes created by the genetic programming “tell us”. In my courses I sometimes meet traders who use ATS the principles of which they absolutely do not understand. With regard to the stability of the psychology of trading this situation is very disadvantageous for the trader. And for that reason I prepared the course Building Winning Automated Trading Strategies with TradeStation in which I explain ATS codes in detail. Graduates of this course should be able to clearly identify the meaning of programmed algorithms. This helps them to increase the profitability of their trading as they get much more confident about the programmed ATS codes. Traders learn to understand the meaning and signs of:
- Reserved Words which are words that EasyLanguage reserved for specific tasks. Without these words we would have to laboriously program individual algorithms, such as BUY, MARKET, etc.
- Remarks which are words or opinions that the programming language completely ignores and that have absolutely no influence on the algorithm. Traders can use them for their own notes inside the code.
- Variables are user-defined words that serve for storing of certain information (that usually changes in time). Variables allow adaptation of ATS to the current market conditions (for example the current volatility). A variable may be, for example, the ATR indicator the value of which changes over time.
- Input parameters (Inputs) are numeric values that do not change in time. An example may be the length of the moving average of Close prices. Their value changes only if we, for example, periodically re-optimise our ATS according to the Cluster Walk Forward Analysis (CWFA). CWFA is the cornerstone of the robustness testing. It is incorporated in the TradeStation platform thanks to which the platform clearly beats its competitors.
- Entry prices and Entry conditions determine at what price and under what conditions to enter the market. An entry price is a predefined price breakthrough (e.g. Breakout) and the entry condition may be, for example, a crossing of two indicators after which the system enters the market at the Close price of the current bar.
- Entry order type says us whether we enter by Market, Limit, Stop Market, Stop Limit, or other order.
- Exit prices and Exit conditions determine at what price and under what conditions to exit the market. An exit price is a predefined price level and the exit condition may be, for example, a crossing of two indicators after which the system exits the market at the Close price of the current bar.
- Exit order type says us whether we exit by Market, Limit, Stop Market, Stop Limit, or other order.
In this chapter we showed you how complex the issue of programming algorithms in the EasyLanguage programming language may be. EasyLanguage is certainly not a perfect programming language (there are much better programming languages, yet their primary purposes are other than trading), but it offers a very user-friendly solution for traders “non-programmers” who want to seriously engage in building of robust ATS. The good news for each “non-programmer” trader is that this programming language and its basic features are relatively easy to master. For example, if you are familiar with the basics of MS Excel, there is no reason why you should not learn EasyLanguage (I think that EasyLanguage is easier than MS Excel in many respects). In our course, beginners as well as advanced ATS traders can very efficiently learn the basics of EasyLanguage codes and thanks to this understand the functionality of robust ATS. Within the 4-day course we will provide you 4 codes of robust ATS, we will also analyse in detail one of the codes and explain the logical functionality of the codes. Thus you have a unique opportunity to understand what work the codes can do for you in the markets.