Time Trader EA User Guide

Time Trader EA User Guide

This guide covers the five-block Time Trader EA interface for MT4 and MT5, associated with release 3.11. Older six-slot settings are not the same interface. Compare the input names below with your installed release before loading an old settings file.

Time Trader submits orders according to time, date and weekday rules. It does not generate moving-average, oscillator or other directional entry signals. You choose the order direction in each block. The common management settings determine sizing, entry restrictions and how managed positions close.

Start on a demo account. All five trade blocks default to None, but the recovery-mode default is loss-side grid. Disable recovery explicitly if you only want to test scheduled entries. No default configuration is a trading recommendation.

How Scheduled Trading Works

The five blocks

Trade #1 through Trade #5 use the same input structure. Each block can be disabled, buy, sell or place one of four pending-order types. A block is independent of the others for scheduling, last attempt and successful completion. With multi-pair enabled, these states are also separate for each configured pair.

The same five settings apply to every selected pair; there is not a separate symbol selector inside each block. Due blocks are processed by their actual scheduled timestamps, not simply by the displayed input order. If times are equal on a pair, the lower block number is processed first. A successful entry can change the candle or count limit before the next block is checked.

Independent schedules are not independent exit baskets. Trades sharing the applicable symbol, direction and MagicNumber can be managed together. MT5 netting accounts may merge, reduce or reverse an existing position; independent requests do not guarantee separate hedged positions.

Weekly, daily and selected-date modes

Mode Inputs used Inputs ignored Result
Weekly Schedule, TimeToExecute and Monday–Sunday switches TradeDate Repeat on each enabled weekday at the specified server time.
DateTime, TradeDate = 0 Schedule and TimeToExecute Monday–Sunday switches Repeat every calendar day at the specified time, including weekends if execution is otherwise permitted.
DateTime, TradeDate is nonzero Calendar date from TradeDate and TimeToExecute Weekday switches and the time component stored in TradeDate One dated occurrence for the current session; it is exhausted after acceptance or expiry.

Weekly with all seven weekdays false has no eligible target. A nonzero date is not an annual repeating anniversary. A past dated occurrence whose execution window has expired is not replayed.

Server time, not local time

Enter the time as HH:MM or HH:MM:SS, using a 24-hour broker-server clock. For example, 08:00 and 08:00:00 describe the same schedule time. Use two digits for hours, minutes and seconds. Invalid active-block times prevent initialization rather than silently becoming midnight; disabled blocks do not validate their time string.

Compare the broker’s displayed server time with your intended session before enabling a block. Broker daylight-saving changes can alter its relationship to UTC or your local clock. The news filter’s GMT offset only aligns calendar events; it does not shift the five schedule times.

The scheduler uses MetaTrader server time (TimeCurrent). Tick and timer callbacks check the same state, but a timer does not manufacture fresh server-clock time while quotes are unavailable. A closed market, disconnected terminal or stale quote clock can cause a scheduled opportunity to be missed.

Padding, retries and missed opportunities

PaddingSeconds applies to every block. A request is eligible from its scheduled time through scheduled time plus padding, inclusive.

Example: with an 08:00:00 target and the default 60-second padding, the eligible window is 08:00:00 through 08:01:00. This is an illustration of timing, not a recommended trading session.

  • 0 permits only the exact scheduled second. A callback must occur then, and all filters must pass.
  • 60 is the supplied default.
  • Valid values range from 0 to 86400. An out-of-range value prevents initialization.
  • A failed submission does not complete the occurrence. The same block/pair can attempt again after at least 10 server-clock seconds, provided the grace period remains open and the filters pass.
  • A filter-blocked occurrence can become eligible later in its window. There is no promise of a retry at a precise wall-clock second.
  • After the window expires, the occurrence is skipped. The next selected weekday or daily occurrence becomes the target; an expired selected-date occurrence has no replacement.
  • A window can cross midnight. A late Monday occurrence can still run in its remaining Tuesday grace period even if Tuesday is not enabled for Weekly scheduling.
  • Very large padding can overlap daily occurrences. The oldest still-open, unconsumed occurrence takes priority; a block is processed at most once per callback.

Padding does not expire an accepted pending order. The scheduler submits pending orders without a scheduled expiry. Broker/helper behavior and subsequent management determine their lifetime; ending the schedule window or entering a news window does not automatically cancel them.

What counts as completion?

A successful accepted market-order or pending-order submission consumes that block’s scheduled occurrence for that pair. The pending order does not need to fill first. Closing a market trade immediately, or cancelling an accepted pending order, does not rearm the same occurrence in an uninterrupted session.

A failure in one block cannot complete a different block. Submission acceptance does not guarantee a specific fill price or a future pending-order fill.

Schedule Inputs: Trade #1 to Trade #5

Time Trader Trade #1 inputs showing a Weekly Buy at 12:19:00 server time.
Example only—not defaults or a trading recommendation: Trade #1 is Buy, Weekly, at 12:19:00 server time, with all seven weekdays enabled. Saturday and Sunday are true here, unlike the supplied false defaults. The zero date may display as 1970.01.01 00:00:00; Weekly ignores it. Fix Price and 0.0 are ignored for this market Buy.

In the table, N means the block suffix 1, 2, 3, 4 or 5. For example, TradeTypeN covers TradeType1 through TradeType5. Each row applies independently to all five blocks.

Input Default Explanation
TradeTypeN — Type of trade None Disables the block or chooses Buy, Sell, Buy Stop, Buy Limit, Sell Stop or Sell Limit. Configure this last when preparing a new schedule.
ScheduleN — Weekly or DateTime DateTime Chooses whether weekdays or the date/daily rule controls the calendar.
TimeToExecuteN #1 08:00:00; #2 10:00:00; #3 12:00:00; #4 14:00:00; #5 16:00:00 Broker-server time in HH:MM or HH:MM:SS. This supplies the time even when TradeDate contains its own time.
TradeDateN 0 DateTime only: 0 means every day; a selected date means one calendar-date occurrence. The time portion of this field is ignored. Weekly ignores the entire field.
MondayN true Weekly only: allow Monday’s target.
TuesdayN true Weekly only: allow Tuesday’s target.
WednesdayN true Weekly only: allow Wednesday’s target.
ThursdayN true Weekly only: allow Thursday’s target.
FridayN true Weekly only: allow Friday’s target.
SaturdayN false Weekly only: allow Saturday’s target if enabled and the broker can trade.
SundayN false Weekly only: allow Sunday’s target if enabled and the broker can trade.
PendingPriceTypeN Fixed price For pending orders, interpret PendingOrderPrice as an absolute price or a point distance. Market Buy/Sell ignore these pending settings.
PendingOrderPriceN 0 Absolute pending price or point distance according to PendingPriceType. A positive usable value is required for a pending request; 0 is not an automatic market price.
PaddingSeconds 60 Shared grace period for all five blocks, in seconds; valid range 0–86400, inclusive.

A zero date may appear in MetaTrader as 1970.01.01 00:00:00. In DateTime mode this zero value means every day; in Weekly mode the date is ignored.

Section-title and blank separator strings are layout labels, not strategy parameters.

Pending-order price rules

Order type Fixed-price requirement in Time Trader Point-distance calculation
Buy Stop Above current Ask Ask + integer distance × symbol point
Sell Limit Above current Ask Ask + integer distance × symbol point
Sell Stop Below current Bid Bid − integer distance × symbol point
Buy Limit Below current Bid Bid − integer distance × symbol point

The point-distance value is truncated to an integer, not rounded. Use a positive whole number of points to avoid ambiguity. A symbol point is the platform’s point size; it is not always one pip.

Illustration: if Ask is 1.10020, Bid is 1.10000 and the symbol point is 0.00001, a 100-point distance gives 1.10120 for Buy Stop/Sell Limit and 1.09900 for Sell Stop/Buy Limit. These are arithmetic examples only. Quote changes, price normalization, broker minimum distance, permitted order types and market sessions can still prevent acceptance.

A point-based price is calculated from the quotes at each submission attempt. A later retry may therefore request a different price. A fixed-price setting remains the same requested level, but can become invalid if the market moves across it. One fixed number also applies to every pair in multi-pair mode, so do not assume a price appropriate for one symbol is valid for another.

Worked Schedule Setups

Repeat on business days

  1. Leave Trade #2–#5 at None.
  2. Set Schedule1 = Weekly and TimeToExecute1 = 08:00:00.
  3. Enable Monday1 through Friday1; leave Saturday1 and Sunday1 false.
  4. Set TradeDate1 to any value or leave 0—it is ignored in Weekly mode.
  5. Configure lot size, limits and exits, then choose TradeType1 = Buy for a demo test.

This asks for one buy-family submission opportunity on each selected day. It does not require the previous day’s position to be closed, but entry limits may prevent another request.

Repeat every calendar day

Set Schedule1 = DateTime, TradeDate1 = 0 and the desired TimeToExecute1. Weekday flags do not exclude weekends in this mode. For weekday-only trading, use Weekly instead.

Trade on one selected date

Set Schedule1 = DateTime, choose a future calendar date in TradeDate1, and enter the desired server time in TimeToExecute1. Only the date component of TradeDate1 is used. Check that the target shown on the dashboard is correct before enabling automated trading.

Submit a pending order

Choose a pending TradeType, its schedule and time, then select either a fixed price or a positive point distance. Confirm broker stop-distance requirements. After successful placement, manage or cancel the pending order deliberately; it is not cancelled just because PaddingSeconds ends.

Common Settings: Use the Functions Glossary

The shared guides below explain the common controls in detail. This manual keeps only their purpose and the Time Trader exceptions; it does not repeat the shared input inventories.

Multi-pair trading

Apply the same five schedules to the configured broker symbols. Completion and retry state remain separate for each block/pair, but shared management can group trades. Use exact broker symbol names.

More Details — Click Here

General direction, sizing and trend filter

These controls set permitted trade direction, volume, spread restrictions and optional market-condition filtering. The trend filter qualifies a scheduled entry; it does not choose its direction. In Time Trader, Both Side and Any Single Side allow independent scheduled entries despite existing positions, subject to other limits—they are not one-position locks. Long Side Only and Short Side Only still restrict the corresponding order families.

More Details — Click Here

Initial-entry stop filters

Exposure, daily and candle limits can prevent a new scheduled initial entry; they do not automatically close existing positions or cancel pending orders. Limits are rechecked for each due block, so accepting one block can prevent the next. Accepted pending orders also affect Time Trader’s entry counters before filling.

More Details — Click Here

Trade time and broker sessions

The common opening-session inputs (EnableTime, Trade_Time_For, time-group strings and general weekdays) are not exposed in this layout, and the embedded general opening-session switch is off. Configure opening times through the five Weekly/DateTime blocks instead. Broker-session checks remain separate; an enabled closing-time interval can also block scheduled entries. The linked guide explains the shared function, not a replacement schedule for Time Trader.

More Details — Click Here

News stop filter

News filtering can pause eligible entries around selected events. It does not move a schedule or extend its padding, and does not automatically cancel an accepted pending order. The news GMT offset aligns calendar data, not the block’s server time. Confirm currency coverage for multi-pair use and test a real demo stop window; backtesting alone does not verify live calendar downloads.

More Details — Click Here

Loss-side grid

Loss-side grid adds exposure after adverse movement.

Time Trader’s recovery default is Grid (Loss Side). Select TradeRecoveryType = Disable for scheduled entries without recovery. Grid can rapidly increase exposure and does not guarantee recovery. Time Trader’s directional strategy signals remain false: enabling GridTradeOnlyInSignal or its profit-side counterpart blocks signal-dependent grid entries. Do not assume signal-dependent lot modes obtain a signal from a scheduled Buy or Sell.

More Details — Click Here

Profit-side grid

Profit-side grid adds after favorable movement.

More Details — Click Here

Shared grid controls

Shared grid controls coordinate counts, spacing zones and supported trade-pair closing.

More Details — Click Here

Martingale

Martingale changes later entry volume following losses. Neither shared grid controls nor martingale is a guaranteed loss or drawdown limit. Scheduler completion preservation does not promise preservation of martingale or other management state.

More Details — Click Here

Take profit, stop loss and currency exits

Choose the exit calculation and managed trade scope deliberately. Virtual exits need the EA running; hard broker-side stops are separate. Independent schedules do not create separate exit baskets: average or currency rules can manage several scheduled entries together.

More Details — Click Here

Partial closing

Partial closing reduces position volume in stages, subject to broker volume rules and platform/account compatibility. Demo-test it with the intended scheduled trades and account type.

More Details — Click Here

Additional close filters and Stop & Kill

Time-based closing and account/profit/loss controls can close the managed group or stop entries when their conditions are met. They are not broker- or prop-firm compliance guarantees. A closing-time window is not a sixth opening schedule and can block new scheduled entries. Time Trader supplies no opposite directional signal, so CloseTradeOnOppsiteSignal does not turn a later opposite schedule into a close instruction.

More Details — Click Here

Break-even and trailing

These rules adjust managed stops as price moves. Confirm their trade scope and broker stop/freeze restrictions on demo; their point distances are unrelated to schedule padding.

More Details — Click Here

EA configuration

Use the common configuration to identify and manage the EA’s trade group. Distinct MagicNumbers help separate management but do not coordinate schedule completion between instances. Activation fields, if present, belong to the installed licensing workflow.

More Details — Click Here

Display information

Use display settings to arrange the dashboard.

More Details — Click Here

Time Trader Dashboard and Next Trigger

Reading Next Trigger

The dashboard’s Next Trigger entry shows the nearest outstanding server timestamp, #block and symbol across the configured pair list. It is a calendar target, not a promise that all filters currently allow trading.

  • An unconsumed target remains visible while its grace window is open, even if an entry filter blocks it.
  • Successful acceptance or expiry advances the target.
  • Equal timestamps prefer the lower block number, then the earlier pair-list entry for the displayed target.
  • None means there is no outstanding target: blocks may all be disabled, Weekly may have no selected days, or selected-date schedules may be consumed/expired.

One dashed slate-gray vertical line marks the same global-nearest target on the current chart. It is not one line per block or per pair. Its tooltip identifies the target time, block and symbol. Another block or pair can keep the same visible timestamp after a successful entry, so the line does not always visibly move.

The line remains when DisplayInfo is false. It is suppressed in nonvisual testing. MT5’s custom lifecycle removes and recreates it during reinitialization; do not assume identical cleanup behavior for the reviewed MT4 wrapper. See the dashboard glossary for the general display fields.

Duplicate Protection, Timeframes and Restarts

Schedule completion and retry timing are memory belonging to an EA instance, not durable history reconstructed from open positions. Closing a trade is not the same as resetting the instance.

Event Behavior to rely on
Repeated tick/timer checks in an uninterrupted session An accepted block/pair occurrence remains consumed; a failed submission retains its retry throttle.
MT5: change chart timeframe, keep the same chart symbol Scheduler completion, attempt state and the original pair mapping are preserved by the custom lifecycle path. This promise is limited to scheduler state, not every inherited management counter.
MT4: change chart timeframe Do not rely on the MT5 preservation policy. The reviewed MT4 lifecycle does not run the product’s custom deinitialization path, so the preservation latch is not set. A still-open occurrence may submit again after reinitialization.
Change chart symbol Scheduler state resets, including on MT5.
Change inputs, remove/re-attach, recompile or restart terminal Treat this as a fresh scheduler session. An occurrence still inside padding may submit again.
Run another chart/instance Instances do not share completion memory. Distinct MagicNumbers help separate management, but do not coordinate schedules.

For operational safety, avoid lifecycle changes during an open grace window. Before reconnecting or reattaching, inspect orders and pending orders as well as the intended schedule. A one-date setup is not a durable once-ever guarantee across restarts.

Quick Setup Checklist

  1. Download or update the correct MT4/MT5 file and install it in the terminal.
  2. Use a demo account and check automated-trading permission, broker server time, symbol point size, volume step and market sessions.
  3. Keep unused TradeType blocks at None. Configure a single test block first.
  4. Choose Weekly, daily DateTime/0, or selected-date DateTime. Confirm the Next Trigger timestamp.
  5. Choose fixed or balance-based volume and set exposure/candle/daily limits deliberately.
  6. Select recovery Disable unless grid or martingale is explicitly part of the test. Review virtual versus hard stops.
  7. If using news filtering, follow the provider and WebRequest guide, verify broker GMT and confirm a demo stop window.
  8. Test acceptance, an intentionally blocked opportunity, retry behavior, expiry and pending-order handling. Avoid changing inputs inside the grace window.
  9. Save the tested settings with a clear platform/version name. Do not assume older six-slot files are compatible.

Troubleshooting

Symptom What to check
Nothing is scheduled All five TradeTypes default to None. Also check Weekly weekday switches and an expired/consumed selected date.
EA fails to initialize Check active time strings and PaddingSeconds bounds in Experts/Journal. Also inspect activation, symbol-data and ordinary platform errors.
Next Trigger appears but no order opens Check trading permissions, connection, quotes, direction, spread, news, count/candle limits, trend filter, closing interval, Stop & Kill and broker session rules. A visible target does not mean the entry gates passed.
DateTime trades on an unwanted weekday DateTime ignores weekday switches. Use Weekly for weekday selection.
Date selection uses the wrong hour The hour comes from TimeToExecute, not the time component of TradeDate. Check broker time, not computer time.
A missed schedule does not run later An expired window is intentionally skipped. Increase padding only after considering stale-entry and overlap risks.
Pending order rejected Check a positive price/distance, the exact Bid/Ask-side rules, symbol points, integer distance, broker minimum stops, permitted order type, margin and volume.
Pending order remains after padding Expected: padding limits submission eligibility, not the accepted pending order’s lifetime.
Two blocks do not both execute Check per-entry capacity/candle rechecks, directional restrictions and whether the first acceptance used the remaining limit.
More than one position/request appears Multiple blocks and multiple pairs may each submit. Also inspect recovery mode, independent instances, and whether an in-window restart or MT4 timeframe change reset memory.
A trade repeats after restarting Completion is session-only. A restarted occurrence still within padding can be eligible again.
Dashboard hidden but a line remains Expected: DisplayInfo hides the dashboard, not the next-trigger line.
Opposite-signal close does nothing Time Trader does not generate that signal. Use the supported time, TP/SL or other closing rules instead.
News times differ from schedule expectations Verify the news broker-GMT offset; it does not convert the block’s server-time input. Test live news behavior on demo, not just in the tester.

For support, provide platform, EA version, broker/account type, exact symbol, server timestamp, block settings and relevant Experts/Journal messages. Include whether the EA was restarted, reattached, edited or moved to another timeframe during the grace window. Submit a problem report without passwords or account secrets.

Helpful Guides

Risk Notice

Trading financial instruments involves a high level of risk and may not be suitable for all investors. Past performance is not indicative of future results. MeetAlgo provides automated trading software and tools for educational and automation purposes only. MeetAlgo does not provide investment advice, portfolio management services, or any regulated financial services. Always consult a licensed financial advisor before making trading decisions.

Grid and martingale can rapidly increase exposure and may cause loss of the account. Time-based execution, news filtering and risk controls cannot guarantee acceptance, fills, loss limits or profit. Test the complete configuration on demo under the intended broker conditions before considering live use.