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.
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.
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.
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.
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.
At the bottom edge of the GUI is the Status Bar which provides real-time updates on key metrics:
The status is refreshed every two seconds, ensuring you stay informed during live trading sessions.
To avoid conflicts with the main chart, the Del key is disabled when editing text in text boxes. Please use the Backspace key instead.
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.
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.
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 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.
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.
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:
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.
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.
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:
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.
In manual trading mode, you can switch between four order types using the following keyboard shortcuts:
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.
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.
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.
To manage trade visibility:
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.
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:
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.
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.
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.
This item displays the Markets Table which shows all markets in the current profile, along with three checkboxes for managing their behavior:
signals.sig file for the profile, viewable under EAsiTrader → Signals..set files remain intact.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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
InpTradeTool_MaxTradesPerUnitTime · Default: 0
Defines the maximum number of positions that can be opened within the specified time period. Zero means ignore this setting.
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.
InpTradeTool_MinTradeIntervalInSeconds · Default: 0
Specifies the minimum time (in seconds) required between opening consecutive positions. Zero means ignore this setting.
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.
InpTradeTool_AutoTradeRefreshMode · Default: 1 (Every Bar)
The Refresh Mode setting controls how frequently trade entry scripts are executed:
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.
InpTradeTool_AllowedTradeTypes · Default: 0 (Buys & Sells)
This setting defines the types of trades the EA is allowed to execute when running entry scripts:
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.
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.
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.
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.
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.
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.
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.
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.
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.
InpTradeTool_InitialStopValueUnits · Default: 0 (ATR)
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.
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.
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.
If this setting is enabled and set to 0, the EA defaults to the initial stop loss value (SL) as the trailing stop.
InpTradeTool_TrailingStopValueUnits · Default: 0 (ATR)
InpTradeTool_TrailingStopValueEnabled · Default: false
Enables or disables the Trailing SL setting.
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.
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.
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.
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.
Traders can disable this setting by setting its value to 0, which removes the TP for trades.
InpTradeTool_TakeProfitStopValueUnits · Default: 3 (Risk)
InpTradeTool_TakeProfitStopValueEnabled · Default: true
Enables or disables the Take Profit setting.
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.
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.
InpTradeTool_BreakevenStopValueUnits · Default: 3 (Risk)
InpTradeTool_BreakevenStopValueEnabled · Default: true
Enables or disables the Breakeven setting.
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.
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.
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.
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.
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.
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).
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:
[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.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:
Simulation results can be viewed through the Tester’s sub-tabs, including Trades, Stats, Graphs, and Results, providing comprehensive insights into strategy performance.
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.
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.
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.
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.
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:
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:
Legacy spread settings: The older
InpTradeTool_TesterNormalSpreadInPoints/InpTradeTool_TesterNightSpreadInPointspair (withTesterNormalStartHour/TesterNormalEndHour) is still supported for backward compatibility. WhenSpreadScheduleEnabledistrue, the Spread Schedule takes precedence over the legacy settings.
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.
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.
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.
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.
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.
The Optimiser Table displays the following for each market in the current profile:
Buttons:
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.
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.
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.
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.
InpTradeTool_OptimiseHourOfDay · Default: 0
Specifies the hour the optimiser begins using the broker’s time zone.
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:
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:
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
InpTradeTool_ComplianceLogLevel · Default: 2 (Warnings And Breaches)
Controls the verbosity of Compliance messages written to the Experts Log:
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:
Tip: For FTMO or similar funded accounts, set Time Zone = EU_CENTRAL (1) so the daily reset matches midnight CET/CEST (Prague).
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.
InpTradeTool_ComplianceBoundaryMinute · Default: 0
Specifies the minute (0–59) of the compliance day boundary. Used when the reset time includes minutes beyond the hour.
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.
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.
When enabled, EAsiTrader periodically sends market data to the configured AI provider, including:
The AI analyzes this data and returns a structured JSON assessment containing:
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 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:
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:
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.
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. |
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.
EAsiTrader maintains a rolling history of AI decisions for each market. After every AI assessment, the system:
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.
InpTradeTool_AIMode · Default: 0 (Disabled)
Selects the operational mode for AI integration. See AI Operational Modes above.
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).
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:
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.
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 formatprovider=ProviderName,apikey=your_key. Like Telegram credentials, these are encrypted and saved on first use — you only need to enter them once.
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.
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.
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_minutesresponse adapts to market conditions.
InpTradeTool_AITradingStyle · Default: 1 (Moderate)
Sets the AI trading posture. See Trading Style above.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
InpTradeTool_AIAllowModifySL · Default: false
When true, permits the AI to adjust stop loss levels on open positions.
Note: The
modify_bothaction (adjusting SL and TP simultaneously) requires both Allow Modify SL and Allow Modify TP to be enabled.
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.
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.
InpTradeTool_AIAllowCancelOrders · Default: false
When true, permits the AI to cancel pending orders that are no longer aligned with its market assessment.
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.
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:
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.
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.
Lists all EAsiScript functions with a description for each.
Lists all EAsiScript operators.
Lists all EAsiScript variables.
See the EAsiScript Manual for instruction on using EAsiScript.
EAsiTrader can deliver real-time trade notifications directly to your Telegram account. When configured, the following alert types are sent as formatted Telegram messages:
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.
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):
InpTradeTool_TelegramUserId)InpTradeTool_TelegramMessageThreadId)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.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.
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.
The log displays the following details for each signal:
Use the Symbol List dropdown to filter the log by a specific trading symbol, making it easier to focus on relevant signals.
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.
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.
You can filter the trade list by:
Displays details about all your currently open positions, including entry price, stop loss, take profit, and unrealized profit or loss.
Lists details of all completed trades, including entry and exit prices, trade duration, and realized profit or loss.
Shows information about all pending orders, including type (Buy Stop, Sell Limit, etc.), price levels, and expiration times.
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.
Displays an equity curve for your trading activity, allowing you to visually analyze performance trends over time.
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.
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:
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.
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.
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.
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.
The date of the latest tick in tick data history to end the simulation.
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.
See §6.11.3 Walk-Forward Settings for details on these settings.
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.
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.
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.
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.
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.
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.
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.
Use the checkboxes to include any combination of the following data in your AI request:
The AI response is displayed below the prompt editor. You can save and load prompts and responses for future reference.
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:
This tab is invaluable for understanding your trading environment and ensuring your strategies align with current market and system conditions.
This tab shows a list of keyboard shortcuts and their meanings that are recognised by the EA.
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. |
An EAsiTrader Profile consists of:
Files\EAsiTrader folder, this file contains settings common to all markets, both primary and secondary.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.
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.
;
; 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
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).
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.
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.
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.
Markets: Define multiple markets in InpTradeTool_Market using a comma-separated list of symbol-timeframe pairs, e.g., InpTradeTool_Market=EURUSD H1,GBPUSD H1.
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.
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.
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.
Placeholder Values: For settings that do not apply, use clear placeholders (e.g., 0, false, or a comment like // Not used).
Testing and Optimization: Include default settings for the Tester and Optimise sections, even if not used for the current strategy.
Consistency: Ensure consistent formatting, including equal spacing around = and alignment of comments.
AI Mode and Permission Mapping: The AI Section settings must be consistent with the selected AI Mode:
AIAllow* permission flags are ignored — the AI observes but cannot affect trades. Entry and exit scripts operate independently.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).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.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).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.
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.
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).
After generating an AI-enabled preset file, verify:
Defaults.set are present and in the correct order.InpTradeTool_.AIMode value (0–4) matches the intended operational mode.AIStrategyInstructions is non-empty when AIMode is Autonomous (4).AIStrategyInstructions uses literal \n for newlines — not literal line breaks.AIUrls are percent-encoded with %0A separating multiple URLs.Ai*() functions — see Gated Trading in Detail.+ prefix.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
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.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.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.+ 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.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 name52: the metric value for Total Points50;0: the minimum and maximum filter valuesStatType_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 |
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 |
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.
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:
Recommended thresholds:
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.
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.
| 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. |
This section defines key concepts and terms used in EAsiTrader to ensure a clear understanding of its features and functionality.
Average Bar Height. The ABH values are read from the ABH indicator. The Period of the ABH is determined by the indicator.
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.
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.
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.
Any symbol and timeframe pair that does not match the chart’s symbol and timeframe. See §3 The Primary Market and Secondary Markets.
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.
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.
For an FTMO Challenge or Verification account, the following settings align with FTMO’s standard rules:
0.10 (10% for Challenge) or 0.05 (5% for Verification).0.10 (10% maximum overall loss).0.05 (5% maximum daily loss).0.05 (5%).4 (minimum 4 trading days).1 (EU Central — CET/CEST, Prague).0/0/0 (midnight CET reset).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