Here is the detailed user guide for DT-Box v0.1. Before we begin, please ensure that you have completed all the steps from the DT-Box: Installation and Configuration article.
The app interacts with the strategy tester while the strategy tester is running, enabling you to:
– Add, modify, and remove technical indicators dynamically;
– Place, modify, and cancel orders dynamically;
– Adjust and close positions in real-time.
In essence, the DT-Box app allows the simulation of manual trading using historical data. Now, let’s look into each feature in detail.
Working with Indicators
In this section: adding, modifying, deleting indicators, and saving and reusing indicators.
The functionality for adding indicators is located at the top of the app:
The DT-Box application supports a variety of popular and useful technical indicators, allowing you to add, modify, or remove them while the Strategy Tester is active. I am continuously updating the app to support new indicators, so expect to see an expanding selection with each new release.
Now, let’s walk through an example: adding the Triple EMA (TEMA) to our backtesting chart and adjusting its parameters to discover the most effective combination.
From the drop-down menu, select ‘Triple EMA (TEMA)’ and click the ‘Add’ button. A pop-up window will then appear, allowing you to configure the indicator’s parameters:
Enter your desired parameters and click ‘Add.’ DT-Box will then send the corresponding command to the Strategy Tester, and the indicator will be displayed on the chart:
In this example, for clearer visualization, I’ve added the TEMA indicator with a period of 200.
Note that although you’re running the Strategy Tester on a specific symbol and timeframe, DT-Box enables you to add indicators for any symbols and timeframes available in your MT5. So now, let’s add the TEMA indicator for the USDJPY symbol on an H1 timeframe as an example:
After you clicking Add, a new chart will appear displaying newly added indicator:
Using this method, you can add as many indicators as necessary to the ongoing experiment. Utilize the +/- buttons in the upper right corner to adjust the height of the indicators table.
The indicators table will now list entries for each added indicator, displaying the symbol, type of indicator, the timeframe to which it has been added, and the indicator parameters. From here, you can effortlessly modify the parameters of any indicator.
To make changes, simply select an indicator and click the ‘Modify’ button. A pop-up window with available parameters for modification will then appear:
The ‘Modify’ window displays the current parameters of the indicator, allowing you to change any of them. Simply enter new values and click ‘Modify.’ Note that you cannot change the symbol or timeframe directly; to modify these, you must delete the current indicator and add a new one.
For example, let’s change the period from 200 to 50. After clicking the ‘Modify’ button, the indicator will be updated and redrawn on the chart:
Also, note that the indicator will be completely redrawn; that is, the old line will be removed and a new one will appear across all data displayed in the strategy tester.
Modifying indicator parameters is a core functionality of DT-Box, allowing you to adjust parameters on the fly without needing to restart the backtesting. This capability is one of the primary reasons I developed DT-Box.
Deleting indicators is also straightforward – simply select an indicator and click ‘Delete.’ However, be cautious, as the app does not ask for confirmation for simplification purposes; it immediately removes the indicator from the strategy tester when you press the ‘Delete’ button.
Also, be aware that if you added an indicator which requires a separate panel, like CCI or MACD, the panel will remain on the chart even after the indicator is deleted – this is due to MT5’s functionality, and I have yet to find a workaround. The same applies when adding an indicator to a new symbol; if the indicator is deleted, the window displaying the symbol remains open.
Now, let’s explore another useful feature: saving and reusing indicator setups. To demonstrate, we’ll make our setup more complex by adding the CCI indicator to both the EURUSD and USDJPY symbols:
Click ‘Save,’ enter a name for your layout, and save the file with your indicator parameters. DT-Box saves indicator layout files with a .BXI extension, but these are essentially text files in a specific format.
To load a saved layout, click ‘Load,’ select the desired .BXI layout file, and then click ‘Open.’ Be cautious, as DT-Box will remove all currently added indicators before loading the saved ones from the file. This means you will lose all previously configured indicators when you load a new layout from a file.
Working with Orders
In this section: creating and sending new orders, modifying pending orders, and canceling pending orders.
The orders functionality of DT-Box is designed to enable you to manually send orders during a backtesting experiment. The DT-Box app communicates your commands to the strategy, which in turn sends the orders to the backtester. Currently, you can execute market, limit, and stop orders. In future updates, I plan to introduce support for algorithmic and custom orders, so stay tuned.
New orders will be sent to the backtester on the next tick following the strategy receives the command from DT-Box. Generally, I recommend performing all operations, such as adding indicators, sending orders, or modifying positions, while the Strategy Tester is paused. Please note, while paused, all commands sent from the app will be executed after you click the ‘Continue Visualization’ or ‘Step by Step’ buttons (i.e., when the strategy tester processes the next tick)
Let’s go through the process of creating and sending a market order: first, pause the Strategy Tester, then select the symbol, set the volume, and specify your stop loss and take profit levels. If you prefer, you can leave the stop loss and take profit fields empty, meaning the opened position will not have them. You can modify the open position later from the positions table. Double-check all input values, then click the ‘Buy’ or ‘Sell’ button. As it is typical with DT-Box, no confirmation popup will appear, and the order will be sent immediately.
However, if you follow my advice and send the order while the Strategy Tester is paused, you will need to resume backtesting after clicking ‘Buy’ or ‘Sell’ to allow the strategy to process the DT-Box commands. Be cautious: if you repeatedly click these buttons while paused, the strategy will execute all those orders once resumed.
Now, let’s examine what happens after sending an order:
As you can see, we now have an open order, visible in both the Strategy Tester and DT-Box’s open positions table. We will get to managing open positions in Working with Positions section below.
Next, let’s send a few pending orders, like limit and stop orders, and explore how they can be modified or canceled through DT-Box. Placing pending orders involves manually inputting limit or stop prices. In future updates, I aim to introduce a feature for auto-filling these values, but currently, you’ll need to remember some numbers.
We’ll place a buy limit order at a price of 1.08490, with a stop loss at 1.08310 and a volume of 0.05 lot for the EURUSD symbol. Once you’ve entered all necessary information and hit the ‘Buy’ button, here’s what you will see:
You will see the pending order appeared on the chart, within the Trade tab of the tester, and in the app’s pending orders table.
Please note that DT-Box does not provide notifications for orders rejected by the Strategy Tester. If you’ve placed an order (by clicking the ‘Buy’ or ‘Sell’ button) and it does not show up in either the tester or the app’s table, you should verify in the tester that the order wasn’t rejected due to invalid parameters like incorrect price, or invalid take profit and stop loss levels.
DT-Box is designed as a control panel for the Strategy Tester, and I try to avoid duplicating MT5 functionalities where unnecessary. In other words, if MT5 displays an error or otherwise informs you of what happened, DT-Box will not replicate this feedback.
For example, here I attempted to place a buy limit order at a price above the current market price, resulting in the order being rejected. In such instances, the Strategy Tester’s Journal tab will provide the reason:
While an order is pending, you have the option to modify or cancel it directly from the DT-Box pending orders table. Simply click on the desired order in the table, then press the ‘Modify’ button. A popup window will then appear, displaying the parameters available for modification:
You can adjust the order price, stop loss, and take profit. However, a particularly cool feature is the ability to modify the volume. Unlike standard MT5 functionality, which does not permit volume changes, DT-Box handles this by executing a two-step process: canceling the old order and sending a new one with the updated volume but the same prices.
Now, let’s tighten the stop loss by bringing it closer to the limit price – enter 1.08440 in the SL field and click the ‘Modify’ button. Remember to perform all such changes while the strategy tester is paused. Once you resume, you’ll observe the updated stop loss on both the chart and in the tables within MT5 and the app.
If your modification is rejected due to invalid parameters, you’ll know where to check for errors. An important note: if you alter the volume of a pending order along with any prices in a single modification and make an error, the original order will simply be canceled. This is because, as explained, volume changes are treated as a cancellation followed by the sending of a new order. While the cancel operation is indifferent to mistakes, the new order operation is not – so if your order vanishes after an attempted modification, check the strategy tester’s Journal tab for an explanation:
One more thing about modification: if you decide to remove the stop loss or take profit entirely, simply clear the values from the SL and TP fields in the order modification window and click the ‘Modify’ button. As an alternative, you can also enter zeros:
And If you want to cancel an order, simply select the order from the table and click the ‘Cancel’ button. As mentioned earlier, the cancel operation will proceed without asking for confirmation – the command is sent immediately upon clicking the button.
Working with Positions
In this section: modify stop loss and take profit settings, partially or fully close a position.
Now, let’s explore the functionalities available for managing open positions in the DT-Box app. If you have an open position, it will be displayed in the app’s open positions table. As indicated by the button labels, you have the options to modify, partially close, or fully close the position.
For instance, let’s execute a market order without specifying stop loss and take profit values. You’ll get something like this in the table:
Now, select the position and click the ‘Modify’ button – the following fields are available for adjustment through the modification command:
Let’s enter 1.07090 in the SL field and 1.07010 in the TP field, then click the ‘Modify’ button. The app will send the corresponding command to the tester, and you will then see the updated stop loss and take profit levels on the chart:
Additionally, the respective prices will update in the positions table within the app. In this example I’ve set my stop loss lower than the entry price to secure profits on the open position.
Now, let’s explore how to close positions. You have the option to reduce the volume of an open position by partially closing it or to close the entire position immediately. Let’s begin by closing half of the position:
Right after you click Partially Close button for a position, its entire volume will be entered to To close volume entry field, and if you just click Modify button, obviously, the entire position will be closed. Let’s type in 0.03 and click Modify to close half of the position. The DT-Box position table now displays new volume for open position:
When you click the ‘Partially Close’ button for a position, the total volume will be entered into the ‘To Close Volume’ field. If you simply click the ‘Modify’ button right after, the entire position will be closed. Instead, let’s enter ‘0.03’ and then click ‘Modify’ to close half of the position. The DT-Box positions table will then update to display the new volume for the remaining open position:
If you want to close the entire position, simply click the ‘Close’ button. Note that the ‘Close’ button also operates without requesting additional confirmation, the corresponding command is sent immediately upon clicking.