An example of creating a trading algorithm in TSLab

In the given example, we will consider the process of creating the "Moving averages crossover" trading strategy algorithm. At the intersection of the two averages from below, we enter a long position,

In the previous article (An example of creating a script in TSLab) a script called First was created. We will use this script to create a new algorithm.

Open the First script by double-clicking the left mouse button or by clicking the Edit button in the panel with buttons. Go to the Editor (Script) tab.

Selecting the SMA indicator

In the Toolbar window, set the mouse pointer in the search field. Enter the SMA abbreviation. After that, the SMA indicator will be displayed below the search bar.

Select the SMA indicator and while holding the left mouse button drag it to the Editor.

Block: SMA

Simple (arithmetic) moving average. It is calculated by adding the incoming values, for example, instrument's closing prices total amount for a certain period divided by the length of the period.

Connecting the Blocks

Connect the SMA block to the Closing blocks and to the Main chart. To connect the blocks you need:

Set the mouse pointer in the on the block's input/output icon.

Hold the left mouse button.While holding the left mouse button, stretch the connecting line to another block with which you need to establish a connection.

For your convenience, you can change the color and thickness of the lines displayed on the chart. To do this, you need to click on the line connecting the SMA block to the Main chart block.

After selecting the connecting line, the Properties menu will be available to you. As an example, we will change the thickness and color of the line.

Displaying the SMA indicator on the chart

Save and run the script.

After the script is compiled, the results will be displayed on the chart.

According to the terms of the strategy, the SMA is taken from the bar's closing, however, the SMA can be taken from any point of the bar: Maximum, Minimum, Opening or from any other significant values in the algorithm.

For your convenience, all tabs can be moved relative to each other. Left-click on a tab shortcut and then drag it down. In the center of the page will appear a choice of places where the tab can be attached. If you have several monitors, tabs can be moved to other monitors. Then place the Editor tab to the right of the Graphics.

Block: Control Panel

To implement our strategy, we need to add another SMA indicator to the script. Connect the SMA block to the Closing block and to the Main chart. Since SMAs currently have the same period, they merge into a single line on the chart.

Assign the name SMAFast to one of the averages. Display the average values on the Control pane block and then configure it.

Block: Control Pane

A panel on which you can add control elements that control the optimization parameters of blocks.

Configuring SMA Indicator Blocks

Let's configure the SMA and SMAFast blocks. To do this, double-click on the Control Panel block.

For SMA and SMAFast blocks, it is necessary to enable the Recalculate option (activates the script recalculation function with each change of parameters).

For SMA and SMAFast blocks, you have to set the type of control. Select the option Numeric up/down.

As an example, in the SMA indicator, set the values:

  • Current value = 200

  • Step = 1

Set the SMAFast indicator values:

  • Current value = 50

  • Step = 1

Save the settings by clicking the OK button. Save and run the script.

Blocks: Opening/Closing market position. Blocks: Intersection from Above/Below.

Let's add blocks to the script editor:

Block: Cross over

The function determines the moments when the second input (signal) crosses the reference line (first input) from top to bottom. The top link = what we cross. The second link of the block = using what we cross.

Block: Cross under

The function determines the moments when the second input (signal) crosses the reference line (first input) from the bottom up. The top link = what we cross. The second link of the block = using what we cross.

Block: Position opening By market

Opening a position at the first prices offered on the market. In calculations on the history, the opening price of the next bar is used. The first link from the Market Position Opening block is always connected to the Source, as there can be many sources in the Editor. If you move the mouse cursor over the links in the Block, each input is signed, so, in the editor, you can always determine which type of data the Block needs for calculation.

Block: Position close By market

Closing a position at the first prices offered on the market. In calculations on the history, the opening price of the bar following the signal is used.

Connect the blocks:

  • the outputs of the SMA and SMAFast blocks with the inputs of the Cross under and Cross over blocks

  • the input of the Position opening By market block with the output of the Source1 block

  • the input of the Position opening By market block with the output of the Cross under block

  • the output of the Market Position Opening block with the input of the Position close By market block

  • the input of the Position close By market block with the output of the Cross over block

You can configure the useful information displaying on the chart. To do this, click on the Menu button located in the upper left corner. As an example, turn off the name of the Instrument (menu item: ticker).

Script's Optimization

Let's optimize the created script. Since the volume is constant in the data formed by a random variable, the Volume block can be deleted so that it does not interfere with the chart.

Then you need to open the Optimization tab. Set the Maximum and the Minimum period for the SMA and SMAFast blocks. Choose a step for changing the period values equal to 10. The goal of optimization is to select the best indicators, best indicators' configurations and the best algorithm on a loaded data sample.

In the lower left corner of the Optimization window, set the maximum number of passes for calculations. To launch, click on the Start button.

After the optimization process is completed, you can see the results on the Optimization Results tab.

Sort the results by the Net Profit/Loss column. The row with the highest value in this column can bring the greatest profit. In order to write to the script the values obtained during optimization, double-click on the top line. The optimization process is complete.

The described example can be downloaded in the ready-made form and loaded into the program:

Save the file to your computer. Open the program. Select Lab - Scripts - Download from file. Then specify the location of the downloaded file.

Last updated