Main interface feature
Program uses so-called ‘expandable panels’. Initially, the panel capture only is visible. If you click the expanding button, the panel is unfolded and its content is visible:
Main program window
Run HFT Forex Trade Copier (FTC). The main program window appears. It contains 5 expandable panels, you can see they are unfolded in the image:
Two panels are placed on the left side: Master accounts and Subaccounts. Go to references to see how to treat them. Three panels are placed on the right side: Subaccount orders, Master account orders, and Log. Go to references to see how to treat them.
When the ‘Master’ expandable panel is unfolded, you can see the master accounts table. There are two ways to fill the table: add accounts one by one and import an entire list from the Comma-separated values (CSV) file.
Add a master account.
Press the “Add master” button on the bottom of the panel. Select the necessary server for a master account from the servers list (you may use the ‘Filter’ field and the letter buttons to ease the search for the required server), put the account number and investor password into appropriate fields, enter a short identification for the account into the Definition field, and click ‘Save’. The ‘Save’ button will not be activated before you will fill mandatory fields, which are labeled red when blank
If you have not found your server in our servers list, provide us with information about your server.
If you have an MT4® terminal, connected to your master account, take the .srv file from the terminal Config folder. The path to SRV file: in a terminal window – menu File – Open Data Folder, then Config folder, then copy a file with a name like MT4® server name (you can see it in MT4® terminal window caption), and .srv extension. Then you can paste a file into the email attachment.MT5® is much less friendly for side connections than MT4®. The only way to get connection parameters is to compare the content of file servers.dat from the MT5® terminal Config folder with the Resource Monitor window when the MT5® terminal with the necessary account works. Start a single terminal with an MT5® account connected, and get such a screenshot:
Then you can paste the screenshot file together to the servers.dat file to the email attachment.
We will add your server immediately after we get such an email. Fill free to contact us for assistance.
‘Delete’ button removes the account from the list, and this operation can’t be undone.
Press the’ Edit’ button, and you will see the same window which was used when the account was added. Here you can correct erroneous data or change the ‘Definition’ field.
‘Status’ button allows to block or unblock the master account. Blocked accounts become invisible as default, you can visualize them if press the ‘Show blocked master accounts’ button:
Press the ‘Export’ button in the window bottom. The program will show the file open dialog. Select the path where the ‘CSV’ file with master accounts information has to be created.
Press the ‘Import’ button in the window bottom. The program will show the file open dialog. Find the ‘CSV’ file with the appropriate information, open it, and the program will fill the accounts list with the file content. Naturally, the CSV file must have a certain structure, so the best way to create it is the ‘Export’ procedure using the ‘Export’ button. Such operations are in demand for license information cloning or emergency information restoration.
Some button actions can be executed and some Master table parameters can be set in the context menu (right-click right on account string in table):
Delete acts as a ‘Delete’ button.
Block for active accounts and Unblock for blocked accounts act as the ‘Status’ button.
Setup acts as the ‘Edit’ button.
Column produces submenu, where you can select columns to be shown in the ‘Master account’ table
On the Subaccounts panel the Subaccounts table treatment is quite similar to the Master accounts table treatment with procedures ‘Add’, ‘Edit’, ‘Delete’, ‘Status’, ‘Export’, ‘Import’. The pop-up menu is similar as well.
Accounts linking and parameters setting
Both master accounts and subaccounts Edit window has 3 tabs:
serves for account adding and editing, see above.
contains an interface for the master account – subaccount linking and setting of copying parameters for the accounts pairs. This is a subaccount account Link tab:
The master accounts table is placed on the left side of the window. If the check box is set, the link between the current subaccount and the selected master account is established. I.e. the orders from the master account will be copied to the subaccount.The master account-subaccount pair copying parameters are placed on the right side of the window. There are several panels, each of them has description inappropriate chapter below: ‘Symbol mapping’ – see ‘Copying parameters – Compliance’, ‘Transformation’ – see ‘Copying parameters – Transformation’, ‘Copying’ – see ‘Copying parameters – Copying’, ‘Filter’ – see ‘Copying parameters – Filter’, ‘Expanded’ – see ‘Copying parameters – Expanded’, ‘Stops’ – see ‘Copying parameters – Stops’.
contains the table, where the current account available symbols are listed, symbol parameters are shown and symbol block-unblock checkboxes can be set.
The “Max lot” column on the subaccount subtab shows the symbol parameter for lot size calculation for CFD and Metals trading. Blocking a symbol (checking the boxes in the “Block” columns) will stop FTC from tracking or picking up trades with that symbol on that account.
‘Block trade’ will stop just trading, while quotes will be received. This is necessary if you want to block trading on some main pairs, like ‘AUDUSD’ and ‘USDJPY’, but let the trading on cross pair, like ‘AUDJPY’. Main pairs prices are necessary for some computations in this case.
If the symbol is not allowed for trade, it presents in the list but is blocked invariably, having no check box at all.
It is recommended to block any symbols you do not plan to trade in because doing so drastically reduces the amount of processing power FTC requires and allows it to support more accounts at a time.
Master accounts and Subaccounts orders
The ‘Master account orders’ and ‘Subaccount orders’ tables allow an easy track through the current and past orders on both master accounts and subaccounts. ‘Positions’ tab shows the opened positions, the ‘Orders’ tab shows existing pending orders, and the ‘History’ tab shows the closed positions.
The table columns could be visualized or removed by a popup menu:
The table can include the orders of a single account (if select the account in the appropriate ‘Master account’ or ‘Subaccount’ table and press “For selected” , or orders of several accounts (if check accounts in appropriate ‘Master account’ or ‘Subaccount’ table and press “For checked”
See the buttons below each of the tables.The ‘Subaccount orders’ table has an additional function, that allows closing orders from inside FTC. Very handy if a subaccount order was not closed for some reason while the master order was.
Just check the box in the leftmost column for the orders you want to close and click “Close order”.
Several check boxes can be selected or deselected with two methods:
– press the ‘Select’ table header to turn all checkboxes;
– hold Shift on the keyboard and drag the mouse over the checkboxes which you want to turn.
“Log” tab displays a log of all recent actions, non-standard situations, and errors during transactions. The table can include the log records for a single master account (if select the account in the ‘Master account’ table and press “For selected” below the ‘Master account orders’ table), or orders of several master accounts (if check accounts in the ‘Master account’ table and press “For checked” below ‘Master account orders’ table). In the same way, you can select the subaccount(s), which log records have to be included in the Log tab. The controls at the bottom allow adjusting the logs displayed: whether to display all logs, certain types of logs, logs within a specific time frame, etc. The “Save log” button creates an HTML file with the log content.Almost all columns are self-explanatory, but the rightmost column needs a description. For order opening it consists of numbers of price, SL, TP, and comment. For order closing consists of price, profit/loss, SL, TP, and comment
Search operations are available for account numbers and order numbers. You can click on the appropriate column in the table and press Ctrl+’F’. Search sample window will appear:
Arrow buttons will help to move through the log tape towards the selected item.
Settings for general program features
After the ‘Setup’ button in the main window bottom left corner is pressed, the Setup window appears:
Here program mode is shown, clients quantity, and program version. The email could be set where messages would be sent.
Outbound emailing settings include emails sending reason (Never, For Errors – when copying errors happens, Always – when each order was copied or error happened) and outbound mailbox settings.
Inquiry about synchronization. If set, then the program asks about the synchronization regime at the start.
Synchronize profitable orders. If set, the program omits unprofitable orders during synchronization.
Do not copy close after disconnecting. Controls the program behavior if the user removes links between master and subaccounts on the Acc link tab during a trading session. If set, the program will not close orders on subaccounts after the account links were removed, even if parent orders on the master account were closed. In contrast (on default), orders on subaccounts will be closed together with orders on the master account, even if links were removed.
Remove orphaned orders during synchronization. Helps to repair the master-sub accounts synchronization in cases, when links between orders on master accounts and orders on subaccounts were lost. The reasons could be a connection fault, signal races, etc. The indication could be seen in the Subaccount orders table: the empty places in the ‘Master’ column. Such orders can’t be closed with the master account, so the graceful way is synchronization with ‘Remove orphaned…’ checked. Moreover, if ‘Remove orphaned…’ is checked, the program will close ‘orphaned orders’ on start, even if no synchronization was declared.
A number of entries in the log limits the log depth in the Log table, not the log which is stored in the database.Download history for … days sets, how deep have to be the history tape by default. You can request a more durable history as a special operation.
If Inquiry about synchronization is set in the Setup window (see above), FTC on start will display a small window asking if you want to synchronize master accounts with subaccounts:
When you select any choice except ‘Never’ and click ‘Save and sync’, the program retrieves data from transaction history looking back for a defined number of hours, and does the following:
- It tries to copy the missing orders (opened on the master account but not copied to subaccount).
- It tries to close orders that were closed on the master account but remain opened on the subaccount.
- It does not close orders on subaccounts that were opened not by FTC software.
- It changes nothing in orders that were already transferred to the subaccount and remain opened on the master account.
Orders for synchronization might be selected by self-explaining buttons according to the comparison of the current price on the subaccount with a price on the master account.
- Always (no price comparison)
- Synchronize if the price is the same
- Synchronize if the price is better
- Synchronize if the price is worse
If some orders don’t pass selection conditions, the program waits for a defined “Wait price” minutes, and if conditions still are not satisfied, rejects this order synchronization.
You can also synchronize all subaccounts at any time by pressing the “Sync all” button in the “Copier” tab, or sync a specific subaccount by right-clicking on it and selecting “Synchronization”. A failed order can be repeated at a later time by means of the synchronization function.
Mapping software to computers (hardware ID)
For security sake, the FTC database stores the link between the license and hardware parameters of the computer, which has initially started FTC with that license.
If you work in Provider mode, then you have two parts of the software. The first part should be installed on your side (master part) and the second part (slave part) should be installed on your customer’s computers. After being installed first software will be mapped to the computer to which it was installed and will work in master mode only on this computer. Being started on other computers it will work in slave mode which is suitable for your clients. So in Provider mode master part is mapped to a single machine.
If you work in Copier mode, then your software is mapped to your computer or VPS. Only this computer works with full FTC functionality. If FTC is started on another computer, you (or anybody else) see the restricted interface.
So if you need to change some hardware parameters (e.g. disk or net card) or install software on another machine, you should inform us and we will clear mapping (hardware ID) in your license data. Then after being started your software will re-map itself. All your settings will remain untouched and there is no need to restore settings after transferring software to another computer (VPS). One exception exists: passwords for subaccounts are coded and stored on the local machine, so if you change FTC location, you will need to reenter those passwords
It master account or subaccount ‘Edit window’ the Copying parameters occupies the right side of ‘Link’ tab. It let to set copying parameters for the master account-subaccount pair, which is defined on the left side of the window:
The window has a set of panels, let’s look at them step by step.
Copying Parameters » Symbols mapping (Quotes suffix/prefix mapping)
In most cases both the Master account and Subaccount have a single symbol set with or without suffixes (for example, EURUSD … and/or EURUSD_FX …). In this case, the copier maps symbols automatically. It understands, that EURUSD means the same as EURUSD_FX, EURUSDi, EURUSDm, and so on. Nothing should be done on the Symbols mapping panel in this case
But if the Master or Subaccount symbol list contains different spelling simultaneously (e.g. EURUSD and EURUSDc), symbols equivalence must be set to avoid ambiguity. Check “Mapping on” and set desirable suffixes to the “Master” and “Subaccount” edit boxes.
In the most complex cases master account – subaccount symbol spelling differs radically. Mostly it concerns non-currency symbols, CFD and exotic ones: “s&p500” means the same as “USA500”, “bitcoin” – the same as “BTCUSD” etc. In these cases the Special symbols lists should be used
To activate, click the “Special symbols” button:
To add a correspondence, select the required symbols from the “Symbol master” and “Symbol subaccount” columns, and click the right directed arrow.
To remove a correspondence, select it and click the left directed arrow.
Click “Save” to save the correspondences.
Note 1. Don’t forget to save changes by means of the “Save” button.
Note 2. You need to restart the software to make ‘Symbols mapping’ changes take effect.
Copying Parameters » Transformation
On this panel you may specify the lot scaling options i.e. the way of lot size calculation for the subaccount side. Each lot calculation mode takes the tab on the panel.
Ratio (MS) mode
You can use this option if you like to copy trades with constant coefficient.
Subaccount lot calculated as master lot multiplied by Ratio(MS) coefficient.
Subaccount Lot Size = Master Lot Size * Ratio(MS)
Ratio(MS) = 2
Master Lot Size = 1 Subaccount Lot Size = 1 x 2= 2
Master Lot Size = 1.1 Subaccount Lot Size = 1.1 x 2= 2.2
Lot size on subaccount doesn’t depend on lot size on master account and equal to parameter “Fixed”.
subaccount Lot Size = Fixed
Fixed = 0.25
Master Lot Size = 1 subaccount Lot Size = 0.25
Master Lot Size = 1.1 subaccount Lot Size = 0.25
This mode allows you to control percent of the capital, which you are ready to risk for each subaccount.
Subaccount Lot Size is calculated as:
Subaccount Balance/Basis * Percent
Basis – depends on leverage and account type (standard, mini, micro etc.)
|100 000 (standard)||250||500||1,000||2,000||5,000||10,000|
|10 000 (mini)||25||50||100||200||500||1.000|
|1 000 (micro)||2.5||5||10||20||50||100|
Percent – percent of the capital (balance), which you are ready to risk for the subaccount
SubaccountLotSize = SubaccountBalance/SubaccountBasis * BalancePercent/100 = 300000.00/1000.0 * 0.50/100
If SL is set for the trade, we assume that it defines the worst loses or the trade risk. If we want to limit risk with certain part of balance, we use the equation (see https://www.thebalance.com/how-to-determine-proper-position-size-when-forex-trading-1031023):
Pips at risk * pip value * lots traded = amount at risk;
Pips at risk = Abs(Price – SL) / pip size; for copier, Price and SL are the open price and SL on the master account (MasterOpenPrice and MasterSL).
pip value = Deal size * Pip size;
Pip size for current symbol 0.0001 units, except JPY, where it is 0.01 units
For a micro lot (Deal size = 1000 units), the pip value is 0.10 units. For a mini lot (Deal size = 10000 units), it’s 1 unit. And for a standard lot (Deal size = 100000 units), it’s 10 units.
amount at risk = Balance * Risk percent / 100;
If we set the Risk percent and know the Balance (SubaccountBalance), we get the lots traded (SubaccountLotSize) as:
SubaccountLotSize = SubaccountBalance * Risk percent / 100 / (Abs(MasterOpenPrice – MasterSL) * Deal size);
Risk percent = 1
SubaccountBalance = $50000
MasterOpenPrice = $1.09162
MasterSL = $1.08;
Deal size = $100000
SubaccountLotSize = 50000*0.01 / (0.01162 * 100000) = 500/1162 = 0.43 lots;
If SL = 0. This mode allows you to risk the same percent of capital both on subaccount and master account, because SubaccountLotSize is proportional to MasterLotSize and SubaccountBalance to MaterBalance ratio. Additionally you can change the SubaccountLotSize with Ratio coefficient.
SubaccountLotSize = SubaccountBalance * MasterLotSize / MasterBalance * Ratio;
SubaccountLotSize = SubaccountBalance * MasterLotSize / MasterBalance * Ratio = 3000.00 * 0.50 / 5010.00 *
4.00000 = 1500.00000 / 5010.00 = 1.19760 = aprox. 1.20
Mode is currently unavailable
Mode is currently unavailable
In this mode you may calculate subaccount lot size according to subaccount balance and desired maximal risk.
Subaccount Lot Size is calculated as:
Master Lot Size * (Subaccount Balance / Master Balance) * Ratio (risk)
MasterLotSize = 1.50
MasterBalance = 30000.00
SubaccountBalance = 60000.00
Ratio (risk) = 4.00
SubaccountLotSize = MasterLotSize * (SubaccountBalance/MasterBalance) * Ratio (risk) = 1.50 *
(60000.00/30000.00) * 4.00 = 1.50 * 2.00 * 4.00 = 12.00
Is almost the same as Balance(2), but lot size is calculated from Equity, not Balance.
Subaccount Lot Size is calculated as:
Master Lot Size * (Subaccount Equity / Master Equity) * Ratio (risk)
Subaccount Lot Size Bounds
Min Lot and Max Lot – You can set the minimal and maximal size of lot calculated for the subaccount.
Copying Parameters » Copying
On this panel you can adjust several important parameters
Copy with subaccount price – this option allows copying the order to the subaccount at the subaccount’s price no matter how far is it from the master’s price (slippage will be ignored).
Pending activation gap – this is about pending orders copying. When pending order was copied to a subaccount, it will be activated when the price will reach the predefined level. This level is the same for master accounts and subaccounts. But prices on the master account and subaccounts could be different, so pending orders could be activated at different times. If this difference is within the ‘Pending activation gap’ value, both opened orders are linked just like usual market orders, and any changes on the master order produce appropriate changes on the subaccount order. If the order on the subaccount remains in the pending state while the order on the master account is activated, and the time of such mismatch exceeds the ‘Pending activation gap’ value, then the pending order is canceled on the subaccount.
Copy SL-TP after the order is opened – defines the order opening algorithm for the subaccount.
If set, a master account sends the order to a subaccount with no SL-TP, next it sends a command for order modification and SL-TP values setting.
If not set, the master account sends the opening command with SL-TP values already defined, thus subaccount executes the opening in one step. Evidently, it’s more convenient, but some brokers do not allow it this way.
The magic number box has three self-explanatory choices:
Copy – master order magic is set to subaccount order,
Don’t copy – subaccount order magic remains intact,
New value – for all subaccount orders the magic is set to edit the field value.
Copying Parameters » Filter
On this panel you can adjust copying filters. At present only the ‘Type’ filter is implemented. Check the boxes with order kinds for appropriate orders to pass from the master account to the subaccount.
Copying Parameters » Expanded
This panel allows to set some special modes of copying
Close subaccount trade when master trade closes – if this option is unchecked then subaccount trades will not be closed when master trade closes
Hidden pending order – pending orders will be hidden from the broker. The values of pending orders are stored in the memory. When the level of order is executed, the order will be opened as a market order.
Copy after pending activation– pending orders are not copied. But after the pending order is activated on the master, a market order is copied to the subaccount with master order parameters
Better price pending – if set, the pending order is opened on the subaccount account when the market order is opened on the master account. When the master opens an order as BUY, SELL, on the subaccount a pending order should be opened as BUY LIMIT, SELL LIMIT. Pending’s execute price is set as master order open price shifted towards ‘better’ value. The shift size (in points) is set in the adjacent spin box.
In NORMAL (non-reverse) MODE the “Better price” will always be deducted from the order’s BUY price and added to the order’s SELL price.
Example 1: If the order was opened on master account BUY at 1.3852 and “Better price” = 2, then on subaccount BUY LIMIT order will be opened at 1.3850
Example 2: If the order was opened on master account SELL at 1.3855 and “Better price” = 5, then on subaccount SELL LIMIT order will be opened at 1.3860
In REVERSE MODE function should also work together with “Reverse” mode. In this mode, the BUY LIMIT order will always be below the market price and the SELL LIMIT order will be above the market price.
Example 3: If the order was opened on master account SELL at 1.3910 and “Better price” = 4, then on subaccount BUY LIMIT order will be opened at 1.3906
Example 4: If the order was opened on master account BUY at 1.3920 and “Better price” = 4, then on subaccount SELL LIMIT order will be opened at 1.3924
If “Better price” = 0, then the function will continue to open the LIMIT order at exactly the same price as the original master order
Example 5: If the order was opened on master account SELL at 1.3910 and “Better price” = 0, then on subaccount BUY LIMIT order will be opened at 1.3910
Example 6: If the order was opened on master account BUY at 1.3920 and “Better price” = 0, then on subaccount SELL LIMIT order will be opened at 1.3920
Correct price – corrects prices for pending orders automatically when software copies the pending order which price is too close to the broker’s market price at the moment and broker forbids to set this price with error “Error/CREATE/SL or TP invalid value Price”.
Reverse – this mode allows to reverse master trades on subaccounts. This will mean that
the BUY order will be copied as SELL order
SELL order will be copied as BUY order
BUY STOP order will be copied as SELL LIMIT order
SELL STOP order will be copied as BUY LIMIT order
BUY LIMIT order will be copied as SELL STOP order
SELL LIMIT order will be copied as BUY STOP order
Also in this mode Stop Loss and Take Profit values will be rearranged on subaccount trade to preserve SL and TP distances from subaccount price
Copying Parameters » Stops
This panel allows you to control the copying of StopLoss and TakeProfit
Copy SL and Copy TP – these options allow to specify if you wish to transfer SL/TP from master account order to subaccount order.
Correct TP and Correct SL – these options are useful if the subaccount broker has limitations for SL/TP level (Stop Loss, Take Profit, and Pending Orders N pips or more away from the current price). If the subaccount server rejects modification because of specified SL or TP is out of allowed bounds you will get an “SL or TP less than the resolved level” error message in your log and trade will not be modified. If you check these checkboxes, FTC will place Stop Loss and (or) TakeProfit on the minimal allowed distance from the current price.Hidden SL and TP – in this mode StopLoss and TakeProfit will be hidden from the broker (will not be copied to the subaccount). The values of StopLoss and TakeProfit profit are stored in the memory as subaccount order properties. When the price on the subaccount reaches SL or TP level, the software closes the order.