SignalProcessor EA configuration

Here you can find information about SignalProcessor EA. Please see contents below:

General information

SignalProcessor EA is responsible for processing signals on the Receiver terminal. Signals are received from the SignalProvider EA which is running on the Source terminal(s).

Important: you need to have only one SignalProcessor EA on the Receiver terminal. Anyway it will process all trades from all currency pairs.

Installation

If you prefer automatic installation (recommended) then SignalProcessor EA will be attached to the chart and configured automatically.
If you prefer manual installation and attach SignalProcessor EA to the chart manually then please make sure that in EA settings window:

  • Allow DLL imports box is checked
  • Confirm DLL function calls box is unchecked
  • Allow live trading box is checked

See the screenshot below:

SignalProcessor settings window

After the installation we recommend to save the default settings (click Save button on the “Inputs” tab). It is a useful action in case you close the chart accidentally, then you will be able to restore the settings from the saved file.

It is important to enable EA execution in the terminal:

EA execution

Configuration

Please see the description of SignalProcessor’s settings below:

  • PriceDifferencePips – defines max price difference between the Source’s order Execution price and Receiver terminal market price. Price difference should be entered in points (1 point = 0.0001 for non – JPY pairs, and 0.01 – for JPY ones).
    In other words the position will be opened if the price difference between signal price and current price (defined in points) is no more than selected. In other case the signal will not be processed and you will see “Sorry, but price is too far from requested entry point” message in EA logs.
    Example:
    The Source terminal opened EUR/USD order at 1.3645, the current price on the Receiver terminal is 1.3656 and PriceDifferencePips = 10.
    In this case the difference between the Signal Provider's and the Signal Processor's prices will be: [1.3645 - 1.3656] = 0.0011 = 11 pips which is bigger than PriceDifferencePips, so the order will NOT be opened.

  • Slippage – is used when the signal is sent to the MetaTrader server. Slippage defines maximum difference between the price which sent to the MetaTrader sever and actual execution price. If slippage is too small then Copier will have to try opening orders many times. If slippage is too big then orders on Source and Receiver accounts can be opened with big price difference. Slippage is defined in pips, 1 pip = 0.0001 for non-JPY pairs and 0.01 for JPY pairs.

  • ExpirationMinutes defines max time difference between provider’s order timestamp and processor’s current time in minutes; if this difference is more than the given value, then the order will not be copied.

  • BoostMode If this parameter = true (default) then the EA does not have to wait for a new tick to work. If it is set to false then the software works as usual MT4 EA and checks for changes on every tick (price change in the terminal). This can cause long delays if the price changes rarely, but this is how the experts should work in MetaTrader.
    Note: If BoostMode=true then you will need to stop experts to open EA properties.

  • NumberOfTries – a number of consecutive tries to execute the trading signal. Sometimes you can get requote or server does not respond. Then the expert will try to execute the trading signal defined number of times.

  • AutoAdjustLotSizeBasedOnBalance – if this parameter = true then lot size will be calculated by this formula:
    Receiver account lot size = Source account lot size * Receiver account balance / Source account balance
    Note:
    If Source and Receiver accounts have different base currencies then Copier will convert both balances into USD so they will be compared correctly.

  • LotMultiplier - lot that signal provider opened on his account will be multiplied on this value. It allows you to decrease or increase resulting lot to suit your requirements to your account.
    Example 1: Signal provider trades on $1000 account, your account is $50000, if you copy signal provider's trades as is you will get too small profit (loss). So you can set multiplier 50, and when signal provider opened position with lot 0.1 you will get position with lot 5.
    Example 2: Signal provider trader on account $100000, your account is $20000. It will be dangerous to your account to open the same lot, sometimes it will be impossible. So you can set multiplier 0.2 and when signal provider opened position with lot = 10 you will get position with lot = 2. If resulting lot is smaller then minimum lot in your MetaTrader then it will be used minimum lot.

  • UseFixedLot – If this setting is “true” then Provider’s lot size will be ignored and the lot size for each order on processor side will be set according to LotSize property (see below).

  • LotSize – defines the fixed lot size that will be used in every trade. This parameter works only when UseFixedLot = “true”.

  • WaitForOpenPrice – if this setting is enabled and Open price of new market order which comes from Source account differs from the current execution price on this Receiver account for more than PriceDifferencePips pips then Copier will not open such order instantly but will wait for better price.

  • WaitForClosePrice – if this parameter is "true" and close price on Receiver account differs from current price on this Receiver account then Copier will wait for better Close price.

  • MaxLosesInPipsWhileWaitForClose – if this option's value is more than 0 then Copier will close that orders which are waiting for better Close price (see WaitForClosePrice setting) which have the loss in pips bigger than the value of this property.

  • ReverseMode – if you want Copier to reverse provider’s trades, then you should put “true” into this parameter. In this case Copier will place orders with type opposite to Provider's order type:
    • BUY order will be copied as SELL
    • SELL order will be copied as BUY
    • SELL Stop order will be copied as BUY Limit
    • SELL Limit order will be copied as BUY Stop
    • BUY Stop order will be copied as SELL Limit
    • BUY Limit order will be copied as SELL Stop

    Note: Reverse Mode will not work in Demo Mode.

  • Reverse_SL_TP_InReverseMode – if both Reverse_SL_TP_InReverseMode = “true” and ReverseMode = “true”, then Receiver’s StopLoss will be equal to Source’s TakeProfit and vice versa – Receiver’s TakeProfit will be equal to Source’s StopLoss.

  • UseSpreadsInReverseMode – if the parameter = “true”, then in ReverseMode the Pending orders’ entry price will be adjusted according to the Processor’s spread value. See the table below to get more information:
    Provider Processor (Reverse Mode)
    Buy Limit Sell Stop - Spread
    Sell Limit Buy Stop + Spread
    Buy Stop Sell Limit - Spread
    Sell Stop Buy Limit + Spread

  • ProcessPendingBuy(Sell)Execution - allows the processing of Pending Orders executions received from the SignalProvider EA. Set this parameter to “true” only in case you have the CopyPendingOrders = “false” on the SignalProvider EA. After that pending orders will not be copied to the receiver terminal but pending orders executions will be copied as Market orders.

  • StopLossPips defines the fixed Stop Loss value for every copied order, the value should be determined in pips (1 pip = 0.0001 for non - JPY pairs, and 0.01 for JPY- pairs). If this value is not 0 then Provider’s Stop Loss level will be ignored and replaced with the fixed level. If this parameter is 0 then provider’s Stop Loss will be taken.

  • TakeProfitPips defines the fixed Take Profit value for every copied order, the value should be determined in pips (1 pip = 0.0001 for non - JPY pairs, and 0.01 for JPY- pairs). If this value is not 0 then Provider’s Take Profit level will be ignored and replaced with the fixed level. If this parameter is 0 then provider’s Take Profit will be taken.

  • CopyExactCommentsFromMaster - if this parameter = true then the comment of copied order on Receiver account will be equal to the comment of the original order on Source account. By default (when CopyExactCommentsFromMaster = false), Copier puts original order ticket into copied order comment.

  • ReplaceCommentWith - if this parameter isn't empty then the comment of copied order will be replaced with value in this parameter.

  • AllowedComments allows filtering orders according to their comments. Comments should be separated by semicolon, for instance:
    comment 1; comment 2; comment 3

  • AllowedSymbols allows filtering orders by symbol name. If this parameter is empty then the program will process orders for all pairs. If this parameter is not empty then only specified pairs will be processed. Symbols should be separated by semicolon, for instance:
    EURUSD;EURGBP;USDJPY;
    In this case only orders with these symbols will be copied to the Receiver account. Orders with other symbols will be ignored.

  • RiskPercentage – is designed for risk management. If you set some value here then the lot size of each copied order will be adjusted and this order will risk no more than selected % of your account in case the Stop Loss is hit.
    Note that the original order should have the Stop Loss level.

  • SystemSpecificRiskPercentages – allows you to manage risk for some specific orders. Orders will be determined by the comments.
    Risk percentages should be written in the following format:
    <comment 1>:<risk percentage 1>;<comment 2>:<risk percentage 2>
    Example: You want orders which have “RiskySomething” comment on Provider side to risk only 1% of equity if the trade closes by Stop Loss. And all orders which have “SafeSomething” comment on Provider side to risk 5% of equity
    So you need to put “RiskySomething:1;RiskySomething:5” into RiskPercentages property.
    Copier EA will copy the original trade but modify the size of position according to the percentage risk. Risk management will be applied only to the orders with certain comments.
     Pay attention to that you should not put '%' sign in percentage field, for example:
    comment1:2; comment2:3.5; comment3:4
    In this case if the Signal Processor EA receives an order with "comment2" in the comment then it will adjust its LotSize according to risk 3.5% of the receiver account size. And in case the StopLoss is hit you will lose 3.5% of the whole account size.
    Note that the original order should have the Stop Loss level.

  • SystemSpecificLotMultiplier – allows you to manage lot multiplier for some specific orders. Orders will be determined by the comments.
    Lot multipliers should be written in the following format:
    <comment 1>:<lot multiplier 1>;<comment 2>:<lot multiplier 2>
    Example: You want orders which have “Large Lot” comment on Provider side to set smaller lot size. And all orders which have “Small Lot” comment on Provider side to set bigger lot size.
    So you need to put “LargeLot:0.1;SmallLot:5” ” into SystemSpecificLotMultiplier property.
    Copier EA will copy the original trade but modify the size of position according to the LotMultiplier. Specific lot multiplier will be applied only to the orders with certain comments.

  • Ignore_SL_TP_ForMarketOrders If this setting is set to “true” then StopLoss and TakeProfit levels are ignored for market orders so each new market order will be opened with StopLoss=0 and TakeProfit=0 on the Receiver account.

  • MaxNumberOfOrders - Defines the maximum number of orders allowed on the Receiver terminal, if the number of orders on this terminal is more or equal to this parameter then all new tasks from the Provider will be ignored.
    So for example:
    • You set MaxNumberOfOrders = 5.
    • Currently there are 2 BUY orders and 2 BUY STOP orders on Receiver terminal.
    • After that you get the new task from the Provider (let's say SELL order). This order will be processed.
    • So you'll have 2 BUY + 1 SELL + 2 BUY STOP = 5 tasks in total.
    • After that you get another task from the Provider (let's say SELL LIMIT order) this task will NOT be processed because the total number of orders on the Receiver terminal is 5 so the task will be ignored.

  • MaxNumberOfOrdersPerSymbol - Defines the maximum number of orders allowed for one Symbol on the Receiver terminal, if the number of orders on this terminal for this Symbol is more or equal to this parameter then all new tasks from the Provider will be ignored.
    So for example:
    • You set MaxNumberOfOrdersPerSymbol = 2.
    • Currently there are 2 BUY EURUSD orders and 2 BUY STOP GBPUSD orders on Receiver terminal.
    • After that you get the new task from the Provider (let's say SELL USDJPY order). This order will be processed, so you'll have 2 EURUSD orders + 2 GBPUSD orders + 1 USDJPY order.
    • After that you get another task from the Provider (let's say BUY STOP EURUSD order) this task will NOT be processed because the total number of orders for EURUSD = 2.

  • AddSymbolPrefix - If your broker has some Prefix in currency pair name (like “aEURUSD”) then you need to enter this prefix (“a” in example) into this setting.

  • AddSymbolSuffix- If your broker has some Suffix in currency pair name (like “EURUSDfx”) then you need to enter this suffix (“fx” in example) into this setting.

  • AllowAutoAdjustingSymbolName – if this setting is enabled (set to "true") then you will allow the Copier to adjust the currency pair names automatically. Note, that AddSymbolPrefix and AddSymbolSuffix fields should be empty in this case. For example, if source and receiver accounts brokers have differences in currency pair suffixes then Copier will adjust currency pairs names automatically (like “EURUSD”->”EURUSDfx”,
    “EURUSD.”->”EURUSD” or “EURUSDfxf”->”EURUSDa”, etc.).

  • OpenOrderSound –defines the sound to be played when the new market order is opened (for example, OpenSnd.wav). Sound files should be placed to "<MetaTrader>\Sounds\" folder. Sound files should have *.wav format.

  • CloseOrderSound – defines the sound to be played when some order is closed. Sound files should be placed to "<MetaTrader>\Sounds\" folder. Sound files should have *.wav format.

  • OpenPendingOrderSound – defines the sound to be played when the new pending order is placed. Sound files should be placed to "<MetaTrader>\Sounds\" folder. Sound files should have *.wav format.

  • ModifyOrderSound – defines the sound to be played when some order is modified. Sound files should be placed to "<MetaTrader>\Sounds\" folder. Sound files should have *.wav format.

  • StopTradingWhenEquityIsLessThan – When this option is enabled Copier will stop processing "Open order" signals from Source terminal in case when Equity level of this Receiver account is less than some value.
    "0.0" value disables this option.

  • StopTradingOnDrawdownPercent – When this option is enabled Copier will stop processing "Open order" signals from Source terminal in case when Drawdown percent of this Receiver account is less than some value.
    Drawdown is calculated as the difference between current Equity and maximum historical Equity in percentage.
    "0.0" value disables this option.

  • CloseAllPositionsOnStopTrading – if this opetion is enabled then Copier will close all orders on this Receiver account when the trading is stopped due to low Equity level or too big Drawdown level (see StopTradingWhenEquityIsLessThan and StopTradingOnDrawdownPercent options).
    In other case (when CloseAllPositionsOnStopTrading=false) Copier will leave the orders alive until they are closed by SL/TP levels.

  • AddPipsToSLTP – If this parameter is "true" then StopLoss and TakeProfit levels of the order will be shifted on Receiver account if the execution price on Receiver account differs from the execution price on Source account.
    For example:
    • Source account sends Buy order with execution price at 1.0000, SL at 0.9900, TP at 1.0010.
    • Current price on Receiver account is 1.0005, so the execution price on Source account differs from execution price on Receiver account for 5 pips and the order will be executed at 1.0005.
    • In this case if AddPipsToSLTP = "true" then Forex Copier will set SL = 0.9900 + 5pips = 0.9905 and TP = 1.0010 + 5pips = 1.0015
  • TopExecutionPriceBorderLong – with the help of this setting you can set the top border of the range within which the order on Receiver account should be opened. The range is pip-based and is calculated based on the Source order entry price. This setting is valid only for long orders (Buy, Buy Stop, Buy Limit). For example you want each Buy order on Receiver account to be opened 5 or 6 pips above the execution price of the order on Source account. In this case you should set TopExecutionPriceBorderLong=6 and BottomExecutionPriceBorderLong=5.

  • BottomExecutionPriceBorderLong – with the help of this setting you can set the bottom border of the range within which the order on Receiver account should be opened. The range is pip-based and is calculated based on the Source order entry price. This setting is valid only for long orders (Buy, Buy Stop, Buy Limit). For example you want each Buy order on Receiver account to be opened 5 or 6 pips above the execution price of the order on Source account. In this case you should set TopExecutionPriceBorderLong=6 and BottomExecutionPriceBorderLong=5.

  • TopExecutionPriceBorderShort – with the help of this setting you can set the top border of the range within which the order on Receiver account should be opened. The range is pip-based and is calculated based on the Source order entry price. This setting is valid only for short orders (Sell, Sell Stop, Sell Limit). For example you want each Sell order on Receiver account to be opened 5 or 6 pips above the execution price of the order on Source account. In this case you should set TopExecutionPriceBorderShort=6 and BottomExecutionPriceBorderShort=5.

  • BottomExecutionPriceBorderShort – with the help of this setting you can set the bottom border of the range within which the order on Receiver account should be opened. The range is pip-based and is calculated based on the Source order entry price. This setting is valid only for short orders (Sell, Sell Stop, Sell Limit). For example you want each Sell order on Receiver account to be opened 5 or 6 pips above the execution price of the order on Source account. In this case you should set TopExecutionPriceBorderShort=6 and BottomExecutionPriceBorderShort=5.

  • EnableExecutionPriceBorders – if this setting is enabled (set to "true") then you will be able to set borders within which the order will be opened on the receiver account. For example you want each Buy order on Receiver account to be opened 5 or 6 pips above the execution price of the order on Source account.
    Borders are set with the help of the following parameters and these parameters will not take effect when EnableExecutionPriceBorders is set to "false":
    • TopExecutionPriceBorderLong
    • BottomExecutionPriceBorderLong
    • TopExecutionPriceBorderShort
    • BottomExecutionPriceBorderShort

  • DontCloseLosingBuy – If this parameter is set to "true" then Copier will not process "Close order" commands from the Source account for Buy orders with negative profit value.

  • DontCloseLosingSell – If this parameter is set to "true" then Copier will not process "Close order" commands from the Source account for Sell orders with negative profit value.

  • SetBreakEvenForNonClosed – If this parameter is set to "true" then Copier will move Stop Loss to Break Even for the orders which were not closed due to DontCloseLosingBuy or DontCloseLosingSell rules after the Source account closed original orders.

  • SkipLotsLessThan – receiver account will not open orders if lot size of order on source account is less than the number in this option.

  • ShowInfoLabels – if this parameter is "true" then Copier will show the information labels in the left-top corner of the chart.

  • ShowAdvancedLogs – if this parameter is "true" then Copier will write more information into log files, this parameter is used for debug purposes.

  • RegKey – Registration key, without this key Copier will work in Demo Mode.