{"product_id":"ekai-tradecopier-pro","title":"EKAI Trade Copier Pro","description":"\u003cp\u003e\u003cstrong\u003eInstitutional-grade local trade copier for MetaTrader 5\u003c\/strong\u003e \u003cstrong\u003ewith News-Aware Guard, Prop Firm Rules Sync, Trade Quality Score,\u003c\/strong\u003e \u003cstrong\u003eVolatility-Adaptive Lot Sizing, SL Enforcer, and Panic Mode.\u003c\/strong\u003e \u003cstrong\u003eZero DLL. Zero network. One EA, two modes.\u003c\/strong\u003e\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eOverview\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eEKAI Trade Copier Pro\u003c\/strong\u003e replicates trades in real time from one MetaTrader 5 account (sender) to any number of MetaTrader 5 accounts (receivers) on the same machine, with institutional-grade safety features found nowhere else in the MQL5 Market.\u003c\/p\u003e\n\u003cp\u003eUnlike every other local copier in the Market, EKAI Trade Copier Pro doesn't just mirror trades — it \u003cstrong\u003eprotects your receiver accounts\u003c\/strong\u003e from the kinds of risks that destroy prop firm challenges and funded accounts:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNews-Aware Copy Guard\u003c\/strong\u003e pauses copying automatically around high-impact economic events\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eProp Firm Rules Sync\u003c\/strong\u003e with built-in presets for FTMO, FundedNext, Alpha Capital, The5ers, and FundingPips closes all copies and blocks further trading before you breach a limit\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrade Quality Score\u003c\/strong\u003e rejects trades that fail a 0-100 scoring on spread, volatility, session, and news proximity\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eSL Enforcer\u003c\/strong\u003e attaches an emergency stop-loss to any trade the sender opens without one\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eVolatility-Adaptive Lot Sizing\u003c\/strong\u003e automatically reduces position size during ATR spikes\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eProp Guardian Synergy\u003c\/strong\u003e reads severity signals from EKAI Prop Guardian Pro if installed, pausing copies when your account enters a danger zone\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePanic Mode\u003c\/strong\u003e closes all copies across all receivers with a two-click confirmation button\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe copier itself is based on \u003cstrong\u003efile-based inter-terminal communication\u003c\/strong\u003e in the Common\\Files directory — the same architecture used by every top-rated local copier in the Market. No DLL, no network calls, no third-party dependencies, no attack surface. Each terminal reads and writes a tiny state file that is shared automatically between all MT5 installations on the same machine.\u003c\/p\u003e\n\u003cp\u003eAuto-discovery means \u003cstrong\u003ezero manual configuration\u003c\/strong\u003e per terminal. Attach the EA to one chart in each terminal with the default settings, and the EAs figure out automatically which account is the sender (the one you logged into first, or the one you configured as master) and which are receivers. Add a new receiver next week — attach the same EA with the same \u003ccode\u003e.set\u003c\/code\u003e file, done.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eWhat Makes It Different\u003c\/h2\u003e\n\u003cp\u003eThe MQL5 Market has over 50 trade copiers. Most of them do the same five things: copy market orders, copy pending orders, sync SL\/TP, map symbols, scale lot sizes. That is competitive parity, not differentiation.\u003c\/p\u003e\n\u003cp\u003eHere is what EKAI Trade Copier Pro has that \u003cstrong\u003enobody else\u003c\/strong\u003e combines in one product:\u003c\/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFeature\u003c\/th\u003e\n\u003cth\u003eLocal Trade Copier EA MT5\u003c\/th\u003e\n\u003cth\u003eCOPYLATOR\u003c\/th\u003e\n\u003cth\u003eExp COPYLOT CLIENT\u003c\/th\u003e\n\u003cth\u003e\u003cstrong\u003eEKAI Trade Copier Pro\u003c\/strong\u003e\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eLocal file-based copying\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMulti-sender \/ Multi-receiver\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSymbol mapping (manual + auto)\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003epartial\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLot management modes\u003c\/td\u003e\n\u003ctd\u003e3\u003c\/td\u003e\n\u003ctd\u003e3\u003c\/td\u003e\n\u003ctd\u003e4\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e4\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eReverse copy\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHedging + Netting support\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDrawdown protection\u003c\/td\u003e\n\u003ctd\u003ebasic\u003c\/td\u003e\n\u003ctd\u003e✓\u003c\/td\u003e\n\u003ctd\u003ebasic\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e5-tier severity\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eAuto-discovery (zero config)\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e✓\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eNews-Aware Copy Guard\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e✓\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eTrade Quality Score (0-100)\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e✓\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eSL Enforcer with post-opening apply\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e✓\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eVolatility-Adaptive Lot Sizing\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e✓\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eProp Firm Presets (5 built-in)\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e✓\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eProp Guardian Synergy\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e✓\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eMulti-Receiver Dashboard\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e✓\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eCopy Journal + CSV export\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e✓\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003ePanic Mode (close-all)\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003epartial\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003etwo-click confirm\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eAdvanced Session Filter (presets)\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e✓\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eBroker rules validation\u003c\/strong\u003e (STOPS_LEVEL + retry fallback)\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e✗\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e✓\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003eThe baseline features (rows 1-7) make it a competent copier. The twelve features marked ✓ in the last column make it a \u003cstrong\u003ecategory-defining product\u003c\/strong\u003e for prop firm traders, signal copy service operators, and anyone running capital across multiple accounts.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eKey Features\u003c\/h2\u003e\n\u003ch3\u003eDual-mode SENDER \/ RECEIVER (single EA, auto-discovery)\u003c\/h3\u003e\n\u003cp\u003eOne EA file. Three input modes: \u003cstrong\u003eAUTO\u003c\/strong\u003e, \u003cstrong\u003eSENDER (forced)\u003c\/strong\u003e, \u003cstrong\u003eRECEIVER (forced)\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cp\u003eIn AUTO mode (default), the EA scans \u003ccode\u003eCommon\\Files\u003c\/code\u003e on attach for active sender ping files. If it finds one from another account, this terminal becomes a RECEIVER of that account. If it finds nothing, this terminal becomes a SENDER. If you configure \u003ccode\u003eInpMasterAccount = \u0026lt;your master account #\u0026gt;\u003c\/code\u003e, the EA uses that as the authoritative decider: your master account always acts as SENDER, every other account always acts as RECEIVER.\u003c\/p\u003e\n\u003cp\u003eResult: one \u003ccode\u003e.set\u003c\/code\u003e file works on every terminal. No per-terminal configuration. Add a tenth account next month — same \u003ccode\u003e.set\u003c\/code\u003e, done.\u003c\/p\u003e\n\u003ch3\u003eFile-based local communication\u003c\/h3\u003e\n\u003cp\u003eEach sender writes two files every 500 milliseconds:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eEKAI_TC_\u0026lt;senderAccount\u0026gt;.dat\u003c\/code\u003e — complete snapshot of currently open positions and pending orders\u003c\/li\u003e\n\u003cli\u003e\u003ccode\u003eEKAI_TC_\u0026lt;senderAccount\u0026gt;_ping.dat\u003c\/code\u003e — timestamp heartbeat so receivers know the sender is alive\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eEach receiver polls these files every 250 milliseconds, diffs the current state against the last known state, and detects OPEN \/ MODIFY \/ CLOSE events. Latency from sender action to receiver execution: typically 250-750 milliseconds.\u003c\/p\u003e\n\u003cp\u003eEach receiver also writes its own status file so the sender can display a Multi-Receiver Dashboard with real-time counts, balances, and equity across every connected account.\u003c\/p\u003e\n\u003cp\u003eAll files live in Common\\Files which MT5 shares automatically between every non-portable installation on the same machine. \u003cstrong\u003eNo DLL. No Windows named pipes. No network sockets. Nothing to configure.\u003c\/strong\u003e\u003c\/p\u003e\n\u003ch3\u003eAutomatic symbol mapping\u003c\/h3\u003e\n\u003cp\u003eDifferent brokers name the same instrument differently: \u003ccode\u003eXAUUSD\u003c\/code\u003e \/ \u003ccode\u003eGOLD\u003c\/code\u003e, \u003ccode\u003eBTCUSD\u003c\/code\u003e \/ \u003ccode\u003eBitcoin\u003c\/code\u003e, \u003ccode\u003eEURUSD\u003c\/code\u003e \/ \u003ccode\u003eEURUSD.m\u003c\/code\u003e \/ \u003ccode\u003eEURUSDpro\u003c\/code\u003e. The EA tries five strategies in order:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eManual mapping from your \u003ccode\u003eInpSymbolMappings\u003c\/code\u003e input (\u003ccode\u003e\"XAUUSD:GOLD,BTCUSD:Bitcoin\"\u003c\/code\u003e)\u003c\/li\u003e\n\u003cli\u003eExact match on receiver side\u003c\/li\u003e\n\u003cli\u003eTry common suffix variants (\u003ccode\u003em\u003c\/code\u003e, \u003ccode\u003e.m\u003c\/code\u003e, \u003ccode\u003ei\u003c\/code\u003e, \u003ccode\u003e.i\u003c\/code\u003e, \u003ccode\u003epro\u003c\/code\u003e, \u003ccode\u003e.pro\u003c\/code\u003e, \u003ccode\u003ec\u003c\/code\u003e, \u003ccode\u003e.c\u003c\/code\u003e)\u003c\/li\u003e\n\u003cli\u003eTry stripping common suffixes from sender symbol\u003c\/li\u003e\n\u003cli\u003eAuto-add the symbol to Market Watch if the broker has it but it's hidden\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eIf no match found, the trade is skipped with a clear log message naming the symbol so you can add a manual mapping.\u003c\/p\u003e\n\u003ch3\u003eFour lot sizing modes\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIXED\u003c\/strong\u003e: use a fixed lot size regardless of what the sender opens (\u003ccode\u003eInpFixedLotSize\u003c\/code\u003e)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eMULTIPLIER\u003c\/strong\u003e: multiply the sender's lot by a factor (\u003ccode\u003eInpLotMultiplier\u003c\/code\u003e, default 1.0)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eBALANCE\u003c\/strong\u003e: scale by receiver-balance \/ sender-balance ratio (useful when sender and receiver have very different account sizes)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eRISK_PCT\u003c\/strong\u003e: compute lot such that the SL distance equals a fixed % of receiver balance (true risk-based sizing)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eAll modes respect \u003ccode\u003eInpMaxLotSize\u003c\/code\u003e as a hard cap, so a bug on the sender side can never over-leverage the receiver.\u003c\/p\u003e\n\u003ch3\u003eReverse copy\u003c\/h3\u003e\n\u003cp\u003eSet \u003ccode\u003eInpCopyReversal = true\u003c\/code\u003e and every BUY on sender becomes SELL on receiver, every SELL becomes BUY. Pending types flip accordingly (BUY_LIMIT ↔ SELL_LIMIT, BUY_STOP ↔ SELL_STOP). SL and TP are swapped to maintain the correct risk\/reward relationship on the reversed side.\u003c\/p\u003e\n\u003cp\u003eUseful for A\/B testing opposing strategies, running hedge accounts against a losing EA, or copying a known contrarian signal.\u003c\/p\u003e\n\u003ch3\u003eBroker rules validation (unique to EKAI Trade Copier Pro)\u003c\/h3\u003e\n\u003cp\u003eBefore every \u003ccode\u003eOrderSend\u003c\/code\u003e, the EA validates the sender's SL and TP against the \u003cstrong\u003ereceiver broker's\u003c\/strong\u003e \u003ccode\u003eSYMBOL_TRADE_STOPS_LEVEL\u003c\/code\u003e and \u003ccode\u003eSYMBOL_TRADE_FREEZE_LEVEL\u003c\/code\u003e. These values vary enormously between brokers, especially on crypto and metals:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eSender broker: Bitcoin allows SL at 100 points\u003c\/li\u003e\n\u003cli\u003eReceiver broker: Bitcoin requires SL at 500+ points\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eWithout validation, every single Bitcoin trade would fail with \u003ccode\u003eretcode=10016 Invalid stops\u003c\/code\u003e. EKAI Trade Copier Pro:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eReads \u003ccode\u003eSTOPS_LEVEL\u003c\/code\u003e and \u003ccode\u003eFREEZE_LEVEL\u003c\/code\u003e on the receiver\u003c\/li\u003e\n\u003cli\u003eAdds a 50% safety margin plus 10 points floor\u003c\/li\u003e\n\u003cli\u003ePushes SL and TP out to the minimum valid distance for that broker\u003c\/li\u003e\n\u003cli\u003eSnaps to \u003ccode\u003eTRADE_TICK_SIZE\u003c\/code\u003e (not just digits — crypto often has 0.5 tick size)\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eIf the broker still rejects despite adjustment, a \u003cstrong\u003etwo-step fallback\u003c\/strong\u003e kicks in:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eRetry the order \u003cstrong\u003ewithout SL\/TP\u003c\/strong\u003e (which the broker will accept)\u003c\/li\u003e\n\u003cli\u003eAfter the position opens successfully, call \u003ccode\u003eTRADE_ACTION_SLTP\u003c\/code\u003e (a separate transaction with more permissive rules) to apply an emergency SL — trying 4 progressively more conservative distances until the broker accepts\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eResult: trades that would fail outright with other copiers get copied successfully and protected with a stop-loss, automatically.\u003c\/p\u003e\n\u003ch3\u003eRetry backoff + give-up logic\u003c\/h3\u003e\n\u003cp\u003eA trade that fails to copy is tracked in a per-ticket failure list. The EA retries at most \u003cstrong\u003e3 times with 10-second backoff\u003c\/strong\u003e, with log output throttled to once per 60 seconds per ticket to avoid Journal flood. After 3 failed attempts, the ticket is marked permanently failed and never retried — a single clear \"GIVING UP\" log entry, then silence. The Panel shows \u003ccode\u003eSkipped: N\u003c\/code\u003e so you know these trades exist without reading logs.\u003c\/p\u003e\n\u003cp\u003eIf the sender closes the trade (removing it from state), the failed-ticket entry is cleaned up with a 30-second grace period that survives file-write race conditions.\u003c\/p\u003e\n\u003cp\u003eWithout this logic, a receiver that runs out of margin on Bitcoin would hammer the broker with ~250 identical rejected requests per minute until the sender closed the position. EKAI Trade Copier Pro limits that to 3 requests, then silence. Your broker won't flag your account for abuse, and your Journal stays readable.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003e🎯 Fase 3 Differentiators — Unique Features\u003c\/h2\u003e\n\u003ch3\u003eNews-Aware Copy Guard\u003c\/h3\u003e\n\u003cp\u003eIntegrates natively with MT5's built-in economic calendar (\u003ccode\u003eCalendarValueHistory\u003c\/code\u003e and \u003ccode\u003eCalendarEventById\u003c\/code\u003e). Before every trade copy, the EA:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eExtracts the base and quote currency from the symbol (\u003ccode\u003eEURUSD\u003c\/code\u003e → EUR, USD)\u003c\/li\u003e\n\u003cli\u003eQueries the calendar for events in the configurable blackout window (default: 15 minutes before to 15 minutes after)\u003c\/li\u003e\n\u003cli\u003eIf any event affects either currency and matches the importance filter (default: HIGH only, optionally HIGH+MEDIUM), the trade is blocked\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eA blocked trade is logged as:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e[EKAI TC] Trade 14143627 blocked by gate: News blackout: USD HIGH event: Non-Farm Payrolls\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003eThe Panel shows a count of news-blocked trades for the day.\u003c\/p\u003e\n\u003cp\u003eProp firm traders know that trading news often means instant disqualification for breaching daily loss limits. Signal copiers know that spreads widen 5-10x during NFP\/FOMC\/CPI. This feature alone can save a prop firm challenge from blowing up on a single news event.\u003c\/p\u003e\n\u003ch3\u003eTrade Quality Score (0-100)\u003c\/h3\u003e\n\u003cp\u003eFour-dimensional scoring runs before every copy:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSpread score (25 pts)\u003c\/strong\u003e: full score if current spread ≤ \u003ccode\u003eInpQualityMaxSpread\u003c\/code\u003e; linear decay as spread exceeds threshold\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eVolatility score (25 pts)\u003c\/strong\u003e: full score if current ATR(14) is within 0.5x to 1.5x of 50-bar average ATR; decays outside that range\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession score (25 pts)\u003c\/strong\u003e: full score during configured session, zero outside\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eNews score (25 pts)\u003c\/strong\u003e: full score if no news blackout active, zero if blackout\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eTotal 0-100. If \u003ccode\u003eInpEnableQualityScore = true\u003c\/code\u003e and the score is below \u003ccode\u003eInpQualityMinScore\u003c\/code\u003e (default 50), the trade is rejected with a detailed breakdown:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e[EKAI TC] Trade 14143628 blocked by gate: Quality score 35 \u0026lt; 50 (spread=10 vol=15 sess=0 news=10)\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003eSet the threshold to 75+ and you get an institutional-grade pre-trade filter that rejects anything executed during exotic spread widening, dead market zones, or marginal setups.\u003c\/p\u003e\n\u003ch3\u003eSL Enforcer (with post-opening fallback)\u003c\/h3\u003e\n\u003cp\u003eIf a sender opens a trade with SL = 0 (naked position), the receiver applies an \u003cstrong\u003eemergency stop-loss automatically\u003c\/strong\u003e. Three modes:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIXED_PIPS\u003c\/strong\u003e: a fixed pip distance (default 200)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eATR_MULT\u003c\/strong\u003e: N × current ATR (default 2.0 × ATR(14))\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eBALANCE_PCT\u003c\/strong\u003e: SL distance equivalent to a % of receiver balance risk (default 1.0%)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe ATR_MULT mode is \u003cstrong\u003euniversal across instrument classes\u003c\/strong\u003e because it adapts automatically to the volatility of each symbol — Bitcoin gets a wide SL, EURUSD gets a tight one.\u003c\/p\u003e\n\u003cp\u003eThe SL is applied in two steps when necessary:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eDuring OrderSend with the SL included\u003c\/li\u003e\n\u003cli\u003eIf the broker rejects the SL on opening (crypto brokers often do), the position is opened without SL, then \u003ccode\u003eTRADE_ACTION_SLTP\u003c\/code\u003e is called to attach the SL afterward — with 4 progressively more conservative distances (1x, 2x, 3x, 5x) until the broker accepts\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eThe counter in the Panel (\u003ccode\u003eSL enforced: N\u003c\/code\u003e) only increments when the SL is actually applied to a real position, not when it was requested. If after 4 attempts no SL could be attached, you get a one-time warning in the log recommending manual intervention.\u003c\/p\u003e\n\u003ch3\u003eVolatility-Adaptive Lot Sizing\u003c\/h3\u003e\n\u003cp\u003eCompares current ATR(14) to average ATR over last 50 bars. If current ATR \u0026gt; average, the lot is reduced proportionally:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003efinalLot = baseLot × (avgATR \/ currentATR)\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003eClamped to a minimum floor (\u003ccode\u003eInpAdaptiveMinRatio\u003c\/code\u003e, default 25% of base lot). During flash crashes, volatility spikes, or news-induced chaos, the receiver automatically trades smaller. During calm markets, lot sizes are unchanged.\u003c\/p\u003e\n\u003cp\u003eCombined with ATR_MULT mode for SL Enforcer, this creates a self-balancing risk profile that adapts to market regime without any manual intervention.\u003c\/p\u003e\n\u003ch3\u003eProp Firm Rules Sync — the killer feature\u003c\/h3\u003e\n\u003cp\u003eFive built-in presets with the actual rules of each firm:\u003c\/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ePreset\u003c\/th\u003e\n\u003cth\u003eDaily Loss Limit\u003c\/th\u003e\n\u003cth\u003eMax Total Loss\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eFTMO\u003c\/td\u003e\n\u003ctd\u003e5%\u003c\/td\u003e\n\u003ctd\u003e10%\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFundedNext\u003c\/td\u003e\n\u003ctd\u003e5%\u003c\/td\u003e\n\u003ctd\u003e10%\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAlpha Capital\u003c\/td\u003e\n\u003ctd\u003e4%\u003c\/td\u003e\n\u003ctd\u003e8%\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eThe5ers\u003c\/td\u003e\n\u003ctd\u003e4%\u003c\/td\u003e\n\u003ctd\u003e6%\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFundingPips\u003c\/td\u003e\n\u003ctd\u003e5%\u003c\/td\u003e\n\u003ctd\u003e10%\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCustom\u003c\/td\u003e\n\u003ctd\u003econfigurable\u003c\/td\u003e\n\u003ctd\u003econfigurable\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003eThe EA tracks four states based on worst-case % of either limit used:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eOK\u003c\/strong\u003e (\u0026lt; 50%): everything normal\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eWARN\u003c\/strong\u003e (50-80%): panel shows warning color\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDANGER\u003c\/strong\u003e (80-95%): \u003cstrong\u003enew copies paused automatically\u003c\/strong\u003e until recovery\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCRITICAL\u003c\/strong\u003e (\u0026gt; 95%): \u003cstrong\u003eall copies closed and copying blocked\u003c\/strong\u003e until manual recovery\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eDaily loss resets automatically at UTC midnight. Account size is configurable via \u003ccode\u003eInpPropAccountSize\u003c\/code\u003e (default $100,000).\u003c\/p\u003e\n\u003cp\u003eFor prop firm traders, this feature is worth the price of the product alone. The number of accounts blown up by one bad hour of overtrading when daily loss limit is close is enormous. EKAI Trade Copier Pro prevents the breach \u003cstrong\u003ebefore\u003c\/strong\u003e it happens, not after.\u003c\/p\u003e\n\u003ch3\u003eProp Guardian Synergy\u003c\/h3\u003e\n\u003cp\u003eIf you also run \u003cstrong\u003eEKAI Prop Guardian Pro\u003c\/strong\u003e on the same account, the Trade Copier reads the Guardian's severity level via the shared global variable \u003ccode\u003eEKAI_PG_Severity_\u0026lt;account\u0026gt;\u003c\/code\u003e. When Prop Guardian reports DANGER or CRITICAL, the Trade Copier pauses copying automatically. When Prop Guardian recovers, copying resumes.\u003c\/p\u003e\n\u003cp\u003eThis lets you keep Prop Guardian as the primary rule-enforcement layer (watching behavioral patterns like revenge trading, overtrading, cooldown violations) and Trade Copier as the execution layer that respects those decisions.\u003c\/p\u003e\n\u003cp\u003eSet \u003ccode\u003eInpSyncWithPropGuardian = true\u003c\/code\u003e and the two products share state transparently. If you don't own Prop Guardian, this input has zero effect.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003e🎯 Fase 4 Features — UX + Advanced\u003c\/h2\u003e\n\u003ch3\u003eMulti-Receiver Dashboard (sender panel)\u003c\/h3\u003e\n\u003cp\u003eWhen \u003ccode\u003eInpShowReceiverGrid = true\u003c\/code\u003e on the sender, the panel displays a live grid of all connected receivers:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e═ RECEIVERS ═\nAccount    Equity     Copies  Err\n24156622   $9850      145     3\n22318597   $14200     98      0\n50532606   $5400      67      2\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003eUpdates every 3 seconds by scanning each receiver's status file. Only counts receivers whose status is \u0026lt; 30 seconds fresh and that point to this sender. Shows up to 6 receivers in the current build (scrollable grid in roadmap).\u003c\/p\u003e\n\u003ch3\u003eCopy Journal + CSV Export\u003c\/h3\u003e\n\u003cp\u003eCircular buffer of the last 500 copy events (configurable with \u003ccode\u003eInpJournalMaxEntries\u003c\/code\u003e). Each entry captures:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eTimestamp\u003c\/li\u003e\n\u003cli\u003eSender ticket number\u003c\/li\u003e\n\u003cli\u003eReceiver ticket number\u003c\/li\u003e\n\u003cli\u003eSymbol\u003c\/li\u003e\n\u003cli\u003eAction (OPEN \/ MODIFY \/ CLOSE \/ SKIP \/ PANIC)\u003c\/li\u003e\n\u003cli\u003eResult (OK \/ OK+SL \/ error message)\u003c\/li\u003e\n\u003cli\u003eLatency in milliseconds\u003c\/li\u003e\n\u003cli\u003eLot size\u003c\/li\u003e\n\u003cli\u003eOrder type (0=BUY, 1=SELL, 2=BUY_LIMIT, ... 5=SELL_STOP)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eClick \u003cstrong\u003e\"Export CSV\"\u003c\/strong\u003e in the panel and the full journal exports to a timestamped CSV file in \u003ccode\u003eMQL5\\Files\\\u003c\/code\u003e, ready to open in Excel, Google Sheets, or any analytics tool. Perfect for prop firm audits, trade reconciliation, latency analysis, or post-mortem of a bad trading day.\u003c\/p\u003e\n\u003ch3\u003eEmergency Stop-All (Panic Mode)\u003c\/h3\u003e\n\u003cp\u003eA single button labeled \u003cstrong\u003e\"PANIC - Close All \u0026amp; Block\"\u003c\/strong\u003e in the Panel. Two-click confirmation prevents accidental activation:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eFirst click → button turns red: \u003cstrong\u003e\"CONFIRM PANIC - CLICK AGAIN\"\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003eSecond click (within 10 seconds) → full panic activation\u003c\/li\u003e\n\u003cli\u003eIf not confirmed within 10 seconds → auto-disarmed, back to normal state\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eOn confirmation:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eSender broadcasts the panic command via \u003ccode\u003eEKAI_TC_PANIC_\u0026lt;sender\u0026gt;.dat\u003c\/code\u003e\u003c\/li\u003e\n\u003cli\u003eEvery receiver detects the file within 1 second\u003c\/li\u003e\n\u003cli\u003eEvery receiver \u003cstrong\u003ecloses all its copied positions immediately\u003c\/strong\u003e and blocks new copies\u003c\/li\u003e\n\u003cli\u003eButton text changes to \u003cstrong\u003e\"\u003c\/strong\u003e PANIC ACTIVE ** CLICK TO RESUME\"**\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eClick Resume → panic cleared, all copies resume. Panic events are logged in the Copy Journal.\u003c\/p\u003e\n\u003cp\u003eEssential for situations where you discover a bug in your sender strategy at 3am, a signal provider you follow goes rogue, or you simply need to flatten all accounts quickly.\u003c\/p\u003e\n\u003ch3\u003eAdvanced Session Filter\u003c\/h3\u003e\n\u003cp\u003eSix built-in UTC-based session presets:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASIA\u003c\/strong\u003e: 00:00-08:00 UTC\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eLONDON\u003c\/strong\u003e: 07:00-16:00 UTC\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW YORK\u003c\/strong\u003e: 12:00-21:00 UTC\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eASIA-LONDON OVERLAP\u003c\/strong\u003e: 07:00-08:00 UTC\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eLONDON-NY OVERLAP\u003c\/strong\u003e: 12:00-16:00 UTC\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCUSTOM\u003c\/strong\u003e: configurable start and end hours\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eWith Monday-Friday filter option. Trades outside the active session are blocked with:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e[EKAI TC] Trade blocked: Outside London\/NY session (UTC 12:00-16:00, now 03:00)\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003eThe Panel shows \u003ccode\u003eSession: ACTIVE\u003c\/code\u003e or \u003ccode\u003eSession: CLOSED\u003c\/code\u003e in real time. Combined with the Trade Quality Score, this gives you precise control over when the receiver trades.\u003c\/p\u003e\n\u003ch3\u003eDraggable Panel + Persistence\u003c\/h3\u003e\n\u003cp\u003eThe entire info panel can be dragged by its title bar to any position on the chart. Position persists across MT5 restarts (per chart). Toggle visibility with the external \u003ccode\u003e[x] TCP\u003c\/code\u003e button in the corner, which stays visible even when the panel is hidden.\u003c\/p\u003e\n\u003cp\u003eEverything in the state file is per-chart: anchor time, panel position, visibility, button toggles. Multiple instances on different charts are fully independent.\u003c\/p\u003e\n\u003ch3\u003eDiagnostic button\u003c\/h3\u003e\n\u003cp\u003eA \u003ccode\u003eDiagnose\u003c\/code\u003e button in the panel dumps a complete state report to the Journal:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eAccount, mode (SENDER\/RECEIVER), effective sender\u003c\/li\u003e\n\u003cli\u003eCommon data path (critical for debugging multi-terminal setups)\u003c\/li\u003e\n\u003cli\u003eTerminal name, data path, company\u003c\/li\u003e\n\u003cli\u003eList of all EKAI_TC_* files currently in Common\\Files\u003c\/li\u003e\n\u003cli\u003eLast write\/read timestamps\u003c\/li\u003e\n\u003cli\u003eWrite test to verify file system access\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThis is the fastest way to debug any communication issue. One click, full picture.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eHow It Works — Architecture\u003c\/h2\u003e\n\u003cpre\u003e\u003ccode\u003e┌─────────── TERMINAL A: SENDER ──────────────┐\n│  Account: 22032961                          │\n│  EA attached to one chart (any symbol)      │\n│                                             │\n│  OnTimer (250ms):                           │\n│    SnapshotMyTrades() ← scans ALL positions │\n│                        and pending orders   │\n│    WriteSenderState() ← writes CSV-like     │\n│                         snapshot to file    │\n│    WriteSenderPing()  ← heartbeat timestamp │\n│    ScanReceiverStatuses() ← dashboard data  │\n└─────────────────────────────────────────────┘\n                      │\n                      │ Common\\Files\\\n                      │ EKAI_TC_22032961.dat\n                      │ EKAI_TC_22032961_ping.dat\n                      │ EKAI_TC_PANIC_22032961.dat (if active)\n                      ▼\n┌─────────── TERMINAL B: RECEIVER ────────────┐\n│  Account: 24156622                          │\n│  EA attached to one chart (any symbol)      │\n│                                             │\n│  OnTimer (250ms):                           │\n│    CheckSenderHeartbeat() ← ping age check  │\n│    ReadSenderState() ← parse CSV, validate  │\n│    ProcessStateDiff() ← OPEN\/MODIFY\/CLOSE   │\n│      ShouldAllowCopy() ← 6 gates:           │\n│        Panic \/ PropGuardian \/ Session \/     │\n│        PropFirm \/ News \/ QualityScore       │\n│      ComputeLotSize + AdaptiveLot           │\n│      PreOpening SL Enforcer                 │\n│      ExecuteMarketOrder:                    │\n│        AdjustStopsForBroker                 │\n│        OrderSend, retry without SL if       │\n│          Invalid Stops                      │\n│        ApplyEmergencySLToPosition           │\n│      JournalAppend                          │\n│    UpdatePropFirmState (every 2s)           │\n│    CheckPropGuardianSync (every 2s)         │\n│    CheckPanicCommand (every 1s)             │\n│    CleanupStaleMappings (every 5s)          │\n│    WriteReceiverStatus (for dashboard)      │\n└─────────────────────────────────────────────┘\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003eFile-based architecture = no DLL, no network, no attack surface. The entire protocol is readable in a text editor if you want to inspect it manually.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eUse Cases\u003c\/h2\u003e\n\u003ch3\u003eThe Prop Firm Challenge Trader\u003c\/h3\u003e\n\u003cp\u003eYou're running a $100K FTMO challenge and want to copy your successful live strategy to it. Configure:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-ini\"\u003eInpMode = AUTO\nInpMasterAccount = \u0026lt;your live account\u0026gt;\nInpLotMode = BALANCE                    ; scale with account ratio\nInpPropFirmPreset = FTMO\nInpPropAccountSize = 100000\nInpEnableNewsGuard = true\nInpEnableSlEnforcer = true\nInpSlEnforceMode = ATR_MULT\nInpSlEnforceAtrMult = 2.0\nInpEnableQualityScore = true\nInpQualityMinScore = 60\nInpEnableAdaptiveLot = true\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003eThe EA will replicate your live trades scaled to challenge size, pause during news, reject low-quality setups, apply emergency SLs if you forget them, reduce lot size during volatility spikes, and \u003cstrong\u003eauto-pause copying when you're approaching the 5% daily loss limit\u003c\/strong\u003e. You get the real test of your strategy without the ever-present risk of blowing the challenge on a single mistake.\u003c\/p\u003e\n\u003ch3\u003eThe Signal Service Operator\u003c\/h3\u003e\n\u003cp\u003eYou charge subscribers for your signals and want to execute them simultaneously across your own account and theirs. Install EKAI Trade Copier Pro on your signal source as SENDER, send the installer with a one-page config guide to your subscribers who install as RECEIVER. Everyone trades together, nobody can front-run you (file-based copying has guaranteed order), and the Multi-Receiver Dashboard shows you exactly how many subscribers are actively receiving your signals in real time.\u003c\/p\u003e\n\u003ch3\u003eThe Multi-Account Manager\u003c\/h3\u003e\n\u003cp\u003eYou manage trades across your own account, your spouse's account, two retirement accounts, and three prop firm challenges. One master account (SENDER), six slave accounts (RECEIVER). Different lot sizing per account via multiple instances with different magic filters, or a single config scaled by balance ratio. Panic Mode gives you a one-click flattening of all seven accounts if you ever need to stop everything.\u003c\/p\u003e\n\u003ch3\u003eThe Strategy A\/B Tester\u003c\/h3\u003e\n\u003cp\u003eYou want to test the same strategy with and without a specific modification. Run two receiver accounts: one gets straight copies, one gets reversed copies (\u003ccode\u003eInpCopyReversal = true\u003c\/code\u003e). After 30 days, compare performance to validate whether the modification helps.\u003c\/p\u003e\n\u003ch3\u003eThe Latency-Sensitive Scalper\u003c\/h3\u003e\n\u003cp\u003eYou run a scalping EA on a VPS co-located near your broker, and want to mirror those trades to a slower retail PC without any network copying infrastructure. Install on both machines (which must be the same machine, i.e. the VPS where both terminals run). Enable \u003ccode\u003eInpVerboseLog = true\u003c\/code\u003e and check latencies in the Copy Journal CSV — typically 250-750ms, which is acceptable for any trade with a hold time \u0026gt; 1 minute.\u003c\/p\u003e\n\u003ch3\u003eThe Risk-Aware Portfolio Manager\u003c\/h3\u003e\n\u003cp\u003eYou trade several uncorrelated strategies across accounts and want the Trade Copier to be the second line of defense after your human judgment. Set \u003ccode\u003eInpSyncWithPropGuardian = true\u003c\/code\u003e so the copier respects Prop Guardian's severity signals. Set tight Trade Quality Score thresholds and session filters. Enable Volatility-Adaptive Lot. Get a copying infrastructure that fails safe when any one of your layers detects a problem.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eRequirements\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eMetaTrader 5\u003c\/strong\u003e build 3550 or newer\u003c\/li\u003e\n\u003cli\u003eMultiple MT5 installations on \u003cstrong\u003ethe same Windows machine or VPS\u003c\/strong\u003e (same \u003ccode\u003eCommon\\Files\u003c\/code\u003e directory)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTerminals must NOT be in portable mode\u003c\/strong\u003e, OR all must be in portable mode pointing at the same shared Common\\Files\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAutoTrading enabled\u003c\/strong\u003e in both sender and receiver terminals\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eOne account per terminal\u003c\/strong\u003e (standard MT5 behavior)\u003c\/li\u003e\n\u003cli\u003eNo specific broker required — works with any MT5 broker\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eNon-requirements (unlike some competitors):\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eNo DLL installation\u003c\/li\u003e\n\u003cli\u003eNo Windows firewall exceptions\u003c\/li\u003e\n\u003cli\u003eNo external software\u003c\/li\u003e\n\u003cli\u003eNo internet connection for the copier itself (news guard uses MT5's built-in calendar which syncs automatically)\u003c\/li\u003e\n\u003cli\u003eNo per-terminal configuration — one \u003ccode\u003e.set\u003c\/code\u003e file works everywhere\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003chr\u003e\n\u003ch2\u003eInstallation\u003c\/h2\u003e\n\u003ch3\u003eStep 1: Install EKAI Trade Copier Pro\u003c\/h3\u003e\n\u003col\u003e\n\u003cli\u003eDownload from the MQL5 Market\u003c\/li\u003e\n\u003cli\u003eOpen each MT5 terminal (one per account)\u003c\/li\u003e\n\u003cli\u003eAttach the EA to \u003cstrong\u003eone chart in each terminal\u003c\/strong\u003e (any symbol, any timeframe — the chart is just a container)\u003c\/li\u003e\n\u003cli\u003eEnable AutoTrading in each terminal (green button in toolbar)\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003ch3\u003eStep 2: Configure (one \u003ccode\u003e.set\u003c\/code\u003e file for all terminals)\u003c\/h3\u003e\n\u003cp\u003eDefault \u003ccode\u003e.set\u003c\/code\u003e with AUTO mode:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003eInpMode = AUTO\nInpMasterAccount = \u0026lt;your sender account number\u0026gt;\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003eThat's it. Attach the EA with this config in every terminal — the master becomes SENDER automatically, everyone else becomes RECEIVER automatically.\u003c\/p\u003e\n\u003cp\u003eOr if you prefer zero-config auto-discovery:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003eInpMode = AUTO\nInpMasterAccount = 0\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003eThe first terminal to attach the EA becomes SENDER. Every subsequent terminal that attaches becomes RECEIVER of whoever is live.\u003c\/p\u003e\n\u003ch3\u003eStep 3: Verify the connection\u003c\/h3\u003e\n\u003cp\u003eOn the SENDER panel: the \"Receivers\" section should show your receiver account numbers with green ALIVE status. On the RECEIVER panel: \u003ccode\u003eSender status: ALIVE\u003c\/code\u003e and \u003ccode\u003eSender: \u0026lt;sender account\u0026gt;\u003c\/code\u003e.\u003c\/p\u003e\n\u003cp\u003eClick the \u003cstrong\u003eDiagnose\u003c\/strong\u003e button on any terminal to dump a full connection report to the Journal. The \u003ccode\u003eCommon data path\u003c\/code\u003e must be identical across all terminals — if it's different, one of them is in portable mode and needs to be reconfigured.\u003c\/p\u003e\n\u003ch3\u003eStep 4: Test with a tiny trade\u003c\/h3\u003e\n\u003cp\u003eOpen a 0.01 lot BUY on EURUSD in the sender. Within 1 second it should appear on every receiver, scaled by your configured lot mode. Modify its SL in the sender — modification propagates. Close it in the sender — closes on every receiver.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eConfiguration Guide\u003c\/h2\u003e\n\u003ch3\u003eMinimal (every mode default)\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode class=\"language-ini\"\u003eInpMode = AUTO\nInpMasterAccount = \u0026lt;your sender account\u0026gt;\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003ch3\u003eProp firm challenge (recommended)\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode class=\"language-ini\"\u003eInpMode = AUTO\nInpMasterAccount = \u0026lt;your live\u0026gt;\nInpLotMode = BALANCE\nInpMaxLotSize = 5.0\nInpPropFirmPreset = FTMO             ; or FUNDEDNEXT \/ ALPHA \/ THE5ERS \/ FUNDINGPIPS\nInpPropAccountSize = 100000\nInpEnableNewsGuard = true\nInpNewsHighOnly = true\nInpEnableSlEnforcer = true\nInpSlEnforceMode = ATR_MULT\nInpSlEnforceAtrMult = 2.0\nInpEnableAdaptiveLot = true\nInpEnableQualityScore = true\nInpQualityMinScore = 60\nInpSyncWithPropGuardian = true\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003ch3\u003eSignal service to many subscribers\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode class=\"language-ini\"\u003eInpMode = AUTO\nInpMasterAccount = \u0026lt;your signal account\u0026gt;\nInpLotMode = MULTIPLIER\nInpLotMultiplier = 1.0\nInpCopyPending = true\nInpCopyStopLoss = true\nInpCopyTakeProfit = true\nInpEnableSlEnforcer = true           ; defense in depth\nInpSlEnforceMode = ATR_MULT\nInpSlEnforceAtrMult = 2.0\nInpEnableJournal = true              ; for subscriber audit\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003ch3\u003eReverse hedge account\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode class=\"language-ini\"\u003eInpMode = RECEIVER                   ; forced\nInpSenderAccount = \u0026lt;main account\u0026gt;\nInpLotMode = MULTIPLIER\nInpLotMultiplier = 0.5\nInpCopyReversal = true               ; flip direction + SL\/TP swap\nInpEnableSlEnforcer = true\nInpSlEnforceMode = ATR_MULT\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003ch3\u003eSession-restricted copy\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode class=\"language-ini\"\u003eInpMode = AUTO\nInpMasterAccount = \u0026lt;your sender\u0026gt;\nInpEnableSessionFilter = true\nInpSessionPreset = LON_NY            ; London\/NY overlap only\nInpSessionMonFri = true              ; weekdays only\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003chr\u003e\n\u003ch2\u003eFAQ\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Do I need multiple PCs or VPSs?\u003c\/strong\u003e No. All terminals run on the same machine (or VPS). They share Common\\Files automatically. If you want copying across physically separate machines, you need a remote-copy product, not a local copier (different architecture entirely).\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Does it work on MT4?\u003c\/strong\u003e No. MQL5-only. The MT4 architecture doesn't support \u003ccode\u003eTRADE_ACTION_SLTP\u003c\/code\u003e the same way or have the same calendar API. An MT4 port is on the roadmap but not committed.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Can one sender copy to 10 receivers?\u003c\/strong\u003e Yes. There's no limit in the code. Realistically, the file-based protocol is tested up to 20 receivers before file I\/O starts to become a bottleneck. More than that, consider upgrading to a dedicated signal distribution infrastructure.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Can one receiver copy from multiple senders?\u003c\/strong\u003e Partially. The current build supports one sender per receiver chart. For multiple senders, attach the EA on multiple charts in the same terminal with different \u003ccode\u003eInpSenderAccount\u003c\/code\u003e values. Each chart handles one sender.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: What's the latency?\u003c\/strong\u003e Typical: 250-750 milliseconds end to end. Floor is bounded by the receiver's 250ms poll interval. If you need sub-100ms copying (HFT scalping), file-based copiers aren't the right tool — but no other local copier in the Market is faster than this one, because they all use the same architecture.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Does it slow down MT5?\u003c\/strong\u003e No. The EA runs on a 250ms timer, not per-tick. CPU usage is negligible even with hundreds of positions. File I\/O is minimal (a few KB per 500ms on the sender).\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: How does it handle hedging vs netting accounts?\u003c\/strong\u003e Both are detected automatically via \u003ccode\u003eACCOUNT_MARGIN_MODE\u003c\/code\u003e. On hedging accounts, each sender position maps to a separate receiver position. On netting accounts, same-symbol trades consolidate automatically into one position per the netting rules.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: What if my broker rejects a trade I didn't configure for (margin, spread, invalid stops)?\u003c\/strong\u003e The retry backoff kicks in: 3 attempts with 10-second gaps, then permanent skip. If it's Invalid Stops specifically, the fallback opens without SL\/TP then applies the SL via \u003ccode\u003eTRADE_ACTION_SLTP\u003c\/code\u003e. In all cases, the error is logged and shown on the Panel's \u003ccode\u003eSkipped: N\u003c\/code\u003e counter.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Is the Common\\Files directory shared with other users on the same PC?\u003c\/strong\u003e No. It's inside your Windows user profile (\u003ccode\u003eC:\\Users\\\u0026lt;you\u0026gt;\\AppData\\Roaming\\MetaQuotes\\Terminal\\Common\\Files\\\u003c\/code\u003e). Only EAs running under your user account can read or write there.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Can I use it alongside EKAI Prop Guardian Pro?\u003c\/strong\u003e Yes, that's actually the recommended setup for prop firm trading. Set \u003ccode\u003eInpSyncWithPropGuardian = true\u003c\/code\u003e and the Trade Copier reads Guardian's severity level in real time. If you don't own Prop Guardian, this input does nothing.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: What happens during weekend\/market close?\u003c\/strong\u003e Pending orders queue normally. Market orders are rejected by the broker (not by the copier). The copier logs the rejection and retries once more if the market reopens before the retry window expires.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Does the Copy Journal persist across restarts?\u003c\/strong\u003e The in-memory journal is cleared on EA restart. For permanent audit, export to CSV before you detach the EA. The journal auto-truncates to the last \u003ccode\u003eInpJournalMaxEntries\u003c\/code\u003e (default 500) entries to avoid memory bloat.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Can I use it on a free MQL5 Market demo?\u003c\/strong\u003e The 5000-tick demo mode works for structural testing (verify auto-discovery, verify panel renders, verify dashboard counts). For real workflow testing you need to run it live on at least 2 real MT5 instances.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Why isn't my second terminal detecting the sender?\u003c\/strong\u003e 99% of the time: your terminals are in different Common\\Files directories because one is in portable mode. Click Diagnose on both terminals and compare the \u003ccode\u003eCommon data path\u003c\/code\u003e lines. They must be identical. If they're not, remove the \u003ccode\u003e\/portable\u003c\/code\u003e flag from the problem terminal's shortcut.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: What's the price going to be after launch?\u003c\/strong\u003e Launch price: $69 (for the first 30 buyers). Post-launch: $89. Rent option: $20\/month. Updates are free for existing owners.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eTroubleshooting\u003c\/h2\u003e\n\u003ch3\u003e\"Auto-discovery: no sender ping files\" and I have the sender running\u003c\/h3\u003e\n\u003cp\u003eCommon data path mismatch. Click Diagnose on both terminals. The \u003ccode\u003eCommon data path\u003c\/code\u003e must be identical. If not, remove \u003ccode\u003e\/portable\u003c\/code\u003e from the terminal shortcut and reinstall.\u003c\/p\u003e\n\u003ch3\u003e\"Sender status: OFFLINE\" on receiver\u003c\/h3\u003e\n\u003cp\u003eSender's heartbeat is older than 10 seconds. Either the sender terminal is frozen, AutoTrading is off on sender, or the file path is wrong. Click Diagnose on the sender to verify it's writing files.\u003c\/p\u003e\n\u003ch3\u003e\"Invalid stops\" errors on crypto \/ exotic symbols\u003c\/h3\u003e\n\u003cp\u003eNormal for brokers with aggressive STOPS_LEVEL. The EA auto-retries without SL, then applies the SL post-opening. If you see \u003ccode\u003eWARNING: position XXX opened WITHOUT SL\u003c\/code\u003e, the broker rejected all 4 SL distances. Switch \u003ccode\u003eInpSlEnforceMode = BALANCE_PCT\u003c\/code\u003e with \u003ccode\u003eInpSlEnforceBalPct = 2.0\u003c\/code\u003e for larger emergency SL distances.\u003c\/p\u003e\n\u003ch3\u003e\"Panic Mode active - all copies blocked\" and I didn't press Panic\u003c\/h3\u003e\n\u003cp\u003eYou pressed Panic earlier and didn't resume. Click the red \"PANIC ACTIVE\" button to resume. Or, if it's a receiver and the sender is unreachable, the panic command file might be stale — detach and reattach the EA on both terminals.\u003c\/p\u003e\n\u003ch3\u003eReceiver has fewer copies than Sender\u003c\/h3\u003e\n\u003cp\u003eCheck the Journal for SKIP entries. Common causes: symbol not found (add to \u003ccode\u003eInpSymbolMappings\u003c\/code\u003e), news blackout active, quality score below threshold, session filter closed, prop firm severity in DANGER\/CRITICAL. The Diagnose output explains the gate decisions.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eVersion History\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003ev1.00 (initial release)\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eSee the separate Release Notes document for the complete feature list.\u003c\/p\u003e\n\u003cp\u003eCore engine:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eDual mode SENDER \/ RECEIVER \/ AUTO with auto-discovery\u003c\/li\u003e\n\u003cli\u003eFile-based local communication in Common\\Files\u003c\/li\u003e\n\u003cli\u003eMulti-sender, multi-receiver support\u003c\/li\u003e\n\u003cli\u003eReal-time replication of market and pending orders\u003c\/li\u003e\n\u003cli\u003eSL \/ TP synchronization in real time\u003c\/li\u003e\n\u003cli\u003e4 lot management modes (FIXED, MULTIPLIER, BALANCE, RISK_PCT)\u003c\/li\u003e\n\u003cli\u003eMax lot cap\u003c\/li\u003e\n\u003cli\u003eReverse copy with SL\/TP swap\u003c\/li\u003e\n\u003cli\u003eAutomatic symbol mapping with 5-tier resolution\u003c\/li\u003e\n\u003cli\u003eHedging and netting auto-detection\u003c\/li\u003e\n\u003cli\u003eTrade filters: direction, max spread, magic number\u003c\/li\u003e\n\u003cli\u003eRetry backoff (3 attempts, 10s gap) with throttled logging\u003c\/li\u003e\n\u003cli\u003eGrace period for failed ticket cleanup (30s)\u003c\/li\u003e\n\u003cli\u003eBroker rules validation (STOPS_LEVEL + FREEZE_LEVEL + TICK_SIZE)\u003c\/li\u003e\n\u003cli\u003eRetry without stops + post-opening SL application via TRADE_ACTION_SLTP\u003c\/li\u003e\n\u003cli\u003eGarbage collector for orphan mappings\u003c\/li\u003e\n\u003cli\u003eFull state persistence per chart\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eDifferentiators:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eNews-Aware Copy Guard (MT5 Economic Calendar integration)\u003c\/li\u003e\n\u003cli\u003eTrade Quality Score (0-100, four dimensions)\u003c\/li\u003e\n\u003cli\u003eSL Enforcer (3 modes: FIXED_PIPS, ATR_MULT, BALANCE_PCT)\u003c\/li\u003e\n\u003cli\u003eVolatility-Adaptive Lot Sizing\u003c\/li\u003e\n\u003cli\u003eProp Firm Presets (FTMO, FundedNext, Alpha, The5ers, FundingPips, Custom)\u003c\/li\u003e\n\u003cli\u003eProp Guardian Pro Synergy\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eUX + Advanced:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMulti-Receiver Dashboard on sender panel\u003c\/li\u003e\n\u003cli\u003eCopy Journal with CSV export\u003c\/li\u003e\n\u003cli\u003eEmergency Stop-All (Panic Mode) with two-click confirmation\u003c\/li\u003e\n\u003cli\u003eAdvanced Session Filter (6 presets, UTC-aware)\u003c\/li\u003e\n\u003cli\u003eDraggable panel with persistence\u003c\/li\u003e\n\u003cli\u003eDiagnostic button for troubleshooting\u003c\/li\u003e\n\u003cli\u003eExternal toggle button [x] TCP always visible\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003chr\u003e\n\u003cp\u003e\u003cstrong\u003eEKAITRADING \/ TSDCCORP\u003c\/strong\u003e Built by traders, for traders.\u003c\/p\u003e\n\u003cp\u003e🌐 https:\/\/www.mql5.com\/en\/users\/YOUR_PROFILE\u003c\/p\u003e","brand":"EKAITRADING","offers":[{"title":"Default Title","offer_id":67901823189298,"sku":null,"price":40.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0992\/3493\/9186\/files\/ChatGPT_Image_Oct_1_2026_02_22_53_PM.png?v=1790997510","url":"https:\/\/ekaitrading.com\/en\/products\/ekai-tradecopier-pro","provider":"EKAITRADING","version":"1.0","type":"link"}