Order Flow Analytics PRO: Presentation and user guide (US-EN) – Trading Systems – 30 October 2023
PRESENTATION
Order Flow Analytics PRO is an investor robot (expert advisor) developed in the MQL5 language to operate on the MetaTrader 5 platform.
Most robots and indicators available to the retail market, whether paid or free, within or outside the MetaTrader 5 platform, are limited to working with the information provided by candle charts according to the user’s chosen time frame. Examples of these are robots based on moving average crossovers or oscillators, which are commonly used by all.
Order Flow Analytics PRO, on the other hand, feeds almost exclusively on the information that makes up the Times And Sales tools (also known as Times And Trades) and the Order Book, which allows it to go far beyond the analysis of open, high, low, close, and volume of each chart bar.
Times And Sales display all the aggressive orders of market players, usually those that indicate urgency in completing the trade at the current price. They show not only the price but also the order’s time, direction (buy or sell), and lot quantity (volume). By interpreting this data, you can determine how many buy or sell orders were executed in a given period, the ratio between the buying side and the selling side, the speed at which orders were placed, or the average of their volumes, among other insights.
The Order Book, in turn, reveals the intentions of players, also known as passive orders, which are made available to aggressive players for lots to be bought or sold. However, these orders are only passive in name, as they are usually more numerous than aggressive orders and play an equally important role in both defense and attack. Common defensive moves include so-called brackets (large orders that supposedly require a great effort on the opposing side to pass) or iceberg orders (hidden moves by large players that repeatedly renew orders in a specific area in small quantities). Aggressive moves (supporting aggressive orders), a facet that is less known to the general public, aim to gain certain new price regions. For example, it is of no use for buyers to act aggressively to gain ten price ticks if they do not immediately renew buy offers at the prices they have acquired, as a single selling aggression would push the price back close to its initial position. Any move aimed at gaining a price region must necessarily be supported by passive orders in the same direction. Furthermore, it is often noted that large players frequently place new passive orders and almost immediately withdraw them for various purposes: testing liquidity, increasing or decreasing exposure, maintaining price levels, etc. These are known as fleeting orders. For these reasons, those who think that the Order Book is a simple and of little use tool are mistaken.
Both Times And Sales and the Order Book constantly provide important information about the actions of market participants, information that can be of great value when making decisions and are inaccessible to most traders.
These are combinations of data that cannot be observed with the naked eye, at least with a reasonable degree of accuracy, a task that is not a problem for robots.
In practice, an operator whose only source of information is charts and another operator who, in addition to the chart, can access data on the proportion, speed, and volume of aggressive players and their relationships with passive orders, whether these are sufficient to hold the price or whether they support the continuity of the movement, it is undeniable that the second is in a privileged position. This is where the Order Flow Analytics PRO comes in.
The robot reads and calculates in real-time everything that happens in the Times And Sales and the Order Book and organizes the data in a comprehensible and intuitive way to facilitate understanding of how market forces work.
For each type of information, the robot compares buyers and sellers and reveals whether there is a balance or an advantage on one side.
In the analysis of aggressive orders, volumes are recorded by price (from the beginning of the day and from the number of last trades defined by the user), and the buy vs. sell ratio in the current price region is documented, including the measurement of their speeds and average volumes per second (number of last seconds defined by the user). The same applies to passive orders; their speeds and average volumes per second are recorded, compared, and their fleeting orders are revealed.
As complementary tools, the robot also provides the percentage volume profile for each level, the location of the last trades in relation to the price standard deviation (percentage of trades inside or outside one or two times the standard deviation), and a price chart-based moving average (the only tool based on the price chart).
All of these tools are available to the user for customization and cumulative or alternative parameter activation, according to the setup to be used, for entering and exiting trades.
For example, in a trending scenario, the user can enable the robot to buy whenever all these conditions are true: buy aggressions account for more than 60% of the total; renewal of buy orders in the order book accounts for more than 55% of the total; the average speed of aggressions is greater than 100 orders per second; the short average speed is greater than the long average speed (yes, two averages are available for speeds or average volumes, a short one and a long one); and vice versa for sell trades. In a different scenario, such as reversals or consolidation, a sell trade could be executed if: sell aggressions account for more than 60% of the total; renewal of sell orders in the order book accounts for more than 55% of the total; the average speed of aggressions is less than 100 orders per second; the location of the last trades is 50% above 2 times the standard deviation of the price, and vice versa for buy trades.
These are just examples and illustrate how the robot can work, without prejudice to other settings defined freely by the user.
The possibilities are numerous; the user can choose which tools to use and find the best configuration for each traded asset, according to what makes the most sense.
In my humble opinion, no other robot or indicator on the market offers the information and tools that Order Flow Analytics PRO provides, all organized in a way that even a beginner can understand.
Are you eager to learn more? Explore all the gears of our robot in the instruction manual below and visit the product page in the market.
USER GUIDE
In the following lines, we will present the robot’s features and how to configure it correctly.
To begin, let’s take a look at the order tracking panel, breaking down each column into numbers to facilitate understanding.
-
Price: the price levels closest to the last price;
-
VP% (Volume Profile %): the percentage of volume profile concerning the total of aggressive orders (column 3) at each price level. At the bottom, the average volume profile value at the current price;
-
Aggressive orders: the number of aggressive orders at each price level, separated by buy and sell, since the beginning of the day. At the bottom, a demonstrative bar showing the percentage composition of buyers and sellers;
-
Recent aggressive orders: the number of recent aggressive orders at each price level, separated by buy and sell, based on the user-defined number of last trades. At the bottom, a demonstrative bar showing the percentage composition of buyers and sellers.
-
Order book: a replication of the Order Book;
-
Passive orders renewals: the number of passive orders added at each price level, separated by buy and sell, since the beginning of the day. At the bottom, a demonstrative bar showing the percentage composition of buyers and sellers.
-
Recent passive renewals: the number of recent passive orders added at each price level, separated by buy and sell, based on the user-defined number of last trades. At the bottom, a demonstrative bar showing the percentage composition of buyers and sellers.
-
Fleeting orders: the number of passive orders added at each price level and subsequently (shortly or some time later) removed, separated by buy and sell, since the beginning of the day. At the bottom, a demonstrative bar showing the percentage composition of buyers and sellers.
-
Aggressive order’s averages / Speed: at the top, the total average speed per second over a long period (user-defined) accompanied by a demonstrative bar showing the percentage composition of buyers and sellers. At the bottom, the total average speed per second over a short period (user-defined with a maximum of 59) accompanied by a demonstrative bar showing the percentage composition of buyers and sellers.
-
Aggressive order’s averages / Volume: at the top, the total average volume per second over a long period (user-defined) for aggressive orders, accompanied by a demonstrative bar showing the percentage composition of buyers and sellers. At the bottom, the total average volume per second over a short period (user-defined with a maximum of 59) accompanied by a demonstrative bar showing the percentage composition of buyers and sellers.
-
Passive orders renewal’s averages / Speed: at the top, the total average speed per second over a long period (user-defined) for the renewal of passive orders, accompanied by a demonstrative bar showing the percentage composition of buyers and sellers. At the bottom, the total average speed per second over a short period (user-defined with a maximum of 59) accompanied by a demonstrative bar showing the percentage composition of buyers and sellers.
-
Passive orders renewal’s averages / Volume: at the top, the total average volume per second over a long period (user-defined) for the renewal of passive orders, accompanied by a demonstrative bar showing the percentage composition of buyers and sellers. At the bottom, the total average volume per second over a short period (user-defined with a maximum of 59) accompanied by a demonstrative bar showing the percentage composition of buyers and sellers.
-
Distribution of Price vs Standard Deviations: The distribution of prices by percentage, considering the latest trades, within one of its standard deviations, above or below one of its standard deviations, or above or below two of its standard deviations.
The order tracking panel can be customized regarding the quantity of recent orders to be accounted for and the number of seconds for short and long speed and volume averages per second.
Such configurations should be made by changing the panel parameters in the robot’s properties box, where you can also find the general parameters for lot size configuration and operating hours, as well as risk management criteria (maximum daily and per-trade gain and loss).
Next, for each parameter within the properties box, explanations will be provided regarding what it entails and how to use it.
Lot size: Specify the quantity of the lot to be traded.
Trade from this time: Set the time from which the robot will be authorized to trade.
Do not trade from this time: Specify the time from which the robot will not be authorized to trade.
Close all positions this time: Define the time at which the robot will close all open positions.
Use maximum gain per trade: Determine whether you want to use a maximum gain value per trade.
Value of maximum gain per trade: Specify the maximum value to be used as the gain per trade.
Use maximum loss per trade: Decide whether you want to use a maximum loss value per trade.
Value of maximum loss per trade: Set the maximum value to be used as the loss per trade.
Use maximum gain per day: Establish whether you want to use a maximum gain value per day.
Value of maximum gain per day: Define the maximum value to be used as the gain per day.
Use maximum loss per day: Specify whether you want to use a maximum loss value per day.
Value of maximum loss per day: Set the maximum value to be used as the loss per day.
Number of deals to calculate recent orders: Specify the number of recent deals used for calculating aggressive recent orders, passive recent orders, and price distribution relative to standard deviations.
Period size in seconds for longest average: Define the duration in seconds for calculating the longest averages of speed and volume for aggressive and passive orders.
Period size in seconds for shortest average (maximum 59): Define the duration in seconds for calculating the shortest averages of speed and volume for aggressive and passive orders, with a maximum value of 59.
Cumulative or alternate enabled trade entry parameters: Specify whether trade entry parameters should be considered cumulatively, meaning that all enabled parameters must be true simultaneously for an entry to occur, or alternately, where an entry is made if only one of the enabled parameters is true.
VOLUME PROFILE %
Use: Define whether to use this tool. Choose “No” to keep the tool disabled and “Yes” to enable it.
If: Determine under what conditions the tool should be used. Choose from the following options:
- “Bigger_than”: Use when the average volume profile value is greater than the defined value in the following parameter.
- “Bigger_than_or_equal_to”: Use when the average volume profile value is greater than or equal to the defined value.
- “Equal_to”: Use when the average volume profile value is equal to the defined value.
- “Smaller_than_or_equal_to”: Use when the average volume profile value is smaller than or equal to the defined value.
- “Smaller_than”: Use when the average volume profile value is smaller than the defined value.
Value: Set the value to be used as a comparison for the previous parameter.
ALL AGGRESSIVE ORDERS
Use: Define whether to use this tool. Choose “No” to keep the tool disabled and “Yes” to enable it.
When: Select from the following options to specify the tool’s behavior:
- “Buy_when_buyers_or_Sell_when_sellers”: Use when you want the tool to initiate buy orders based on the percentage of aggressive buy orders in the current price region or initiate sell orders based on the percentage of aggressive sell orders.
- “Buy_when_buyers”: Use for executing only buy orders based on the percentage of aggressive buy orders.
- “Buy_when_sellers”: Use for executing only buy orders based on the percentage of aggressive sell orders.
- “Sell_when_sellers”: Use for executing only sell orders based on the percentage of aggressive sell orders.
- “Sell_when_buyers”: Use for executing only sell orders based on the percentage of aggressive buy orders.
- “Buy_when_sellers_or_Sell_when_buyers”: Use for executing buy orders based on the percentage of aggressive sell orders and sell orders based on the percentage of aggressive buy orders.
If: Determine under what conditions the tool should be used. Choose from the following options:
- “Bigger_than”: Use when the percentage of aggressions is greater than the value defined in the following parameter.
- “Bigger_than_or_equal_to”: Use when the percentage of aggressions is greater than or equal to the defined value.
- “Equal_to”: Use when the percentage of aggressions is equal to the defined value.
- “Smaller_than_or_equal_to”: Use when the percentage of aggressions is smaller than or equal to the defined value.
- “Smaller_than”: Use when the percentage of aggressions is smaller than the defined value.
Value: Set the value to be used as a comparison for the previous parameter.
RECENT AGGRESSIVE ORDERS
ORDER BOOK
PASSIVE ORDERS RENEWALS
RECENT PASSIVE ORDERS RENEWALS
FLEETING ORDERS
All of these tools follow the same logic as described in the previous tool. Users should utilize the parameters: Use, When, If and Value to determine whether to enable the tool, specify the situations (buy, sell, or both), and define the value conditions.
AGGRESSIVE ORDER’S SPEED AVERAGES
Total speed (longest avg): Uses the same method as the volume profile % tool. If enabled, it allows you to set a minimum, maximum, or equal value for the longest average total speed to filter trades.
Speed by buyers/sellers % (longest avg): Functions similarly to the all aggressive orders tool. It’s based on the composition of the longest average speed in percentage terms between buyers and sellers. You should use the parameters Use, When (quando), If, and Value to determine whether to enable it, under what conditions (buy, sell, or both), and with what value conditions.
Total speed (shortest avg): Utilizes the same method as the volume profile % tool. When enabled, it allows you to define a minimum, maximum, or equal value for the shortest average total speed to filter trades.
Speed by buyers/sellers % (shortest avg): Functions similarly to the all aggressive orders tool. It’s based on the composition of the shortest average speed in percentage terms between buyers and sellers. You should use the parameters Use, When, If, and Value to determine whether to enable it, under what conditions (buy, sell, or both), and with what value conditions.
Total speed longest avg Vs shortest avg: Allows you to compare the two speed averages and enable trading if one average is greater than the other. Use either “Shortest_avg_bigger_than_longest” or “Shortest_avg_smaller_than_longest”.
AGGRESSIVE ORDER’S VOLUME AVERAGES
PASSIVE ORDER’S RENEWALS SPEED AVERAGES
PASSIVE ORDER’S RENEWALS VOLUME AVERAGES
These three tools follow the same logic as the previously described tool, including having five “sub-tools” each. The only difference lies in the replacement of speed with volume in the tool related to aggressive orders and the substitution of aggressive orders with passive orders in the other two tools.
DISTRIBUTION OF PRICE VS STANDART DEVIATIONS
Similar to the “all aggressive orders” tool, with the replacement of the “When” parameter with the “Which one” parameter, allowing you to enable entries based on the filters “Above_or_below_2x_standart_deviation” (above or below two times the standard deviation), “Above_or_below_1x_standart_deviation” (above or below one time the standard deviation), and “Inside_1x_standart_deviation” (inside one time the standard deviation). If you choose the first option, the robot will operate when the values of “Above 2x StdD” or “Below 2x StdD” in the panel (item number 13 in the panel presentation image above) are true according to the “If” and “Value” parameters. If you choose the second option, the values of “Above 1x StdD” or “Below 1x StdD” will be considered, and in the third option, the value is “Between 1x StdD.”
GRAPHIC MOVING AVERAGE
The robot’s only element based on chart elements is a moving average that allows defining operations based on its direction and its relationship with the price.
Timeframe: Define the chart timeframe for the moving average.
Period: Set the number of bars used to calculate the average.
Shift: Specify the number of bars to shift the average forward or backward.
Method: Define the method, whether simple, exponential, etc.
Applied price: Specify which price to apply in the average calculation.
Use moving average direction: Set it to “No” to keep the tool disabled and “Yes” to enable it.
Direction: Use “Buy_or_Sell_same_slope_direction” to allow buying if the average is pointing up or selling if it’s pointing down. The robot takes into account the last two completed bars. Or use the option “Buy_or_Sell_contrary_slope_direction” to allow buying if the average is pointing down or selling if it’s pointing up.
Use moving average vs price: Set it to “No” to keep the tool disabled and “Yes” to enable it.
Position of price: Use “Buy_or_Sell_price_ahead_ma” to allow buying if the price is above the average or selling if the price is below. The robot considers the last completed bar. Or use the option “Buy_or_Sell_price_behind_ma” to allow buying if the price is below the average or selling if the price is above.
All open positions need to be closed at some point.
The Order Flow Analytics PRO allows closing positions in two ways: when certain conditions specified in risk management are met (maximum daily or per-trade gain or loss) or if the conditions established in the exit operation parameters are met.
The operation of the exit parameters is nearly identical to that of the entry parameters and uses the same tools, which can also be configured for cumulative or alternate use.
For example, if a long position is opened because the percentage of buy aggressions is above 50%, it’s possible to set a rule that establishes the exit of the operation if this percentage drops below 40%.
It is essential to understand that the robot cannot prevent users from enabling contradictory rules. In the same example, if the exit condition was also a percentage of buy aggressions above 50%, it would result in the continuous opening and closing of the position while the condition is true, likely causing losses due to slippage and the costs of each operation. It’s crucial to pay close attention to contradictory rules.
Another important point to clarify is that when we talk about closing operations, we are referring to the moment when there is an open long or short position. This is why the “When” parameter in the exit tools offers these three alternatives: “Long_position_and_buyers_or_Short_position_and_sellers,” “Buyers,” or “Sellers,” as shown in the image below.
In the example of the tool depicted in the image above, the first alternative is used to close a position when it’s a long position (buy) and the percentage of buy aggressive orders meets the conditions specified by the “If” and “Value” parameters, or if it’s a short position (sell) and the percentage of sell aggressive orders meets those parameters. The second option, “Buyers,” triggers closing based on the percentage of buy aggressive orders, regardless of whether the position is long or short. The third option considers sell aggressive orders without regard to the type of open position.
This reasoning applies to other tools and sub-tools that use the same parameters.
Similar behavior is observed in the tool for price distribution concerning standard deviations. If you select the options “Long_position_and_above_or_Short_position_and_below_2x_stdD” or “Long_position_and_above_or_Short_position_and_below_1x_stdD,” it considers values above the standard deviation for long positions and values below the standard deviation for short positions.
To put it more plainly, if the current position is a long (buy) position, the user can create a rule that triggers the closure of the operation when the percentage of price above one or two standard deviations reaches a certain level. For example, the user can define a long position if the percentage of price above 1x the standard deviation is greater than 50% and set the closure when this percentage drops below 10%. The same applies to short positions, with the logic inverted. It is also possible to select the option “Inside_1x_standard_deviation,” which concerns the percentage of price within the standard deviation, in which case it doesn’t matter whether the position is long or short.
Please note:
- The robot does not function in the strategy tester or in demo mode.
- The robot comes with the tool for entering operations based on the direction of the graphical moving average enabled by default; disable it if you do not wish to use it.
- The robot only operates in centralized markets, such as stocks, futures, options, etc., as it relies directly on information from the Times And Sales and the Order Book, which is why it will not work in the Forex market.
Comments are closed.