Skip to content
CPlugin logo
  • Home
  • Blog
  • Store
  • Contact
  • FAQ
  • Cart
  • My account
  • Knowledge Base
CPlugin logo
  • Home
  • Blog
  • Store
  • Contact
  • FAQ
  • Cart
  • My account
  • Knowledge Base

General

  • How to obtain files

MT4 ManagerAPI .NET Wrapper

  • Installation
  • Connection pool
  • Price Helper

Standalone Apps

  • Join two MT4 Servers
  • Compress MT4 database
  • Quotes Monitor
  • Quotes Monitor (WPF)
  • MT4 Report Server extended replication
  • EMIR
  • DividenderLT
  • Tools to calculate dividends
  • CopyTrading
    • Sentiment Strategy (LMAX)
    • MT4 (ManagerAPI) to LMAX
    • MT4 Plugin
    • MT4 (ManagerAPI) to MT4

Plugins for MT4/MT5

  • Flexible Leverage
  • GapHelper plugin
  • Multi Account Manager (MAM)
  • Spread Extender
  • HedgeHelper
  • Multi-Tier IB
  • Multi-Tier IB advanced version

Cloud

  • General info
  • WebAPI
    • WebAPI
    • Authorization
    • Pricing and terms
    • RESTful
    • Web Sockets (SignalR)
  • Home
  • Docs
  • Standalone Apps
  • Join two MT4 Servers

Join two MT4 Servers

Brief #

It can be a situation when you have two MT4 servers and you want to combine them together, to join up one server database into another. To transfer clients from one server into another very seamlessly.

This tool completely combines two MT4 server databases together, its users, orders databases with corresponding group and symbol settings. All you need is to pass two MT4 installation folder path as command line argument and program will prepare result server with ready to go settings. When you run result server you will notice all users and their orders in place. Also, it takes care about symbol settings which can be different. As a result, client will be able to connect to new server and continue trading like nothing happened. After this you will have free MT4 server installation for new achievements!

How To #

All files can be downloaded from: http://nuget.cplugin.com/feeds/apps/CPlugin.Tools.JoinMT4Servers/versions

Terms #

A server, which must include another server data will have name *Master*.

Server which about to be joined will have name Source.

Program do not change either *Master* nor *Source* files. It merge into new folder named *Result*. All current files remain the same.

*Result* = *Master* + *Source*

MASTER = always remain static (lets call it as NEW MT4 server) === all existing data inside this file will not be changed (BUT will be appended with new data later on from SOURCE)

SOURCE = to be filtered, and filtered data will be APPEND in to orders.dat, users.dat as well as config folder (files which relevant)

RESULT = will be at here (MASTER + SOURCE (APPEND) , and /config folder should belongs to MASTER files (with append in of SOURCE)

Algorithm of what program does internally #

You shall not follow steps below, it's just an explanation of what program will do for you. You only run program and it do everything in one step.

For normal work it needs these files from *master* and * source* server:
- users.dat
- orders.dat
- groups.ini
- managers.ini
- secgroups.ini
- securities.ini

Groups #

1. Copy *Master*'s *groups.ini* to *Result*
2. Join *Source*'s *groups.ini* to *Result*

Program add suffix to *Source*'s group names.
If there are intersection between *Source* and *Master* group names, program will fail asking operator to specify another suffix. (`_new` will be used by default if not specified anything else)

At the same time, *Source* accounts will have new group name.

Users #

1. Copy *Master*'s *users.dat* to *Result*
2. Remember last login to use on next step
3. Join *Source*'s *users.dat* to *Result* using algorithm below:
1. if master does not have source's login, account will be copied as is without any problems.
2. if master does have, program will pre-allocate next available login and copy there. So, intersections will be resolved. But clients should be notified that their login changed from 'A' to 'B'. Password remains the same.

Managers #

1. Copy *Master*'s *managers.ini* to *Result*
2. Join *Source*'s *managers.ini* to *Result*

*Source* accounts will have new login number.

Symbols #

1. Copy *Master*'s *securities.ini* to *Result*
2. Join *Source*'s *securities.ini* to *Result*. If *Master* already has symbol with name came from *Source* it will not be joined.

Orders #

1. Copy *Master*'s *orders.dat* to *Result*
2. Remember last order number to use on next step
3. Join *Source*'s *orders.dat* to *Result* starting from ticket from previous step. To avoid intersections.

*Source* orders will have new ticket number.

Usage #

It has internal help system which can be access by running with `--help` parameter. It will show all available parameters to be specified.

CPlugin.JoinMT4Servers.exe [OPTION...]
--help Print help
-m, --master arg Master MT4 path, the server to whom we will join 'source' server
-s, --source arg Source MT4 path, a server we are going to join to 'master'
-r, --result arg Result MT4 path, the server which will contain both servers. (result = master + source)
-g, --groupsuffix arg Suffix to be added to 'source' groups (default: _new)
-f, --groupsfilter arg MQs groups filter to specify, what groups should be copied from 'source' server (default: ,*,)
-c, --clear Clear 'result' directory from files
Still stuck? How can we help?

How can we help?

Updated on July 24, 2023
Compress MT4 database

Powered by BetterDocs

Table of Contents
  • Brief
  • How To
  • Terms
  • Algorithm of what program does internally
    • Groups
    • Users
    • Managers
    • Symbols
    • Orders
  • Usage

Copyright © 2015  - 2025 CPlugin

Telegram Email EmailLinkedinFacebookTwitter

Powered by CPlugin