Basket Viewer-View Statistics on groups of Long and Short Pairs – indicator for MetaTrader 5
This utility allows monitoring of multiple symbols and positions on one chart, with one group for long (buy) symbols, and another group
for short (sell) symbols. There are 7 default symbol pairs in each of the groups. The user may change these and enter up to 50
symbols from their market watch in either of the long or short basket for viewing.
The current display chart can be changed to any of the symbols in the indicator display with a click on the symbol. Statistics including
ATR, points gained or lost from a week’s start and position gains or losses and lots exposure are displayed. The statistics week may be
changed with simple clicks on the display, and the display may be dragged and dropped to a different location.
The load on quote processing is kept low by simply posting an event that starts the processing for a display update instead of running
the update inline with the quote processing.
Also, the display will be updated at least every second even if there are no quotes received on the current chart.
Here are descriptions of the main controls and features of the display – The first two lines have the ‘control
objects (full picture below):
“Basket Viewer (wk 0): 2019.07.14 – 2019.07.21”
- Click “Basket Viewer” to select the object and drag and drop the panel to a different location on the chart.
- Click the first date (2019.07.14) to decrement the week being displayed.
- Click the 2nd date (2019.07.21) to increment the week being displayed.
“BUY BASKET Points Term_ATR
“BUY BASKET Points Indi_ATR
Click this line to highlight the currently selected week on the chart (draws a rectangle over the week). Click a 2nd time to remove
- “BUY BASKET” is the list of pairs extracted from the User controllable “Buy Pairs String”. Click on the
individual ‘pairs strings’ to change the chart to that symbol.
- The arrow next to the symbol indicates direction and strength of the price movement between bar 1’s open and bar0’s close,
with a 1.5 ATR movement displayed as a 90 (or -90) degree arrow.
- “Points” is the Open of the week subtracted from the close of the week (close – open). This is based on the week selected, (default
is week 0, the current week).
- “Term_ATR” or “Indi_ATR” is the atr for the symbol for the week in the chart’s time frame. This is based on the week selected,
(default is week 0, the current week).
The two values indicate if the ATR is being calculated by the Terminal or by the Indicator itself.
- “Pos_Prft” is the profit or loss from any active trades on the symbol. This does not change based on week selected.
- “Pos_Lots” is the exposure to the indicated symbol. In the picture, there is a 1 lot exposure shown on GBPJPY. This does not change
based on week selected.
As can be seen in the below display picture, this header is followed by the buy pairs statistics, including a total for the Points, ATR,
Prft and Lots columns.
“SELL_BASLET Points Term_ATR
“SELL_BASLET Points Indi_ATR
This is a repeat of the “BUY Basket” header for the “Sell Basket”. Clicking this line changes how the ATR is calculated,
either by getting the data from the terminal using the iATR handle, or by calculating itself using iHigh and iLow functions.
As can by seen in the below display, this header is followed by the sell pairs statistics, including a total for the
Points, ATR, Prft and Lots columns. The totals are opposite from the Buy Basket – for example, profit points are (open –
current/close) price for the week, versus (current/close – open) for the Buy Basket.
Clicking on any of the “Symbol Pairs” changes the chart to that symbol pair.
There is considerable error messaging in the indicator to log when the terminal is not ready to provide quote information. I
recommend obtaining and un-commenting “#include <errordescription.mqh> // errordescription.mqh is found at:
https://www.mql5.com/en/code/79 “, and then searching for ErrorDescription and editing the lines with it to include the Error
Description. These features were commented out to enable the code to pass the automated testing required for publishing – I’m not
aware of another good way to get error descriptions.
The line (line 390) “USE_TERMINAL_ATR = ON;” can be edited to “USE_TERMINAL_ATR = OFF;” to default to calculating the ATR internally to the
indicator – I chose not to do so as the startup and initialization of terminal data for the indicator seemed to work better with the
value ON. The terminal seems to require some time to prepare the values for iOpen, iClose, iHigh and iLow. If running in the Strategy
Tester, be patient, the terminal may take some time to initialize before starting execution.