
DML EA ManualTrading
DML Manual Level Trading is a semi-automated trading assistant, designed for the MetaTrader platform. Its primary function is to simplify trading based on the price levels supplied by the DML.
Rather than manually placing pending orders, the user can "arm" a level of interest directly on the chart with just one click. From that point forward, the EA assumes complete control. It automatically opens positions when the price reaches an armed level, manages the order grid (including both grid and pyramid strategies), sets Stop Loss (SL) and Take Profit (TP) levels, and actively manages open positions (for instance, by moving the Stop Loss to Break-Even).

Main Startup Settings
- Trading ON on init: Determines whether the EA should start trading automatically when placed on the chart.
- `false` (default) acts as a safety measure. After a platform restart, the robot will manage existing orders but will not open new ones without manual activation.
- `true` will start trading immediately.
Important Note: When backtesting in the Strategy Tester, the Trading ON on init parameter must be set to TRUE. Otherwise, the tester will visualize the levels, but the robot will not open any positions.
Strategy Modes: Reaction vs. Target
Based on the code, `target` and `reaction` are not functions but two strategic modes a user can select for the Expert Advisor via the Staretgy_Mode
input parameter.
Reaction Mode (T_REACTION)
This mode is based on a "bounce trading" strategy from a designated price level (support or resistance). The EA waits for the price to touch a specific level and assumes a reversal will occur.
- For a BUY order: The EA opens a long position when the price drops and touches a defined support level, expecting the price to rise.
- For a SELL order: The EA opens a short position when the price rises and touches a defined resistance level, expecting the price to fall.
Analogy: Imagine a ball bouncing off the floor (support) or the ceiling (resistance). The `Reaction` mode acts at the exact moment of this contact.
Target Mode (T_TARGET)
This mode is based on a "return to level" strategy. The EA opens positions towards the indicated level - it can do this using either a grid strategy (against the price direction) or a pyramid strategy (with the price direction).
Analogy: Imagine a finish line. In this mode, after a DML level is indicated, the EA will "run" towards that "finish line."

Global Parameters
Basic configuration settings for the EA.
- Symbol Selection Mode: `Automatic` auto-detects the symbol from the chart. `Manual` allows you to enter the instrument name by hand.
- Manual Name For Symbol: A field to manually enter the symbol (e.g., `EURUSD`) when in `Manual` mode.
- Broker Server Time (GMT): Sets the time zone offset of your broker's server relative to GMT.
- Magic Number: A unique identifier. Each EA instance on your platform must have a different Magic Number to avoid conflicts.

Proximity Alerts
This feature notifies you when the price approaches a selected DML level.
- Proximity alerts: Enables or disables the alert functionality.
- Proximity activation distance (Points): Specifies the distance in points from the level that will trigger an alert.
- Popup Alerts: Enables pop-up notifications on the MT5 platform.
- Mobile Alerts: Enables push notifications to your MT5 mobile app.

Button Parameters
Settings for the on-chart control panel.
- Buttons Position: Selects the corner of the chart where the panel will be displayed.
- Helper Buttons: The panel includes additional function buttons:
- H (Hide): Toggles the visibility of all DML levels on the chart.
- E (Extend): Activates a mode to permanently extend level lines into the future.
- A (Alert): Activates a mode to permanently set proximity alerts on levels.
- Helper Buttons Position: This parameter determines where the helper buttons (H, E, A) will appear relative to the main level buttons (e.g., top, bottom, left, or right).
- Other Parameters: Allow for detailed customization of the panel's appearance, such as button size (`Button X/Y Size`), text color, font size, and spacing.

Level Parameters (Level 01 - 12)
The EA allows for the configuration of up to 12 independent slots for DML levels. To activate a slot, you must provide the level's name in the `DML Level Name` field.
- DML Level Name: The name of the DML level to be monitored (e.g., "Khaki").
- Min Level Move To Delete Trading: A safety parameter that cancels an armed setup if a new level of the same type appears on the market too far from the one that was activated for trading. If the price difference between the armed and the new level exceeds the specified value in points, the pending order will be deleted. This prevents opening a position at an outdated, historical level.

Strategy Parameters
Trading Direction: This parameter is a global filter for trade direction that works independently of the chosen strategy. It allows you to force the EA to open positions only in one specific direction.
- BUY_and_SELL: The EA opens both buy and sell positions.
- only_BUY: The EA will only open buy positions.
- only_SELL: The EA will only open sell positions.
Min Distance Between Setups: This parameter defines the minimum distance in points that must be maintained between a newly opened setup and any other already existing on the chart. This is a safeguard against opening too many order grids in close proximity, which could lead to an excessive concentration of risk.

Lot Size Management / Setup Parameters
Lot Size Mode
Choose the method by which the robot will calculate the trade volume.
- fixed: The simplest method. The EA will use the exact lot values you manually enter in the Position Size... fields.
- Lot_perBalance: Volume is calculated dynamically based on the account balance. In the Balance For Position field, you specify what amount of the balance corresponds to the base lot (e.g., 0.01).
- Risk_from_Balance / Equity / Amount: The most advanced modes. The EA will automatically calculate the position size for the entire grid so that if the Stop Loss is hit, the total loss will not exceed a set percentage of your capital (Resked Percent) or a specific amount (Risked Amount).
- Lot Difference: Determines whether subsequent positions in the grid have the same lot size (`same_for_all`) or if their size is a multiplier of the base position (`multiplier_for_baseLot`), which allows for Martingale-style strategies.
Entry and Calculation Settings
- Open Shift Mode: Decides how the distance for grid orders is measured:
- range_Multiplier (Recommended Mode): The distance is dynamic and depends on the distance between the strong and weak S/R levels.
- in_points: The distance is fixed, specified in points.
- First Order At Market: Determines if the first order is a pending (`false`) or market (`true`) order.
- Used Price Level For Shifts: Defines the reference point for calculating the distances of subsequent grid orders. It can be the original DML level (`level_price`) or the actual execution price of the first position (`first_order_price`).
- Used Spread [Points]: The spread value in points used by the EA for internal calculations, e.g., when placing orders. This is particularly important in the Strategy Tester to simulate real market conditions.

MMD Grid Orders Filter
This group of parameters is used to configure a trend filter based on the MMD methodology. Its purpose is to conditionally allow the opening of subsequent orders in a grid based on the analysis of moving average clouds. This filter applies to all positions in the Grid, beyond the value entered in the Open Pending Grid Number parameter.
- Use MMD Grid Orders Filter
The main on/off switch for the filter. Setting it to
true
activates filtering. Whenfalse
, subsequent grid orders will be opened based solely on the price levels defined in the grid parameters, without trend verification. - Fast MA Cloud Period
Defines the period for the fast moving average cloud. Based on this value, the EA creates a cloud consisting of a Simple Moving Average (SMA) and an Exponential Moving Average (EMA) of the same period. This cloud reacts more quickly to price changes.
- Slow MA Cloud Period
Defines the period for the slow moving average cloud. Similarly, it creates a cloud from an SMA and EMA with a longer, smoother period, which helps in identifying a more stable trend.
- Time Frame for MA Clouds
Defines the timeframe on which both moving average clouds are calculated. This allows the trend analysis to be based on a different timeframe than the one the Expert Advisor is running on.
How the filter works:
The MMD filter analyzes the relative position of the clouds.
- To open a subsequent BUY order from the Grid, the fast moving average cloud must be above the slow moving average cloud.
- To open a subsequent SELL order from the Grid, the fast moving average cloud must be below the slow moving average cloud.
If the condition is not met (e.g., the EA wants to open a BUY position, but the clouds indicate a downtrend), the order will not be opened, even if the price reaches its level from the Grid. The EA will wait for the moment the cloud configuration reverses and aligns with the direction of the grid being built.

Grid Setup Parameters
Open Pending Grid Number: This parameter manages how the Expert Advisor builds the grid of pending orders on the market.
- Description: It defines how many pending orders from the grid are placed on the market at one time. After an initial signal, the EA places exactly the number of pending orders defined in this parameter (e.g.,
2
). Subsequent orders from the grid are not added automatically after a previous one is activated. - Logic for Placing Subsequent Orders:
A new pending order from the sequence is placed only when the price reaches the level defined for that order in the grid parameters. This process, however, depends on the state of the MMD Grid filter:
- When the MMD filter is disabled (
Use MMD Grid Orders Filter
=false
): The EA will unconditionally place the next pending order as soon as the price touches its defined level in the grid. - When the MMD filter is enabled (
Use MMD Grid Orders Filter
=true
): For the EA to place the next pending order, two conditions must be met simultaneously:- The price must reach the level of that order as defined in the Grid.
- The direction indicated by the moving average clouds must be consistent with the order's direction.
- When the MMD filter is disabled (
A grid involves opening subsequent orders at predetermined intervals as the price moves against your initial position. The main goal is to average the entry price, which means a smaller price movement in the desired direction is needed to achieve profit or reach Break-Even.
Position Size Fixed/Multiplier 01 ... 10: Here you define the lot size for each of the up to 10 levels of the grid. If you only want to use 5 orders, leave the value 0.0 in fields 06 through 10.
Open Shift 01 ... 10: This is a crucial setting that determines where the pending orders will be placed. It works as follows:
- Open Shift 01: Defines the distance of the first order from the DML SkyBlue level. A value of 0 means the first order will be placed exactly on the level.
- Open Shift 02 to 10: Define the distance of subsequent orders from order #1. This is not the distance from the previous order, but from the first one.
Open Shift Mode: Decides how the distance for the Open Shift parameter is measured:
- range_Multiplier: The distance is dynamic and depends on the DML level's "range," which is the distance between the solid line (main level) and the dashed line (extended level).
- in_points: The distance is fixed and specified directly in points.

Pyramid Setup Parameters
Pyramiding is a strategy of adding more orders as the price moves in the direction of your open position that is already profitable. The goal is to maximize profit during a strong, one-directional market move.
Use Piramide Orders: The master switch (true/false) to enable or disable the entire pyramiding function.
Position Size Fixed/Multiplier 01 ... 10 (in the Piramide section): Works the same as in the grid—it specifies the lot size for each subsequent order added to a profitable position.
Open Shift 01 ... 10 (in the Piramide section): Defines how far from the initial order the next positions should be opened. Unlike the grid, these distances are calculated in the profitable direction.

TP & SL Management
Advanced options for managing Stop Loss and Take Profit orders, with the adaptive "range" playing a key role.
- TP Mode / SL Mode: Allows setting Take Profit and Stop Loss levels in points (`in_points`) or as a multiplier of the range (`range_Multiplier`).
- Use Move TP: Activates the dynamic Take Profit adjustment feature. You can define up to 4 conditions – after a specific position in the grid is opened, the common TP for all orders will be moved to a new, defined level.
- Move SL/BE: A dynamic function to move the Stop Loss (or to Break Even).
- Reference Price: The reference point for calculations can be the price of the first order or the DML level that generated the signal.
- Triggers & Shifts: You can set 4 thresholds. Each threshold consists of two values: the distance from the reference point that activates the change (Trigger), and the new level to which the SL will be moved (Shift).

Risk & Safety Functions
Additional modules to protect capital and secure profits.
- Safe Profit Function: A profit protection feature. It's activated after a specific position number is opened. When the price gets close to the TP by a defined distance, the function "arms" itself. If the price then retreats and reaches a second defined distance, the orders are closed.
- Operating Modes: It can close all positions in the setup, or only those that are currently in profit. In the second scenario, positions closed with a profit will be re-established as pending orders.
- Max Daily Loss: The maximum allowable daily loss in your account currency. Once reached, the robot stops opening new setups for that trading day.

Time & Session Filters
Time filters allow you to adapt the EA's operation to specific sessions or avoid undesirable market periods.
- Trading Time Parameters: Allows you to precisely define the days of the week and hours during which the robot is allowed to open new setups.
- Exclude Time Parameters: Lets you define a "time window" during which the robot will not open new orders (e.g., during spread widening at session rollovers). All previously opened setups will continue to be managed according to their logic.
- MMD Filter Parameters: A trade filter based on the MMD methodology (moving average clouds). It allows you to define two moving averages (SMA and EMA) from a selected timeframe. The robot will only open positions if the signal from the levels aligns with the direction indicated by the clouds, enabling strategies like trading with the higher-timeframe trend.

Download
To download the current version of DML EA, go to the Download section in your client panel.