Updating the partial closing function for symbols with different Lot Step
Перекомпиляция в последнем билде терминала.
Modification of the OIP_Order_Instead_Position function when using ReverseCopy = true;
Added an additional check for the number of positions in a series when using the NumberPosbeforeCopy parameter;
Fixed the error of partial execution of the limit and closing of the minimum lot in case of partial execution of a limit order on the side of the Master
EAPADPRO v40 update, according to the new rules for using the MQL5 Market
Информация перед закрытием сделки выведена в журнал с помощью Print для отслеживания действия советника.
Optimized code for faster copying.
Обновление функции частичного закрытия.
-Improved stability and performance of the program.
EAPADPRO v39 Update
Updating information on the chart when redrawing data has been improved.
The table of deals is updated along with the panel update (The data update time is still configurable in the panel settings!)
MessageBox is replaced with Alert in case of an error in installing an EA for 2 charts in a row!
Attention! For the program to work, you need to install the Copylot Client EA on 1 chart!
It is forbidden to install Copylot Client on 2 charts or more!
Added MessageBox when starting the copier on 2 charts at the same time!
Optimization of the code;
- Master: Modification of the "MODIFY ONLY" function, Prohibition of checking the opening of a position if the "MODIFY ONLY" button is pressed on the master.
- Client: Added new parameter
- AdditionalLot: An additional lot that will be added to the main lot.
Allows you to increase or decrease the lot.
Note: You can set both +0.01 values and -0.01 values.
Note: You can use this parameter together with KoefLot, RiskLot.
Master lot = 1, AdditionalLot = 0.01, Client lot = 1.01;
Master lot = 1, AdditionalLot = -0.01, Client lot = 0.99;
- Client: When using OIP_Order_Instead_Position and ReverseCopy, the type of pending orders will also be reversed: Buy> SELLSTOP / SELLLIMIT, Sell> BUYSTOP / BUYLIMIT
Added SessionTradeCheck parameter:
Checking trading sessions of the copied symbol before sending a request to the server!
The Expert Advisor checks whether it is possible to trade on this symbol at the current time and trading session.
If it is currently prohibited to trade on the symbol being copied, COPYLOT will not send a request to the server.
Attention! Some brokers may have multiple trading sessions!
If you find that the EA does not copy the Traded Symbol and writes the No Session Time error, you can disable this function!
Modified function of Trading sessions
- Copylot Client, Checking the possibility of opening positions in trading sessions of some brokers.
- Fixed a bug when working with the SymbolToCopy and SymbolNOtToCopy parameters in COPYLOT CLIENT simultaneously on several charts.
- For the convenience of filling in the SymbolToCopy and SymbolNOtToCopy parameters in COPYLOT MASTER, restrictions on the strict case of letters (Small and Large) have been removed.
Now these parameters can be specified in any form, for example: EURUSD, eurusd, EURusd ......
ProfitCopyOnly and LossCopyOnly can now work together.
Attention! 2 functions can work at the same time!
Those deals are copied that have fulfilled 1 of 2 conditions (Profitable / Unprofitable)
МТ4 Client: Исправлена сошибка модификации Стоплосс/Тейкпрофита позиций после Частичного закрытия этой позиции.
Added CNH currency (Chinese Yuan) to Auto Suffix Detection (PreFixSymbol)
-- PreFixSymbol function updated for some Symbols.
-- Added function Delay_Seconds_General - Delay in seconds between all adviser requests to the server.
In other words: Each request to the server (opening, closing, modification) will be executed with a delay between each other.
For brokers who are forbidden too frequent requests to the server (a very rare event).
If Delay_Seconds_General = 0, then this function does not work.
Attention! For advanced users only.
Recently, some brokers lose their connection with the server and a general terminal error occurs!
Therefore, the adviser cannot copy the position!
Therefore, I added the output of the error message to the screen:
Alert ("Error number 2 [Common error] was detected in your terminal, Please restart your terminal!");
Alert ("Error number 2 [Common error] has been detected in your terminal. Please restart your terminal!");
Added block Clients extra Delays delay control when copying positions from the master account!
This unit sets the delay between the opening positions in seconds/points!
Delay_Seconds_ALL = 0; - Delay in seconds between the opening position, take into account all positions (Currency and the direction is not taken into account). 0 - disabled.
Delay_Seconds_Symbols = 0; - Delay in seconds between the open position of one currency is accounted for position 1 Currency (the direction is not taken into account). 0 - disabled.
Delay_Seconds_Type = 0; - Delay in seconds between the open position of one currency and every BUY / SELL positions, position 1 is taken into account currencies. 0 - disabled.
Delay_Points_Symbols= 0; - Delay in points between the open position of one currency is accounted for position 1 Currency (the direction is not taken into account). 0 - disabled.
Delay_Points_Type = 0; - Delay in points between the open position of one currency and every BUY / SELL positions, position 1 is taken into account currencies. 0 - disabled.
Warning: Delay in points can be equal to or greater than the opening price of the previous positions! The value in points - This is the minimum value of the distance from the nearest positions!
Warning: Delay in points is calculated on both sides of the opening price of the position!
Delay_Seconds_Type = 10; Delay opening of positions 1 and symbol in different directions 10 seconds!
Copylot Master EURUSD SELL 0.1 10:01:10 (opening time) Copylot Client EURUSD SELL 0.1 10:01:10 (opening time)
Copylot Master EURUSD SELL 0.1 10:01:11 (opening time) Copylot Client EURUSD SELL 0.1 10:01 20 (opening time)
Copylot Master EURUSD BUY 0.1 10:01:12 (opening time) Copylot Client EURUSD BUY 0.1 10:01:12 (opening time)
Copylot Master EURUSD BUY 0.1 10:01:14 (opening time) Copylot ClientEURUSD BUY 0.1 10:01:22 (opening time)
Copylot Master USDJPY SELL 0.1 10:01:15 (opening time) Copylot Client USDJPY SELL 0.1 10:01:15 (opening time)
Delay_Points_Type = 10; Delay opening of positions 1 and symbol in different directions 10 points!
Copylot Master EURUSD SELL 0.1 1.10800 (opening price) Copylot Client EURUSD SELL 0.1 1.10800 (opening price)
Copylot Master EURUSD SELL 0.1 1.10801 (opening price) Copylot Client EURUSD SELL 0.1 1.10810 (opening price)
Copylot Master EURUSD BUY 0.1 1.10810 (opening price) Copylot Client EURUSD BUY 0.1 1.10810 (opening price)
Copylot Master EURUSD BUY 0.1 1.10808 (opening price) Copylot Client EURUSD BUY 0.1 1.10820 (opening price)
Copylot Master USDJPY SELL 0.1 109.500 (opening price) Copylot Client USDJPY SELL 0.1 109.500 (opening price)
Updating Modifications My_STOPLOSS My_TAKEPROFIT when working with the ReverseCopy function
When you set your parameter values My_STOPLOSS My_TAKEPROFIT, these parameters will modify the positions as they are:
My_STOPLOSS applies to stop loss. (Regardless of the function of the ReverseSLTP function)
My_TAKEPROFIT applied to take profit. (Regardless of the function of the ReverseSLTP function)
Fixed ChangingNamesSymbols error when copying with Symbol replacement and direct Symbol copying:
e.g. with ChangingNamesSymbols = "US30 = GER30;"
When you open positions on the US30 master, GER30 will be copied to the client;
When you open positions on the GER30 master, GER30 will be copied to the client;
TPWCM_TrailinAnyLossorProfit - Allows you to enable trailing stop for any profit or loss.
After closing positions on the MASTER, the general trailing stop function for positions on the client terminal will be enabled.
Copylot Client MT4
Add parameters of the number of attempts to close and open positions:
NumberTryClose - The number of attempts to close position.
NumberTryOpen - The number of attempts to open position.
When an error is received from the server, the adviser tries to open / close the set number of times.
It is necessary with frequent requotes.
Added LimitingTryToClose parameter - the number of attempts to close positions after the limit command.
Fixed normalization of the lot on symbols with a step of 0.5
Компиляция эксперта в последнем билде терминала МТ4
When using TrailingStopUSE or BreakEven, the condition for modifying stop loss and take profit has been changed:
1. If Trailingstop or breakeven has not yet been activated (the position has no profit), then the stop loss and take profit from the master account are copied.!
2. If Trailingstop or Breakeven has already been activated and the stop loss of the position has been modified to a profitable zone, then copying the stop loss and take profit of this position is disabled and the COPYLOT continues the Trailing stop operation.
Fixed calculation of LimitType.
Fixed ReverseCopy work when used with MY_TakeProfit or MY_STOPLOSS
Fixed update graphics panel.
- EAPADPRO v26
- CLIENT MT4 Added an additional check on global variables, if an object with information on an open position has been removed from the chart!
Attention! Do not install additional indicators on the chart where the copier is installed.
Attention! Check your other advisors so that they do not delete other charts and global variables.
- MASTER MT4 If the position on the master was closed after partial closing, while the client terminal was turned off, it will be closed on the CLIENT.
Maximum number of pending orders per symbol to be copied. 0 - unlimited.
For example: You want the client to copy only 2 orders for 1 currency pair of 10 open orders on the master.
Then, when setting the parameter to 2, only the first two pending orders of each pair will be copied from the master.
Serves to reduce the load on the deposit. If the order is activated or deleted, then the next order is copied from the master.
- Update EAPADPRO v25;
- Additional languages added to the panel: Spanish, Portuguese (Brazil), German, Chinese, Japanese;
The translation was made using the GOOGLE Translator + MQL + Terminal site!
if you find an error in your language, please report it in messages. Thank!
- Increase the speed of the panel;
Отображение фильтра LotMin в таблице сделок исправлено.
ReBuild EAPADPRO 2018
Обновление EAPADPRO до версии 23
Update Trailing stop = false for default
Added EAPADPRO v21 panel
Added hints in external variables.
Error calculating lot on accounts with a deposit in JPY
Copylot Update EAPADPRO v 20
Global update 2018
The algorithm is optimized to increase the speed of copying positions.
The function of copying risk from the master to the client is added:
copy formula: lottoclient = (AccountBalance () / BalanceFromMaster) * lotfrommaster * LotExp;
Added the ability to copy the Position Comment from the Copylot MASTER. Attention: In this mode, Global variables will be used! Check that your
Expert Advisors or indicators do not delete global variables.
Added EAPADPRO 2.0 panel
The copyist's GUI has been completely replaced, a EAPADPRO panel has been added with information on the settings, current copy value (account
number, master balance, number of open / closed Master / Client positions), current profits and lots of open positions, StopLoss and TakeProfit
goals, client balance status .
The table of the copied positions from the master is added.
Warning: The data in the table is updated 10 seconds by default to improve the copy speed (you can change the update time in the panel settings)
Added copy control buttons:
StopTrading - stop copying and the work of the Expert Advisor completely!
ModifyOnly - Allow the Expert Advisor to modify and delete items, without the possibility of copying / opening new positions
The function of partial close from the COPYLOT MASTER is completely changed. Now the function works with a different type of lot setting (Direct
lot from the master, Lot factor, autolot, fixed lot). Also work with pending orders is added.
Fixed the error of reopening of positions, when closing, the comment (Some brokers) was deleted or replaced with the comment [tp] [sl] - checking
via Global variables. Attention: In this mode, Global variables will be used! Check that your Expert Advisors or indicators do not delete global
When the copier is de-initialized, the data files are deleted to exclude the situation when the "old" positions are opened.
Added support for the deposit currencies different from EUR, USD and RUB in the Autolot function.
Added new parameter RiskRate - ratio of your currency relative to USD.
Default is RiskRate = 0, which means that the EA will try to find the right conversion rate in the Market Watch.
In order to provide proper operation of the Autolot function with all currencies, you should enable All currency pairs in the Market Watch.
Optimized the operation with timer.
If the timer cannot be started, the tickwise operation starts.
Otherwise, the timer is used.
Added a check of trading permission for the EA, the timer algorithm is disabled if trading is not allowed.
Added handling of timer error, which can occur with some brokers for an unknown reason. If the timer does not start, the EA will trade in the TICK mode
Warning: If the EA fails to start by timer, the copying speed is lower due to the OnTick function features.
Fixed stop loss modification error in cases when stop loss is in the breakeven zone.
Added handling of error when setting the Millisecond timer on certain terminals. It occurs very rarely.
In case the terminal generates an error of setting the timer for milliseconds - the EA automatically sets the nearest second timer.
For example, if Sleeping = 300 ms, and the terminal generates an error, the EA will automatically set the timer to 1s.
Added forced check of whether the copied Symbol (Currency pair) is available in Market Watch and forced addition of this currency pair to Market Watch for copying.
Limiting loss per day\month\week
Limiting LimitFor - limit type day\week\month
LimitForLosses - profit based limit
LimitForProfits- loss based limit
LimitType - limit type on dollars, points, percent of deposit
ClosebyLIMITING - close EA;s trades when exceeding the limit
UseCurrentProfit - when calculating the limit, take into account current loss/profit
This feature can disable the EA operation, if it reaches a certain profit\loss in the deposit currency during one day\month\week. The EA will resume working on the next day/week/month
Example: LimitFor=DAY LimitForProfits=1 Close at a total profit of $10
You can also set LimitType for calculations. In dollars, points, percentage of the account balance.
If you need to close and delete all trades of the Expert Advisor once the limit is exceeded, you can set ClosebyLIMITING = true
UseCurrentProfit enables/disables the inclusion of current floating profit/loss into limit calculation
Added check of a number of non-numeric characters in a comment when closing a deal.
In some cases the StringLen command incorrectly determines the comment length
Added the PathRead name to the field of comment to open trades in order to facilitate usage and finding trades.
Fixed error with partial closing of positions
Added the PendingPrice_adjust parameter - shifting the price for placing pending order relative to the price from the master.
BUYSTOP and SELLIMIT are shifted by plus PendingPrice_adjust points.
SELLSTOP and BUYLIMIT are shifted by minus PendingPrice_adjust points.
the master has a pending BUYSTOP order at the price of 1,12400 and a SELLSTOP at the price of 1,12300
PendingPrice_adjust = 200
the client will open pending orders - BUYSTOP at the price of 1,12600 and SELLSTOP at the price of 1,12100
Added new parameter to the block of position inversion when copying - ReverseCopy
ReverseSLTP - reverse Stop loss and Take profit when reversing deals:
When copying and reversing deals from the master, the stop loss/take profit is reversed on the client
on master: SELL with stop loss=100 points, take profit = 300 points. The client copies: BUY with stop loss of 300 points and take profit = 100 points.
When copying and reversing deals from the master, the stop loss/take profit is not reversed on the client, but set according to the stop orders on the master.
on master: SELL with stop loss=100 points, take profit = 300 points. The client copies: BUY with stop loss of 100 points and take profit = 300 points.
Added recheck of the data when opening the data file in another program.
Added the Rounding parameter:
Without rounding - place stop orders without rounding
To 1 digit - rounding to 1 digit. For example, if Stoploss= 1.23456, the trade will be opened with a stop loss of 1.23450
To 2 digits - rounding by 2 digits. For example, if Stoploss= 1.23456, the trade will be opened with a stop loss of 1.23400
Added the AutoRoundingGOLDSILVER parameter
For brokers, which allow to open positions on gold and silver only at prices rounded to 1 decimal place.
Added the CorrectSLTPbyMaster parameter:
Adjusts the stop loss and take profit distances if the opening prices are different on master and client:
opening price on master: 1,2000; Stop loss: 1,3000; Take profit: 1,1000;
opening price on client: 1,2500; Stop loss: 1,3500; Take profit: 1,1500;
The difference in the opening prices is 0,0500 points, the distances to Stop loss and Take profit are adjusted.
Added the RiskLotTypetype parameter:
Risk calculation type based on:
Balance - calculates the lot based on the current balance in respect to RiskLot percents
Free Margin - calculates the lot based on the free margin in respect to RiskLot percents
Stop loss - calculates the lot based on the stop loss of a trade in respect to RiskLot percents, if stop loss = 0, the trade will be opened with the lot of the master
Fixed the error of copying the GOLD symbol to the broker Fi**
Fixed the error of handling the symbols with the suffix "..."
Update for UAC users:
If it's tunred on, all files are stored in the commen folder of the terminalю
Added the auto-detection of the symbol suffix, if it differs from the standard name of the currency pair.
If the PreFixSymbol="Auto" is specified:
If the currency name on the client terminal has a suffix, i.e. EURUSD.m, then the trades will be copied with the suffix ".m"
Added the OnTimer event handler which increases the stability and copying speed.
Fixed changing of the EA settings on the fly. Now the EA settings can be changed on the chart, without the need to restart the EA.
Added checking of whether objects on the copier's chart have not been deleted by other indicators. If an object with technical data has been deleted, the copier creates the object once again.
Fixed the incorrect message about a free version.
ReopenPosAfterClose - reopening a position that was closed in the client terminal, but us stoll open on the master.
Only for professional users!!!
It allows to re-open a position that was closed on the client by a trailing stop and is still open on the master.
FilterLotMin - minimum lot to copy
FilterLotMax - maximum lot to copy
Fixed virtual trailing stop operation on ECN accounts.
Added LimitFor block fixing absence of trade in case of a zero profit. If 0, the parameter is disabled.
A current profit/loss for the copier is now displayed on a chart allowing you to limit profits or losses on a clent account (the account deals are copied to).
Suppose that you want to copy deals to a client account with closed deals not exceeding the loss of $100 per week:
LimitForLosses = -100
As soon as the total loss (caused by copied deals) on a client account exceeds $100, copying is stopped. The next copying is conducted only the next week.
1. ChangingNamesSymbols - changes symbol names in the master and client terminals.
If symbol names differ in the master and client terminals, and PreFixSymbol doesn't help, you can add a list of new names.
Your master terminal has a symbol named
ES - USA500b (SP500)
the client terminal has
You can specify this correspondence in ChangingNamesSymbols like: mastersymbol=clientsymbol;
E.g.: ES - USA500b=FDAX-GER30b;
This is a required template: Master symbol name=Client symbol name;
LIFEHACK: You can also substitute symbols, e.g. a trade for EURUSD in the maste terminal can be copied as a trade for GBPUSD in the client terminal
2. PROFITLOSS_EXTRASETS4 - limiting profit and loss in the deposit currency.
If you want to limit losses for the current client magic, use this new block.
Example: you use multiple copiers with different magic numbers. And you want to restrict trade opening after a loss of -100 USD for 1 day (week, month)
Use the following parameters:
Once the loss for this magic reaches -100 USD for one day, no more new trades will be opened on this copier. All other functions will keep working.
The next day this parameter is reset to 0.
Adjustable parameter LimitFor= DAY;WEEK;MONTH;ALLTIME;
Revised algorithm for a large amount of trades.
Modified functions when operating a large amount of trades. If a trade is not changed, the EA will skip it in analysis.
Added automated inversion of currency names (USDRUB USDRUR EURRUBEURRUR)
Variables of the int type are replaced by variables of the long type
Added a parameter disabling ability to copy positions:
If PositionsCopy is set to true, positions are copied.
At that all other functions work as usual (trailing, modification, etc.).
Added a full-fledged algorithm of virtual stops for your stop loss and take profit.
If VirtualStopLossTakeProfit is set to true, you can adjust your virtual stop loss, take profit and trailing stop:
- My_STOPLOSS - your stop loss in points (master's stop loss is not copied).
- My_TAKEPROFIT - your take profit in points (master's take profit is not copied).
- TrailingStopUSE - your trailing stop.
- IfProfTrail - profit trades only.
- TrailingStop - trailing stop distance.
- TrailingStep - trailing stop step.
Added an option to round prices when copying:
rounding Open prices for pending orders;
rounding stop loss;
rounding take profit;
Without rounding - copy without rounding
To 1 digit - round 1 digit. For example, the Open price BUYSTOP = 1.23456, the transaction will be copied with the price 1.23450
To 2 digits - round 2 signs. For example, the Open price BUYSTOP = 1.23456, the transaction will be copied with the price 1.23400
Added FilterLot variable which filters the lots copied to the Client.
If FilterLot = 0, all lots are copied.
If FilterLot = 0.1, all lots greater than or equal to 0.1 are copied.
If FilterLot = 1, all lots greater than or equal to 1 are copied.
New option in block TPWCM EXTRA SETS Stops when Master Close Pos- TPWCM_TakeProfitOnlyToProfitZone
When set to true, the EA places a take profit after a deal is closed on the master account only in the positive zone. If a deal is in loss after it is closed on the master account, take profit won't be placed until the trade enters profit area.
If set to false, the EA places take profit in any case, even if the position is losing.
Added a parameter for setting take profit for the deals left after closing on the master
After a deal is closed on the master, it is now possible to set a take profit for the deal on the client account based on the deal closing price on the master account, while leaving the deal open on the client account.
DeleteOrderbyMaster - a separate function for deleting pending orders by master
Added the new block for working with the copier:
-------------OIP EXTRA SETS Pos to STOP or LIMIT orders--------------
OIP_Order_Instead_Position; - True False
OIP_TypeOrders; - order type (pending STOP or limit LIMIT)
OIP_DistanceOIP; - order distance
When opening a trade on a Master account, you can turn it into a pending order in the client terminal with the amount of points set in the EA settings.
Added ability to select Stop or Limit orders. Order reversal now occurs together with trade reversal.
Added the parameter for placing stop loss for trades left after the master is closed
Fixed operation of the functions:
MaxPosBySymbol - maximum amount of trades per one symbol
MaxSymboll - maximum amount of open trades
NumberPosbeforeCopy - minimum value of positions per one symbol of one direction on the master to be copied to the client.
A new block has been added.
When the block is on: If a position is closed on a master account, the appropriate position will not be closed on the client account. Instead, trailing stop or breakeven will be enabled on the client account.
That is, instead of closing the position on the client account, you have the opportunity to activate the trailing stop and maintain the position on.
Trailing settings are individual in this case. And it is only activated when the position is closed on the master account.
Warning: This function when turned on, automatically cancels the ClosePosbyMaster function
TPWCM_TralPosWhenCloseMaster = false;
TPWCM_TrailingStopUSE = false;
TPWCM_IfProfTrail = false;
TPWCM_TrailingStop = 0;
TPWCM_TrailingStep = 1;
TPWCM_BeZubitok = false;
TPWCM_LevelWLoss = 0;
TPWCM_LevelProfit = 0.
Fixed file read error.