EAsiTrader User Guide

Table of Contents

  1. Introduction
  2. EAsiTrader GUI
  3. The Primary Market and Secondary Markets
  4. Automated Trading with Manual Entry
  5. Manual Trading Mode
  6. Settings Tab
  7. Signals Tab
  8. Trades Tab
  9. Tester Tab
  10. Info Tab
  11. HotKeys Tab
  12. All EAsiTrader Settings
  13. EAsiTrader Preset Files
  14. Rules for Creating EAsiTrader Preset Files
  15. Statistic Metrics
  16. Leveraging Tester Statistics to Refine Your Strategy
  17. Terms
  18. Compliance

1. Introduction

EAsiTrader is an expert advisor for MetaTrader 5 that combines algorithmic trading with AI-powered decision-making. It provides a complete environment for creating, testing, optimising, and executing trading strategies — either manually through its built-in scripting language, or with the assistance of artificial intelligence.

At the heart of EAsiTrader is EAsiScript, a purpose-built scripting language with over 100 functions and 25 built-in indicators. Each strategy is captured in a preset file — a complete, portable configuration that defines every aspect of a trading system, from entry logic and risk parameters to exit rules and AI settings. Because strategies are defined through scripts and presets rather than hard-coded logic, a single EA installation can run an unlimited number of distinct strategies simply by loading different preset files. Preset files can be created manually, shared with other traders, or generated automatically by AI.

Main Features

AI-Powered Strategy Development

  • Use AI to generate complete trading strategies and preset files based on your requirements, eliminating the need for complex manual configuration.
  • Leverage AI to identify optimal parameter combinations and market conditions for your strategies.
  • Integrate AI-generated strategies with manual refinements for improved performance.

AI-Assisted Live Trading

  • Connect to external large language models (OpenAI, Anthropic, Google Gemini) via the NTL API to receive structured market assessments in real time.
  • Choose from four AI trading modes to suit your level of automation:
    • Monitor Only — the AI analyses the market and displays its assessment on the chart without affecting trades.
    • Filter Signals — your EAsiScript entry signals are checked against the AI’s assessment; trades that conflict with the AI’s view are filtered out or reduced in size.
    • Gated Trading — each trade signal is sent to the AI for individual evaluation before execution, with optional AI management of open positions.
    • Autonomous — the AI issues its own trade instructions (entries, exits, and modifications), validated and executed by the EA within your configured risk limits.
  • All AI output passes through local validation before it can affect trading — the AI advises, the EA decides.
  • Route different AI providers or models to different markets, and optionally use multi-provider consensus for higher-confidence assessments.

Automated Trading (EA Mode)

  • Automate trading strategies using EAsiScript scripts for single or multiple markets and timeframes, all managed from a single chart.
  • Define every aspect of your strategy through 15 customisable scripts covering entries, exits, stop losses, take profits, breakeven levels, trailing stops, lot sizing, and AI trigger conditions.
  • Access 25 built-in indicators, including 12 NTL proprietary indicators and 13 custom variations of popular tools, for advanced strategy development.
  • Add your own custom indicators for additional flexibility.

Risk Management

  • Control maximum loss thresholds as a percentage of balance or equity, with automatic position closure when limits are breached.
  • Define position sizing rules based on fixed risk percentage, fixed lots, or dynamic calculation through EAsiScript.
  • Configure trailing stops, breakeven triggers, and exit strategies to adaptively manage trades.
  • Set trading time windows, maximum concurrent positions, and daily trade limits to enforce disciplined execution.

Strategy Simulation (Tester)

  • Test trading strategies across one or more markets using historical data.
  • Review simulation results through detailed trade lists, equity curve graphs, and a comprehensive suite of statistical metrics including profit factor, drawdown, Sharpe ratio, consistency score, and a composite performance index.
  • Use the Ask AI feature to have an AI model analyse your test results and suggest improvements.

Optimisation Tools

  • Optimise trading strategies by defining user variables and running the Optimiser to find the best settings for your chosen metrics.
  • Select up to two target metrics and apply filters to exclude underperforming configurations.
  • Schedule automated optimisation runs at convenient times, such as weekends.

Funded Account Compliance

  • Monitor your progress against funded account rules (FTMO, The Funded Trader, MyForexFunds, and similar programmes) in real time.
  • Track profit targets, overall loss limits, daily loss limits, intraday drawdown, and minimum trading day requirements directly within the EA.
  • Combine compliance monitoring with automated risk controls for layered protection.

Trade History and Performance

  • Access a detailed trade history, including positions, deals, and orders, filtered by date and symbol.
  • Analyse past performance through equity curves and statistical summaries of historical trades.

Manual Trading

  • Execute trades manually using Stop Loss (SL) and Take Profit (TP) values set directly on EAsiTrader’s visual trade lines.
  • Drag SL and TP lines vertically on the chart to instantly update profit, loss, and risk calculations in currency, pips, account percentage, and risk-reward ratio.
  • Use the Breakeven line to automatically move trades to breakeven when conditions are met.

Alerts

  • Receive Telegram notifications for trade events, signals, and AI assessments to stay informed without needing to watch the chart.

System Information

  • Retrieve comprehensive system data, including broker details, price history, account information, symbol properties, and terminal settings.

Multiple Versions

  • EAsiTrader.ex5: Includes a graphical user interface (GUI) for intuitive and interactive trading.
  • EAsiTraderLite.ex5: A streamlined version without a GUI, optimised for systems with limited memory (<16GB) or when trading across many markets.

Both versions support manual and automated trading modes, providing flexibility to suit different trading styles and system requirements.

Visit NorthenTradingLabs.com to access a community of traders sharing AI-generated and manually crafted trading strategies, and to explore the full potential of AI-powered trading with EAsiTrader.


2. EAsiTrader GUI

The EAsiTrader GUI is a custom-built interface designed to simplify and enhance the trading experience. It features six primary tabs: Settings, Signals, Trades, Tester, Info, and HotKeys. These tabs provide intuitive controls for managing profiles, configuring EA settings and scripts, monitoring signals and trades, testing strategies, accessing system information, and utilising keyboard shortcuts.

Profiles

The Current Profile dropdown lists all profile files stored in the MQL5\Files\EAsiTrader folder. The profile currently in use is specified by the EA’s “Settings File” input and is marked with an asterisk (*). To switch profiles and load its settings, select the desired profile from the list.

Below the profile dropdown is a Tree View that displays all the settings for the selected profile. You can edit individual setting values directly within this view.

Markets

The Current Market dropdown, located directly below the Current Profile dropdown, lists all markets associated with the selected profile. Each market corresponds to a unique symbol and timeframe combination, with the Primary Market being the one matching the current chart’s symbol and timeframe. All other markets are considered Secondary Markets. A profile cannot contain duplicate markets with the same symbol and timeframe.

Status Bar

At the bottom edge of the GUI is the Status Bar which provides real-time updates on key metrics:

  • Balance — current account balance.
  • Profit — unrealised profit from open positions.
  • Positions — number of currently open positions.
  • Live Markets — count of markets enabled for live trading, shown as ON, OFF, or DISABLED depending on the auto-trade state.
  • Account Type — displays whether the account is Demo, Real, or Contest.

The status is refreshed every two seconds, ensuring you stay informed during live trading sessions.

Text Editing

To avoid conflicts with the main chart, the Del key is disabled when editing text in text boxes. Please use the Backspace key instead.

Known Issues

Occasionally, tables accessed through the Tree View control may become unresponsive. In such cases, clicking the tree view item again typically resolves the issue.

In some high screen resolutions, the expand/collapse symbol in the Tree View control appears to be unresponsive when clicked. Clicking near the top-left of the symbol should resolve the issue.


3. The Primary Market and Secondary Markets

EAsiTrader is a multi-market capable EA, meaning it can trade not just with the chart’s symbol and timeframe (the Primary Market) but also with other symbols and timeframes (Secondary Markets) simultaneously. However, there are important differences in how EAsiTrader handles the processing of the primary market compared to secondary markets, and these differences could impact trade performance.

Primary Market Processing

The primary market receives symbol updates via the OnTick() event, which is triggered every time the broker sends a price or volume update. The frequency of these updates, or “ticks,” varies based on market activity and could occur multiple times per second. EAsiTrader processes all OnTick() events for the primary market and captures every tick for the symbol, subject to the Refresh Mode setting.

If Refresh Mode is set to Every Tick, EAsiTrader processes logic for every tick received. If set to Every Bar, it processes only the first tick of a new bar for evaluating new trades, reducing computational overhead. However, for open positions, EAsiTrader will still process all ticks to ensure accurate position management and updates.

This ensures that strategies for the primary market can respond to price changes with minimal latency, making it suitable for time-sensitive strategies.

Secondary Market Processing

Secondary markets do not receive OnTick() events for their symbols. Instead, they are processed via the OnTimer() event, which runs at a frequency of once per second. This introduces a potential delay of up to 1 second or more in processing price updates for secondary markets.

Unlike OnTick(), which only processes updates for a single symbol, OnTimer() processes every symbol defined as a secondary market in EAsiTrader. While there is no hard limit on the number of secondary markets that can be added, performance may degrade as the number of markets increases. EAsiTrader’s ability to handle multiple markets depends on factors such as available system resources and the complexity of the strategy logic defined in the scripts.

Excessive secondary markets can lead to delays in processing updates, skipped symbols, or missed trading opportunities due to resource constraints or computational limits.

Recommendations

For strategies requiring sub-1-second accuracy, such as scalping, it is recommended to use the target symbol as the primary market. Scalping relies on fast and precise execution, which is best achieved when processing every tick through the primary market.

Secondary markets are ideal for strategies that can tolerate up to a one-second delay in processing and operate independently of the primary market. These markets are well-suited for less time-critical approaches, allowing EAsiTrader to handle multiple independent symbols effectively.

Chart Data Loading

When selecting a new chart symbol or timeframe, or when the Tester requests historical data, EAsiTrader may freeze for several minutes while displaying “Requesting Price History for…” in the top-left corner of the chart.

During this loading period, the EA cannot process any market updates, which means all trade management functions (stop losses, take profits, trailing stops, etc.) are suspended. This creates significant risk for any open positions.

To minimize this risk:

  • Avoid changing charts during active trading.
  • Load new markets during non-trading hours.
  • Consider using separate terminals for testing and live trading.

The loading duration varies based on the amount of historical data, number of markets, system resources, and network speed. The EA automatically resumes normal operation once loading completes.

Startup Synchronisation

When the EA starts — whether for the first time, after a terminal restart, or after a crash — EAsiTrader automatically scans the broker for any existing open positions and pending orders. It cross-references these against its internal levels log file to identify which positions were originally opened by this EA instance, matching by magic number and market.

Matching positions are restored to full management, including their SL, TP, breakeven levels, and trailing stop state. This ensures that if your terminal disconnects or the EA is reloaded, all previously managed positions resume automated management without manual intervention.

Note: Positions that were not opened by EAsiTrader (e.g., manually placed trades or trades from other EAs) are ignored during synchronisation. Only positions whose magic number matches the EA’s configured value are restored.


4. Automated Trading with Manual Entry

EAsiTrader allows you to automate the management of trades entered manually by leveraging its advanced scripts for stop loss, take profit, breakeven, and exit conditions. This hybrid approach provides the flexibility of manual trade entry combined with the precision of automated trade management.

To enable this feature:

  1. Leave the Long Entry and Short Entry scripts empty.
  2. Configure the remaining scripts (e.g., SL, TP, Breakeven, Exit) as required to manage the trade.
  3. Enable setting Auto Trade Enable.
  4. Tick the “Live” checkbox in the Markets Table for the symbol corresponding to the chart symbol.
  5. Click button Apply in the Settings tab — the EAsiTrader window bar should turn red.

After entering a trade manually (as described in Manual Trading Mode), the EA will automatically apply the defined scripts to manage the trade according to your settings. This allows you to focus on market conditions while the EA handles risk management and exit strategies.


5. Manual Trading Mode

In manual trading mode, you can switch between four order types using the following keyboard shortcuts:

  • Ctrl-Shift-M: Market Order
  • Ctrl-Shift-S: Stop Order
  • Ctrl-Shift-L: Limit Order
  • Ctrl-Shift-P: Stop Limit Order

By default, Market Orders are selected. The order type (Buy or Sell) is determined by the trend of the latest bar when the order lines appear on the chart. Pressing the shortcut key toggles the visibility of the order line along with the associated SL, TP, and Breakeven lines.

Dragging SL, TP and Breakeven Lines

To prevent line dragging interfering with the GUI, the lines can only be dragged when they are in a selected state. A line is in the selected state when a small square appears at each end of the line. Double clicking a line changes its selected state. Minimising the EAsiTrader window automatically puts the lines in the selected state, whilst opening the window puts the lines in the unselected state.

Market Orders (Ctrl-Shift-M)

  • Displays “Buy” if the SL line is below the current ask price or “Sell” if the SL line is above the current bid price.
  • Dragging the SL line above or below the price dynamically switches between Buy and Sell orders.

Stop Orders (Ctrl-Shift-S)

  • Displays “Buy Stop” when the line is above the current ask price or “Sell Stop” when it is below the current bid price.
  • Adjusting the line by dragging it changes the order type accordingly.

Limit Orders (Ctrl-Shift-L)

  • Displays “Buy Limit” when the line is below the current ask price or “Sell Limit” when it is above the current bid price.
  • Dragging the line switches the order type dynamically.

Stop Limit Orders (Ctrl-Shift-P)

  • Displays both “Buy Stop” and “Buy Limit” when the stop line is above the current ask price, or “Sell Stop” and “Sell Limit” when the stop line is below the current bid price.
  • Adjusting the stop line dynamically updates the order type.

OCO (One-Cancels-Other) Orders

When both a long and short entry script fire simultaneously and both result in pending orders (i.e., stop or limit orders, not market orders), EAsiTrader automatically pairs them as an OCO (One-Cancels-Other) pair. When one order in the pair is filled, the other is automatically cancelled.

This behaviour is automatic and requires no additional configuration. It applies only when both signals produce pending orders on the same bar — simultaneous market buy and sell orders are rejected to prevent conflicting positions.

Note: OCO pairing is determined at the time both entry signals fire. If only one signal produces a pending order while the other produces a market order (or no signal), OCO pairing does not apply.

Managing SL, TP and Breakeven

  • SL, TP, and Breakeven lines appear at calculated price values based on the settings defined in the Settings tab.
  • Dragging the SL line adjusts the TP, Breakeven, and lot size automatically, ensuring real-time updates to profit and loss values.
  • To lock a TP or Breakeven line at a specific price, drag it to the desired level. Adjusting the SL line afterward will not affect the locked position.

Entering Trades

  • Place a trade by clicking the order line or its label, or by using the shortcut Ctrl-Shift-X.
  • Once placed, live trades display current profit values. Pending orders will show zero profit until executed.

To manage trade visibility:

  • Ctrl-Shift-T: Toggle the visibility of live trade details.
  • Ctrl-Shift-Up Arrow: Cycle profit display between money, pips, points, and account percentage.
  • Ctrl-Shift-Down Arrow: Switch between multiple open trades.

Exiting Trades

  • Close a visible trade by clicking the order line, its label, or by pressing Ctrl-Shift-C.
  • To close all open trades and pending orders, use Ctrl-Shift-Q.

Modifying Open Trades

  • Drag the SL, TP, or Breakeven lines to update their values for an open trade dynamically.

6. Settings Tab

The Settings Tab organizes all configuration options for EAsiTrader, allowing you to customize and manage trading settings efficiently. All settings are saved in custom .set preset files, located in the MQL5\Files\EAsiTrader folder. Each configuration consists of a common settings file, which applies to all markets, and individual market settings files for specific symbol and timeframe combinations. When adding the EA to a chart, the “Settings File” input specifies the common settings file to use. Market-specific settings are stored in subfolders named after the common settings file, without the .set extension. For example, if the common settings file is Defaults.set, the market settings files are stored in Defaults\<Market>.set, where <Market> includes the symbol and timeframe, such as EURUSD_H1.set.

Buttons

  • Save: Save changes made to the current profile’s .set files. Any market-specific settings (i.e. Overrides) are automatically saved in the profile’s sub-folder.

  • Delete: Remove the selected profile and all associated files.

  • Apply: Apply changes to the settings of the current profile. To trade live markets ensure:

    1. The setting Auto Trade Enable is enabled.
    2. There is at least one market in the Markets Table enabled for live trading.
    3. Algo Trading is enabled on your Terminal. On your terminal go to Tools → Options → Expert Advisors → Allow algorithmic trading.
    4. Algo Trading is enabled for the EA. On your terminal, Toolbar → Algo Trading (CTRL+E).
    5. Live Trading is enabled in your Broker’s account.

    When live trading is enabled the window bar will have a red background.

  • Reset: Reset the current profile to its default settings, removing all market-specific configurations. After a reset, only the current chart’s symbol and timeframe are retained.

Note: EAsiTrader maintains two copies of the Current Profile — a Live copy and a Working copy. Changes made to the Working copy do not affect the Live copy until the Apply button is clicked, when the Live copy is overwritten with the Working copy.

Tree View

The left half of the Settings Tab contains the Tree View that displays all the settings for the selected profile. You can edit individual setting values directly within this view. Each setting reflects one InpTradeTool_ setting in the profile’s .set file. The preset file is updated when the profile is saved.

The right half of the Settings Tab displays the value or values for the selected item in the Tree View.

Override Setting

Enable the Override Setting checkbox to apply a specific setting only to the currently selected market. To override, check the box and then update the setting’s value, in that order. Market override settings are stored in their own .set file, in a sub-folder of the main profile.


6.1 Markets Table

This item displays the Markets Table which shows all markets in the current profile, along with three checkboxes for managing their behavior:

  • Tester: Include the market in Tester runs.
  • Alerts: Enable signal alerts and mobile notifications for the market when new signals are generated. Signal data is also logged in the signals.sig file for the profile, viewable under EAsiTrader → Signals.
  • Live: Enable the market for live trading.

Buttons

  • Add: Add a new market to the current profile. A new preset file, named from the symbol and timeframe, is automatically added to the profile’s sub-folder. The name of the sub-folder is the profile’s name less the file’s extension.
  • Del: Remove the selected market from the profile.
  • Swap: Replace the primary market with the selected market.
  • Reset: Clear all market-specific settings for the selected market. If no market is selected, all market-specific settings for the profile are cleared, but the .set files remain intact.

6.2 Scripts

This section contains the settings for all 15 EAsiScript scripts: 7 for long trades, 7 for short trades, and 1 AI trigger script. See the EAsiScript User Guide for a detailed guide on EAsiScript.

The AI Trigger Script (InpTradeTool_ScriptAITrigger) is an optional gating script that controls when AI requests are submitted. When defined, the AI system evaluates this script before sending a request to the AI provider. If the script returns a non-zero value, the AI request proceeds; if it returns zero, the request is suppressed. This allows you to limit AI calls to specific market conditions (e.g., only during trending markets or when volatility exceeds a threshold), helping manage API costs and reduce noise from low-quality signals. Leave empty to allow AI requests at every scheduled interval.

Buttons

  • Run Script: Use this button to run the script and display the result.

6.3 Risk Management

% Risk

InpTradeTool_MaxRiskPerTradeInPercent · Default: 1.00

The % Risk setting defines the maximum allowable risk per trade as a percentage of the account equity. This value represents the largest potential loss, including slippage, that a trader is willing to accept on a single trade.

In manual trading mode, the risk is displayed on the SL line of the chart, expressed in currency, pips, percentage of account, and risk-reward ratio. Adjusting the risk level automatically updates the calculated position size, which is capped by the broker’s maximum position size (found under Info → Symbol → Volume Max) and the trader’s own limit (set under Settings → Risk → Lots).

If set to 0, this setting is ignored.

$ Risk

InpTradeTool_MaxRiskPerTradeInMoney · Default: 0.00

The $ Risk setting specifies the maximum risk per trade in terms of the account’s base currency. If both % Risk and $ Risk are defined, the EA uses the smaller of the two calculated values when determining position size.

This setting provides an additional layer of control for traders who prefer to set an absolute monetary limit on risk. If set to 0, this setting is ignored.

Trail Max Loss

InpTradeTool_TrailMaxLoss · Default: false

The Trail Max Loss setting dynamically adjusts the equity threshold for closing trades as profits increase. It works in conjunction with Max Loss % → Each Market to ensure that as the account’s equity for the market’s open positions grows, the maximum allowable loss is recalculated based on the specified percentage.

This setting helps protect accumulated profits by trailing the loss limit upward, providing a balance between locking in gains and allowing trades to continue running.

Deviation

InpTradeTool_DeviationInPoints · Default: 0

The Deviation setting defines the maximum allowable price difference (in points) between the current market price and the order execution price for market execution orders. If the price difference exceeds the specified deviation, the order will not be executed.

This setting helps traders control slippage during order placement. A value of 0 disables the deviation check, allowing orders to execute at any available price.

6.3.1 Max Loss %

Each Market

InpTradeTool_MaxLossMarketAsPercentageOfBalance · Default: 0.00

This setting automatically closes all open positions and pending orders for the current market when the account balance decreases by the specified percentage compared to the balance before any positions were opened for that market. If zero this setting is ignored.

All Markets

InpTradeTool_MaxLossAccountAsPercentageOfBalance · Default: 0.00

This setting automatically closes all open positions and pending orders across all markets when the account balance decreases by the specified percentage compared to the balance before any positions were opened for any market. If zero this setting is ignored.


6.4 Position Management

Lots

InpTradeTool_MaxLots · Default: 0.00

The Lots setting defines the maximum position size (in lots) allowed per trade. While the EA automatically calculates the position size based on risk, stop size, and available margin, this setting ensures trades do not exceed the specified limit.

The calculated position size is also subject to the broker’s maximum lot size, which can be found under Info → Symbol → Volume Max. If set to 0, this setting is ignored.

In manual trading mode, the position size is displayed on the live price line of the chart.

Magic Number

InpTradeTool_MagicNumber · Default: 123456789

The Magic Number is a unique identifier (a ULONG value) assigned to every trade executed by the EA. This number helps distinguish trades taken by EAsiTrader from those placed manually or by other EAs.

Traders can use the Magic Number to track and analyze specific trades or strategies.

6.4.1 Max Positions

Each Market

InpTradeTool_MaxOpenPositionsMarket · Default: 1

Specifies the maximum number of open positions allowed for each market individually. This limit can be overridden for specific markets. Zero means ignore this setting.

All Markets Same Symbol

InpTradeTool_MaxOpenPositionsSymbol · Default: 0

Sets a maximum limit for open positions across all markets with the same symbol. This setting cannot be overridden. Zero means ignore this setting.

All Markets Any Symbol

InpTradeTool_MaxOpenPositionsAccount · Default: 0

Sets a global limit for open positions across all markets, regardless of symbol. This setting cannot be overridden. Zero means ignore this setting.

Per Hour

InpTradeTool_MaxOpenPositionsHour · Default: 0

Defines the maximum number of positions that can be opened in the same hour for the current market. For example, if this setting is set to 1 and a trade was opened at 11:01, then another trade could not be opened until 12:00 the same day. Zero means ignore this setting.

Per Day

InpTradeTool_MaxOpenPositionsDay · Default: 0

Defines the maximum number of positions that can be opened in the same day for the current market. For example, if this setting is set to 1 and a trade was opened on Monday, then another trade could not be opened until 00:00 the next day. Zero means ignore this setting.

Per Week

InpTradeTool_MaxOpenPositionsWeek · Default: 0

Defines the maximum number of positions that can be opened in the same week for the current market. For example, if this setting is set to 1 and a trade was opened on Monday, then another trade could not be opened until 00:00 the following Sunday morning. Zero means ignore this setting. The first day of the week is Sunday.

6.4.2 Open Rate

Maximum Number

InpTradeTool_MaxTradesPerUnitTime · Default: 0

Defines the maximum number of positions that can be opened within the specified time period. Zero means ignore this setting.

Minimum Time

InpTradeTool_MaxTradesUnitTimeInSeconds · Default: 0

Sets the minimum period of time (in seconds) within which the maximum number of positions can be opened. Zero means ignore this setting.

Minimum Interval

InpTradeTool_MinTradeIntervalInSeconds · Default: 0

Specifies the minimum time (in seconds) required between opening consecutive positions. Zero means ignore this setting.


6.5 Trading Rules

Enable Auto Trading

InpTradeTool_AutoTradeEnabled · Default: true

This setting determines whether the EA will automate trading for markets with the Live or Alerts checkboxes enabled — see Markets Table. When disabled, the EA will not perform any automated trading actions.

Refresh Mode

InpTradeTool_AutoTradeRefreshMode · Default: 1 (Every Bar)

The Refresh Mode setting controls how frequently trade entry scripts are executed:

  • Every Bar (1): Scripts run whenever a new bar is formed for the market’s symbol.
  • Every Tick (0): Scripts run every time a new price tick is received. For secondary markets, this is managed by the OnTimer event with a resolution of 1 second.

The default and recommended setting is Every Bar, as it ensures efficient operation and avoids potential performance issues. Use Every Tick only for strategies that require tick-level precision, such as scalping.

Allowed Trade Types

InpTradeTool_AllowedTradeTypes · Default: 0 (Buys & Sells)

This setting defines the types of trades the EA is allowed to execute when running entry scripts:

  • Buys & Sells (0): Enables both buy and sell trades, provided valid Long Entry and Short Entry scripts exist.
  • Buys Only (1): Limits trades to buy positions if a Long Entry script is defined.
  • Sells Only (2): Limits trades to sell positions if a Short Entry script is defined.

6.6 Time Management

6.6.1 Trading Hours

Start Time

InpTradeTool_StartOfDayTime · Default: 00:00

Sets the earliest time of day (in “hh:mm” format) when the EA can open a trade, subject to the symbol’s session trading hours.

End Time

InpTradeTool_EndOfDayTime · Default: 00:00

Sets the latest time of day (in “hh:mm” format) when the EA can open a trade. Trades cannot be opened after this time, subject to the symbol’s session trading hours. When Start Time is equal to End Time these settings are ignored.

6.6.2 Session Close — Positions

At End of Day

InpTradeTool_ClosePositionAtEndOfDay · Default: false

Enabling this setting ensures that any open positions are automatically closed by the end of the last trading session of the day. This helps limit exposure to overnight market risks.

At End of Week

InpTradeTool_ClosePositionAtEndOfWeek · Default: false

Enabling this setting ensures that any open positions are automatically closed by the end of the last trading session of the week, reducing exposure to weekend market gaps.

Time Offset

InpTradeTool_ClosePositionTimeOffsetInSeconds · Default: 0

This setting allows you to specify a time offset (in seconds) relative to the end of the trading session for closing open positions. It applies when either Close Open Positions At End of Day or Close Open Positions At End of Week is enabled.

6.6.3 Session Close — Orders

At End of Day

InpTradeTool_CloseOrderAtEndOfDay · Default: false

Enable this setting to automatically close any pending orders by the end of the last trading session of the day. This helps manage risk by ensuring no orders remain active overnight.

At End of Week

InpTradeTool_CloseOrderAtEndOfWeek · Default: false

Enable this setting to automatically close any pending orders by the end of the last trading session of the week, reducing exposure to weekend market uncertainties.

Time Offset

InpTradeTool_CloseOrderTimeOffsetInSeconds · Default: 0

This setting specifies a time offset (in seconds) from the end of the trading session for closing pending orders. It works in conjunction with Close Open Orders At End of Day and Close Open Orders At End of Week settings.


6.7 Stop Management

Initial SL

InpTradeTool_InitialStopValue · Default: 3.00

The SL (Stop Loss) setting defines the initial stop loss value for trades, ensuring a predefined limit on potential losses. It applies to both manual and automated trading when no Initial Stop or Trailing Stop script is defined. Zero means ignore this setting.

  • Manual Trading: The SL price is shown as the SL line on the chart, and its value can be adjusted by dragging the line.
  • Automated Trading: The EA calculates the initial SL value using the following priority:
    1. Initial Stop Script (if defined).
    2. Trailing Stop Script (if no Initial Stop Script is defined).
    3. This SL Setting (if no scripts are defined).

SL Units

InpTradeTool_InitialStopValueUnits · Default: 0 (ATR)

  • ATR (0): The SL size is calculated by multiplying the specified value by the 14-period ATR (Average True Range) of the last closed bar.
  • HH/LL Bars (1): The SL price is set to the highest high (for sells) or lowest low (for buys) over the specified number of bars, starting from the last closed bar.
  • Points (2): The SL size is measured in points from the entry price.

Soft SL

InpTradeTool_UseSoftSLs · Default: false

The Soft SL (Stop Loss) setting replaces the broker-set hard SL with an EA-monitored stop loss. When enabled, EAsiTrader monitors the price in real time and closes the trade when the soft SL level is reached.

Unlike a hard SL, which is managed by the broker, the soft SL requires EAsiTrader to remain running to execute the stop loss. This can provide greater flexibility but requires constant EA operation.

Min Stop Move

InpTradeTool_MinSLTPPriceChangeUnitsInPoints · Default: 10

The Min Stop Move setting defines the smallest allowable adjustment to Stop Loss (SL), Take Profit (TP), or Breakeven (BE) values. If an update is smaller than this specified value, the EA will ignore it. If zero this setting is ignored.

This setting helps prevent constant, minor updates to these values, particularly in volatile or trending markets, ensuring smoother trade management.

6.7.1 Trailing Stop

Trailing Stop Value

InpTradeTool_TrailingStopValue · Default: 0.00

The Trailing SL (Stop Loss) setting enables dynamic adjustment of the stop loss as a trade moves into profit. It applies to both manual and automated trading when no Trailing Stop Script is defined. This feature helps lock in gains and minimize potential losses.

  • Manual Trading: The trailing stop adjusts the SL line on the chart based on price movement.
  • Automated Trading: The EA uses the Trailing Stop Script if defined; otherwise, this setting is applied.

If this setting is enabled and set to 0, the EA defaults to the initial stop loss value (SL) as the trailing stop.

Units

InpTradeTool_TrailingStopValueUnits · Default: 0 (ATR)

  • ATR (0): The trailing stop distance is calculated by multiplying the specified value by the 14-period ATR (Average True Range) of the last closed bar.
  • HH/LL Bars (1): The trailing stop price is set to the highest high (for sells) or lowest low (for buys) over the specified number of bars, starting from the last closed bar.
  • Points (2): The trailing stop distance is measured in points from the current price.
  • Risk (3): The trailing stop distance is calculated as the specified value multiplied by the size of the initial SL (the difference between the entry price and the initial SL price).

Enable

InpTradeTool_TrailingStopValueEnabled · Default: false

Enables or disables the Trailing SL setting.

Enable TS After BE

InpTradeTool_EnableTrailingStopAfterBreakeven · Default: true

The Enable TS After BE setting ensures that the trailing stop loss (TS) becomes active only after the position’s Stop Loss (SL) has been adjusted to the breakeven (BE) level. This feature allows the trade to reach a risk-free state before the trailing stop begins to lock in additional profits.

Enable TS After Profit In Percent

InpTradeTool_EnableTrailingStopAfterProfitInPercent · Default: 0.0000

The Enable TS After Profit In Percent setting ensures that the trailing stop loss (TS) becomes active only after the position has made the specified profit as a percentage of the account’s equity when the position was opened. Zero means ignore this setting.


6.8 Exit Management

The Exit Management settings allow you to define conditions for automatically closing trades that do not meet specific performance criteria. This ensures trades are managed effectively, even under unfavorable conditions.

  • If a trade fails to achieve a specified number of points within a set timeframe, it can be automatically closed.
  • Additional options enable closing trades or orders based on profit or loss thresholds, account performance, or specific times of day or week.

6.8.1 Take Profit

Take Profit Value

InpTradeTool_TakeProfitStopValue · Default: 2.00

The Take Profit setting defines the target profit level for trades. It applies to both manual and automated trading when no TP Script is defined.

  • Manual Trading: The TP price is shown as the TP line on the chart and can be adjusted by dragging it.
  • Automated Trading: The EA uses the TP Script if defined; otherwise, this setting determines the take profit level.

Traders can disable this setting by setting its value to 0, which removes the TP for trades.

Units

InpTradeTool_TakeProfitStopValueUnits · Default: 3 (Risk)

  • ATR (0): The TP distance is calculated by multiplying the specified value by the 14-period ATR (Average True Range) of the last closed bar.
  • HH/LL Bars (1): The TP price is set to the highest high (for buys) or lowest low (for sells) over the specified number of bars, starting from the last closed bar.
  • Points (2): The TP distance is measured in points from the entry price.
  • Risk (3): The TP distance is calculated as the specified value multiplied by the size of the SL (the difference between the entry price and the initial SL price).

Enable

InpTradeTool_TakeProfitStopValueEnabled · Default: true

Enables or disables the Take Profit setting.

Soft TP

InpTradeTool_UseSoftTPs · Default: false

The Soft TP (Take Profit) setting allows the EA to monitor and close trades when the specified take profit level is reached, instead of relying on a broker-set hard TP. This provides flexibility in trade management but requires EAsiTrader to remain running to execute the soft TP.

6.8.2 Breakeven

Breakeven Value

InpTradeTool_BreakevenStopValue · Default: 1.00

The Breakeven (BE) setting moves a trade’s Stop Loss (SL) to the entry price once the market price reaches the specified breakeven trigger price. This feature helps eliminate risk by ensuring the trade can no longer incur a loss, subject to slippage. If zero this setting is ignored.

  • Manual Trading: The breakeven trigger price is displayed as the BE line on the chart for the primary market.
  • Automated Trading: The EA applies the Breakeven Script, if defined. Otherwise, it uses this setting to determine the breakeven value.

BE Units

InpTradeTool_BreakevenStopValueUnits · Default: 3 (Risk)

  • ATR (0): The breakeven distance is calculated as the specified value multiplied by the 14-period ATR (Average True Range) of the last closed bar.
  • HH/LL Bars (1): The BE price is set to the highest high (for buys) or lowest low (for sells) over the specified number of bars, starting from the last closed bar.
  • Points (2): The breakeven distance is measured in points from the entry price.
  • Risk (3): The breakeven distance is calculated as the specified value multiplied by the size of the initial SL (the difference between the entry price and the SL price).

Enable

InpTradeTool_BreakevenStopValueEnabled · Default: true

Enables or disables the Breakeven setting.

6.8.3 Max Gain %

Each Market

InpTradeTool_MaxGainMarketAsPercentageOfBalance · Default: 0.00

This setting automatically closes all open positions for the current market when the account balance increases by the specified percentage compared to the balance before any positions were opened for that market. If zero this setting is ignored.

All Markets

InpTradeTool_MaxGainAccountAsPercentageOfBalance · Default: 0.00

This setting automatically closes all open positions across all markets when the account balance increases by the specified percentage compared to the balance before any positions were opened for any market. If zero this setting is ignored.

6.8.4 Min Points

Min Points Gain

InpTradeTool_MinProfitInPoints · Default: 0

Use this setting together with Min Points Time to close a position if it hasn’t made the minimum number of points in the specified period of time. This setting specifies the minimum number of points that must be made by a position within the specified period of time. If zero this setting is ignored.

Min Points Time

InpTradeTool_MinProfitInPointsTimeInSeconds · Default: 0

Use this setting together with Min Points Gain to close a position if it hasn’t made the minimum number of points in a specific period of time. This setting specifies the minimum period of time in seconds within which the specified minimum profit in points must be achieved. If zero this setting is ignored.


6.9 Indicators

The Indicators List allows you to manage the indicators used within your EAsiScript configurations. You can customize indicator settings and define which data buffers are accessible for use in your scripts.

Each indicator in the Indicators List is mapped in the Presets File to a InpTradeTool_CustomIndicator setting by number. The first indicator in the Indicators List will have the setting InpTradeTool_CustomIndicator0 and the second will have InpTradeTool_CustomIndicator1, and so on.

Buttons

  • Edit: Modify the indicator’s creation string and specify the buffer numbers to be made available to your scripts. Note that for chart indicators, only the buffer numbers can be edited; the creation string cannot be changed. Select the indicator you want to edit before clicking Edit.
  • Add: Add a new custom indicator to the current profile.
  • Del: Remove a custom indicator from the Indicators List. Select the indicator you want to delete before clicking Del.

Note: Indicators must be enabled before they can be used in scripts or exported to the AI. Only enabled indicators contribute grounded events and raw buffer data to AI requests. In the GUI, tick the checkbox alongside the indicator’s name to enable it. In a preset file, prefix the indicator’s creation string with + (e.g. +NTL\MA(1,14,0).ex5,0).


6.10 UserVARs

InpTradeTool_UserVAR[n]=[current value];[comma separated set of values]
Where [n] = variable number, 0–99.

This control allows you to create, edit and delete your scripts’ user variables, VAR0–VAR99. See the EAsiScript User Guide for details on User Variables.

Controls:

  • Vars: Shows the currently selected UserVAR.
  • +: Creates a new UserVAR.
  • -: Removes the currently selected UserVAR.
  • Value: The currently selected UserVAR’s current value.
  • Values: The currently selected UserVAR’s set of values. The set of values can be entered one by one separated with a comma, or entered in short form by entering [start]-[end]+[increment], e.g. 10,15,20,25,30 or 10-30+5. The short form will be automatically converted to long form when the focus is removed from the control.
  • Disable Range: A checkbox directly below the Values box. When ticked, the optimiser/tester will ignore the range and use only the current value for the UserVAR. The range of values remains stored in the preset file, so it can easily be re-enabled later. This is particularly useful when fine-tuning strategies and locking certain variables.

6.11 Backtesting & Optimisation

The Tester allows you to simulate trading strategies using historical tick data for one or more markets within the current profile. By processing this data over a selected date range, the Tester generates virtual trades based on the rules defined in your scripts and settings. This feature helps you evaluate the effectiveness of your strategies before applying them to live trading.

There are two modes available in the Tester:

  • Single Pass: Runs a single simulation on the selected market(s) using the current values of the UserVARs. The UserVARs are not updated after the simulation.
  • Optimise: Runs multiple simulations using different combinations of UserVAR values for each pass. The combination that achieves the best outcome, based on the selected performance metrics, is applied to the UserVARs. Changes made to the UserVARs affect only the current working profile and are not applied to the current live settings until the Apply button is clicked.

Simulation results can be viewed through the Tester’s sub-tabs, including Trades, Stats, Graphs, and Results, providing comprehensive insights into strategy performance.

Account Type

InpTradeTool_TesterAccountType · Default: 0 (Standard)

The Account Type setting specifies whether the backtesting simulator assumes a Standard or Raw Spread account model. It influences how trading costs are applied to simulated trades, and how profit/loss lines for manual trade previews are calculated on the chart.

  • Standard (0): Simulates the wider spreads typically associated with Standard accounts by applying a fixed spread to each tick (see Spread Schedule setting below).
  • Raw Spread (1): Assumes interbank-like pricing with tight or zero spreads, and applies trading costs via commission (see Commission setting below).

Note: This setting has no effect on live trading. It is only used for backtesting simulations and SL/TP profit display when preparing manual trades on the chart.

Commission

InpTradeTool_TesterCommissionPerLot · Default: 0.00

The Commission setting defines the round-trip commission (i.e. open + close) per standard lot (1.0), expressed in the account’s base currency. It is used to simulate trading costs for Raw Spread accounts, where spreads are tight and cost is charged separately.

  • The simulator subtracts this commission amount from the calculated profit or loss for each trade.
  • The value should reflect your broker’s commission structure for Raw Spread accounts (e.g. 7.00 = $7 per round trip).

Note: This setting is only used in backtesting and chart SL/TP line calculations. It has no effect during live trading, where actual commission is applied by the broker.

Spread Schedule

InpTradeTool_TesterSpreadSchedule · Default: "" (empty)
InpTradeTool_TesterSpreadScheduleEnabled · Default: false

This setting defines the simulated broker spread for each hour of the day during backtesting. The value should be a string of hour=spread pairs, separated by semicolons. For example:

0=2;8=1.5;17=3

This means:

  • From 00:00 the spread is 2 points.
  • From 08:00 the spread becomes 1.5 points.
  • From 17:00 the spread becomes 3 points.

If an hour is not specified, the spread from the most recent defined hour is used. You can also specify a single number to apply a constant spread for all hours, e.g. 1.5.

Use this setting when:

  • Your source tick data contains unrealistic spreads (e.g. from Quant Data Manager).
  • You want to simulate different broker conditions throughout the trading day.
  • You’re optimising strategies under variable or fixed spread scenarios.

Legacy spread settings: The older InpTradeTool_TesterNormalSpreadInPoints / InpTradeTool_TesterNightSpreadInPoints pair (with TesterNormalStartHour / TesterNormalEndHour) is still supported for backward compatibility. When SpreadScheduleEnabled is true, the Spread Schedule takes precedence over the legacy settings.

Apply To Mid Price

InpTradeTool_TesterSpreadApplyToMid · Default: true

When enabled (true), the spread defined by Spread Schedule is applied symmetrically around the mid-price:

mid = (bid + ask) / 2
bid = mid - (spread / 2)
ask = mid + (spread / 2)

When disabled (false), the spread is applied as a direct offset to the raw bid/ask from the tick data:

bid = bid - (spread / 2)
ask = ask + (spread / 2)

Use true if your tick source provides mid-prices or inflated spreads (common with Quant Data Manager). Use false if your tick source already includes realistic bid/ask prices and you simply want to adjust them.

6.11.1 Tester

Starting Balance

InpTradeTool_TesterStartingBalance · Default: 10000

The Starting Balance setting specifies the account balance (in your broker’s account currency) at the beginning of a simulation run. Adjusting this value allows you to test strategies under different starting conditions.

Leverage

InpTradeTool_TesterLeverage · Default: 100

The Leverage setting defines the account’s leverage ratio, such as 100:1. This ratio determines the margin requirement using the formula: Margin Requirement = 1 / Leverage.

Higher leverage reduces the margin required for trades, allowing for larger positions, while lower leverage increases margin requirements. The Tester uses this setting to calculate the maximum lot size for trades.

Filters Table

The Filters Table lists optimization filters applied during Tester or Optimiser runs. Each filter consists of a metric name (e.g., Balance, Drawdown) and minimum and maximum values to evaluate performance.

After each simulation pass, the results are compared against these filters. Any combination of UserVAR values that falls outside the specified range is discarded, ensuring only high-performing configurations are retained.

6.11.2 Optimiser

The Optimiser allows you to fine-tune your live trading strategies by adjusting UserVARs to find the best-performing configurations based on specified performance metrics. This tool helps you maximize the effectiveness of your scripts across different market conditions.

See Statistic Metrics for all possible performance metric values.

Optimiser Table

The Optimiser Table displays the following for each market in the current profile:

  • The results of the most recent optimization.
  • The date and time of the next scheduled optimization.
  • The date and time of the last completed optimization.

Buttons:

  • Set Next Date: Specify the next date and time for optimization. If no market is selected, this applies to all markets in the profile.
  • Reset Dates: Reset the next optimization date and time according to the schedule settings. For both these buttons, selecting a market in the optimiser table first will apply to just the selected market; otherwise it will apply to all markets.

Auto Optimise

InpTradeTool_OptimiseEnabled · Default: false

Enable this setting to schedule regular optimizations of UserVARs. The EA will automatically run the optimization process at the specified times, ensuring strategies remain effective.

Frequency

InpTradeTool_OptimiseFrequencyInDays · Default: 0

Defines how often the optimiser runs, in days. For example, a frequency of 7 schedules the optimiser to run every 7 days. If set to 0, optimisation is disabled.

Lookback

InpTradeTool_OptimiseLookbackInDays · Default: 0

Determines the number of days of price history to use for optimization. A longer lookback period provides more historical data but may increase optimization time. If set to 0, optimisation is disabled.

Day Of Week

InpTradeTool_OptimiseDayOfWeek · Default: 6

Specifies the day of the week the optimiser is scheduled to start. 0=Sun, 1=Mon, 2=Tue, 3=Wed, 4=Thu, 5=Fri, 6=Sat.

Hour Of Day

InpTradeTool_OptimiseHourOfDay · Default: 0

Specifies the hour the optimiser begins using the broker’s time zone.

Performance Metric 1, 2

InpTradeTool_OptimisePerformanceMetric1 · Default: 1 (Balance)
InpTradeTool_OptimisePerformanceMetric2 · Default: 0 (None)

The Performance Metric settings determine how the optimiser evaluates and selects UserVAR configurations. Specify up to two metrics, such as Balance, Win Rate, or Drawdown. The optimiser prioritizes the first metric when identifying the optimal combination, while also considering the second metric.

Buttons:

  • Add: Add a new filter to the optimization process.
  • Edit: Modify an existing filter.
  • Del: Remove an existing filter.

6.11.3 Walk-Forward Settings

Walk-forward simulation is a technique used to evaluate strategy robustness over time. Unlike standard backtesting, which optimises and tests on the same period, walk-forward splits data into multiple segments:

  1. Lookback Period — a block of historical data used to optimise strategy parameters.
  2. Forward Period — the next block of data used to test the optimised parameters out-of-sample.

This process repeats by moving both windows forward. The goal is to mimic real-world trading, where you optimise on past data and deploy those parameters in the future.

WF Frequency in Days

InpTradeTool_WFFrequencyInDays · Default: 0

Defines how often EAsiTrader should re-optimise the UserVars during walk-forward testing in the Tester. This value sets the interval, in calendar days, between each walk-forward step. For example, a value of 30 means that the optimiser will re-run every 30 days. This setting is only active during walk-forward testing and has no effect in live trading. A value of zero disables Walk-Forward optimisation.

WF Lookback in Days

InpTradeTool_WFLookbackInDays · Default: 0

Specifies the number of days of historical price data EAsiTrader should use for each re-optimisation step during walk-forward testing. For example, a value of 60 means each optimisation run will analyse the prior 60 days of data before applying the best UserVars to the next segment. This setting is only used during walk-forward testing. A value of zero disables Walk-Forward optimisation.

Why walk-forward is useful:

  • Detects overfitting to past data.
  • Tests how often a strategy needs re-optimisation.
  • Provides a more realistic equity curve.

Each cycle re-optimises using the Lookback period and then tests performance over the next Forward period. Results from each Forward period are stitched together to form the overall Walk-Forward equity curve.


6.12 Compliance

The Compliance module in EAsiTrader is an advisory system that tracks your progress against common funded-account objectives and limits (e.g., FTMO-style rules). It computes usage from live equity/balance data and writes log messages at configurable levels (see Log Level). All percentage-like inputs in this section are ratios between 0 and 1 (e.g., 0.05 = 5%). Unless stated otherwise, a value of 0 disables that specific check.

Baselines used:

  • Daily metrics (e.g., Daily Loss, Intraday Drawdown) reset at the configured day boundary.
  • Overall metrics are measured from the account baseline (initial/starting balance or designated compliance baseline).
  • Profit Target measures cumulative profit versus the same account baseline.

See also §18 Compliance for a summary of how to configure Compliance for common funded-account providers.

Profit Target Rate

InpTradeTool_ComplianceProfitTargetRate · Default: 0.10

Defines the profit objective as a ratio of the account baseline (e.g., 0.10 = 10% target). If non-zero, EAsiTrader tracks progress toward this target and can issue warnings (see Profit Target Warn Rate) and log completion once reached.

Use cases: mimic funded-account evaluation targets (e.g., 10% in Phase 1, 5% in Phase 2). Set to 0.00 to disable.

Overall Loss Limit Rate

InpTradeTool_ComplianceOverallLossLimitRate · Default: 0.10

Sets the maximum allowed overall loss (ratio of the account baseline). If equity drawdown from the baseline reaches this limit, Compliance will log a breach (and a warning when the warn rate is crossed). Set to 0.00 to disable.

Daily Loss Limit Rate

InpTradeTool_ComplianceDailyLossLimitRate · Default: 0.05

Sets the maximum allowed loss for the current compliance day (ratio of the day’s opening balance/equity baseline). Compliance measures the worst point of the day (closed P/L + floating P/L relative to the daily open) and logs warnings/breaches accordingly. Set to 0.00 to disable.

Intraday Drawdown Limit Rate

InpTradeTool_ComplianceIntradayDDLimitRate · Default: 0.05

Sets the maximum intraday peak-to-trough equity drawdown allowed within the current day (ratio of the day’s equity baseline). If the largest same-day equity drop exceeds this rate, a breach is logged. Set to 0.00 to disable.

Min Trading Days

InpTradeTool_ComplianceMinTradingDays · Default: 4

Specifies the minimum number of trading days required for the Profit Target to be considered fully achieved. A trading day is counted when at least one executed trade occurs during that compliance day. If set > 0, the Profit Target is only considered complete when both the target and min-day condition are satisfied. Set to 0 to disable.

Profit Target Warn Rate

InpTradeTool_ComplianceProfitTargetWarnRate · Default: 0.75

Defines when to warn that you are nearing the Profit Target. This rate is applied to the target itself. Example: with a 0.10 Profit Target Rate and 0.75 Warn Rate, a warning fires at 7.5% profit. Set to 0.00 to disable warnings for the target.

Overall Loss Warn Rate

InpTradeTool_ComplianceOverallLossWarnRate · Default: 0.90

Defines when to warn that you are nearing the Overall Loss Limit. Example: Overall Loss Limit Rate=0.10, Warn Rate=0.90 → warning at 9% overall loss. Set to 0.00 to disable.

Daily Loss Warn Rate

InpTradeTool_ComplianceDailyLossWarnRate · Default: 0.90

Defines when to warn that you are nearing the Daily Loss Limit. The warning fires when the daily loss used % hits this fraction of the Daily Loss Limit Rate. Set to 0.00 to disable.

Intraday Drawdown Warn Rate

InpTradeTool_ComplianceIntradayDDWarnRate · Default: 0.90

Defines when to warn that you are nearing the Intraday Drawdown Limit. The warning fires when the intraday drawdown used % reaches this fraction of the Intraday Drawdown Limit Rate. Set to 0.00 to disable.

Log Level

InpTradeTool_ComplianceLogLevel · Default: 2 (Warnings And Breaches)

Controls the verbosity of Compliance messages written to the Experts Log:

  • Off (0): No Compliance output.
  • Breaches Only (1): Only logs breach events.
  • Warnings And Breaches (2): Logs both warnings (at warn rates) and breaches (at hard limits).
  • Summaries And Breaches (3): Adds end-of-day summaries of compliance usage, plus breaches.

Time Zone

InpTradeTool_ComplianceTimeZone · Default: 1 (EU Central)

Selects the time zone used to compute the Compliance day boundary (the point at which Daily Loss and Intraday Drawdown reset, and day counters roll). All Boundary Hour/Minute/Second settings apply in this selected time zone.

Supported Time Zones:

  • 0 = UTC — UTC (no DST)
  • 1 = EU_CENTRAL — CET/CEST (e.g., Berlin, Prague)
  • 2 = EU_UK — GMT/BST (London)
  • 3 = US_EASTERN — EST/EDT (New York)
  • 4 = AU_EASTERN — AEST/AEDT (Sydney)
  • 5 = ASIA_TOKYO — JST (Tokyo, no DST)
  • 6 = SERVER — Broker server time zone (chart time)

Tip: For FTMO or similar funded accounts, set Time Zone = EU_CENTRAL (1) so the daily reset matches midnight CET/CEST (Prague).

Boundary Hour

InpTradeTool_ComplianceBoundaryHour · Default: 0

Specifies the hour (0–23) of the compliance day boundary in the chosen Time Zone. Example: if a provider defines the reset as 17:00 New York time, set Boundary Hour = 17, Time Zone = US_EASTERN. Default = 0 → midnight.

Boundary Minute

InpTradeTool_ComplianceBoundaryMinute · Default: 0

Specifies the minute (0–59) of the compliance day boundary. Used when the reset time includes minutes beyond the hour.

Boundary Second

InpTradeTool_ComplianceBoundarySecond · Default: 0

Specifies the second (0–59) of the compliance day boundary. Rarely required, but ensures precise alignment with providers that define a reset down to the second.


6.13 AI

EAsiTrader integrates artificial intelligence to enhance trading decisions through market analysis, signal filtering, and optional autonomous trade management. The AI system connects to external AI providers (such as OpenAI) via the NTL API to analyze market conditions, assess directional bias, classify market regimes, and provide risk recommendations.

The AI features operate across a spectrum of involvement levels, from passive monitoring to full autonomous trading control. This flexibility allows traders to leverage AI insights while maintaining their preferred level of manual oversight.

How AI Integration Works

When enabled, EAsiTrader periodically sends market data to the configured AI provider, including:

  • OHLC price data for the chart timeframe and any additional configured timeframes, up to the configured bar depth.
  • Indicator data as grounded events (pre-validated structural facts with unique IDs), raw buffer values, or both — controlled by the AI Export Mode setting.
  • Open positions and pending orders when the AI has position management capability (Gated Trading with management permissions or Autonomous mode), so the AI can manage existing trades.
  • Recently closed trades (up to 5) when enabled, giving the AI feedback on recent outcomes.
  • Prior assessment summary from the last AI response, providing continuity between requests.
  • Strategy instructions if configured, injected into the AI system prompt.
  • News and analysis from configured URLs.

The AI analyzes this data and returns a structured JSON assessment containing:

  • Market Regime: Classification of current conditions (trending, ranging, volatile, quiet, breakout, reversal, or unknown).
  • Directional Bias: The AI’s view on likely price direction (bullish, bearish, neutral, strong bull, or strong bear).
  • Risk Mode: Recommended position sizing approach (normal, reduced, minimal, aggressive, or avoid).
  • Confidence Scores: How certain the AI is about each component — overall, regime, and bias (0.0 to 1.0).
  • Valid Minutes: How long the AI expects its assessment to remain relevant.
  • Key Levels: Support and resistance prices identified from the data.
  • Referenced Events: IDs of grounded events the AI cited in its reasoning.
  • Warnings: Any concerns or caveats about the assessment.
  • Trade Instructions: In Gated Trading (management only) and Autonomous mode, specific actions to take (open, close, modify, place orders).

AI Operational Modes

The AI Mode setting determines how deeply the AI participates in trading decisions:

Mode Behaviour
Disabled AI features are completely off. No API calls are made.
Monitor Only AI performs periodic analysis and displays assessments, but does not affect trading. Useful for observing AI recommendations before committing to automated use.
Filter Signals AI periodically analyzes the market. When your EAsiScript entry signals fire, the AI assessment can filter (block) or reduce entries that conflict with its analysis.
Gated Trading AI is called on-demand when your scripts generate an entry signal. The AI evaluates the specific signal for approval — it can allow, filter, or reduce the trade. Additionally, if management permissions are enabled, the AI can actively manage open positions.
Autonomous Full AI control. The AI can open, close, and modify positions according to its analysis, subject to the permission flags you configure.

Gated Trading in Detail

Gated Trading mode is designed for traders who want their scripts to control when trades are entered, while the AI controls whether each entry should proceed and how open positions should be managed.

In this mode, Entry scripts must be AI-blind. They must not read or depend on AI assessment values (such as AiIsValid(), AiBias(), AiRiskMode(), AiMultiplier(), or any other Ai* function). Entry scripts should be based purely on market logic (price, indicators, volatility, time filters, spread checks, etc.).

When a script generates an entry signal:

  1. The signal is cached.
  2. An on-demand AI request is submitted.
  3. Trading for that signal pauses until the AI response is received (subject to timeout and expiry settings).

The AI receives the full market context plus the specific signal details (direction, entry price, SL, TP, volume). Based on its assessment, the AI’s response is interpreted as:

  • Allow: Bias aligns with signal direction and risk mode is normal or aggressive — trade proceeds.
  • Filter: Bias opposes signal direction or risk mode is avoid — trade is blocked.
  • Reduce: Risk mode is reduced or minimal — trade proceeds with smaller position size.

This separation prevents circular dependencies: the Entry script detects opportunity; the AI evaluates quality and risk.

If management permissions are enabled (Allow Close, Allow Modify SL, Allow Modify TP), the AI also receives open position and pending order data. It can then issue management instructions alongside its gate evaluation. When no pending signal is present, the AI focuses on position management only. Open permissions are not available in Gated Trading — entries always originate from scripts.

Gate signals bypass the normal refresh interval and are subject only to a short cooldown (5 seconds) to prevent rapid-fire requests. Cached signals have a limited validity window and expire if the AI does not respond in time.

Important: Because AI is only requested after a script produces a signal, Entry scripts must not require AI data to generate that signal. Doing so would prevent the gate request from ever being triggered.

Trading Style

The Trading Style setting controls how aggressively the AI approaches trading. It applies to all active AI modes — Filter Signals, Gated Trading, and Autonomous — influencing entry selectivity, signal filtering strictness, profit-taking behaviour, and risk tolerance.

Style Behaviour
Conservative Selective entry criteria, locks profits early, prioritizes capital preservation. In filter/gate modes, uses stricter thresholds and blocks marginal signals.
Moderate Balanced approach between opportunity and risk (default). Standard filtering thresholds apply.
Aggressive More active trading, accepts higher volatility, favours allowing trades through. In filter/gate modes, only blocks signals with clearly opposing evidence.

Grounded Events vs Raw Data

EAsiTrader supports two complementary approaches to sending indicator data to the AI, controlled by the AI Export Mode setting:

Grounded Events are pre-computed market structure facts exported by indicators. Each event has a unique ID, a type (e.g., FVG, CHoCH, liquidity sweep), and associated price levels. The AI is instructed to reference these events by ID in its reasoning and must not infer structural events beyond what is provided. This prevents AI hallucination and focuses analysis on validated market structure.

Raw Indicator Data consists of timestamped buffer values from each enabled indicator, provided as structured JSON or CSV. This gives the AI maximum flexibility to interpret indicator readings but requires more tokens and is more susceptible to misinterpretation.

OHLC price data is always sent regardless of the export mode setting.

Recommendation: Use Grounded Events Only for production trading. It reduces token cost, prevents hallucination, and produces more consistent assessments. Use Both during development or when debugging indicator behaviour.

AI Decision History

EAsiTrader maintains a rolling history of AI decisions for each market. After every AI assessment, the system:

  1. Records the assessment — regime, bias, risk mode, confidence, and reasoning.
  2. Evaluates the prior assessment’s accuracy — compares the stated directional bias against actual price movement between the old and new assessment.
  3. Feeds back accuracy statistics into future AI prompts — the AI receives its own track record, including how often its bias predictions were correct and its average confidence when right versus wrong.

This feedback loop helps the AI self-calibrate over time. Decision history is persisted to .hist files (one per market, stored alongside the market’s other data files), so accuracy tracking survives EA restarts.

Tip: Enable the AI debugging flag (see §6.14) to see decision history details in the Experts Log, including per-assessment accuracy evaluations.

AI Settings Reference

AI Mode

InpTradeTool_AIMode · Default: 0 (Disabled)

Selects the operational mode for AI integration. See AI Operational Modes above.

  • 0 = Disabled: AI is completely off.
  • 1 = Monitor Only: AI analyzes but does not affect trades.
  • 2 = Filter Signals: AI can filter script-generated entry signals.
  • 3 = Gated Trading: AI gates script entries on-demand and optionally manages open positions.
  • 4 = Autonomous: AI controls trading decisions.

Providers Config String

InpTradeTool_AIProvidersConfigString · Default: provider=Gemini,model=gemini-3-pro-preview,temperature=0.2

Configures the AI provider connection via the NTL API. The format is a comma-separated list of key=value pairs: provider (the AI service), model (the specific model identifier), and temperature (controls response randomness, 0.0 = deterministic, higher = more varied).

Multiple AI Providers

EAsiTrader supports querying multiple AI providers simultaneously for enhanced trading decisions. When multiple providers are configured, the EA builds the AI prompt once and submits it to all configured providers in parallel. This enables:

  • Consensus analysis — compare assessments across providers to increase confidence.
  • Redundancy — if one provider fails or is slow, others can still deliver assessments.
  • Provider comparison — secondary provider assessments are logged and available for alerting, helping you evaluate which provider performs best for your strategy.

The primary provider (the first in the configuration string) drives the main assessment and instruction pipeline — its response updates the active market assessment and processes any trade instructions. Secondary providers store their assessments separately for comparison and alerting but do not directly affect trading decisions.

Configuring Multiple Providers

Separate multiple provider configurations with a semicolon (;) in the AIProvidersConfigString setting. Each provider block uses comma-separated key=value pairs:

provider=Gemini,model=gemini-3-pro-preview,temperature=0.2;provider=Anthropic,model=claude-sonnet-4-20250514,temperature=0.2

In this example, Gemini is the primary provider and Anthropic is the secondary. Both receive the same prompt and respond independently.

Note: AI Provider API keys are entered separately via the EA’s input settings (AI Provider Key 1, AI Provider Key 2, AI Provider Key 3) using the format provider=ProviderName,apikey=your_key. Like Telegram credentials, these are encrypted and saved on first use — you only need to enter them once.

Strategy Instructions

InpTradeTool_AIStrategyInstructions · Default: (empty)

Optional free-text instructions injected into the AI system prompt under a dedicated “Trading Strategy” section. Use this to give the AI strategy-specific guidance without modifying code — for example, preferred trade setups, instruments to focus on, or conditions to avoid. Leave empty if no additional strategy context is needed.

Refresh Interval

InpTradeTool_AIRefreshIntervalMinutes · Default: 15

Minimum number of minutes between AI requests, acting as a cost floor. After receiving a response, no new request will be sent until this interval has elapsed — even if the AI’s assessment has expired.

  • 0: No minimum interval; requests are governed only by the AI’s own validity window.

Gate signals bypass this interval, subject only to a short cooldown (5 seconds). When open positions exist, the interval is respected but other checks (validity window, script triggers) are bypassed to ensure active trades receive timely updates.

Tip: Start with a moderate interval (5–15 minutes) to control API costs while the AI’s own valid_minutes response adapts to market conditions.

Trading Style

InpTradeTool_AITradingStyle · Default: 1 (Moderate)

Sets the AI trading posture. See Trading Style above.

  • 0 = Conservative: Selective entries, early profit-taking, strict filtering.
  • 1 = Moderate: Balanced approach (default).
  • 2 = Aggressive: More active, accepts higher volatility, lenient filtering.

News URLs

InpTradeTool_AIUrls · Default: (multiple RSS feed URLs)

URLs for the AI to analyze as additional context. These typically point to RSS feeds or news sources that provide market commentary and analysis. URLs are attached to the AI request and the AI incorporates this information into its market assessment. Enter one URL per line.

Tip: Include feeds relevant to the instruments you trade. For forex pairs, currency-focused news feeds improve AI context quality.

Timeframes

InpTradeTool_AITimeframes · Default: (empty)

Comma-separated list of timeframes for AI analysis (e.g., H1,H4,D1). When specified, the AI receives OHLC data from these timeframes, enabling multi-timeframe analysis. Leave empty to analyze only the current chart timeframe. Each additional timeframe increases the data sent and token cost.

Max Bars

InpTradeTool_AIMaxHistorySizeInBars · Default: 300

The number of historical bars sent to the AI for each timeframe. This applies to both OHLC price data and indicator data (raw buffers). Recommended range: 100–500 bars. Lower values mean faster responses and lower cost; higher values provide more context for pattern recognition.

Min Confidence Threshold

InpTradeTool_AIMinConfidenceThreshold · Default: 0.30

The minimum AI confidence score (0.0–1.0) required before the AI’s recommendations take effect. When confidence falls below this threshold, recommendations are ignored and safe defaults are used. This applies to Filter/Gated Trading modes (bias filtering and position size modulation) and Autonomous mode (execution of trade instructions).

  • 0.0: Always apply AI recommendations regardless of confidence.
  • 0.3: Default — requires at least 30% confidence.
  • 0.6+: Conservative — only act on high-confidence assessments.

Use Valid Until

InpTradeTool_AIUseValidUntil · Default: false

Controls whether AI assessments expire based on the validity window returned by the AI, or remain valid indefinitely until replaced by the next scheduled refresh.

  • false (default): Assessments never expire via their TTL. They remain active until a new AI response replaces them. This is the recommended setting for most users, as it avoids gaps where no assessment is active between refreshes.
  • true: Assessments expire at the valid_minutes timestamp returned by the AI. Once expired, the assessment is treated as stale and a new AI request is triggered. This provides fresher assessments but increases API costs and may leave brief periods with no active assessment.

Tip: Use false (the default) unless you have a specific reason to enforce TTL-based expiry, such as strategies that require the AI to re-evaluate frequently in fast-moving markets.

AI Export Mode

InpTradeTool_AIExportMode · Default: 0 (Grounded Events Only)

Controls what indicator data is sent to the AI alongside OHLC price data. See Grounded Events vs Raw Data above.

  • 0 = Grounded Events Only: Pre-validated structural events with unique IDs. Lowest token cost, prevents hallucination, recommended for production.
  • 1 = Raw Indicator Data Only: Timestamped buffer values from each enabled indicator.
  • 2 = Both: Grounded events and raw data together. Highest token cost, useful for development and debugging.

Gate Signal Timeout

InpTradeTool_AIGateSignalTimeoutInSeconds · Default: 100

The maximum number of seconds a cached gate signal remains valid while waiting for the AI to respond. In Gated Trading mode, when a script generates an entry signal, the signal is cached and an AI request is submitted. If the AI response takes longer than this timeout, the signal is discarded and no trade is entered.

  • 30: Tight timeout suitable for fast providers with small prompts.
  • 100: Default — accommodates most providers with moderate prompt sizes (30K–50K input tokens).
  • 300: Generous timeout for large prompts or slower providers.

This setting only applies to Gated Trading mode.

Tip: If you see “gate signal expired” messages in the Experts log, increase this value. The log message includes the signal age and timeout for diagnosis.

Autonomous Mode Permissions

The following settings control what actions the AI is permitted to take when operating in Autonomous mode or when managing positions in Gated Trading mode. These permissions are communicated to the AI in the prompt (so it only requests permitted actions) and are enforced by the instruction validator (which rejects any instructions that violate the configured permissions).

In Gated Trading mode, only management permissions apply — Allow Close, Allow Modify SL, Allow Modify TP, and Allow Cancel Orders. The Allow Open and Allow Place Orders permissions are blocked since entries come from scripts.

Allow Open

InpTradeTool_AIAllowOpen · Default: false

When true, permits the AI to open new long and short positions. The AI will respect all other position management limits (max positions, max lots, risk per trade). Applies to Autonomous mode only.

Allow Close

InpTradeTool_AIAllowClose · Default: false

When true, permits the AI to close existing positions before they reach SL or TP. The AI can optionally mark close instructions as only_if_profitable, meaning the position is only closed if currently in profit.

Allow Modify SL

InpTradeTool_AIAllowModifySL · Default: false

When true, permits the AI to adjust stop loss levels on open positions.

Note: The modify_both action (adjusting SL and TP simultaneously) requires both Allow Modify SL and Allow Modify TP to be enabled.

Allow Modify TP

InpTradeTool_AIAllowModifyTP · Default: false

When true, permits the AI to adjust take profit levels on open positions.

Technical Note: When the AI modifies SL or TP levels, these changes are applied immediately and atomically via a dedicated modification path. This ensures AI-instructed price level changes are not overwritten by the EA’s trailing stop or breakeven logic processing on the same tick. In contrast, routine trailing stop and breakeven adjustments use a deferred modification path that batches changes within each tick. This dual-path design guarantees that AI trade management instructions take precedence over automated stop management.

Allow Place Orders

InpTradeTool_AIAllowPlaceOrders · Default: false

When true, permits the AI to place pending orders: buy stop, sell stop, buy limit, and sell limit. Applies to Autonomous mode only.

Allow Cancel Orders

InpTradeTool_AIAllowCancelOrders · Default: false

When true, permits the AI to cancel pending orders that are no longer aligned with its market assessment.

Allow Closed History

InpTradeTool_AIIncludeClosedHistory · Default: true

When true, includes up to 5 recently closed trades from the current trading session in the AI prompt. The AI receives each trade’s direction, entry/exit prices, profit in points, R-multiple, duration in bars, and close reason (SL hit, TP hit, manual close, AI-instructed, expired, or margin call).

This gives the AI feedback on recent trade outcomes, enabling it to avoid re-entry traps, adjust stop placement based on patterns, factor session P&L into risk decisions, and confirm trend direction from profitable trades.


6.14 Debugging

The EA includes several debugging flags that can be enabled or disabled to provide detailed information in the Experts Log. These flags help in diagnosing and troubleshooting various aspects of the EA’s operation. Below is a description of each available debugging flag:

  • CommonCode: Logs general information about the EA’s execution, including initialization and deinitialization processes. Enable this flag to monitor the overall behavior and flow of the EA.
  • Series: Logs data related to time series, such as price and time information. Useful for tracking how the EA processes and reacts to incoming market data.
  • Indicator: Logs information about the indicators used by the EA, including their calculations and values. Enable this flag to debug issues related to indicator values and their impact on trading decisions.
  • Script: Logs details about script execution within the EA. Useful for debugging custom scripts.
  • Trade: Logs all trading operations, including order placement, modification, and closure. Enable this flag to monitor and debug trading activities and ensure they are executed as expected.
  • Optimiser: Logs information related to the Optimiser. Useful for debugging and analyzing the performance of the EA during optimization runs.
  • Tester: Logs information related to the Tester. Enable this flag to gather insights and debug issues encountered during historical data testing.
  • File: Logs file operations performed by the EA, such as reading from or writing to files. Useful for debugging file I/O operations and ensuring data is correctly handled.
  • AI: Logs information about AI requests, responses, assessments, and instruction execution. Enable this flag to debug AI integration, including prompt construction, provider communication, and trade instruction processing.

Enabling/Disabling Debugging Flags

To enable or disable a debugging flag, set the corresponding flag in the EA’s settings via InpTradeTool_DebugFlags. The flags can be toggled on or off based on the specific debugging needs during the EA’s development and testing phases.

6.15 EAsiScript

EAsiScript is a powerful scripting language integrated into EAsiTrader, enabling traders to create, test, and execute custom trading strategies. It provides flexibility and control by allowing traders to define scripts for actions such as opening trades, closing trades, setting stop loss and take profit levels, and managing trailing stops and breakeven points.

EAsiScript includes 15 customizable scripts, each designed for specific trading functions. These scripts can access live and historical price data, utilize indicator buffer data from any symbol and timeframe, and incorporate a wide range of built-in functions to implement sophisticated strategies.

You can manage and edit your EAsiScript configurations through the Settings → Scripts dialog window. This interface provides tools to customize script behavior, optimise your trading approach, and ensure seamless integration with the EA.

This section lists the Functions, Operators and Variables you can use in your EAsiScript scripts. See the EAsiScript User Guide for instructions on how to create EAsiScript scripts.

Functions

Lists all EAsiScript functions with a description for each.

Operators

Lists all EAsiScript operators.

Variables

Lists all EAsiScript variables.

See the EAsiScript Manual for instruction on using EAsiScript.

6.16 Telegram Alerts

EAsiTrader can deliver real-time trade notifications directly to your Telegram account. When configured, the following alert types are sent as formatted Telegram messages:

  • Signal Alerts — entry signals generated by your scripts, including direction, symbol, timeframe, strategy name, and entry/SL/TP prices.
  • Close Alerts — position closures, including direction, close reason (SL hit, TP hit, exit condition, end-of-day, etc.), entry/exit prices, profit in points and currency, and trade duration.
  • AI Assessment Alerts — AI analysis results when AI is enabled, including the provider, regime, bias, risk mode, confidence, and reasoning summary.
  • Gate Trade Alerts — gated trade execution outcomes in Gated Trading mode, including the AI’s allow/filter/reduce decision and reasoning.
  • AI Instruction Alerts — results of AI-initiated trade actions in Autonomous and Gated Trading (management) modes, including the action taken, prices, and success/failure status.

Telegram alerts are sent via the NTL relay API with HTML formatting, including emoji indicators for trade direction and outcomes (e.g., green/red profit indicators, reason-specific icons). Messages are rate-limited to a maximum of 10 per minute to comply with Telegram API limits.

Setup

To enable Telegram alerts, you need your Telegram User ID and optionally a Message Thread ID (for posting to a specific topic in a group chat):

  1. Enter the values into the EA’s input settings:
    • Your Telegram UserId for Signal Alerts (InpTradeTool_TelegramUserId)
    • Your Telegram Message Thread Id for Signal Alerts (InpTradeTool_TelegramMessageThreadId)
  2. These values only need to be entered once. On first use, EAsiTrader encrypts and saves them to a file (telegram.key) in the MQL5\Files\EAsiTrader folder. On subsequent loads, the EA reads the saved file automatically — you can leave the input fields empty.
  3. Ensure the Alerts checkbox is enabled for the relevant markets in the Markets Table (see §6.1).

Note: Telegram alerts require the Alerts checkbox to be ticked for each market you want notifications from. The EA must also have Auto Trade Enable turned on. Terminal and mobile push alerts continue to work alongside Telegram.


7. Signals Tab

The Signals Tab provides a log of all live signals generated by entry scripts for the current profile. These signals are recorded when signal alerts are enabled for a market in EAsiTrader → Markets. This tab helps you monitor and analyze trading signals in real-time.

Signal Information

The log displays the following details for each signal:

  • Time: The date and time the signal was generated.
  • Symbol: The trading symbol associated with the signal.
  • Timeframe: The timeframe of the signal’s market.
  • Direction: Whether the signal is for a Buy or Sell trade.
  • Price: The entry price of the trade.

Symbol List

Use the Symbol List dropdown to filter the log by a specific trading symbol, making it easier to focus on relevant signals.

Buttons

  • Delete All: Clears all entries from the signal log.

Close Alerts

In addition to entry signal alerts, EAsiTrader automatically sends a close alert whenever a managed position is closed. Close alerts include the trade direction, close reason, entry and exit prices, SL and TP levels, profit in points and currency, and a human-readable duration (e.g., “2h 15m”). These alerts are sent to the terminal Experts Log, as mobile push notifications (if enabled in MetaTrader), and as Telegram messages (if configured — see §6.16).

Close alerts are always generated for managed positions regardless of the close reason — whether triggered by SL, TP, breakeven, exit script, end-of-day/week close, Max Loss/Gain thresholds, AI instruction, or manual closure.


8. Trades Tab

The Trades Tab provides a comprehensive view of all your trades, including those executed by the EA and those placed manually. This tab allows you to analyze your trading activity with detailed filters and breakdowns.

Filters

You can filter the trade list by:

  • Symbol: Focus on trades for a specific trading symbol.
  • Time: Narrow the list to trades executed within a specific time range.

Positions

Displays details about all your currently open positions, including entry price, stop loss, take profit, and unrealized profit or loss.

Deals

Lists details of all completed trades, including entry and exit prices, trade duration, and realized profit or loss.

Orders

Shows information about all pending orders, including type (Buy Stop, Sell Limit, etc.), price levels, and expiration times.

Stats

Provides a statistical summary of your past trades, including key metrics such as win rate, average profit/loss, and drawdown. The Stats sub-tab also offers two specialized profit analysis views — see Profit Analysis Views below.

Graphs

Displays an equity curve for your trading activity, allowing you to visually analyze performance trends over time.

Results

Consolidates performance statistics across all symbols in the current filter range. Unlike the per-market views in Stats, the Results sub-tab provides a side-by-side comparison of key metrics for each symbol that had trades during the selected period, helping you identify which markets are contributing positively and which may need attention.


Profit Analysis Views

Both the Trades Tab → Stats and Tester Tab → Stats sub-tabs offer two specialized profit analysis views:

Profit By Hour: Displays trade performance broken down by hour of the day (00–23 format), showing the number of trades executed during that hour, total profit/loss, and average profit per trade.

Profit By Day: Displays trade performance broken down by day of the week (Sun–Sat), showing the number of trades executed on that day, total profit/loss, and average profit per trade.

To use these views:

  1. Use the Profit By Hour checkbox to display hourly trade analysis.
  2. Use the Profit By Day checkbox to display daily trade analysis.
  3. Only one analysis view can be active at a time — selecting one will automatically deselect the other.
  4. Uncheck both boxes to return to the standard statistics display.

These profit analysis tools help identify optimal trading hours and days, revealing patterns in your strategy’s performance across different time periods. This information can be valuable for refining entry timing and understanding when your strategy performs best.


9. Tester Tab

The Tester allows you to simulate trades using historical tick data for one or more markets within the current profile. It processes the tick data over the selected date range and generates virtual trades based on the rules defined by the scripts and settings. There are two Tester functions:

Single Pass: The Tester runs a single pass on the selected markets using the UserVARs’ current values, if defined. The UserVAR values are not updated. WF Frequency and WF Lookback settings are ignored during a single pass run.

Optimise: The Tester runs multiple passes on the selected markets using a different combination of UserVAR values for each pass. After all passes, the combination that achieved the best outcome based on the performance metrics is chosen and assigned to the UserVAR’s current value.

The results of a simulation can be viewed in the Tester sub-tabs: Trades, Stats, Graphs and Results. The Ask AI sub-tab provides an interactive AI conversation panel for analyzing Tester results.

Market-Independent Testing

In the Tester Tab, the optimization process uses Market-Independent Testing. This means each market is tested separately and results are generated individually — no simultaneous multi-market trading under one account, and no aggregated results are produced. This ensures that performance metrics are specific to each market and remain independent of other markets.

Settings

Start Date

The date of the earliest tick in tick data history to start the simulation. The earliest date depends on the earliest tick data available for the current market. A warning is displayed if you attempt to select a date before the earliest available tick. The Start date determines the start date for all selected markets, regardless of timeframe.

End Date

The date of the latest tick in tick data history to end the simulation.

Optimise For

When choosing the Optimise function you can select up to 2 performance metrics that determine the variable to use to achieve the best outcome. If two metrics are specified, the optimiser prioritizes the first metric while finding the best combination for both.

See Statistic Metrics for all possible performance metric values.

WF Frequency in Days / WF Lookback in Days

See §6.11.3 Walk-Forward Settings for details on these settings.

Buttons

  • Single Pass: Executes a single simulation pass on the selected market(s) using current UserVar values.
  • Optimise: Runs multiple passes, testing combinations of UserVar values to identify the best-performing configuration.

Note: The time taken to complete Single Pass and Optimise is subject to the complexity of the scripts, the number of UserVars and their range of values, and the number of markets. This process could take many hours or more. It is not advisable to run these operations while trading as it will block all new events until the Tester is finished.

Checkboxes

  • All Selected Markets: Includes all markets listed under Settings Tab → Markets in the simulation. If unchecked, only the current market is used.
  • Apply Filters: Applies the optimization filters defined under Tester → Filters to each simulation pass.
  • All Passed Markets: Limits the simulation to markets that have passed their latest optimization run or have not been optimised before.
  • Hide Exit Signals: When enabled, exit signals are excluded from the simulation display, allowing you to focus on entry signals and trade outcomes.

Note: After a simulation, each market receives an OptimisedState flag:

  • Undefined: No optimization has been performed.
  • Passed: At least one UserVar combination passed the filters.
  • Failed: No UserVar combinations met the filter criteria.

Trades

Lists all simulated trades generated during the last Tester run for the currently selected market. You can view trade details such as entry and exit prices, trade direction, profit or loss, and execution times. To analyze trades from a different market, switch to the desired market in Settings Tab → Markets → Current Market.

Tester Stats

Provides a statistical summary of the simulated trades from the most recent Tester run for the selected market. Metrics include win rate, drawdown, average trade profit or loss, and other performance indicators. To view stats for another market, adjust the current market in Settings Tab → Markets.

The Stats sub-tab also offers the Profit By Hour and Profit By Day analysis views — see Profit Analysis Views.

Tester Graphs

Displays an equity curve for the simulated trades from the last Tester run. The equity curve helps you visualize performance trends, showing how account balance evolved over the simulation period. Switch the current market in Settings Tab → Markets to view equity curves for other markets.

Results

Consolidates the stats for simulated trades across all selected markets from the last Tester run. This overview provides a comprehensive evaluation of strategy performance across multiple markets.

Ask AI

The Ask AI sub-tab provides an interactive AI conversation panel for analyzing Tester results and refining your trading strategy. You can write prompts to the AI and optionally attach data from the current Tester context to provide the AI with relevant information.

Data Attachments

Use the checkboxes to include any combination of the following data in your AI request:

  • OHLC: Historical price data for the current market.
  • Indicators: Indicator buffer data from enabled indicators.
  • URLs: Content from configured news and analysis URLs.
  • Stats: Statistical summary from the latest Tester run.
  • Trades: Trade list from the latest Tester run.
  • EAsiScript: The current script definitions for the selected market.
  • Presets: The current profile’s preset settings.
  • Code Interpreter: Enables the AI to execute code for advanced analysis.
  • Images: Allows the AI to process chart images.

The AI response is displayed below the prompt editor. You can save and load prompts and responses for future reference.


10. Info Tab

The Info Tab provides a detailed overview of key system properties, giving you quick access to essential trading environment data. This information is categorized into four sections:

  • Account Settings: Displays account-specific details such as account balance, equity, leverage, and margin.
  • Price Series Settings: Lists historical price data, including the number of available bars, symbol data, and timeframes.
  • Symbol Settings: Shows symbol-specific properties like tick size, contract size, spread, and trading hours.
  • Terminal Settings: Provides information about the terminal’s version, build, and other system-level details.

This tab is invaluable for understanding your trading environment and ensuring your strategies align with current market and system conditions.


11. HotKeys Tab

This tab shows a list of keyboard shortcuts and their meanings that are recognised by the EA.


12. All EAsiTrader Settings

This table is a quick-reference for every InpTradeTool_ setting. For detailed explanations, see the corresponding subsection in §6 Settings Tab.

Setting Name Default Description
Header
InpTradeTool_Name Defaults Profile name.
InpTradeTool_Description (empty) Profile description.
InpTradeTool_Author (empty) Preset file author.
InpTradeTool_Comments (empty) Author’s comments.
InpTradeTool_PresetFile Defaults.set Preset file name.
InpTradeTool_Market (empty) Markets in this profile.
InpTradeTool_AIGenerated false Whether generated by AI.
InpTradeTool_AIModel (empty) AI model that generated the preset.
InpTradeTool_CategoryType 1 Category type.
InpTradeTool_SettingsVersion 1.000 Settings version number.
InpTradeTool_ChartImages (empty) Comma-separated MQL5 chart image paths.
Scripts
InpTradeTool_ScriptLongEntry (empty) Long entry conditions.
InpTradeTool_ScriptLongInitialStop (empty) Long initial stop loss.
InpTradeTool_ScriptLongTrailingStop (empty) Long trailing stop.
InpTradeTool_ScriptLongLots (empty) Long position size.
InpTradeTool_ScriptLongTakeProfit (empty) Long take profit.
InpTradeTool_ScriptLongBreakeven (empty) Long breakeven.
InpTradeTool_ScriptLongExit (empty) Long exit conditions.
InpTradeTool_ScriptShortEntry (empty) Short entry conditions.
InpTradeTool_ScriptShortInitialStop (empty) Short initial stop loss.
InpTradeTool_ScriptShortTrailingStop (empty) Short trailing stop.
InpTradeTool_ScriptShortLots (empty) Short position size.
InpTradeTool_ScriptShortTakeProfit (empty) Short take profit.
InpTradeTool_ScriptShortBreakeven (empty) Short breakeven.
InpTradeTool_ScriptShortExit (empty) Short exit conditions.
InpTradeTool_ScriptAITrigger (empty) AI request gating script. See §6.2.
Risk Management
InpTradeTool_MaxRiskPerTradeInPercent 1.00 Max risk per trade (% of equity).
InpTradeTool_MaxRiskPerTradeInMoney 0.00 Max risk per trade (currency).
InpTradeTool_MaxLossMarketAsPercentageOfBalance 0.00 Max loss per market (% of balance).
InpTradeTool_MaxLossAccountAsPercentageOfBalance 0.00 Max loss all markets (% of balance).
InpTradeTool_TrailMaxLoss false Trail max loss threshold with profit.
InpTradeTool_DeviationInPoints 0 Max price deviation for market orders.
Position Management
InpTradeTool_MaxLots 0.00 Max lots per trade.
InpTradeTool_MaxOpenPositionsMarket 1 Max open positions per market.
InpTradeTool_MaxOpenPositionsSymbol 0 Max open positions per symbol.
InpTradeTool_MaxOpenPositionsAccount 0 Max open positions total.
InpTradeTool_MaxOpenPositionsHour 0 Max positions per hour.
InpTradeTool_MaxOpenPositionsDay 0 Max positions per day.
InpTradeTool_MaxOpenPositionsWeek 0 Max positions per week.
InpTradeTool_MaxTradesPerUnitTime 0 Max trades per time unit.
InpTradeTool_MaxTradesUnitTimeInSeconds 0 Time unit for max trades.
InpTradeTool_MinTradeIntervalInSeconds 0 Min seconds between trades.
InpTradeTool_MagicNumber 123456789 Unique trade identifier.
Trading Rules
InpTradeTool_AutoTradeEnabled true Enable automated trading.
InpTradeTool_AutoTradeRefreshMode 1 0=Every Tick, 1=Every Bar.
InpTradeTool_AllowedTradeTypes 0 0=Both, 1=Buys, 2=Sells.
Time Management
InpTradeTool_StartOfDayTime 00:00 Trading start time.
InpTradeTool_EndOfDayTime 00:00 Trading end time.
InpTradeTool_ClosePositionTimeOffsetInSeconds 0 Position close time offset.
InpTradeTool_CloseOrderTimeOffsetInSeconds 0 Order close time offset.
InpTradeTool_ClosePositionAtEndOfDay false Close positions end of day.
InpTradeTool_ClosePositionAtEndOfWeek false Close positions end of week.
InpTradeTool_CloseOrderAtEndOfDay false Close orders end of day.
InpTradeTool_CloseOrderAtEndOfWeek false Close orders end of week.
Stop Management
InpTradeTool_InitialStopValue 3.00 Initial SL value.
InpTradeTool_InitialStopValueUnits 0 SL units: 0=ATR, 1=HH/LL, 2=Points.
InpTradeTool_TrailingStopValue 0.00 Trailing SL value.
InpTradeTool_TrailingStopValueUnits 0 TS units: 0=ATR, 1=HH/LL, 2=Points, 3=Risk.
InpTradeTool_TrailingStopValueEnabled false Enable trailing stop.
InpTradeTool_EnableTrailingStopAfterBreakeven true TS active only after BE.
InpTradeTool_EnableTrailingStopAfterProfitInPercent 0.0000 TS active after profit %.
InpTradeTool_UseSoftSLs false EA-monitored stop loss.
InpTradeTool_MinSLTPPriceChangeUnitsInPoints 10 Min SL/TP/BE adjustment.
Exit Management
InpTradeTool_TakeProfitStopValue 2.00 Take profit value.
InpTradeTool_TakeProfitStopValueUnits 3 TP units: 0=ATR, 1=HH/LL, 2=Points, 3=Risk.
InpTradeTool_TakeProfitStopValueEnabled true Enable take profit.
InpTradeTool_UseSoftTPs false EA-monitored take profit.
InpTradeTool_BreakevenStopValue 1.00 Breakeven trigger value.
InpTradeTool_BreakevenStopValueUnits 3 BE units: 0=ATR, 1=HH/LL, 2=Points, 3=Risk.
InpTradeTool_BreakevenStopValueEnabled true Enable breakeven.
InpTradeTool_MaxGainMarketAsPercentageOfBalance 0.00 Max gain per market (%).
InpTradeTool_MaxGainAccountAsPercentageOfBalance 0.00 Max gain all markets (%).
InpTradeTool_MinProfitInPoints 0 Min points before time-based close.
InpTradeTool_MinProfitInPointsTimeInSeconds 0 Time window for min points check.
Custom Indicators
InpTradeTool_CustomIndicator0..24 (see §13) Custom indicator configurations.
User Variables
InpTradeTool_UserVAR[n] [value];[range] User variable (n = 0–99). Prefix range with ~ to disable during optimisation.
Backtesting & Optimisation
InpTradeTool_TesterAccountType 0 0=Standard, 1=Raw Spread.
InpTradeTool_TesterCommissionPerLot 0.00 Round-trip commission per lot.
InpTradeTool_TesterNormalSpreadInPoints 0 Legacy: daytime spread (points).
InpTradeTool_TesterNightSpreadInPoints 0 Legacy: nighttime spread (points).
InpTradeTool_TesterNormalStartHour 8 Legacy: daytime start hour.
InpTradeTool_TesterNormalEndHour 22 Legacy: daytime end hour.
InpTradeTool_TesterSpreadSchedule (empty) Hourly spread schedule string.
InpTradeTool_TesterSpreadScheduleEnabled false Enable spread schedule.
InpTradeTool_TesterSpreadApplyToMid true Apply spread to mid-price.
InpTradeTool_TesterStartingBalance 10000 Simulation starting balance.
InpTradeTool_TesterStartDate 0 Simulation start date.
InpTradeTool_TesterEndDate 0 Simulation end date.
InpTradeTool_TesterLeverage 100 Simulation leverage.
InpTradeTool_OptimiseEnabled false Enable scheduled optimisation.
InpTradeTool_OptimisePerformanceMetric1 1 Primary metric (see §15).
InpTradeTool_OptimisePerformanceMetric2 0 Secondary metric (see §15).
InpTradeTool_OptimiseFrequencyInDays 0 Optimise frequency (days).
InpTradeTool_OptimiseDayOfWeek 6 Optimise day (0=Sun–6=Sat).
InpTradeTool_OptimiseHourOfDay 0 Optimise hour.
InpTradeTool_OptimiseLookbackInDays 0 Optimise lookback (days).
InpTradeTool_OptimiseLastDate 0 Last optimisation date.
InpTradeTool_OptimiseNextDate 0 Next optimisation date.
InpTradeTool_OptimiseFilter[n] [min];[max] Optimisation filter (n = StatType value).
InpTradeTool_WFFrequencyInDays 0 Walk-forward re-optimise interval.
InpTradeTool_WFLookbackInDays 0 Walk-forward lookback period.
Compliance
InpTradeTool_ComplianceProfitTargetRate 0.10 Profit target (ratio).
InpTradeTool_ComplianceOverallLossLimitRate 0.10 Overall loss limit (ratio).
InpTradeTool_ComplianceDailyLossLimitRate 0.05 Daily loss limit (ratio).
InpTradeTool_ComplianceIntradayDDLimitRate 0.05 Intraday DD limit (ratio).
InpTradeTool_ComplianceMinTradingDays 4 Min trading days.
InpTradeTool_ComplianceProfitTargetWarnRate 0.75 Profit target warn threshold.
InpTradeTool_ComplianceOverallLossWarnRate 0.90 Overall loss warn threshold.
InpTradeTool_ComplianceDailyLossWarnRate 0.90 Daily loss warn threshold.
InpTradeTool_ComplianceIntradayDDWarnRate 0.90 Intraday DD warn threshold.
InpTradeTool_ComplianceLogLevel 2 0=Off, 1=Breaches, 2=Warn+Breach, 3=Summary+Breach.
InpTradeTool_ComplianceTimeZone 1 0=UTC, 1=EU Central, 2=UK, 3=US East, 4=AU East, 5=Tokyo, 6=Server.
InpTradeTool_ComplianceBoundaryHour 0 Day boundary hour (0–23).
InpTradeTool_ComplianceBoundaryMinute 0 Day boundary minute (0–59).
InpTradeTool_ComplianceBoundarySecond 0 Day boundary second (0–59).
AI
InpTradeTool_AIMode 0 0=Disabled, 1=Monitor, 2=Filter, 3=Gate, 4=Autonomous.
InpTradeTool_AIProvidersConfigString provider=Gemini,... Provider config (key=value pairs).
InpTradeTool_AIStrategyInstructions (empty) Strategy text for AI prompt.
InpTradeTool_AITradingStyle 1 0=Conservative, 1=Moderate, 2=Aggressive.
InpTradeTool_AIUrls (URLs) News feed URLs for AI context.
InpTradeTool_AITimeframes (empty) Additional OHLC timeframes.
InpTradeTool_AIMaxHistorySizeInBars 300 Bars sent to AI per timeframe.
InpTradeTool_AIRefreshIntervalMinutes 15 Min minutes between AI requests.
InpTradeTool_AIMinConfidenceThreshold 0.30 Min confidence to act on AI.
InpTradeTool_AIUseValidUntil false Assessments expire at AI TTL (true) or stay until replaced (false).
InpTradeTool_AIExportMode 0 0=Grounded, 1=Raw, 2=Both.
InpTradeTool_AIGateSignalTimeoutInSeconds 100 Gate signal expiry (seconds).
InpTradeTool_AIAllowOpen false AI can open positions.
InpTradeTool_AIAllowClose false AI can close positions.
InpTradeTool_AIAllowModifySL false AI can modify SL.
InpTradeTool_AIAllowModifyTP false AI can modify TP.
InpTradeTool_AIAllowPlaceOrders false AI can place pending orders.
InpTradeTool_AIAllowCancelOrders false AI can cancel orders.
InpTradeTool_AIIncludeClosedHistory true Include closed trades in AI prompt.
Other
InpTradeTool_ATRPeriod 14 ATR indicator period.
InpTradeTool_ChartImports 0 0=Current, 1=All visible symbols.
InpTradeTool_SymbolImports (empty) Comma-separated symbol list.
InpTradeTool_AlertTemplate (template string) Alert message template.
Debugging
InpTradeTool_DebugFlags 0 Debugging flag bitmask.
Interface
InpTradeTool_GuiTabsFlagMask 63 GUI tab visibility mask.
InpTradeTool_LineWidth 1 Chart line width.
InpTradeTool_LineStyle 2 Chart line style (STYLE_DOT).
InpTradeTool_CPColor 0 Current price line colour.
InpTradeTool_SLColor 200 Stop loss line colour.
InpTradeTool_TPColor 32768 Take profit line colour.
InpTradeTool_BEColor 8421376 Breakeven line colour.
InpTradeTool_SOColor 0 Stop-out line colour.
InpTradeTool_LOColor 0 Limit order line colour.
InpTradeTool_FontSize 9 GUI font size.
InpTradeTool_ChartEdgeAlignment 1 0=Left, 1=Right.

13. EAsiTrader Preset Files

An EAsiTrader Profile consists of:

  1. One Main Preset File: Stored in the Files\EAsiTrader folder, this file contains settings common to all markets, both primary and secondary.
  2. One or more Overrides Preset Files: Stored in a sub-folder named after the main preset file (excluding its file extension). These files specify settings unique to individual markets (symbol and timeframe). Each overrides file is named based on the market’s symbol and timeframe, e.g., EURUSD_H1.set.

For example, if the main preset file is named Defaults.set, the Overrides Preset Files are stored in a folder named Defaults. Each overrides file is named from the market’s symbol and timeframe, such as EURUSD_H1.set.

Main Preset File

The Defaults.set file is a main preset file automatically generated by EAsiTrader. It includes all available settings, grouped by functional sections, with their default values. The Defaults.set file is automatically created when EAsiTrader is loaded for the first time or when clicking the Reset button from the GUI. Any changes to this file will be overwritten when the file is reset. Resetting a profile will remove the profile’s overrides preset files.

Important: Defaults.set serves as the definitive template for EAsiTrader Preset Files. Adhere strictly to this structure when creating or editing the main preset file. Missing sections or mis-ordered settings may result in improper functioning or errors.

Defaults.set

;
; Section Header
;
InpTradeTool_Name=Defaults
InpTradeTool_Description=
InpTradeTool_Author=
InpTradeTool_Comments=
InpTradeTool_PresetFile=Defaults.set
InpTradeTool_Market=
InpTradeTool_AIGenerated=
InpTradeTool_AIModel=
InpTradeTool_CategoryType=1
InpTradeTool_SettingsVersion=1.000
InpTradeTool_ChartImages=
;
; Section Scripts
;
InpTradeTool_ScriptLongEntry=
InpTradeTool_ScriptLongInitialStop=
InpTradeTool_ScriptLongTrailingStop=
InpTradeTool_ScriptLongLots=
InpTradeTool_ScriptLongTakeProfit=
InpTradeTool_ScriptLongBreakeven=
InpTradeTool_ScriptLongExit=
InpTradeTool_ScriptShortEntry=
InpTradeTool_ScriptShortInitialStop=
InpTradeTool_ScriptShortTrailingStop=
InpTradeTool_ScriptShortLots=
InpTradeTool_ScriptShortTakeProfit=
InpTradeTool_ScriptShortBreakeven=
InpTradeTool_ScriptShortExit=
InpTradeTool_ScriptAITrigger=
;
; Section Risk Management
;
InpTradeTool_MaxRiskPerTradeInPercent=1.00
InpTradeTool_MaxRiskPerTradeInMoney=0.00
InpTradeTool_MaxLossMarketAsPercentageOfBalance=0.00
InpTradeTool_MaxLossAccountAsPercentageOfBalance=0.00
InpTradeTool_TrailMaxLoss=false
InpTradeTool_DeviationInPoints=0
;
; Section Position Management
;
InpTradeTool_MaxLots=0.00
InpTradeTool_MaxOpenPositionsMarket=1
InpTradeTool_MaxOpenPositionsSymbol=0
InpTradeTool_MaxOpenPositionsAccount=0
InpTradeTool_MaxOpenPositionsHour=0
InpTradeTool_MaxOpenPositionsDay=0
InpTradeTool_MaxOpenPositionsWeek=0
InpTradeTool_MaxTradesPerUnitTime=0
InpTradeTool_MaxTradesUnitTimeInSeconds=0
InpTradeTool_MinTradeIntervalInSeconds=0
InpTradeTool_MagicNumber=123456789
;
; Section Trading Rules
;
InpTradeTool_AutoTradeEnabled=true
InpTradeTool_AutoTradeRefreshMode=1 // SeriesRefreshMode_EveryBar
InpTradeTool_AllowedTradeTypes=0 // AllowedTradeTypes_BuysAndSells
;
; Section Time Management
;
InpTradeTool_StartOfDayTime=00:00
InpTradeTool_EndOfDayTime=00:00
InpTradeTool_ClosePositionTimeOffsetInSeconds=0
InpTradeTool_CloseOrderTimeOffsetInSeconds=0
InpTradeTool_ClosePositionAtEndOfDay=false
InpTradeTool_ClosePositionAtEndOfWeek=false
InpTradeTool_CloseOrderAtEndOfDay=false
InpTradeTool_CloseOrderAtEndOfWeek=false
;
; Section Stop Management
;
InpTradeTool_InitialStopValue=3.00
InpTradeTool_InitialStopValueUnits=0 // TradeToolStopUnits_ATR
InpTradeTool_TrailingStopValue=0.00
InpTradeTool_TrailingStopValueUnits=0 // TradeToolStopUnits_ATR
InpTradeTool_TrailingStopValueEnabled=false
InpTradeTool_EnableTrailingStopAfterBreakeven=true
InpTradeTool_EnableTrailingStopAfterProfitInPercent=0.0000
InpTradeTool_UseSoftSLs=false
InpTradeTool_MinSLTPPriceChangeUnitsInPoints=10
;
; Section Exit Management
;
InpTradeTool_TakeProfitStopValue=2.00
InpTradeTool_TakeProfitStopValueUnits=3 // TradeToolStopUnits_R
InpTradeTool_TakeProfitStopValueEnabled=true
InpTradeTool_UseSoftTPs=false
InpTradeTool_BreakevenStopValue=1.00
InpTradeTool_BreakevenStopValueUnits=3 // TradeToolStopUnits_R
InpTradeTool_BreakevenStopValueEnabled=true
InpTradeTool_MaxGainMarketAsPercentageOfBalance=0.00
InpTradeTool_MaxGainAccountAsPercentageOfBalance=0.00
InpTradeTool_MinProfitInPoints=0
InpTradeTool_MinProfitInPointsTimeInSeconds=0
;
; Section Custom Indicators
;
InpTradeTool_CustomIndicator0=NTL\ABH(1,14,3).ex5,0,1
InpTradeTool_CustomIndicator1=NTL\ADX(1,14).ex5,0,1,2,3
InpTradeTool_CustomIndicator2=NTL\ADXW(1,14).ex5,0,1,2,3
InpTradeTool_CustomIndicator3=NTL\ATR(1,14).ex5,0
InpTradeTool_CustomIndicator4=NTL\AutoFib(1,0,'0.0,0.3,0.5,0.618,0.762,1.0',3,0,4,8,50,100,0.0,10,250,45,'0.35,1',0,0,3,14).ex5,0,1,2,3,4,5
InpTradeTool_CustomIndicator5=NTL\BB(1,20,2.0).ex5,0,1,2,3
InpTradeTool_CustomIndicator6=NTL\ChoCh(1,0,'0.0,0.3,0.5,0.618,0.762,1.0',3,55,3,6,55,100,0.0,8,250,45,'0.35,1',0,0,3,14,500).ex5,0,1,2,3,4,5,6,7,8
InpTradeTool_CustomIndicator7=NTL\FVG(1,0,400,0.1,0.0,0.4,3.0,0.1,3,14).ex5,0,1,2,3,4,5,6
InpTradeTool_CustomIndicator8=NTL\HLines(1,'',800,15,'S2;R2',35,0.0,0.5,100).ex5,0,1
InpTradeTool_CustomIndicator9=NTL\JCP(1).ex5,0,1
InpTradeTool_CustomIndicator10=NTL\Keltner(1,20,1,2.25).ex5,0,1,2,3
InpTradeTool_CustomIndicator11=NTL\LP(1,0,800,2,6,12,400,14,7.0).ex5,0,1,2,3,4,5,6,7
InpTradeTool_CustomIndicator12=NTL\MA(1,50,1,200,1).ex5,0,1,1
InpTradeTool_CustomIndicator13=NTL\MACD(1,12,26,9).ex5,0,4
InpTradeTool_CustomIndicator14=NTL\Markets(1).ex5,0
InpTradeTool_CustomIndicator15=NTL\OsMA(1,12,26,9).ex5,0,1
InpTradeTool_CustomIndicator16=NTL\PL(1,16408,4).ex5,0
InpTradeTool_CustomIndicator17=NTL\PP(1).ex5,0,1,2,3,4,5
InpTradeTool_CustomIndicator18=NTL\PSAR(1,0.02,0.2).ex5,0,1
InpTradeTool_CustomIndicator19=NTL\RSI(1,14,1,70,30).ex5,0,1
InpTradeTool_CustomIndicator20=NTL\Scalper(1,10000,0.7,10000,0.3,0.6,10000,0.5,0.3,10000,0.7,10,1,5,0.0,5000,1,1,19,24).ex5,0,1,2,3,4,5,6
InpTradeTool_CustomIndicator21=NTL\Stochastic(1,5,3,3,80,20).ex5,0,1,2
InpTradeTool_CustomIndicator22=NTL\ST(1,13,1.5).ex5,0,1
InpTradeTool_CustomIndicator23=NTL\TLines(1,10,2,5,400,20,800,0.4,0.2,100,0).ex5,0,1,2,3,4
InpTradeTool_CustomIndicator24=NTL\TSI(1,13,21,8,25,-25,1).ex5,0,1,2
;
; Section User Variables
;
;
; Section Backtesting & Optimisation
;
InpTradeTool_TesterAccountType=0 // AccountType_Standard
InpTradeTool_TesterCommissionPerLot=0.00
InpTradeTool_TesterNormalSpreadInPoints=0
InpTradeTool_TesterNightSpreadInPoints=0
InpTradeTool_TesterNormalStartHour=8
InpTradeTool_TesterNormalEndHour=22
InpTradeTool_TesterSpreadSchedule=
InpTradeTool_TesterSpreadScheduleEnabled=false
InpTradeTool_TesterSpreadApplyToMid=true
InpTradeTool_TesterStartingBalance=10000
InpTradeTool_TesterStartDate=0 // 1970.01.01 00:00
InpTradeTool_TesterEndDate=0 // 1970.01.01 00:00
InpTradeTool_TesterLeverage=100
InpTradeTool_OptimiseEnabled=false
InpTradeTool_OptimisePerformanceMetric1=1 // PerformanceMetric_Balance
InpTradeTool_OptimisePerformanceMetric2=0 // PerformanceMetric_None
InpTradeTool_OptimiseFrequencyInDays=0
InpTradeTool_OptimiseDayOfWeek=6
InpTradeTool_OptimiseHourOfDay=0
InpTradeTool_OptimiseLookbackInDays=0
InpTradeTool_OptimiseLastDate=0 // 1970.01.01 00:00
InpTradeTool_OptimiseNextDate=0 // 1970.01.01 00:00
InpTradeTool_WFFrequencyInDays=0
InpTradeTool_WFLookbackInDays=0
;
; Section Compliance
;
InpTradeTool_ComplianceProfitTargetRate=0.10
InpTradeTool_ComplianceOverallLossLimitRate=0.10
InpTradeTool_ComplianceDailyLossLimitRate=0.05
InpTradeTool_ComplianceIntradayDDLimitRate=0.05
InpTradeTool_ComplianceMinTradingDays=4
InpTradeTool_ComplianceProfitTargetWarnRate=0.75
InpTradeTool_ComplianceOverallLossWarnRate=0.90
InpTradeTool_ComplianceDailyLossWarnRate=0.90
InpTradeTool_ComplianceIntradayDDWarnRate=0.90
InpTradeTool_ComplianceLogLevel=2 // Warnings And Breaches
InpTradeTool_ComplianceTimeZone=1 // EU Central
InpTradeTool_ComplianceBoundaryHour=0
InpTradeTool_ComplianceBoundaryMinute=0
InpTradeTool_ComplianceBoundarySecond=0
;
; Section AI
;
InpTradeTool_AIMode=0
InpTradeTool_AIProvidersConfigString=provider=Gemini,model=gemini-3-pro-preview,temperature=0.2
InpTradeTool_AIStrategyInstructions=
InpTradeTool_AITradingStyle=1
InpTradeTool_AIUrls=https%3A%2F%2Fwww.dailyforex.com%2Frss%2Fforexnews.xml%0Ahttps%3A%2F%2Fwww.fxstreet.com%2Frss%0Ahttps%3A%2F%2Fstockmarketwatch.com%2Flive%2Fstock-market-today%0Ahttps%3A%2F%2Finvestinglive.com%2F%0Ahttps%3A%2F%2Fwww.fxstreet.com%2Frss%2Fanalysis
InpTradeTool_AITimeframes=
InpTradeTool_AIMaxHistorySizeInBars=300
InpTradeTool_AIRefreshIntervalMinutes=15
InpTradeTool_AIMinConfidenceThreshold=0.3000
InpTradeTool_AIUseValidUntil=false
InpTradeTool_AIExportMode=0
InpTradeTool_AIGateSignalTimeoutInSeconds=100
InpTradeTool_AIAllowOpen=false
InpTradeTool_AIAllowClose=false
InpTradeTool_AIAllowModifySL=false
InpTradeTool_AIAllowModifyTP=false
InpTradeTool_AIAllowPlaceOrders=false
InpTradeTool_AIAllowCancelOrders=false
InpTradeTool_AIIncludeClosedHistory=true
;
; Section Other
;
InpTradeTool_ATRPeriod=14
InpTradeTool_ChartImports=0 // IndicatorChartImports_Current
InpTradeTool_SymbolImports=
InpTradeTool_AlertTemplate={time}: strategy:{strategy} {symbol},{timeframe} {orderType} signal at: {entryPrice} sl={sl} tp={tp}
;
; Section Debugging
;
InpTradeTool_DebugFlags=0
;
; Section Interface
;
InpTradeTool_GuiTabsFlagMask=63
InpTradeTool_LineWidth=1
InpTradeTool_LineStyle=2 // STYLE_DOT
InpTradeTool_CPColor=0 // clrBlack
InpTradeTool_SLColor=200 // 200,0,0
InpTradeTool_TPColor=32768 // clrGreen
InpTradeTool_BEColor=8421376 // clrTeal
InpTradeTool_SOColor=0 // clrBlack
InpTradeTool_LOColor=0 // clrBlack
InpTradeTool_FontSize=9
InpTradeTool_ChartEdgeAlignment=1 // ChartEdgeAlignment_Right

Overrides Preset File

The file below is an example of an Overrides Preset File. The settings apply to just one market (symbol, timeframe) of a profile. The file’s name determines the market, e.g. EURUSD_H1 means the override settings apply to the EURUSD Hourly market. Unlike the Main Presets File which lists all settings, the Overrides Preset File only lists those settings that are different to the Main Presets File.

;
; Section Backtesting & Optimisation
;
InpTradeTool_TesterBrokerSpreadInPoints=15
;
; Other Settings
;
; Section Tester
;
InpTradeTool_Tester=true

Note: Market override files are optional. They only need to contain settings that are different from the defaults in the main preset file. If there is only one market and it uses the same settings as the main preset, you can omit the override file entirely or leave it empty. Override files are most useful when you have multiple markets with the same base strategy but require market-specific differences (e.g., different time windows, lot sizes, or indicator parameters).


14. Rules for Creating EAsiTrader Preset Files

  1. Include All Sections and Settings: Include all sections and settings from Defaults.set, maintaining the exact order, even if some values are placeholders. Do not invent new sections or settings that are not in the template.

  2. Section Headers: All sections must begin with a clear header (e.g., ; Section Header) to organize the file. Add a blank ; line before and after the section header for readability.

  3. Settings Formatting: Use the exact names, default values, and comments provided in the guide. All settings must begin with InpTradeTool_. If a setting is not required for a specific strategy, include it with a default or placeholder value.

  4. Markets: Define multiple markets in InpTradeTool_Market using a comma-separated list of symbol-timeframe pairs, e.g., InpTradeTool_Market=EURUSD H1,GBPUSD H1.

  5. Custom Indicators and Scripts: Specify all custom indicators in the Custom Indicators section using their full path and configuration. List indicators in numerical order, e.g. InpTradeTool_CustomIndicator0=, InpTradeTool_CustomIndicator1=, etc. Prefix indicators that are used in scripts or whose data should be exported to the AI (grounded events or raw buffer data) with +, e.g. InpTradeTool_CustomIndicator0=+NTL\MA(1,50,1,200,1).ex5,0,1,2. Only enabled (prefixed) indicators contribute data to AI requests. Indicators that are not used in scripts and not required for AI export may be omitted. For scripts, provide a valid expression or leave the setting empty if not used.

  6. Units and Flags: Clearly define units (e.g., ATR, Points) and flags (e.g., true or false) as per the example. Always include comments to explain these values where applicable.

  7. Alignment with Strategy Description: Each preset file should reflect the exact details of the trading strategy, ensuring settings such as risk, stop-loss, take-profit, and trading hours match the user’s requirements.

  8. Placeholder Values: For settings that do not apply, use clear placeholders (e.g., 0, false, or a comment like // Not used).

  9. Testing and Optimization: Include default settings for the Tester and Optimise sections, even if not used for the current strategy.

  10. Consistency: Ensure consistent formatting, including equal spacing around = and alignment of comments.

  11. AI Mode and Permission Mapping: The AI Section settings must be consistent with the selected AI Mode:

    • Disabled (0): No AI-specific requirements. AI settings may be present but are ignored.
    • Monitor Only (1): All AIAllow* permission flags are ignored — the AI observes but cannot affect trades. Entry and exit scripts operate independently.
    • Filter Signals (2): All AIAllow* permission flags are ignored — the AI filters script-generated signals using its assessment but cannot directly open, close, or modify trades. Entry scripts must be defined (otherwise there are no signals to filter).
    • Gated Trading (3): AIAllowOpen must be false and AIAllowPlaceOrders must be false — entries always come from scripts. Management permissions (AIAllowClose, AIAllowModifySL, AIAllowModifyTP, AIAllowCancelOrders) may be enabled for AI-controlled position management. Entry scripts must be defined to generate gate signals.
    • Autonomous (4): At least AIAllowOpen or AIAllowClose must be true. AIStrategyInstructions must be non-empty — it provides the AI’s decision-making framework. Entry and exit scripts should typically be empty since the AI controls all trade actions (unless defining fallback scripts for AI service degradation).
  12. Strategy Instructions Encoding: Multi-line AIStrategyInstructions must use string literal \n as the newline separator between lines. The text is injected verbatim into the AI’s system prompt. Keep instructions concise — they are sent with every AI request and contribute to token usage.

  13. AI Trigger Script: The ScriptAITrigger is an optional EAsiScript expression that gates AI refresh requests. When defined, it is evaluated before each AI request; a non-zero return permits the request, zero suppresses it. The script is only evaluated when all three preconditions are met: the refresh interval has elapsed, the current AI assessment has expired, and there are no open positions. Leave empty to allow AI requests at every scheduled interval. Ensure any indicators referenced in the script are enabled in the Custom Indicators section with the + prefix. More broadly, all indicators whose grounded events or raw data should be included in AI requests must also be enabled with the + prefix — this applies regardless of whether the indicator is referenced in a script.

  14. URL Encoding: URLs in AIUrls must be percent-encoded (e.g., https:// becomes https%3A%2F%2F, / becomes %2F). Multiple URLs are separated by %0A (the percent-encoded newline character).

Preset Validation Checklist

After generating an AI-enabled preset file, verify:

  1. All sections from Defaults.set are present and in the correct order.
  2. All settings within each section are present — use defaults for unused settings.
  3. Setting names match exactly — all begin with InpTradeTool_.
  4. AIMode value (0–4) matches the intended operational mode.
  5. AI permission flags comply with Rule 11 for the selected mode.
  6. AIStrategyInstructions is non-empty when AIMode is Autonomous (4).
  7. AIStrategyInstructions uses literal \n for newlines — not literal line breaks.
  8. AIUrls are percent-encoded with %0A separating multiple URLs.
  9. Entry scripts are defined for Filter Signals (2) and Gated Trading (3) modes; typically empty for Autonomous (4).
  10. Entry scripts in Gated Trading (3) mode do not reference Ai*() functions — see Gated Trading in Detail.
  11. Custom indicators referenced in scripts, AI Trigger Script, or required for AI data export (grounded events and raw data) are enabled with the + prefix.

Main Preset File Example 1: Script-Only Strategy (AI Disabled)

The file below is an example of a main preset file for a script-only strategy with AI disabled. Observe how it complies with the rules above.

;
; Section Header
;
InpTradeTool_Name=Full Auto Fibonacci Retracement Strategy
InpTradeTool_Description=A fully automated Fibonacci retracement strategy, designed for optimal performance on most major and minor currency pairs on the 1-hour timeframe. Before running, ensure to optimise for profit and drawdown in Tester > Settings. For a semi-automated approach, you can manually adjust the take-profit levels to align with what we call 'the most likely area for price to reach next,' further enhancing your win rate.
InpTradeTool_Author=
InpTradeTool_Comments=
InpTradeTool_PresetFile=NTL-FibonacciRetracement.set
InpTradeTool_Market=Major Pairs, Minor Pairs, H1
InpTradeTool_AIGenerated=
InpTradeTool_AIModel=
InpTradeTool_CategoryType=1
InpTradeTool_SettingsVersion=1.000
InpTradeTool_ChartImages=41/911/usdchf-m30-raw-trading-ltd.png
;
; Section Scripts
;
InpTradeTool_ScriptLongEntry=Signal('AutoFib1') == Bullish && Ask() > FibPrice('AutoFib1',0.762) && Low() <= LL(15) && Ask() < HH(10) ? Ask() : 0 
InpTradeTool_ScriptLongInitialStop=Ask() - (ATR1() * VAR0)
InpTradeTool_ScriptLongTrailingStop=
InpTradeTool_ScriptLongLots=
InpTradeTool_ScriptLongTakeProfit=
InpTradeTool_ScriptLongBreakeven=
InpTradeTool_ScriptLongExit=
InpTradeTool_ScriptShortEntry=Signal('AutoFib1') == Bearish && FibPrice('AutoFib1',0.762) > Bid() && High() >= HH(15) && Bid() > LL(10) ? Bid() : 0
InpTradeTool_ScriptShortInitialStop=Bid() + (ATR1() * VAR0)
InpTradeTool_ScriptShortTrailingStop=
InpTradeTool_ScriptShortLots=
InpTradeTool_ScriptShortTakeProfit=
InpTradeTool_ScriptShortBreakeven=
InpTradeTool_ScriptShortExit=
InpTradeTool_ScriptAITrigger=
;
; Section Risk Management
;
InpTradeTool_MaxRiskPerTradeInPercent=1.00
InpTradeTool_MaxRiskPerTradeInMoney=0.00
InpTradeTool_MaxLossMarketAsPercentageOfBalance=0.00
InpTradeTool_MaxLossAccountAsPercentageOfBalance=0.00
InpTradeTool_TrailMaxLoss=false
InpTradeTool_DeviationInPoints=0
;
; Section Position Management
;
InpTradeTool_MaxLots=0.00
InpTradeTool_MaxOpenPositionsMarket=1
InpTradeTool_MaxOpenPositionsSymbol=0
InpTradeTool_MaxOpenPositionsAccount=0
InpTradeTool_MaxOpenPositionsHour=0
InpTradeTool_MaxOpenPositionsDay=0
InpTradeTool_MaxOpenPositionsWeek=0
InpTradeTool_MaxTradesPerUnitTime=0
InpTradeTool_MaxTradesUnitTimeInSeconds=0
InpTradeTool_MinTradeIntervalInSeconds=0
InpTradeTool_MagicNumber=123456789
;
; Section Trading Rules
;
InpTradeTool_AutoTradeEnabled=true
InpTradeTool_AutoTradeRefreshMode=1 // SeriesRefreshMode_EveryBar
InpTradeTool_AllowedTradeTypes=0 // AllowedTradeTypes_BuysAndSells
;
; Section Time Management
;
InpTradeTool_StartOfDayTime=00:00
InpTradeTool_EndOfDayTime=00:00
InpTradeTool_ClosePositionTimeOffsetInSeconds=0
InpTradeTool_CloseOrderTimeOffsetInSeconds=0
InpTradeTool_ClosePositionAtEndOfDay=false
InpTradeTool_ClosePositionAtEndOfWeek=false
InpTradeTool_CloseOrderAtEndOfDay=false
InpTradeTool_CloseOrderAtEndOfWeek=false
;
; Section Stop Management
;
InpTradeTool_InitialStopValue=3.00
InpTradeTool_InitialStopValueUnits=0 // TradeToolStopUnits_ATR
InpTradeTool_TrailingStopValue=4.00
InpTradeTool_TrailingStopValueUnits=0 // TradeToolStopUnits_ATR
InpTradeTool_TrailingStopValueEnabled=false
InpTradeTool_EnableTrailingStopAfterBreakeven=true
InpTradeTool_EnableTrailingStopAfterProfitInPercent=0.0000
InpTradeTool_UseSoftSLs=false
InpTradeTool_MinSLTPPriceChangeUnitsInPoints=10
;
; Section Exit Management
;
InpTradeTool_TakeProfitStopValue=1.00
InpTradeTool_TakeProfitStopValueUnits=3 // TradeToolStopUnits_R
InpTradeTool_TakeProfitStopValueEnabled=true
InpTradeTool_UseSoftTPs=false
InpTradeTool_BreakevenStopValue=1.00
InpTradeTool_BreakevenStopValueUnits=3 // TradeToolStopUnits_R
InpTradeTool_BreakevenStopValueEnabled=true
InpTradeTool_MaxGainMarketAsPercentageOfBalance=0.00
InpTradeTool_MaxGainAccountAsPercentageOfBalance=0.00
InpTradeTool_MinProfitInPoints=0
InpTradeTool_MinProfitInPointsTimeInSeconds=0
;
; Section Custom Indicators
;
InpTradeTool_CustomIndicator0=NTL\ABH(1,14,3).ex5,0,1
InpTradeTool_CustomIndicator1=NTL\ADX(1,14).ex5,0,1,2,3
InpTradeTool_CustomIndicator2=NTL\ADXW(1,14).ex5,0,1,2,3
InpTradeTool_CustomIndicator3=+NTL\ATR(1,14).ex5,0
InpTradeTool_CustomIndicator4=+NTL\AutoFib(1,0,'0.0,0.3,0.5,0.618,0.762,1.0',3,0,4,8,50,100,0.0,10,250,45,'0.35,1',0,0,3,14).ex5,0,1,2,3,4,5
InpTradeTool_CustomIndicator5=NTL\BB(1,20,2.0).ex5,0,1,2,3
InpTradeTool_CustomIndicator6=NTL\ChoCh(1,0,'0.0,0.3,0.5,0.618,0.762,1.0',3,55,3,6,55,100,0.0,8,250,45,'0.35,1',0,0,3,14,500).ex5,0,1,2,3,4,5,6,7,8
InpTradeTool_CustomIndicator7=NTL\FVG(1,0,400,0.1,0.0,0.4,3.0,0.1,3,14).ex5,0,1,2,3,4,5,6
InpTradeTool_CustomIndicator8=NTL\HLines(1,'',800,15,'S2;R2',35,0.0,0.5,100).ex5,0,1
InpTradeTool_CustomIndicator9=NTL\JCP(1).ex5,0,1
InpTradeTool_CustomIndicator10=NTL\Keltner(1,20,1,2.25).ex5,0,1,2,3
InpTradeTool_CustomIndicator11=NTL\LP(1,0,800,2,6,12,400,14,7.0).ex5,0,1,2,3,4,5,6,7
InpTradeTool_CustomIndicator12=NTL\MA(1,50,1,200,1).ex5,0,1,1
InpTradeTool_CustomIndicator13=NTL\MACD(1,12,26,9).ex5,0,4
InpTradeTool_CustomIndicator14=NTL\Markets(1).ex5,0
InpTradeTool_CustomIndicator15=NTL\OsMA(1,12,26,9).ex5,0,1
InpTradeTool_CustomIndicator16=NTL\PL(1,16408,4).ex5,0
InpTradeTool_CustomIndicator17=NTL\PP(1).ex5,0,1,2,3,4,5
InpTradeTool_CustomIndicator18=NTL\PSAR(1,0.02,0.2).ex5,0,1
InpTradeTool_CustomIndicator19=NTL\RSI(1,14,1,70,30).ex5,0,1
InpTradeTool_CustomIndicator20=NTL\Scalper(1,10000,0.7,10000,0.3,0.6,10000,0.5,0.3,10000,0.7,10,1,5,0.0,5000,1,1,19,24).ex5,0,1,2,3,4,5,6
InpTradeTool_CustomIndicator21=NTL\Stochastic(1,5,3,3,80,20).ex5,0,1,2
InpTradeTool_CustomIndicator22=NTL\ST(1,13,1.5).ex5,0,1
InpTradeTool_CustomIndicator23=NTL\TLines(1,10,2,5,400,20,800,0.4,0.2,100,0).ex5,0,1,2,3,4
InpTradeTool_CustomIndicator24=NTL\TSI(1,13,21,8,25,-25,1).ex5,0,1,2
;
; Section User Variables
;
InpTradeTool_UserVAR0=6;1,2,3,4,5,6,7,8,9,10
;
; Section Backtesting & Optimisation
;
InpTradeTool_TesterAccountType=0 // AccountType_Standard
InpTradeTool_TesterCommissionPerLot=0.00
InpTradeTool_TesterNormalSpreadInPoints=0
InpTradeTool_TesterNightSpreadInPoints=0
InpTradeTool_TesterNormalStartHour=8
InpTradeTool_TesterNormalEndHour=22
InpTradeTool_TesterSpreadSchedule=
InpTradeTool_TesterSpreadScheduleEnabled=false
InpTradeTool_TesterSpreadApplyToMid=true
InpTradeTool_TesterStartingBalance=100000
InpTradeTool_TesterStartDate=0 // 1970.01.01 00:00
InpTradeTool_TesterEndDate=0 // 1970.01.01 00:00
InpTradeTool_TesterLeverage=100
InpTradeTool_OptimiseEnabled=false
InpTradeTool_OptimisePerformanceMetric1=1 // PerformanceMetric_Balance
InpTradeTool_OptimisePerformanceMetric2=0 // PerformanceMetric_None
InpTradeTool_OptimiseFrequencyInDays=0
InpTradeTool_OptimiseDayOfWeek=6
InpTradeTool_OptimiseHourOfDay=0
InpTradeTool_OptimiseLookbackInDays=0
InpTradeTool_OptimiseLastDate=0 // 1970.01.01 00:00
InpTradeTool_OptimiseNextDate=0 // 1970.01.01 00:00
InpTradeTool_WFFrequencyInDays=0
InpTradeTool_WFLookbackInDays=0
InpTradeTool_OptimiseFilter53=1000.00;0.00 // StatType_TotalProfit
;
; Section Compliance
;
InpTradeTool_ComplianceProfitTargetRate=0.10
InpTradeTool_ComplianceOverallLossLimitRate=0.10
InpTradeTool_ComplianceDailyLossLimitRate=0.05
InpTradeTool_ComplianceIntradayDDLimitRate=0.05
InpTradeTool_ComplianceMinTradingDays=4
InpTradeTool_ComplianceProfitTargetWarnRate=0.75
InpTradeTool_ComplianceOverallLossWarnRate=0.90
InpTradeTool_ComplianceDailyLossWarnRate=0.90
InpTradeTool_ComplianceIntradayDDWarnRate=0.90
InpTradeTool_ComplianceLogLevel=2 // Warnings And Breaches
InpTradeTool_ComplianceTimeZone=1 // EU Central
InpTradeTool_ComplianceBoundaryHour=0
InpTradeTool_ComplianceBoundaryMinute=0
InpTradeTool_ComplianceBoundarySecond=0
;
; Section AI
;
InpTradeTool_AIMode=0
InpTradeTool_AIProvidersConfigString=provider=Gemini,model=gemini-3-pro-preview,temperature=0.2
InpTradeTool_AIStrategyInstructions=
InpTradeTool_AITradingStyle=1
InpTradeTool_AIUrls=https%3A%2F%2Fwww.dailyforex.com%2Frss%2Fforexnews.xml%0Ahttps%3A%2F%2Fwww.fxstreet.com%2Frss%0Ahttps%3A%2F%2Fstockmarketwatch.com%2Flive%2Fstock-market-today%0Ahttps%3A%2F%2Finvestinglive.com%2F%0Ahttps%3A%2F%2Fwww.fxstreet.com%2Frss%2Fanalysis
InpTradeTool_AITimeframes=
InpTradeTool_AIMaxHistorySizeInBars=300
InpTradeTool_AIRefreshIntervalMinutes=15
InpTradeTool_AIMinConfidenceThreshold=0.3000
InpTradeTool_AIExportMode=0
InpTradeTool_AIGateSignalTimeoutInSeconds=100
InpTradeTool_AIAllowOpen=false
InpTradeTool_AIAllowClose=false
InpTradeTool_AIAllowModifySL=false
InpTradeTool_AIAllowModifyTP=false
InpTradeTool_AIAllowPlaceOrders=false
InpTradeTool_AIAllowCancelOrders=false
InpTradeTool_AIIncludeClosedHistory=true
;
; Section Other
;
InpTradeTool_ATRPeriod=14
InpTradeTool_ChartImports=0 // IndicatorChartImports_Current
InpTradeTool_SymbolImports=
InpTradeTool_AlertTemplate={time}: strategy:{strategy} {symbol},{timeframe} {orderType} signal at: {entryPrice} sl={sl} tp={tp}
;
; Section Debugging
;
InpTradeTool_DebugFlags=0
;
; Section Interface
;
InpTradeTool_GuiTabsFlagMask=63
InpTradeTool_LineWidth=1
InpTradeTool_LineStyle=2 // STYLE_DOT
InpTradeTool_CPColor=0 // clrBlack
InpTradeTool_SLColor=200 // 200,0,0
InpTradeTool_TPColor=32768 // clrGreen
InpTradeTool_BEColor=8421376 // clrTeal
InpTradeTool_SOColor=0 // clrBlack
InpTradeTool_LOColor=0 // clrBlack
InpTradeTool_FontSize=9
InpTradeTool_ChartEdgeAlignment=1 // ChartEdgeAlignment_Right

Main Preset File Example 2: AI Filter Signals — RSI Trend Strategy (EURUSD H1)

This example demonstrates Filter Signals mode (Rule 11: all AIAllow* flags are ignored). The AI periodically assesses market conditions and filters script-generated entries that conflict with its directional bias. Note the AI Trigger Script limiting AI requests to active trading hours, and the \n-encoded newlines in Strategy Instructions (Rule 12).

;
; Section Header
;
InpTradeTool_Name=AI-Filtered RSI Trend Strategy
InpTradeTool_Description=RSI crossover entries filtered by MA trend direction. AI Filter Signals mode provides periodic market assessment to block entries during unfavourable conditions. Optimise VAR0 (ATR stop multiplier) for best risk-adjusted performance.
InpTradeTool_Author=
InpTradeTool_Comments=
InpTradeTool_PresetFile=NTL-AI-FilteredRSITrend.set
InpTradeTool_Market=EURUSD H1
InpTradeTool_AIGenerated=true
InpTradeTool_AIModel=
InpTradeTool_CategoryType=1
InpTradeTool_SettingsVersion=1.000
InpTradeTool_ChartImages=
;
; Section Scripts
;
InpTradeTool_ScriptLongEntry=Signal('RSI1') == Bullish && MA1(1,0) > MA1(1,1) ? Ask() : 0
InpTradeTool_ScriptLongInitialStop=Ask() - (ATR1() * VAR0)
InpTradeTool_ScriptLongTrailingStop=
InpTradeTool_ScriptLongLots=
InpTradeTool_ScriptLongTakeProfit=
InpTradeTool_ScriptLongBreakeven=
InpTradeTool_ScriptLongExit=MA1(1,0) < MA1(1,1) && MA1(2,0) >= MA1(2,1) ? Bid() : 0
InpTradeTool_ScriptShortEntry=Signal('RSI1') == Bearish && MA1(1,0) < MA1(1,1) ? Bid() : 0
InpTradeTool_ScriptShortInitialStop=Bid() + (ATR1() * VAR0)
InpTradeTool_ScriptShortTrailingStop=
InpTradeTool_ScriptShortLots=
InpTradeTool_ScriptShortTakeProfit=
InpTradeTool_ScriptShortBreakeven=
InpTradeTool_ScriptShortExit=MA1(1,0) > MA1(1,1) && MA1(2,0) <= MA1(2,1) ? Ask() : 0
InpTradeTool_ScriptAITrigger=Hour() >= 8 && Hour() < 21 ? 1 : 0
;
; Section Risk Management
;
InpTradeTool_MaxRiskPerTradeInPercent=1.00
InpTradeTool_MaxRiskPerTradeInMoney=0.00
InpTradeTool_MaxLossMarketAsPercentageOfBalance=0.00
InpTradeTool_MaxLossAccountAsPercentageOfBalance=0.00
InpTradeTool_TrailMaxLoss=false
InpTradeTool_DeviationInPoints=0
;
; Section Position Management
;
InpTradeTool_MaxLots=0.00
InpTradeTool_MaxOpenPositionsMarket=1
InpTradeTool_MaxOpenPositionsSymbol=0
InpTradeTool_MaxOpenPositionsAccount=0
InpTradeTool_MaxOpenPositionsHour=0
InpTradeTool_MaxOpenPositionsDay=0
InpTradeTool_MaxOpenPositionsWeek=0
InpTradeTool_MaxTradesPerUnitTime=0
InpTradeTool_MaxTradesUnitTimeInSeconds=0
InpTradeTool_MinTradeIntervalInSeconds=0
InpTradeTool_MagicNumber=123456789
;
; Section Trading Rules
;
InpTradeTool_AutoTradeEnabled=true
InpTradeTool_AutoTradeRefreshMode=1 // SeriesRefreshMode_EveryBar
InpTradeTool_AllowedTradeTypes=0 // AllowedTradeTypes_BuysAndSells
;
; Section Time Management
;
InpTradeTool_StartOfDayTime=08:00
InpTradeTool_EndOfDayTime=21:00
InpTradeTool_ClosePositionTimeOffsetInSeconds=0
InpTradeTool_CloseOrderTimeOffsetInSeconds=0
InpTradeTool_ClosePositionAtEndOfDay=true
InpTradeTool_ClosePositionAtEndOfWeek=false
InpTradeTool_CloseOrderAtEndOfDay=false
InpTradeTool_CloseOrderAtEndOfWeek=false
;
; Section Stop Management
;
InpTradeTool_InitialStopValue=3.00
InpTradeTool_InitialStopValueUnits=0 // TradeToolStopUnits_ATR
InpTradeTool_TrailingStopValue=0.00
InpTradeTool_TrailingStopValueUnits=0 // TradeToolStopUnits_ATR
InpTradeTool_TrailingStopValueEnabled=false
InpTradeTool_EnableTrailingStopAfterBreakeven=true
InpTradeTool_EnableTrailingStopAfterProfitInPercent=0.0000
InpTradeTool_UseSoftSLs=false
InpTradeTool_MinSLTPPriceChangeUnitsInPoints=10
;
; Section Exit Management
;
InpTradeTool_TakeProfitStopValue=2.00
InpTradeTool_TakeProfitStopValueUnits=3 // TradeToolStopUnits_R
InpTradeTool_TakeProfitStopValueEnabled=true
InpTradeTool_UseSoftTPs=false
InpTradeTool_BreakevenStopValue=1.00
InpTradeTool_BreakevenStopValueUnits=3 // TradeToolStopUnits_R
InpTradeTool_BreakevenStopValueEnabled=true
InpTradeTool_MaxGainMarketAsPercentageOfBalance=0.00
InpTradeTool_MaxGainAccountAsPercentageOfBalance=0.00
InpTradeTool_MinProfitInPoints=0
InpTradeTool_MinProfitInPointsTimeInSeconds=0
;
; Section Custom Indicators
;
InpTradeTool_CustomIndicator0=NTL\ABH(1,14,3).ex5,0,1
InpTradeTool_CustomIndicator1=NTL\ADX(1,14).ex5,0,1,2,3
InpTradeTool_CustomIndicator2=NTL\ADXW(1,14).ex5,0,1,2,3
InpTradeTool_CustomIndicator3=+NTL\ATR(1,14).ex5,0
InpTradeTool_CustomIndicator4=NTL\AutoFib(1,0,'0.0,0.3,0.5,0.618,0.762,1.0',3,0,4,8,50,100,0.0,10,250,45,'0.35,1',0,0,3,14).ex5,0,1,2,3,4,5
InpTradeTool_CustomIndicator5=NTL\BB(1,20,2.0).ex5,0,1,2,3
InpTradeTool_CustomIndicator6=+NTL\ChoCh(1,0,'0.0,0.3,0.5,0.618,0.762,1.0',3,55,3,6,55,100,0.0,8,250,45,'0.35,1',0,0,3,14,500).ex5,0,1,2,3,4,5,6,7,8
InpTradeTool_CustomIndicator7=NTL\FVG(1,0,400,0.1,0.0,0.4,3.0,0.1,3,14).ex5,0,1,2,3,4,5,6
InpTradeTool_CustomIndicator8=NTL\HLines(1,'',800,15,'S2;R2',35,0.0,0.5,100).ex5,0,1
InpTradeTool_CustomIndicator9=NTL\JCP(1).ex5,0,1
InpTradeTool_CustomIndicator10=NTL\Keltner(1,20,1,2.25).ex5,0,1,2,3
InpTradeTool_CustomIndicator11=+NTL\LP(1,0,800,2,6,12,400,14,7.0).ex5,0,1,2,3,4,5,6,7
InpTradeTool_CustomIndicator12=+NTL\MA(1,50,1,200,1).ex5,0,1,2
InpTradeTool_CustomIndicator13=NTL\MACD(1,12,26,9).ex5,0,4
InpTradeTool_CustomIndicator14=NTL\Markets(1).ex5,0
InpTradeTool_CustomIndicator15=NTL\OsMA(1,12,26,9).ex5,0,1
InpTradeTool_CustomIndicator16=NTL\PL(1,16408,4).ex5,0
InpTradeTool_CustomIndicator17=NTL\PP(1).ex5,0,1,2,3,4,5
InpTradeTool_CustomIndicator18=NTL\PSAR(1,0.02,0.2).ex5,0,1
InpTradeTool_CustomIndicator19=+NTL\RSI(1,14,1,60,40).ex5,0,1
InpTradeTool_CustomIndicator20=NTL\Scalper(1,10000,0.7,10000,0.3,0.6,10000,0.5,0.3,10000,0.7,10,1,5,0.0,5000,1,1,19,24).ex5,0,1,2,3,4,5,6
InpTradeTool_CustomIndicator21=NTL\Stochastic(1,5,3,3,80,20).ex5,0,1,2
InpTradeTool_CustomIndicator22=NTL\ST(1,13,1.5).ex5,0,1
InpTradeTool_CustomIndicator23=NTL\TLines(1,10,2,5,400,20,800,0.4,0.2,100,0).ex5,0,1,2,3,4
InpTradeTool_CustomIndicator24=NTL\TSI(1,13,21,8,25,-25,1).ex5,0,1,2
;
; Section User Variables
;
InpTradeTool_UserVAR0=2.0;1.0,1.5,2.0,2.5,3.0
;
; Section Backtesting & Optimisation
;
InpTradeTool_TesterAccountType=0 // AccountType_Standard
InpTradeTool_TesterCommissionPerLot=0.00
InpTradeTool_TesterNormalSpreadInPoints=0
InpTradeTool_TesterNightSpreadInPoints=0
InpTradeTool_TesterNormalStartHour=8
InpTradeTool_TesterNormalEndHour=22
InpTradeTool_TesterSpreadSchedule=
InpTradeTool_TesterSpreadScheduleEnabled=false
InpTradeTool_TesterSpreadApplyToMid=true
InpTradeTool_TesterStartingBalance=10000
InpTradeTool_TesterStartDate=0 // 1970.01.01 00:00
InpTradeTool_TesterEndDate=0 // 1970.01.01 00:00
InpTradeTool_TesterLeverage=100
InpTradeTool_OptimiseEnabled=false
InpTradeTool_OptimisePerformanceMetric1=1 // PerformanceMetric_Balance
InpTradeTool_OptimisePerformanceMetric2=0 // PerformanceMetric_None
InpTradeTool_OptimiseFrequencyInDays=0
InpTradeTool_OptimiseDayOfWeek=6
InpTradeTool_OptimiseHourOfDay=0
InpTradeTool_OptimiseLookbackInDays=0
InpTradeTool_OptimiseLastDate=0 // 1970.01.01 00:00
InpTradeTool_OptimiseNextDate=0 // 1970.01.01 00:00
InpTradeTool_WFFrequencyInDays=0
InpTradeTool_WFLookbackInDays=0
;
; Section Compliance
;
InpTradeTool_ComplianceProfitTargetRate=0.10
InpTradeTool_ComplianceOverallLossLimitRate=0.10
InpTradeTool_ComplianceDailyLossLimitRate=0.05
InpTradeTool_ComplianceIntradayDDLimitRate=0.05
InpTradeTool_ComplianceMinTradingDays=4
InpTradeTool_ComplianceProfitTargetWarnRate=0.75
InpTradeTool_ComplianceOverallLossWarnRate=0.90
InpTradeTool_ComplianceDailyLossWarnRate=0.90
InpTradeTool_ComplianceIntradayDDWarnRate=0.90
InpTradeTool_ComplianceLogLevel=2 // Warnings And Breaches
InpTradeTool_ComplianceTimeZone=1 // EU Central
InpTradeTool_ComplianceBoundaryHour=0
InpTradeTool_ComplianceBoundaryMinute=0
InpTradeTool_ComplianceBoundarySecond=0
;
; Section AI
;
InpTradeTool_AIMode=2 // Filter Signals
InpTradeTool_AIProvidersConfigString=provider=Gemini,model=gemini-3-pro-preview,temperature=0.2
InpTradeTool_AIStrategyInstructions=Focus on trend continuation setups only.\nAssign bullish/bearish bias only when the most recent CHoCH event confirms the direction.\nSet risk_mode to 'reduced' during the first and last hour of the trading session.\nSet risk_mode to 'avoid' when regime is 'ranging' - wait for breakout confirmation.\nKey levels should prioritise recent swing highs and lows from CHoCH and LP events.
InpTradeTool_AITradingStyle=1 // Moderate
InpTradeTool_AIUrls=https%3A%2F%2Fwww.dailyforex.com%2Frss%2Fforexnews.xml%0Ahttps%3A%2F%2Fwww.fxstreet.com%2Frss
InpTradeTool_AITimeframes=H1
InpTradeTool_AIMaxHistorySizeInBars=300
InpTradeTool_AIRefreshIntervalMinutes=10
InpTradeTool_AIMinConfidenceThreshold=0.4000
InpTradeTool_AIExportMode=0 // Grounded Events Only
InpTradeTool_AIGateSignalTimeoutInSeconds=100
InpTradeTool_AIAllowOpen=false
InpTradeTool_AIAllowClose=false
InpTradeTool_AIAllowModifySL=false
InpTradeTool_AIAllowModifyTP=false
InpTradeTool_AIAllowPlaceOrders=false
InpTradeTool_AIAllowCancelOrders=false
InpTradeTool_AIIncludeClosedHistory=true
;
; Section Other
;
InpTradeTool_ATRPeriod=14
InpTradeTool_ChartImports=0 // IndicatorChartImports_Current
InpTradeTool_SymbolImports=
InpTradeTool_AlertTemplate={time}: strategy:{strategy} {symbol},{timeframe} {orderType} signal at: {entryPrice} sl={sl} tp={tp}
;
; Section Debugging
;
InpTradeTool_DebugFlags=0
;
; Section Interface
;
InpTradeTool_GuiTabsFlagMask=63
InpTradeTool_LineWidth=1
InpTradeTool_LineStyle=2 // STYLE_DOT
InpTradeTool_CPColor=0 // clrBlack
InpTradeTool_SLColor=200 // 200,0,0
InpTradeTool_TPColor=32768 // clrGreen
InpTradeTool_BEColor=8421376 // clrTeal
InpTradeTool_SOColor=0 // clrBlack
InpTradeTool_LOColor=0 // clrBlack
InpTradeTool_FontSize=9
InpTradeTool_ChartEdgeAlignment=1 // ChartEdgeAlignment_Right

Notes:

  • AIMode=2 (Filter Signals): All AIAllow* flags are set to false per Rule 11 — they are ignored in this mode, but setting them to false makes the intent explicit.
  • RSI1 is configured with OB=60, OS=40 to generate Bullish signals at the 40 crossover and Bearish signals at 60.
  • MA1 and RSI1 have the + prefix because they are referenced in scripts. ChoCh1 and LP1 have the + prefix because they provide grounded events to the AI.
  • AIStrategyInstructions uses literal \n newline separators (Rule 12).
  • AIUrls are percent-encoded with %0A URL separators (Rule 14).
  • ScriptAITrigger restricts AI requests to the 08:00–21:00 trading session.

Main Preset File Example 3: AI Gated Trading with Position Management — BB Breakout (GBPUSD H1)

This example demonstrates Gated Trading mode with management permissions (Rule 11: AIAllowOpen=false, AIAllowPlaceOrders=false, management permissions enabled). Scripts generate entry signals that are held pending until the AI approves them. The AI also manages open positions — trailing stops and closing early when conditions deteriorate.

;
; Section Header
;
InpTradeTool_Name=AI-Gated BB Breakout with Management
InpTradeTool_Description=Bollinger Band breakout entries gated by AI approval. AI uses CHoCH confirmation to validate breakout signals. Position management enabled: AI trails stops and closes early on opposing structure.
InpTradeTool_Author=
InpTradeTool_Comments=
InpTradeTool_PresetFile=NTL-AI-GatedBBBreakout.set
InpTradeTool_Market=GBPUSD H1
InpTradeTool_AIGenerated=true
InpTradeTool_AIModel=
InpTradeTool_CategoryType=1
InpTradeTool_SettingsVersion=1.000
InpTradeTool_ChartImages=
;
; Section Scripts
;
InpTradeTool_ScriptLongEntry=Close(1) > BB1(1,1) && Volume(1) > Volume(2) * 1.5 ? Ask() : 0
InpTradeTool_ScriptLongInitialStop=BB1(0,0) - ATR1()
InpTradeTool_ScriptLongTrailingStop=
InpTradeTool_ScriptLongLots=
InpTradeTool_ScriptLongTakeProfit=
InpTradeTool_ScriptLongBreakeven=
InpTradeTool_ScriptLongExit=
InpTradeTool_ScriptShortEntry=Close(1) < BB1(1,2) && Volume(1) > Volume(2) * 1.5 ? Bid() : 0
InpTradeTool_ScriptShortInitialStop=BB1(0,0) + ATR1()
InpTradeTool_ScriptShortTrailingStop=
InpTradeTool_ScriptShortLots=
InpTradeTool_ScriptShortTakeProfit=
InpTradeTool_ScriptShortBreakeven=
InpTradeTool_ScriptShortExit=
InpTradeTool_ScriptAITrigger=
;
; Section Risk Management
;
InpTradeTool_MaxRiskPerTradeInPercent=1.00
InpTradeTool_MaxRiskPerTradeInMoney=0.00
InpTradeTool_MaxLossMarketAsPercentageOfBalance=0.00
InpTradeTool_MaxLossAccountAsPercentageOfBalance=0.00
InpTradeTool_TrailMaxLoss=false
InpTradeTool_DeviationInPoints=0
;
; Section Position Management
;
InpTradeTool_MaxLots=0.00
InpTradeTool_MaxOpenPositionsMarket=1
InpTradeTool_MaxOpenPositionsSymbol=0
InpTradeTool_MaxOpenPositionsAccount=0
InpTradeTool_MaxOpenPositionsHour=0
InpTradeTool_MaxOpenPositionsDay=2
InpTradeTool_MaxOpenPositionsWeek=0
InpTradeTool_MaxTradesPerUnitTime=0
InpTradeTool_MaxTradesUnitTimeInSeconds=0
InpTradeTool_MinTradeIntervalInSeconds=0
InpTradeTool_MagicNumber=123456789
;
; Section Trading Rules
;
InpTradeTool_AutoTradeEnabled=true
InpTradeTool_AutoTradeRefreshMode=1 // SeriesRefreshMode_EveryBar
InpTradeTool_AllowedTradeTypes=0 // AllowedTradeTypes_BuysAndSells
;
; Section Time Management
;
InpTradeTool_StartOfDayTime=08:00
InpTradeTool_EndOfDayTime=20:00
InpTradeTool_ClosePositionTimeOffsetInSeconds=0
InpTradeTool_CloseOrderTimeOffsetInSeconds=0
InpTradeTool_ClosePositionAtEndOfDay=false
InpTradeTool_ClosePositionAtEndOfWeek=false
InpTradeTool_CloseOrderAtEndOfDay=false
InpTradeTool_CloseOrderAtEndOfWeek=false
;
; Section Stop Management
;
InpTradeTool_InitialStopValue=3.00
InpTradeTool_InitialStopValueUnits=0 // TradeToolStopUnits_ATR
InpTradeTool_TrailingStopValue=0.00
InpTradeTool_TrailingStopValueUnits=0 // TradeToolStopUnits_ATR
InpTradeTool_TrailingStopValueEnabled=false
InpTradeTool_EnableTrailingStopAfterBreakeven=true
InpTradeTool_EnableTrailingStopAfterProfitInPercent=0.0000
InpTradeTool_UseSoftSLs=false
InpTradeTool_MinSLTPPriceChangeUnitsInPoints=10
;
; Section Exit Management
;
InpTradeTool_TakeProfitStopValue=2.00
InpTradeTool_TakeProfitStopValueUnits=3 // TradeToolStopUnits_R
InpTradeTool_TakeProfitStopValueEnabled=true
InpTradeTool_UseSoftTPs=false
InpTradeTool_BreakevenStopValue=1.00
InpTradeTool_BreakevenStopValueUnits=3 // TradeToolStopUnits_R
InpTradeTool_BreakevenStopValueEnabled=true
InpTradeTool_MaxGainMarketAsPercentageOfBalance=0.00
InpTradeTool_MaxGainAccountAsPercentageOfBalance=0.00
InpTradeTool_MinProfitInPoints=0
InpTradeTool_MinProfitInPointsTimeInSeconds=0
;
; Section Custom Indicators
;
InpTradeTool_CustomIndicator0=NTL\ABH(1,14,3).ex5,0,1
InpTradeTool_CustomIndicator1=NTL\ADX(1,14).ex5,0,1,2,3
InpTradeTool_CustomIndicator2=NTL\ADXW(1,14).ex5,0,1,2,3
InpTradeTool_CustomIndicator3=NTL\ATR(1,14).ex5,0
InpTradeTool_CustomIndicator4=NTL\AutoFib(1,0,'0.0,0.3,0.5,0.618,0.762,1.0',3,0,4,8,50,100,0.0,10,250,45,'0.35,1',0,0,3,14).ex5,0,1,2,3,4,5
InpTradeTool_CustomIndicator5=+NTL\BB(1,20,2.0).ex5,0,1,2,3
InpTradeTool_CustomIndicator6=+NTL\ChoCh(1,0,'0.0,0.3,0.5,0.618,0.762,1.0',3,55,3,6,55,100,0.0,8,250,45,'0.35,1',0,0,3,14,500).ex5,0,1,2,3,4,5,6,7,8
InpTradeTool_CustomIndicator7=NTL\FVG(1,0,400,0.1,0.0,0.4,3.0,0.1,3,14).ex5,0,1,2,3,4,5,6
InpTradeTool_CustomIndicator8=NTL\HLines(1,'',800,15,'S2;R2',35,0.0,0.5,100).ex5,0,1
InpTradeTool_CustomIndicator9=NTL\JCP(1).ex5,0,1
InpTradeTool_CustomIndicator10=NTL\Keltner(1,20,1,2.25).ex5,0,1,2,3
InpTradeTool_CustomIndicator11=NTL\LP(1,0,800,2,6,12,400,14,7.0).ex5,0,1,2,3,4,5,6,7
InpTradeTool_CustomIndicator12=NTL\MA(1,50,1,200,1).ex5,0,1,2
InpTradeTool_CustomIndicator13=NTL\MACD(1,12,26,9).ex5,0,4
InpTradeTool_CustomIndicator14=NTL\Markets(1).ex5,0
InpTradeTool_CustomIndicator15=NTL\OsMA(1,12,26,9).ex5,0,1
InpTradeTool_CustomIndicator16=NTL\PL(1,16408,4).ex5,0
InpTradeTool_CustomIndicator17=NTL\PP(1).ex5,0,1,2,3,4,5
InpTradeTool_CustomIndicator18=NTL\PSAR(1,0.02,0.2).ex5,0,1
InpTradeTool_CustomIndicator19=NTL\RSI(1,14,1,70,30).ex5,0,1
InpTradeTool_CustomIndicator20=NTL\Scalper(1,10000,0.7,10000,0.3,0.6,10000,0.5,0.3,10000,0.7,10,1,5,0.0,5000,1,1,19,24).ex5,0,1,2,3,4,5,6
InpTradeTool_CustomIndicator21=NTL\Stochastic(1,5,3,3,80,20).ex5,0,1,2
InpTradeTool_CustomIndicator22=NTL\ST(1,13,1.5).ex5,0,1
InpTradeTool_CustomIndicator23=NTL\TLines(1,10,2,5,400,20,800,0.4,0.2,100,0).ex5,0,1,2,3,4
InpTradeTool_CustomIndicator24=NTL\TSI(1,13,21,8,25,-25,1).ex5,0,1,2
;
; Section User Variables
;
;
; Section Backtesting & Optimisation
;
InpTradeTool_TesterAccountType=0 // AccountType_Standard
InpTradeTool_TesterCommissionPerLot=0.00
InpTradeTool_TesterNormalSpreadInPoints=0
InpTradeTool_TesterNightSpreadInPoints=0
InpTradeTool_TesterNormalStartHour=8
InpTradeTool_TesterNormalEndHour=22
InpTradeTool_TesterSpreadSchedule=
InpTradeTool_TesterSpreadScheduleEnabled=false
InpTradeTool_TesterSpreadApplyToMid=true
InpTradeTool_TesterStartingBalance=10000
InpTradeTool_TesterStartDate=0 // 1970.01.01 00:00
InpTradeTool_TesterEndDate=0 // 1970.01.01 00:00
InpTradeTool_TesterLeverage=100
InpTradeTool_OptimiseEnabled=false
InpTradeTool_OptimisePerformanceMetric1=1 // PerformanceMetric_Balance
InpTradeTool_OptimisePerformanceMetric2=0 // PerformanceMetric_None
InpTradeTool_OptimiseFrequencyInDays=0
InpTradeTool_OptimiseDayOfWeek=6
InpTradeTool_OptimiseHourOfDay=0
InpTradeTool_OptimiseLookbackInDays=0
InpTradeTool_OptimiseLastDate=0 // 1970.01.01 00:00
InpTradeTool_OptimiseNextDate=0 // 1970.01.01 00:00
InpTradeTool_WFFrequencyInDays=0
InpTradeTool_WFLookbackInDays=0
;
; Section Compliance
;
InpTradeTool_ComplianceProfitTargetRate=0.10
InpTradeTool_ComplianceOverallLossLimitRate=0.10
InpTradeTool_ComplianceDailyLossLimitRate=0.05
InpTradeTool_ComplianceIntradayDDLimitRate=0.05
InpTradeTool_ComplianceMinTradingDays=4
InpTradeTool_ComplianceProfitTargetWarnRate=0.75
InpTradeTool_ComplianceOverallLossWarnRate=0.90
InpTradeTool_ComplianceDailyLossWarnRate=0.90
InpTradeTool_ComplianceIntradayDDWarnRate=0.90
InpTradeTool_ComplianceLogLevel=2 // Warnings And Breaches
InpTradeTool_ComplianceTimeZone=1 // EU Central
InpTradeTool_ComplianceBoundaryHour=0
InpTradeTool_ComplianceBoundaryMinute=0
InpTradeTool_ComplianceBoundarySecond=0
;
; Section AI
;
InpTradeTool_AIMode=3 // Gated Trading
InpTradeTool_AIProvidersConfigString=provider=Gemini,model=gemini-3-pro-preview,temperature=0.2
InpTradeTool_AIStrategyInstructions=Approve breakout entries only when CHoCH confirms direction.\nSet risk_mode to 'avoid' if no recent CHoCH supports signal direction.\nTrail stops to break-even after 1R profit.\nClose early if CHoCH fires in the opposite direction.
InpTradeTool_AITradingStyle=1 // Moderate
InpTradeTool_AIUrls=https%3A%2F%2Fwww.dailyforex.com%2Frss%2Fforexnews.xml%0Ahttps%3A%2F%2Fwww.fxstreet.com%2Frss
InpTradeTool_AITimeframes=H1
InpTradeTool_AIMaxHistorySizeInBars=200
InpTradeTool_AIRefreshIntervalMinutes=15
InpTradeTool_AIMinConfidenceThreshold=0.4000
InpTradeTool_AIExportMode=0 // Grounded Events Only
InpTradeTool_AIGateSignalTimeoutInSeconds=100
InpTradeTool_AIAllowOpen=false
InpTradeTool_AIAllowClose=true
InpTradeTool_AIAllowModifySL=true
InpTradeTool_AIAllowModifyTP=false
InpTradeTool_AIAllowPlaceOrders=false
InpTradeTool_AIAllowCancelOrders=false
InpTradeTool_AIIncludeClosedHistory=true
;
; Section Other
;
InpTradeTool_ATRPeriod=14
InpTradeTool_ChartImports=0 // IndicatorChartImports_Current
InpTradeTool_SymbolImports=
InpTradeTool_AlertTemplate={time}: strategy:{strategy} {symbol},{timeframe} {orderType} signal at: {entryPrice} sl={sl} tp={tp}
;
; Section Debugging
;
InpTradeTool_DebugFlags=0
;
; Section Interface
;
InpTradeTool_GuiTabsFlagMask=63
InpTradeTool_LineWidth=1
InpTradeTool_LineStyle=2 // STYLE_DOT
InpTradeTool_CPColor=0 // clrBlack
InpTradeTool_SLColor=200 // 200,0,0
InpTradeTool_TPColor=32768 // clrGreen
InpTradeTool_BEColor=8421376 // clrTeal
InpTradeTool_SOColor=0 // clrBlack
InpTradeTool_LOColor=0 // clrBlack
InpTradeTool_FontSize=9
InpTradeTool_ChartEdgeAlignment=1 // ChartEdgeAlignment_Right

Notes:

  • AIMode=3 (Gated Trading): AIAllowOpen=false and AIAllowPlaceOrders=false per Rule 11 — entries come from scripts only. AIAllowClose=true and AIAllowModifySL=true enable AI position management.
  • BB1 has the + prefix because it is referenced in entry and stop scripts. ChoCh1 has the + prefix because it provides grounded events to the AI for structure confirmation.
  • MaxOpenPositionsDay=2 limits entries to two per day.
  • ScriptAITrigger is empty — in Gated Trading mode, AI requests are triggered on-demand by gate signals, not periodically.

Main Preset File Example 4: Fully Autonomous AI — Smart Money Concepts (EURUSD M15)

This example demonstrates Autonomous mode (Rule 11: AIAllowOpen=true, AIStrategyInstructions non-empty, entry/exit scripts empty). The AI controls all trade decisions using grounded events from ChoCh, FVG, and LP indicators.

;
; Section Header
;
InpTradeTool_Name=Autonomous SMC Strategy
InpTradeTool_Description=Fully autonomous AI-driven Smart Money Concepts strategy. The AI opens positions on CHoCH-confirmed direction with FVG entry zones, sets stops behind FVG boundaries, and targets LP levels. No entry or exit scripts; AI controls all trade decisions via Strategy Instructions.
InpTradeTool_Author=
InpTradeTool_Comments=
InpTradeTool_PresetFile=NTL-AI-AutonomousSMC.set
InpTradeTool_Market=EURUSD M15
InpTradeTool_AIGenerated=true
InpTradeTool_AIModel=
InpTradeTool_CategoryType=1
InpTradeTool_SettingsVersion=1.000
InpTradeTool_ChartImages=
;
; Section Scripts
;
InpTradeTool_ScriptLongEntry=
InpTradeTool_ScriptLongInitialStop=
InpTradeTool_ScriptLongTrailingStop=
InpTradeTool_ScriptLongLots=
InpTradeTool_ScriptLongTakeProfit=
InpTradeTool_ScriptLongBreakeven=
InpTradeTool_ScriptLongExit=
InpTradeTool_ScriptShortEntry=
InpTradeTool_ScriptShortInitialStop=
InpTradeTool_ScriptShortTrailingStop=
InpTradeTool_ScriptShortLots=
InpTradeTool_ScriptShortTakeProfit=
InpTradeTool_ScriptShortBreakeven=
InpTradeTool_ScriptShortExit=
InpTradeTool_ScriptAITrigger=
;
; Section Risk Management
;
InpTradeTool_MaxRiskPerTradeInPercent=1.00
InpTradeTool_MaxRiskPerTradeInMoney=0.00
InpTradeTool_MaxLossMarketAsPercentageOfBalance=5.00
InpTradeTool_MaxLossAccountAsPercentageOfBalance=10.00
InpTradeTool_TrailMaxLoss=false
InpTradeTool_DeviationInPoints=0
;
; Section Position Management
;
InpTradeTool_MaxLots=0.00
InpTradeTool_MaxOpenPositionsMarket=1
InpTradeTool_MaxOpenPositionsSymbol=0
InpTradeTool_MaxOpenPositionsAccount=0
InpTradeTool_MaxOpenPositionsHour=1
InpTradeTool_MaxOpenPositionsDay=3
InpTradeTool_MaxOpenPositionsWeek=0
InpTradeTool_MaxTradesPerUnitTime=0
InpTradeTool_MaxTradesUnitTimeInSeconds=0
InpTradeTool_MinTradeIntervalInSeconds=0
InpTradeTool_MagicNumber=123456789
;
; Section Trading Rules
;
InpTradeTool_AutoTradeEnabled=true
InpTradeTool_AutoTradeRefreshMode=1 // SeriesRefreshMode_EveryBar
InpTradeTool_AllowedTradeTypes=0 // AllowedTradeTypes_BuysAndSells
;
; Section Time Management
;
InpTradeTool_StartOfDayTime=07:00
InpTradeTool_EndOfDayTime=21:00
InpTradeTool_ClosePositionTimeOffsetInSeconds=0
InpTradeTool_CloseOrderTimeOffsetInSeconds=0
InpTradeTool_ClosePositionAtEndOfDay=true
InpTradeTool_ClosePositionAtEndOfWeek=true
InpTradeTool_CloseOrderAtEndOfDay=false
InpTradeTool_CloseOrderAtEndOfWeek=false
;
; Section Stop Management
;
InpTradeTool_InitialStopValue=3.00
InpTradeTool_InitialStopValueUnits=0 // TradeToolStopUnits_ATR
InpTradeTool_TrailingStopValue=0.00
InpTradeTool_TrailingStopValueUnits=0 // TradeToolStopUnits_ATR
InpTradeTool_TrailingStopValueEnabled=false
InpTradeTool_EnableTrailingStopAfterBreakeven=true
InpTradeTool_EnableTrailingStopAfterProfitInPercent=0.0000
InpTradeTool_UseSoftSLs=false
InpTradeTool_MinSLTPPriceChangeUnitsInPoints=10
;
; Section Exit Management
;
InpTradeTool_TakeProfitStopValue=2.00
InpTradeTool_TakeProfitStopValueUnits=3 // TradeToolStopUnits_R
InpTradeTool_TakeProfitStopValueEnabled=true
InpTradeTool_UseSoftTPs=false
InpTradeTool_BreakevenStopValue=1.00
InpTradeTool_BreakevenStopValueUnits=3 // TradeToolStopUnits_R
InpTradeTool_BreakevenStopValueEnabled=true
InpTradeTool_MaxGainMarketAsPercentageOfBalance=0.00
InpTradeTool_MaxGainAccountAsPercentageOfBalance=0.00
InpTradeTool_MinProfitInPoints=0
InpTradeTool_MinProfitInPointsTimeInSeconds=0
;
; Section Custom Indicators
;
InpTradeTool_CustomIndicator0=NTL\ABH(1,14,3).ex5,0,1
InpTradeTool_CustomIndicator1=NTL\ADX(1,14).ex5,0,1,2,3
InpTradeTool_CustomIndicator2=NTL\ADXW(1,14).ex5,0,1,2,3
InpTradeTool_CustomIndicator3=NTL\ATR(1,14).ex5,0
InpTradeTool_CustomIndicator4=NTL\AutoFib(1,0,'0.0,0.3,0.5,0.618,0.762,1.0',3,0,4,8,50,100,0.0,10,250,45,'0.35,1',0,0,3,14).ex5,0,1,2,3,4,5
InpTradeTool_CustomIndicator5=NTL\BB(1,20,2.0).ex5,0,1,2,3
InpTradeTool_CustomIndicator6=+NTL\ChoCh(1,0,'0.0,0.3,0.5,0.618,0.762,1.0',3,55,3,6,55,100,0.0,8,250,45,'0.35,1',0,0,3,14,500).ex5,0,1,2,3,4,5,6,7,8
InpTradeTool_CustomIndicator7=+NTL\FVG(1,0,400,0.1,0.0,0.4,3.0,0.1,3,14).ex5,0,1,2,3,4,5,6
InpTradeTool_CustomIndicator8=NTL\HLines(1,'',800,15,'S2;R2',35,0.0,0.5,100).ex5,0,1
InpTradeTool_CustomIndicator9=NTL\JCP(1).ex5,0,1
InpTradeTool_CustomIndicator10=NTL\Keltner(1,20,1,2.25).ex5,0,1,2,3
InpTradeTool_CustomIndicator11=+NTL\LP(1,0,800,2,6,12,400,14,7.0).ex5,0,1,2,3,4,5,6,7
InpTradeTool_CustomIndicator12=NTL\MA(1,50,1,200,1).ex5,0,1,2
InpTradeTool_CustomIndicator13=NTL\MACD(1,12,26,9).ex5,0,4
InpTradeTool_CustomIndicator14=NTL\Markets(1).ex5,0
InpTradeTool_CustomIndicator15=NTL\OsMA(1,12,26,9).ex5,0,1
InpTradeTool_CustomIndicator16=NTL\PL(1,16408,4).ex5,0
InpTradeTool_CustomIndicator17=NTL\PP(1).ex5,0,1,2,3,4,5
InpTradeTool_CustomIndicator18=NTL\PSAR(1,0.02,0.2).ex5,0,1
InpTradeTool_CustomIndicator19=NTL\RSI(1,14,1,70,30).ex5,0,1
InpTradeTool_CustomIndicator20=NTL\Scalper(1,10000,0.7,10000,0.3,0.6,10000,0.5,0.3,10000,0.7,10,1,5,0.0,5000,1,1,19,24).ex5,0,1,2,3,4,5,6
InpTradeTool_CustomIndicator21=NTL\Stochastic(1,5,3,3,80,20).ex5,0,1,2
InpTradeTool_CustomIndicator22=NTL\ST(1,13,1.5).ex5,0,1
InpTradeTool_CustomIndicator23=NTL\TLines(1,10,2,5,400,20,800,0.4,0.2,100,0).ex5,0,1,2,3,4
InpTradeTool_CustomIndicator24=NTL\TSI(1,13,21,8,25,-25,1).ex5,0,1,2
;
; Section User Variables
;
;
; Section Backtesting & Optimisation
;
InpTradeTool_TesterAccountType=0 // AccountType_Standard
InpTradeTool_TesterCommissionPerLot=0.00
InpTradeTool_TesterNormalSpreadInPoints=0
InpTradeTool_TesterNightSpreadInPoints=0
InpTradeTool_TesterNormalStartHour=8
InpTradeTool_TesterNormalEndHour=22
InpTradeTool_TesterSpreadSchedule=
InpTradeTool_TesterSpreadScheduleEnabled=false
InpTradeTool_TesterSpreadApplyToMid=true
InpTradeTool_TesterStartingBalance=10000
InpTradeTool_TesterStartDate=0 // 1970.01.01 00:00
InpTradeTool_TesterEndDate=0 // 1970.01.01 00:00
InpTradeTool_TesterLeverage=100
InpTradeTool_OptimiseEnabled=false
InpTradeTool_OptimisePerformanceMetric1=1 // PerformanceMetric_Balance
InpTradeTool_OptimisePerformanceMetric2=0 // PerformanceMetric_None
InpTradeTool_OptimiseFrequencyInDays=0
InpTradeTool_OptimiseDayOfWeek=6
InpTradeTool_OptimiseHourOfDay=0
InpTradeTool_OptimiseLookbackInDays=0
InpTradeTool_OptimiseLastDate=0 // 1970.01.01 00:00
InpTradeTool_OptimiseNextDate=0 // 1970.01.01 00:00
InpTradeTool_WFFrequencyInDays=0
InpTradeTool_WFLookbackInDays=0
;
; Section Compliance
;
InpTradeTool_ComplianceProfitTargetRate=0.10
InpTradeTool_ComplianceOverallLossLimitRate=0.10
InpTradeTool_ComplianceDailyLossLimitRate=0.05
InpTradeTool_ComplianceIntradayDDLimitRate=0.05
InpTradeTool_ComplianceMinTradingDays=4
InpTradeTool_ComplianceProfitTargetWarnRate=0.75
InpTradeTool_ComplianceOverallLossWarnRate=0.90
InpTradeTool_ComplianceDailyLossWarnRate=0.90
InpTradeTool_ComplianceIntradayDDWarnRate=0.90
InpTradeTool_ComplianceLogLevel=2 // Warnings And Breaches
InpTradeTool_ComplianceTimeZone=1 // EU Central
InpTradeTool_ComplianceBoundaryHour=0
InpTradeTool_ComplianceBoundaryMinute=0
InpTradeTool_ComplianceBoundarySecond=0
;
; Section AI
;
InpTradeTool_AIMode=4 // Autonomous
InpTradeTool_AIProvidersConfigString=provider=Gemini,model=gemini-3-pro-preview,temperature=0.2
InpTradeTool_AIStrategyInstructions=Trade Smart Money Concepts: FVG entries, CHoCH confirmations, liquidity sweeps.\nOpen positions only after a CHoCH confirms direction AND an unfilled FVG provides an entry zone.\nSet SL behind the FVG zone boundary (the high for shorts, the low for longs).\nSet TP at the next LP (liquidity pool) level visible in grounded events.\nIf no clear FVG entry exists near current price, return an empty instructions array.\nTrail stops to break-even once position reaches 1R profit.%0AClose positions early if a CHoCH event fires in the opposite direction.\nNever use 'aggressive' risk_mode. Use 'reduced' when regime is 'volatile'.
InpTradeTool_AITradingStyle=1 // Moderate
InpTradeTool_AIUrls=https%3A%2F%2Fwww.dailyforex.com%2Frss%2Fforexnews.xml%0Ahttps%3A%2F%2Fwww.fxstreet.com%2Frss
InpTradeTool_AITimeframes=M15,H1
InpTradeTool_AIMaxHistorySizeInBars=100
InpTradeTool_AIRefreshIntervalMinutes=5
InpTradeTool_AIMinConfidenceThreshold=0.5000
InpTradeTool_AIExportMode=0 // Grounded Events Only
InpTradeTool_AIGateSignalTimeoutInSeconds=100
InpTradeTool_AIAllowOpen=true
InpTradeTool_AIAllowClose=true
InpTradeTool_AIAllowModifySL=true
InpTradeTool_AIAllowModifyTP=false
InpTradeTool_AIAllowPlaceOrders=false
InpTradeTool_AIAllowCancelOrders=false
InpTradeTool_AIIncludeClosedHistory=true
;
; Section Other
;
InpTradeTool_ATRPeriod=14
InpTradeTool_ChartImports=0 // IndicatorChartImports_Current
InpTradeTool_SymbolImports=
InpTradeTool_AlertTemplate={time}: strategy:{strategy} {symbol},{timeframe} {orderType} signal at: {entryPrice} sl={sl} tp={tp}
;
; Section Debugging
;
InpTradeTool_DebugFlags=0
;
; Section Interface
;
InpTradeTool_GuiTabsFlagMask=63
InpTradeTool_LineWidth=1
InpTradeTool_LineStyle=2 // STYLE_DOT
InpTradeTool_CPColor=0 // clrBlack
InpTradeTool_SLColor=200 // 200,0,0
InpTradeTool_TPColor=32768 // clrGreen
InpTradeTool_BEColor=8421376 // clrTeal
InpTradeTool_SOColor=0 // clrBlack
InpTradeTool_LOColor=0 // clrBlack
InpTradeTool_FontSize=9
InpTradeTool_ChartEdgeAlignment=1 // ChartEdgeAlignment_Right

Notes:

  • AIMode=4 (Autonomous): AIAllowOpen=true and AIStrategyInstructions is non-empty per Rule 11. All entry and exit scripts are empty — the AI controls all trade actions.
  • AIMinConfidenceThreshold=0.50 is higher than the default (0.30), appropriate for autonomous decisions where incorrect actions carry more risk.
  • AIRefreshIntervalMinutes=5 provides frequent updates suited to the M15 timeframe.
  • MaxLossMarketAsPercentageOfBalance=5.00 and MaxLossAccountAsPercentageOfBalance=10.00 provide risk guardrails for autonomous operation.
  • MaxOpenPositionsHour=1 and MaxOpenPositionsDay=3 limit the AI’s trade frequency.
  • ChoCh, FVG, and LP indicators have the + prefix because they provide grounded events to the AI for its SMC analysis. Indicators not required for AI export or scripts (e.g., ABH, ADX, BB) omit the prefix to conserve resources.
  • ClosePositionAtEndOfDay=true and ClosePositionAtEndOfWeek=true ensure no positions are held overnight or over weekends.

15. Statistic Metrics

Statistic Metrics Table

This table shows all statistic metrics by their enumeration name, value, statistic name and their corresponding optimisation filter setting name. The optimisation filter settings, if any have been defined, are stored in the Optimise Section of the preset file and specify the metric type in their setting name.

Example:
InpTradeTool_OptimiseFilter52=50;0 // StatType_TotalPoints

  • InpTradeTool_OptimiseFilter: the filter’s setting base name
  • 52: the metric value for Total Points
  • 50;0: the minimum and maximum filter values
  • StatType_TotalPoints: the metric’s enumeration name
Name Value Statistic Setting Name
StatType_AvAdverseExcursion 0 Av.Adverse Excursion As Percent InpTradeTool_OptimiseFilter0
StatType_AvLosingPoints 1 Av.Loss In Points InpTradeTool_OptimiseFilter1
StatType_AvPointsPerTrade 2 Av.Points Per Trade InpTradeTool_OptimiseFilter2
StatType_AvPointsPerDay 3 Av.Points Per Day InpTradeTool_OptimiseFilter3
StatType_AvPointsPerWeek 4 Av.Points Per Week InpTradeTool_OptimiseFilter4
StatType_AvProfitLong 5 Av.Profit Long Trades InpTradeTool_OptimiseFilter5
StatType_AvProfitPerTrade 6 Av.Profit Per Trade InpTradeTool_OptimiseFilter6
StatType_AvProfitPerTradeDay 7 Av.Profit Per Trade Day InpTradeTool_OptimiseFilter7
StatType_AvProfitShort 8 Av.Profit Short Trades InpTradeTool_OptimiseFilter8
StatType_AvTradeTimeInSeconds 9 Av.Trade Time InpTradeTool_OptimiseFilter9
StatType_AvTradesPerDay 10 Av.Trades Per Day InpTradeTool_OptimiseFilter10
StatType_AvTradesPerWeek 11 Av.Trades Per Week InpTradeTool_OptimiseFilter11
StatType_AvWinningPoints 12 Av.Win In Points InpTradeTool_OptimiseFilter12
StatType_Balance 13 Balance InpTradeTool_OptimiseFilter13
StatType_BreakevenRate 14 Breakeven Rate InpTradeTool_OptimiseFilter14
StatType_BreakevenTrades 15 Breakeven Trades InpTradeTool_OptimiseFilter15
StatType_ClosedDDAvg 16 Closed Drawdown Avg InpTradeTool_OptimiseFilter16
StatType_ClosedDDMax 17 Closed Drawdown Max InpTradeTool_OptimiseFilter17
StatType_ConsecutiveLosses 18 Consecutive Losses InpTradeTool_OptimiseFilter18
StatType_ConsecutiveWins 19 Consecutive Wins InpTradeTool_OptimiseFilter19
StatType_ConsistencyScore 20 Consistency Score InpTradeTool_OptimiseFilter20
StatType_DirectionalBias 21 Long/Short Directional Bias InpTradeTool_OptimiseFilter21
StatType_Drawdown 22 Drawdown InpTradeTool_OptimiseFilter22
StatType_DrawdownDaily 23 Daily Drawdown InpTradeTool_OptimiseFilter23
StatType_Equity 24 Equity InpTradeTool_OptimiseFilter24
StatType_ExpectedValue 25 Expected Value InpTradeTool_OptimiseFilter25
StatType_LargestDailyLoss 26 Largest Daily Loss InpTradeTool_OptimiseFilter26
StatType_LargestDailyProfit 27 Largest Daily Profit InpTradeTool_OptimiseFilter27
StatType_LargestLoss 28 Largest Loss InpTradeTool_OptimiseFilter28
StatType_LargestLossInPoints 29 Largest Loss In Points InpTradeTool_OptimiseFilter29
StatType_LargestWin 30 Largest Win InpTradeTool_OptimiseFilter30
StatType_LargestWinInPoints 31 Largest Win In Points InpTradeTool_OptimiseFilter31
StatType_LongPoints 32 Long Points InpTradeTool_OptimiseFilter32
StatType_LosingLongs 33 Losing Longs InpTradeTool_OptimiseFilter33
StatType_LosingPoints 34 Losing Points InpTradeTool_OptimiseFilter34
StatType_LosingShorts 35 Losing Shorts InpTradeTool_OptimiseFilter35
StatType_LosingTrades 36 Losing Trades InpTradeTool_OptimiseFilter36
StatType_LossRate 37 Loss Rate InpTradeTool_OptimiseFilter37
StatType_OpeningBalance 38 Opening Balance InpTradeTool_OptimiseFilter38
StatType_PerformanceIndex 39 Performance Index InpTradeTool_OptimiseFilter39
StatType_ProfitFactor 40 Profit Factor InpTradeTool_OptimiseFilter40
StatType_ProfitFactorLongs 41 Profit Factor Long Trades InpTradeTool_OptimiseFilter41
StatType_ProfitFactorShorts 42 Profit Factor Short Trades InpTradeTool_OptimiseFilter42
StatType_RecoveryFactorClosed 43 Recovery Factor Closed InpTradeTool_OptimiseFilter43
StatType_RFactor 44 R-Factor InpTradeTool_OptimiseFilter44
StatType_RiskRewardRatio 45 Risk/Reward Ratio InpTradeTool_OptimiseFilter45
StatType_SharpeRatio 46 Sharpe Ratio InpTradeTool_OptimiseFilter46
StatType_ShortPoints 47 Short Points InpTradeTool_OptimiseFilter47
StatType_StandardDeviation 48 Standard Dev. InpTradeTool_OptimiseFilter48
StatType_TotalDays 49 Total Days InpTradeTool_OptimiseFilter49
StatType_TotalLongs 50 Total Longs InpTradeTool_OptimiseFilter50
StatType_TotalLosses 51 Total Losses InpTradeTool_OptimiseFilter51
StatType_TotalPoints 52 Total Points InpTradeTool_OptimiseFilter52
StatType_TotalProfit 53 Total Profit InpTradeTool_OptimiseFilter53
StatType_TotalProfitLongs 54 Total Profit Long Trades InpTradeTool_OptimiseFilter54
StatType_TotalProfitShorts 55 Total Profit Short Trades InpTradeTool_OptimiseFilter55
StatType_TotalShorts 56 Total Shorts InpTradeTool_OptimiseFilter56
StatType_TotalTrades 57 Total Trades InpTradeTool_OptimiseFilter57
StatType_TotalTradeTimeRatio 58 Total Trade Time Ratio InpTradeTool_OptimiseFilter58
StatType_TotalWinnings 59 Total Winnings InpTradeTool_OptimiseFilter59
StatType_TurnaroundIndex 60 Turnaround Index InpTradeTool_OptimiseFilter60
StatType_UnrealizedPL 61 Unrealized P/L InpTradeTool_OptimiseFilter61
StatType_WinningLongs 62 Winning Longs InpTradeTool_OptimiseFilter62
StatType_WinningPoints 63 Winning Points InpTradeTool_OptimiseFilter63
StatType_WinningShorts 64 Winning Shorts InpTradeTool_OptimiseFilter64
StatType_WinningTrades 65 Winning Trades InpTradeTool_OptimiseFilter65
StatType_WinRate 66 Win Rate InpTradeTool_OptimiseFilter66
StatType_WinRatio 67 Win/Loss Ratio InpTradeTool_OptimiseFilter67
StatType_Comp_Pass 68 Compliance Pass InpTradeTool_OptimiseFilter68
StatType_Comp_TargetReached 69 Compliance Target Reached InpTradeTool_OptimiseFilter69
StatType_Comp_TradingDays 70 Compliance Trading Days InpTradeTool_OptimiseFilter70
StatType_Comp_DailyLossBreachDays 71 Compliance Daily Loss Breach Days InpTradeTool_OptimiseFilter71
StatType_Comp_DailyLossWarnDays 72 Compliance Daily Loss Warning Days InpTradeTool_OptimiseFilter72
StatType_Comp_OverallLossBreachCount 73 Compliance Overall Loss Breach Count InpTradeTool_OptimiseFilter73
StatType_Comp_IntradayDDBreachDays 74 Compliance Intraday DD Breach Days InpTradeTool_OptimiseFilter74
StatType_Comp_MaxDailyLossUsedRatio 75 Compliance Max Daily Loss Used Ratio InpTradeTool_OptimiseFilter75
StatType_Comp_MaxOverallLossUsedRatio 76 Compliance Max Overall Loss Used Ratio InpTradeTool_OptimiseFilter76
StatType_Comp_MaxIntradayDD 77 Compliance Max Intraday DD InpTradeTool_OptimiseFilter77

Performance Metrics Table

This table shows all performance statistic metrics by their enumeration name, value and statistic name. Up to 2 performance metric values can be specified and appear in the Optimise section of the preset file under the names InpTradeTool_OptimisePerformanceMetric1 and InpTradeTool_OptimisePerformanceMetric2.

Example:
InpTradeTool_OptimisePerformanceMetric1=1 // PerformanceMetric_Balance
InpTradeTool_OptimisePerformanceMetric2=19 // PerformanceMetric_Drawdown

Name Value Statistic
PerformanceMetric_None 0 None
PerformanceMetric_Balance 1 Balance
PerformanceMetric_AvAdverseExcursion 2 Av.Adverse Excursion As Percent
PerformanceMetric_AvPointsPerTrade 3 Av.Points Per Trade
PerformanceMetric_AvPointsPerDay 4 Av.Points Per Day
PerformanceMetric_AvPointsPerWeek 5 Av.Points Per Week
PerformanceMetric_AvProfitLong 6 Av.Profit Long
PerformanceMetric_AvProfitPerTrade 7 Av.Profit Per Trade
PerformanceMetric_AvProfitPerTradeDay 8 Av.Profit Per Trade Day
PerformanceMetric_AvProfitShort 9 Av.Profit Short
PerformanceMetric_AvTradeTimeInSeconds 10 Av.Trade Time In Seconds
PerformanceMetric_AvTradesPerDay 11 Av.Trades Per Day
PerformanceMetric_AvTradesPerWeek 12 Av.Trades Per Week
PerformanceMetric_BreakevenRate 13 Breakeven Rate
PerformanceMetric_BreakevenTrades 14 Breakeven Trades
PerformanceMetric_ClosedDDAvg 15 Closed DD Avg
PerformanceMetric_ClosedDDMax 16 Closed DD Max
PerformanceMetric_ConsecutiveLosses 17 Consecutive Losses
PerformanceMetric_ConsecutiveWins 18 Consecutive Wins
PerformanceMetric_ConsistencyScore 19 Consistency Score
PerformanceMetric_DirectionalBias 20 Long/Short Directional Bias
PerformanceMetric_Drawdown 21 Drawdown
PerformanceMetric_DrawdownDaily 22 Drawdown Daily
PerformanceMetric_ExpectedValue 23 Expected Value
PerformanceMetric_LargestDailyLoss 24 Largest Daily Loss
PerformanceMetric_LargestDailyProfit 25 Largest Daily Profit
PerformanceMetric_LargestLossInPoints 26 Largest Loss In Points
PerformanceMetric_LargestWinInPoints 27 Largest Win In Points
PerformanceMetric_LosingPoints 28 Losing Points
PerformanceMetric_LosingTrades 29 Losing Trades
PerformanceMetric_LossRate 30 Loss Rate
PerformanceMetric_PerformanceIndex 31 Performance Index
PerformanceMetric_ProfitFactor 32 Profit Factor
PerformanceMetric_ProfitFactorLongs 33 Profit Factor Longs
PerformanceMetric_ProfitFactorShorts 34 Profit Factor Shorts
PerformanceMetric_RecoveryFactorClosed 35 Recovery Factor Closed
PerformanceMetric_RewardRiskRatio 36 Reward/Risk Ratio
PerformanceMetric_RFactor 37 R (Risk) Factor
PerformanceMetric_SharpeRatio 38 Sharpe Ratio
PerformanceMetric_StandardDeviation 39 Standard Deviation
PerformanceMetric_TotalPoints 40 Total Points
PerformanceMetric_TotalProfit 41 Total Profit
PerformanceMetric_TotalTrades 42 Total Trades
PerformanceMetric_TurnaroundIndex 43 Turnaround Index
PerformanceMetric_WinningPoints 44 Winning Points
PerformanceMetric_WinningTrades 45 Winning Trades
PerformanceMetric_WinRate 46 Win Rate
PerformanceMetric_WinRatio 47 Win/Loss Ratio

Performance Index

The Performance Index is a composite score used in EAsiTrader to evaluate the overall quality of a trading strategy. Instead of relying on a single metric, it combines several key statistics into one score ranging from 0.00 to 1.00, where higher is better.

Metric Weight Normalisation Purpose
Profit Factor (PF) 30% PF / 2.0, capped at 1.0 Measures profit per unit of risk.
Drawdown (DD) 25% 1.0 - (DD / 50.0), minimum 0.0 Penalises large drawdowns.
Sharpe Ratio 15% Sharpe / 1.0, capped at 1.0 Favors high return-to-risk ratio.
Win Rate 10% WinRate * 100 / 60, capped at 1.0 Rewards frequent winners.
Risk:Reward Ratio 10% RR / 3.0, capped at 1.0 Prefers large average wins to losses.
Consistency Score 10% Already normalised (0.0 to 1.0) Reflects stable profitability over time.

Each metric is scaled to 0.0–1.0, then weighted and summed. The result is rounded to four decimal places. The Performance Index prevents overfitting by ensuring no single metric dominates, and helps compare strategies using a single value.

Turnaround Index

The Turnaround Index is an early warning metric designed to detect when a profitable trading strategy may be beginning to deteriorate. It ranges from 0.0 to 1.0, where 0.0 indicates no turnaround concerns and 1.0 indicates maximum turnaround probability.

The index combines three components:

  • Profit Factor Degradation (40% weight): Compares recent trades’ profit factor to the overall strategy profit factor.
  • Win Rate Degradation (30% weight): Compares recent win rate to the overall strategy win rate.
  • Equity Slope Trend (30% weight): Calculates the linear regression slope of the equity curve over recent trades.

Recommended thresholds:

  • 0.0–0.3: Normal operation — no concerns.
  • 0.3–0.6: Caution zone — monitor closely, consider reducing risk.
  • 0.6–0.8: Warning zone — implement risk reduction measures.
  • 0.8–1.0: Critical zone — consider stopping strategy or switching parameters.

Limitations: Requires at least 5 recent trades. May trigger false alarms during normal variance. Should be interpreted within the context of current market conditions and combined with other confirmation signals.


16. Leveraging Tester Statistics to Refine Your Strategy

EAsiTrader’s built-in statistics are more than a score-card; they are a diagnostic dashboard that highlights why a configuration succeeds or fails. By reading these dials you can adjust entry rules, exits and money-management logic in a structured, data-driven loop.

16.1 Metric Cheat-Sheet

Metric (or group) What it reveals Typical fixes & experiments
Performance Index Composite quality score Use when ranking large sets of results. Score < 0.5? Examine PF, DD, Sharpe individually.
Balance / Total Profit Raw earning power Couple with Drawdown or Consistency. High profit but poor risk metrics → review lot sizing and filter logic.
Drawdown / Daily DD Depth of worst equity valley DD > 15%? Tighten stops or scale down position size. Diversify across symbols or sessions.
Consistency Score Reliance on a single extreme day Score < 0.60 → add trade-frequency caps, scale-outs or volatility filters.
Profit Factor / Expected Value Reward relative to risk PF < 1.3: examine losing side. Use EV to tune TP/SL distances.
Reward / Risk Ratio, R-Factor Pay-off profile High R/R but low WinRate → widen entry filters or shorten TP. Low R/R but high WinRate → let profits run or pyramid.
WinRate / LossRate / BreakevenRate Frequency distribution Falling WinRate after a filter may signal an inverted condition. High BreakevenRate → spread/slippage drag.
Avg Win / Avg Loss & Largest Win/Loss Tail behaviour Very large occasional losses → install hard fail-safe stop. AvgWin close to spread → strategy depends on razor-thin costs.
Sharpe Ratio / Std Dev Risk-adjusted return & volatility Sharpe < 1 with good profit → equity too erratic. Add diversification or volatility-weighted sizing.
Avg Profit/Points per Day / Week Calendar efficiency Points/day dropping while Points/trade constant → trading too little. Relax filters or add symbols.
Avg Trade Time Holding-period profile Shorter than spread-recovery time → widen TP or move up timeframe. Very long holds → consider swap costs.
Avg Adverse Excursion Pain before gain Rising MAE suggests regime change — tighten stops or add trend filters.
Consecutive Wins/Losses Streak risk Insert circuit-breaker after N consecutive losses; cap risk after long winning streaks.
Trades per Day / Week Capacity & broker constraints < 5 trades/day → over-filtering. > 50 trades/day → slippage harms PF.
Hour-of-Day Frequency Session bias Clustered losses around news → exclude those hours. Strong session edge → reduce sizing outside that window.

16.2 Data-Driven Optimisation Loop

  1. Pick two complementary objectives in the optimiser (e.g. Consistency Score and Drawdown).
  2. Run wide parameter sweeps and export the top-ranked sets.
  3. Visually inspect equity curves — stats guide you, but an eye-test catches artefacts.
  4. Cross-validate on unseen dates or symbols; big metric drift flags over-fit logic.
  5. Iterate: adjust stops, filters, lot sizing based on the weakest metrics.
  6. Deploy with runtime guards: pause trading when live Drawdown > X% or after N losing trades.

17. Terms

This section defines key concepts and terms used in EAsiTrader to ensure a clear understanding of its features and functionality.

ABH

Average Bar Height. The ABH values are read from the ABH indicator. The Period of the ABH is determined by the indicator.

Bar Strength

The strength of a bar is determined by counting the number of preceding bars (to its immediate left) that have a higher low (for low bar strength) or a lower high (for high bar strength). The count stops when the first bar with a higher low (for low bar strength) or a lower high (for high bar strength) is encountered.

Primary Market

The symbol and timeframe pair that matches the chart’s symbol and timeframe. See §3 The Primary Market and Secondary Markets for details on how primary and secondary markets are processed differently.

Pivot Order

Ordering pivots ranks price highs and lows based on their significance. The higher the order, the more significant the price compared to lower-ordered pivots.

  • A 0 order high pivot is a bar without a lower high bar on its immediate left (older) and right (newer).
  • A 0 order low pivot is a bar without a higher low bar on its immediate left (older) and right (newer).
  • A 1 order high pivot is a bar with a lower high bar on its immediate left and right.
  • A 1 order low pivot is a bar with a higher low bar on its immediate left and right.
  • A 2 order high pivot is a bar with a 1 order high pivot on its left and right.
  • A 2 order low pivot is a bar with a 1 order low pivot on its left and right.
  • A 3 order pivot has a 2 order pivot on its left and right.
  • A 4 order pivot has a 3 order pivot on its left and right, and so on.

Secondary Market

Any symbol and timeframe pair that does not match the chart’s symbol and timeframe. See §3 The Primary Market and Secondary Markets.

Shift

The offset in bars from the latest bar. A shift value of zero means the latest bar, or latest unfinished bar. The EA always considers the latest bar to be unfinished (regardless of whether it is or not), i.e. only the open price is unchanging, unlike the high, low and close prices which can change.

A shift value of one means the bar before the latest bar, i.e. the latest finished bar, where the open, high, low and close prices will not change.

All functions, except Open(), Time(), Hour() and Minute() are blocked from accessing the latest bar, i.e. using a shift offset of 0. If 0 is used as a shift offset it is changed to one. The largest shift value is equal to the current total number of bars in the price series minus one.


18. Compliance

The Compliance module is designed to help traders operating funded accounts (e.g., FTMO, The Funded Trader, MyForexFunds, and similar programmes) track their progress against the provider’s rules in real time. This section provides guidance on configuring the Compliance settings described in §6.12 for common funded-account scenarios.

Typical FTMO Configuration

For an FTMO Challenge or Verification account, the following settings align with FTMO’s standard rules:

  • Profit Target Rate: 0.10 (10% for Challenge) or 0.05 (5% for Verification).
  • Overall Loss Limit Rate: 0.10 (10% maximum overall loss).
  • Daily Loss Limit Rate: 0.05 (5% maximum daily loss).
  • Intraday Drawdown Limit Rate: 0.05 (5%).
  • Min Trading Days: 4 (minimum 4 trading days).
  • Time Zone: 1 (EU Central — CET/CEST, Prague).
  • Boundary Hour/Minute/Second: 0/0/0 (midnight CET reset).

How to Use Compliance Data

The Compliance module is advisory only — it does not automatically close trades or prevent trading when limits are approached. It provides real-time awareness through the Experts Log so you can make informed decisions. For automated protection, combine Compliance monitoring with the Max Loss % settings in §6.3.1 which will actively close positions when balance thresholds are breached.


Rev: 02.03.2026 19:06