Duplikium Duplikium
  • Home
  • Cockpit
    • Cockpit
    • Cockpit (Bêta)
  • How To
    • Get Started!
    • FAQs
    • Tutorials
    • Web Service API
  • Features
    • Key Features
    • Supported Brokers
      • MT4 Brokers
      • MT5 Brokers
      • cTrader Brokers
      • FXCM
      • LMAX
    • Screenshots
    • Videos
    • Our Solutions
  • Pricing
    • Flexible Pack
    • Prepay
    • Add-ons
Register Register for FREE Login
  • Home
  • Cockpit
    • Cockpit
    • Cockpit (Bêta)
  • How To
    • Get Started!
    • FAQs
    • Tutorials
    • Web Service API
  • Features
    • Key Features
    • Supported Brokers
      • MT4 Brokers
      • MT5 Brokers
      • cTrader Brokers
      • FXCM
      • LMAX
    • Screenshots
    • Videos
    • Our Solutions
  • Pricing
    • Flexible Pack
    • Prepay
    • Add-ons

Trade Copier Web API Documentation

Access to our advanced technology through a RESTful API.

Use our Trade Copier Web Service API to develop your website as a white label or gain access to your cockpit. You would use our technology, but you would host the Cockpit on your own website.

Content

1. Connection
2. Accounts
3. Subscriptions
4. Slave/Group Settings
5. Symbol Settings
6. Global Protection
7. Groups
8. Positions
9. Orders

1. Connection

Duplikium offers a Web Service API to manage your cockpit.

How to connect to the Web Service API:

  • Auth-Token: an Auth-Token is required to connect to the Web Service API. If you reach the minimum requirements, and you don't have an Auth-Token yet, you can request it to our support team at This email address is being protected from spambots. You need JavaScript enabled to view it.
  • Auth-Username: the Auth-Username is your cockpit username
  • Web Service URL address: https://www.trade-copier.com/webservice/
  • In your request, you must include your Auth-Username AND Auth-Token in the request Headers.
  • Only connection through SSL is supported.

2. Accounts

2.1. getAccounts

Get a full list of your account(s) existing in your Trade Copier cockpit

URL: https://www.trade-copier.com/webservice/account/getAccounts.php
The request may specify an optional filter object containing a single account_id that you want to select, or an array of IDs. If the filter is empty or absent, it will select all your accounts.

Response: JSON object list

Field Name Field Type Field Description
account_id string Unique identifier of the account
type int 0=Master or 1=Slave
name string Custom account name
broker string mt4, mt5, ctrader, fxcm_fc or lmax (always in lower case)
login string Your broker account login
account string Account name
password string The account's password
server string MT4: IG-DEMO, FxPro.com-Real02, Ava-Real 1, etc.
MT5: ActivTrades-Server, Binary.com-Server, FxPro-MT5, etc.
cTrader: leave blank
LMax Demo: https://web-order.london-demo.lmax.com
LMax Live: https://api.lmaxtrader.com
FXCM_FC: http://www.fxcorporate.com/Hosts.jsp
environment string Real or Demo
status int The account is 0=disabled, 1=enabled
state string Last state of the account: CONNECTED, DISCONNECTED, WRONG_CREDENTIALS, FAILED_MARGIN, ...
groupid string One of your existing templates's Id. Empty if none are assigned
subscription_key string Unique key of the subscription assigned to the account. Empty if none are assigned
subscription_name string Name of the subscription assigned to the account. Empty if none are assigned
expiration string Expiration date of the subscription assigned to the account. Empty if none are assigned
pending int Copy pending order is 0=disabled, 1=enabled
stop_loss int Copy StopLoss is 0=disabled, 1=enabled
take_profit int Copy TakeProfit is 0=disabled, 1=enabled
comment string Custom comment that appears in MT4, MT5 and cTrader  terminal trade comment
alert_email int Send warning email for account disconnection is 0=disabled, 1=enabled
alert_sms int Send warning sms for account disconnection is 0=disabled, 1=enabled
alert_email_failed int Send warning email for failed copied orders is 0=disabled, 1=enabled
alert_sms_failed int Send warning sms for failed copied orders is 0=disabled, 1=enabled
globalstoploss int Global account StopLoss is 0=disabled, 1=enabled
globalstoplosstype int Global account StopLoss is 0=Close Only, 1=Sell Out, 2=Frozen
globalstoplossvalue float Global account StopLoss
globatakeprofit int Global account TakeProfit is 0=disabled, 1=enabled
globaltakeprofitvalue float Global account TakeProfit
globaltakeprofittype int Global account TakeProfit is 0=Close Only, 1=Sell Out, 2=Frozen
balance string Updated after each trade and every 5 minutes. Balance should be used carefully since it is not updated regularly
equity string Updated after each trade and every 5 minutes. Equity should be used carefully since it is not updated regularly
free_margin string Updated after each trade and every 5 minutes. FreeMargin should be used carefully since it is not updated regularly
credit string Updated after each trade and every 5 minutes. Credit should be used carefully since it is not updated regularly
ccy string Account currency
mode int Accounting type: 0: Hedging, 1:Netting
open_trades int Number of open trades on the account
lastUpdate string Date and time of last update on the account
access_token string  Access token for ctrader
refresh_token string Refresh token for ctrader
expiry_token string Expiry token for ctrader
account string Account name for ctrader

PHP example

<?php

echo "<link rel='stylesheet' type='text/css' href='https://www.trade-copier.com/webservice/example.css'>";

$url="https://www.trade-copier.com/webservice/account/getAccounts.php";
$headers =  array(
	'Content-Type: application/x-www-form-urlencoded',
	'Auth-Username: username',
	'Auth-Token: key',
);

// Open connection
$ch = curl_init();

// Setting the options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$filter = ['account_id' => '190792'];
//$filter = ['account_id' => ['190792', '190793']];
//$filter = [];

curl_setopt($ch, CURLOPT_POST, count($filter));
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($filter));

// Execute request
$json = json_decode(curl_exec($ch));

// Close connection
curl_close($ch);

//We access the existing account(s) list
if(array_key_exists('accounts', $json))
{
	echo '<table id="api_data">';

	foreach($json->accounts as $row) {
		foreach($row as $key => $val) {
			echo '<th>'.$key.'</th>';
		}
		break;
	}

	foreach($json->accounts as $subscription)
	{
		echo '<tr>';
		foreach($subscription as $key => $val)
		{
			echo '<td>'.$val.'</td>';
		}
		echo '</tr>';
	}

	echo '</table>';
}
else
{
	//This is an error message that can be access like this:
	//echo $json->code." ".$json->error;
	echo json_encode($json);
}

?>
2.2. addAccount

Add a Master or a Slave account in your Trade Copier cockpit

URL: https://www.trade-copier.com/webservice/account/addAccount.php

Response: JSON object with the account_id unique identifier

Field NameField TypeField Description
type int 0=Master or 1=Slave
name string Custom account name
broker string ctrader, fxcm_fc or lmax (always in lower case)
login string Your broker account login
password string Your broker account password
server string cTrader: leave blank
LMax Demo: https://web-order.london-demo.lmax.com
LMax Live: https://api.lmaxtrader.com
FXCM_FC: http://www.fxcorporate.com/Hosts.jsp
environment string Real or Demo
status string The account is 0=disabled, 1=enabled
group string One of your existing group name or it can be empty.
subscription string Subscription name (Free V2, Light, Unlimited, Unlimited Pack (5), ...) and its expiration date
['name' => 'Unlimited Pack (5)', 'expiration_date' => '2019-03-10 19:10:43']
or "auto" => this automatically select an available subscription for this account.
pending string Copy pending order is 0=disabled, 1=enabled
stop_loss string Copy StopLoss is 0=disabled, 1=enabled
take_profit string Copy TakeProfit is 0=disabled, 1=enabled
comment string Custom comment that appears in cTrader  terminal trade comment. Only for cTrader
alert_email string Send warning email is 0=disabled, 1=enabled
alert_sms string Send warning sms is 0=disabled, 1=enabled
     

PHP example


<?php

	$url="https://www.trade-copier.com/webservice/account/addAccount.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);
	
	// Open connection
	$ch = curl_init();
	
	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	//We define the Risk Factor's group, you can get the existing groups with the "getGroups.php" webservice
	$group = '2Lots';//Group's name
	//$group = '';//No group
	
	//We define the subscription for the account, you can get available subscriptions with the "getSubscriptions.php" webservice
	$subscription = 'auto';//Automaticaly select an available subscription
	//$subscription = ['name' => 'Unlimited Pack (5)', 'expiration_date' => '2019-03-10 19:10:43'];//Subscription's name and expiration_date
	//$subscription = '';//No subscription
	
		
	// Adding data to POST
	$account = [
	  'type' => 1,//0=Master, 1=Slave
	  'name' => 'name',//Custom name for your account
	  'broker' => 'ctrader',//ctrader, lmax, fxcm_fc
	  'login' => 'login12',
	  'password' => 'password',
	  'server' => 'fxpro.com',
	  'environment' => 'Demo', //Demo, Real
	  'status' => '0',//The account is 0=disabled, 1=enabled
	  'group' => $group,//Always an EMPTY string for Master
	  'subscription' => $subscription,//Always an EMPTY string for Master.
	  'pending' => '0',//0=disabled, 1=enabled
	  'stop_loss' => '0',//0=disabled, 1=enabled
	  'take_profit' => '0',//0=disabled, 1=enabled
	  'comment' => '',
	  'alert_email' => '0',//0=disabled, 1=enabled
	  'alert_sms' => '0'//0=disabled, 1=enabled
	];

	//echo http_build_query($account);
	
	curl_setopt($ch, CURLOPT_POST, count($account));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($account));
			
	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);

	if(array_key_exists('account', $json))
	{
		//We access the added account data
		echo "New account added: ".$json->account->account_id." ".$json->account->name.
		" ".$json->account->login." ".$json->account->server;
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}
?>
                                                        
2.3. updateAccount

To update a Master or Slave account of your Trade Copier cockpit

URL: https://www.trade-copier.com/webservice/account/updateAccount.php

Response: JSON object with the account_id unique identifier

Fields noted with a * are optional

Field NameField TypeField Description
account_id string Account ID of the account that you want to delete
type* int 0=Master or 1=Slave
name* string Custom account name
broker* string ctrader, fxcm_fc or lmax (always in lower case)
login* string Your broker account login
password* string Your broker account password
server* string cTrader: leave blank
LMax Demo: https://web-order.london-demo.lmax.com
LMax Live: https://api.lmaxtrader.com
FXCM_FC: http://www.fxcorporate.com/Hosts.jsp
environment* string Real or Demo
status* string The account is 0=disabled, 1=enabled
group* string One of your existing group name or it can be empty.
subscription* string Subscription name (Free V2, Light, Unlimited, Unlimited Pack (5), ...) and its expiration date
['name' => 'Unlimited Pack (5)', 'expiration_date' => '2019-03-10 19:10:43']
"auto" => this automatically select an available subscription for this account.
pending* string Copy pending order is 0=disabled, 1=enabled
stop_loss* string Copy StopLoss is 0=disabled, 1=enabled
take_profit* string Copy TakeProfit is 0=disabled, 1=enabled
comment* string Custom comment that appears in cTrader  terminal trade comment. Only for cTrader
alert_email* string Send warning email is 0=disabled, 1=enabled
alert_sms* string Send warning sms is 0=disabled, 1=enabled
     

PHP example


<?php

	$url="https://www.trade-copier.com/webservice/account/updateAccount.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	//If needed, we update the Risk Factor's group, you can get the existing groups with the "getGroups.php" webservice
	$group = '2Lots';//Group's name
	//$group = '';//No group
	
	//If needed, we update the subscription for the account, you can get available subscriptions with the "getSubscriptions.php" webservice
	$subscription = 'auto';//Automaticaly select an available subscription
	//$subscription = ['name' => 'Free v1', 'expiration_date' => '0000-00-00 00:00:00'];
	//$subscription = "";//NULL string to remove the subscription
	
	// Account data to be updated
	$account = [
	  'account_id' => '41613',//Mandatory
	  'name' => 'nameZZ',
	  'broker' => 'ctrader',//ctrader, lmax, fxcm_fc
	  'login' => 'login111',
	  'password' => 'password',
	  'group' => $group,
	  'subscription' => $subscription,
	  'alert_sms' => '0'
	];

	curl_setopt($ch, CURLOPT_POST, count($account));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($account));
			
	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);

	//We access the updated account data
	if(array_key_exists('account', $json))
	{
		//We access the added account data
		echo "Account ".$json->account->account_id." updated: ".$json->account->name." ".$json->account->login." ".$json->account->server;
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}
?>
                                                        
2.4. deleteAccount

To delete a Master or Slave account from your Trade Copier cockpit

URL: https://www.trade-copier.com/webservice/account/deleteAccount.php

Response: JSON object with the account_id unique identifier

Field NameField TypeField Description
account_id string Account ID of the account that you want to delete

PHP example


<?php

	$url="https://www.trade-copier.com/webservice/account/deleteAccount.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	// Account ID to be removed
	$account = [
	  'account_id' => '41607'
	];

	curl_setopt($ch, CURLOPT_POST, count($account));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($account));
			
	// Execute request
	$json = json_decode(curl_exec($ch));
	
	// Close connection
	curl_close($ch);
	
	if(array_key_exists('account', $json))
	{
		//We access the deleted account data
		echo "Account ".$json->account->account_id." has been deleted!";
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        
2.5. getServerList

Get a full list of servers name that you can use based on your broker/technology

URL: https://www.trade-copier.com/webservice/account/getServersList.php
The request must contain a filter object containing the broker/technology for which you want to get the possible server name. It can be "fxcm_fc", "lmax", etc.

Response: JSON array

Field NameField TypeField Description
servers array Servers name array

PHP example


<?php

	$url="https://www.trade-copier.com/webservice/account/getServersList.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	$filter = ['broker' => 'lmax'];//lmax, fxcm_fc,...

	curl_setopt($ch, CURLOPT_POST, count($filter));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($filter));
	
	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);

	//We access the existing account(s) list
	if(array_key_exists('servers', $json))
	{
		echo "Servers list:";
		foreach($json->servers as $server)
		{
			echo $server."";
		}
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        

3. Subscriptions

2.1. getSubscriptions_v2

Get a full list of your active subscriptions

URL: https://www.trade-copier.com/webservice/subscription/getSubscriptions_v2.php

Response: JSON object {"subscriptions":"..." }:
Example: {"subscriptions":[{"name":"Flexible Pack","available":"1","expiration_date":"2019-03-10 19:10:43"},{"name":"Free v2","available":"1","expiration_date":"0000-00-00 00:00:00"}]}

Field NameField TypeField Description
subscriptions JSON object list  
-> name string Name of the subscription
-> expiration_date string Expiration date of the subscription
-> type string Subscription type. 0:master, 1:slave, 2:prepay, 3:add-on, 4:accounts (flexible pack)
->price string Subscription price
-> available_accounts string Number of remaining Slave and/or Master that you can add with this subscription
-> available_slaves string Number of remaining Slave that you can add with this subscription
-> available_masters string Number of remaining Master that you can add with this subscription
-> equinix string 0 = not available, 1 = available

PHP example


<?php

	echo "<link rel='stylesheet' type='text/css' href='https://www.trade-copier.com/webservice/example.css'>";
	
	$url="https://www.trade-copier.com/webservice/subscription/getSubscriptions_v2.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);
	
	//We access the existing Slaves subscription(s) list
	if(array_key_exists('subscriptions', $json))
	{
		echo '<table id="api_data">';
		
			foreach($json->subscriptions as $row) {
				foreach($row as $key => $val) {
					echo '<th>'.$key.'</th>';
				}
				break;
			}
			
			foreach($json->subscriptions as $subscription)
			{
				echo '<tr>';			
					foreach($subscription as $key => $val) 
					{
						echo '<td>'.$val.'</td>';
					}				
				echo '</tr>';
			}
		
		echo '</table>';
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        

4. Slave/Group Settings

4.1. getSettings

Get a full list of your Slave/Group Settings' existing in your trade copier cockpit

URL: https://www.trade-copier.com/webservice/settings/getSettings.php
The request may specify an optional filter object containing the slave_id/group_id and/or master_id

Response: JSON object list
Repsonse is a "settingslist" array of Slave/Group Settings optionally filtered by slave_id/group_id and/or master_id

Field NameField TypeField Description
slave_id string Slave account_id
group_id string Group id
master_id string Master account_id
risk_factor_value string Risk Factor value
risk_factor_type string Risk Factor type:
0: Auto Risk (Equity)
1: Auto Risk (Balance)
2: Auto Risk (Free Margin)
3: Multiplier (Notional)
11: Multiplier (Lot)
4: Fixed Lot
10: Fixed Units
5: Fixed Leverage (Equity)
6: Fixed Leverage (Balance)
7: Fixed Leverage (Free Margin)
max_order_size string Max order size in lot/volume
copier_status string -1=Close Only, 0=Frozen, 1=On, 2=Open Only

PHP example


<?php

	echo "<link rel='stylesheet' type='text/css' href='https://www.trade-copier.com/webservice/example.css'>";
	
	$url="https://www.trade-copier.com/webservice/settings/getSettings.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	// slave_id and master_id filter
	$filter = [
	  //'slave_id' => '29516',//Optional => Not defined to show the settings for all your Slaves
	  'group_id' => '3626',//Optional =>  Not defined to show the settings for all your Groups
	  //'master_id' => '',//Optional => Not defined to show the settings for all your Masters or emtpy String for settings that apply to "all your Masters"
	];

	curl_setopt($ch, CURLOPT_POST, count($filter));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($filter));
	
	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);
	
	//We access the existing symbolssetting(s) list
	if(array_key_exists('settingslist', $json))
	{
		echo '<table id="api_data">';
		
			foreach($json->settingslist as $row) {
				foreach($row as $key => $val) {
					echo '<th>'.$key.'</th>';
				}
				break;
			}
			
			foreach($json->settingslist as $setting)
			{
				echo '<tr>';			
					foreach($setting as $key => $val) 
					{
						echo '<td>'.$val.'</td>';
					}				
				echo '</tr>';
			}
		
		echo '</table>';
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        
4.2. setSettings

Set (add, update or remove) an Slave/Group Settings' list

URL: https://www.trade-copier.com/webservice/settings/setSettings.php
request: array of Slave/Group Settings object

Response: JSON object list with success code 200

Field NameField TypeField Description
slave_id string Slave account_id or not defined if you define a group_id
group_id string Group id or not defined if you define a slave_id
master_id string Master account_id or not defined if you want it to be applied to all your Masters
risk_factor_value string Risk Factor value or not defined
risk_factor_type string Risk Factor type:
0: Auto Risk (Equity)
1: Auto Risk (Balance)
2: Auto Risk (Free Margin)
3: Multiplier (Notional)
11: Multiplier (Lot)
4: Fixed Lot
10: Fixed Units
5: Fixed Leverage (Equity)
6: Fixed Leverage (Balance)
7: Fixed Leverage (Free Margin)
max_order_size string Max order size in lot/volume or not defined
copier_status string -1=Close Only, 0=Frozen, 1=On, 2=Open Only or not defined

PHP example


<?php

	echo "<link rel='stylesheet' type='text/css' href='https://www.trade-copier.com/webservice/example.css'>";
	
	$url="https://www.trade-copier.com/webservice/settings/setSettings.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	// Slave/Group Settings list to be added, updated or removed
	$settings = [
	  ['slave_id' => '29524', 'master_id' => '33934', 'risk_factor_value' => '0.11', 'risk_factor_type' => '3', 'max_order_size' => '1.23', 'copier_status' => '0'],
	  ['slave_id' => '29524', 'risk_factor_value' => '0.99', 'risk_factor_type' => '4', 'max_order_size' => '0.12', 'copier_status' => '1'],
	  ['group_id' => '4735', 'risk_factor_value' => '1.02', 'risk_factor_type' => '5', 'max_order_size' => '0.12'],
	];

	curl_setopt($ch, CURLOPT_POST, count($settings));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($settings));
	
	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);
	
	//If updated is successful, we use the getRiskFactors webservice to check the new value
	if(array_key_exists('success', $json))
	{
		echo $json->code."-".$json->success;
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        

5. Symbol Settings

5.1. getSymbolSettings

Get a full list of your Symbol Settings existing in your Trade Copier cockpit

URL: https://www.trade-copier.com/webservice/settings/getSymbolSettings.php
The request may specify an optional filter object containing the slave_id, group_id, master_id, symbol and/or symbol_master filters

Response: JSON object list
repsonse is a "symbolsettingslist" array of SymbolSettings optionally filtered by slave_id, group_id, master_id, symbol and/or symbol_master

Field NameField TypeField Description
slave_id string Slave account_id
group_id string Group_id
master_id string Master account_id
symbol string The slave or group symbol
symbol_master string The master symbol

PHP example


<?php
	
    echo "<link rel='stylesheet' type='text/css' href='https://www.trade-copier.com/webservice/example.css'>";
	
	$url="https://www.trade-copier.com/webservice/settings/getSymbolSettings.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);
	
	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	// slave_id, group_id, master_id, symbol and/or symbol_master filters
	$filter = [
		//'slave_id' => '29524',//Optional => Not defined to show the settings for all your Slaves
		//'group_id' => '538',//Optional =>  Not defined to show the settings for all your Groups		
		//'master_id' => '33934',//Optional => Not defined to show the settings for all your Masters or emtpy String for settings that apply to "all your Masters"	
		//'symbol' => 'XAUUSD',//Optional => Not defined for all
	    //'symbol_master' => 'GOLD',//Optional => Not defined for all
	];

	curl_setopt($ch, CURLOPT_POST, count($filter));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($filter));
	
	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);
	
	//We access the existing symbolssetting(s) list
	if(array_key_exists('symbolsettingslist', $json))
	{
		echo '<table id="api_data">';
		
			foreach($json->symbolsettingslist as $row) {
				foreach($row as $key => $val) {
					echo '<th>'.$key.'</th>';
				}
				break;
			}
			
			foreach($json->symbolsettingslist as $setting)
			{
				echo '<tr>';			
					foreach($setting as $key => $val) 
					{
						echo '<td>'.$val.'</td>';
					}				
				echo '</tr>';
			}
		
		echo '</table>';
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        
5.2. setSymbolSettings

Set (add, update or remove) a SymbolSettings' list

URL: https://www.trade-copier.com/webservice/settings/setSymbolSettings.php
request: array of SymbolSettings object

Response: JSON object list with success code 200

Field NameField TypeField Description
slave_id string Slave account_id or not defined if you define a group_id
group_id string Group id or not defined if you define a slave_id
master_id string Master account_id or not defined if you want it to be applied to all your Masters
symbol string The slave or group symbol or not defined
symbol_master string The master symbol or not defined if you do no define a master_id neither
risk_factor_value string Risk Factor value or not defined
risk_factor_type string Risk Factor type:
0: Auto Risk (Equity)
1: Auto Risk (Balance)
2: Auto Risk (Free Margin)
3: Multiplier (Notional)
11: Multiplier (Lot)
4: Fixed Lot
10: Fixed Units
5: Fixed Leverage (Equity)
6: Fixed Leverage (Balance)
7: Fixed Leverage (Free Margin)
max_order_size string Max order size in lot/volume or not defined
copier_status string -1=Close Only, 0=Frozen, 1=On, 2=Open Only or not defined

PHP example


<?php
	
	echo "<link rel='stylesheet' type='text/css' href='http://www.trade-copier.com/webservice/example.css'>";
	
	$url="https://www.trade-copier.com/webservice/settings/setSymbolSettings.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	// SymbolSettings list to be added or updated
	// To remove a SymbolSettings, please define (slave_id or group_id) and (symbol and/or (symbol_master and master_id)) and leave empty risk_factor_type, risk_factor_value, max_order_size and copier_status
	$riskFactors = [
	  [	
		'slave_id' => '29524',
		//'group_id' => '538', 
		'master_id' => '43765',
		'symbol' => 'EURUSD',
		'symbol_master' => 'EURUSDi',
		'risk_factor_type' => '7',
		'risk_factor_value' => '0.11',		
		//'max_order_size' => '1.23',
		'copier_status' => '1'
	  ],
	  [	
		//'slave_id' => '29524',
		'group_id' => '538',
		//'master_id' => '44625',
		'symbol' => 'GOLD',
		//'symbol_master' => '',
		//'risk_factor_type' => '4',
		//'risk_factor_value' => '0.99',
		//'max_order_size' => '3.21',
		'copier_status' => '0'
	  ],
	];

	curl_setopt($ch, CURLOPT_POST, count($riskFactors));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($riskFactors));
	
	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);
	
	//We check if the request is successful
	if(array_key_exists('success', $json))
	{
		echo $json->code."-".$json->success;
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        

6. Global Protection

6.1. getGlobalProtection

Get a full list of your Slave(s) Global Protection

URL: https://www.trade-copier.com/webservice/protection/getGlobalProtection.php
request: the request may specify an optional filter object containing the slave_id(s)

Response: JSON object list with success code 200

Field NameField TypeField Description
slave_id string Slave account_id
takeprofit_status string 0=disabled, 1=enabled
takeprofit_type string Protection type:
0: CloseOnly
1: SellOut
2: Frozen
takeprofit_value string Equity value above which it will trigger the GlobalProtection
stoploss_status string 0=disabled, 1=enabled
stoploss_type string Protection type:
0: CloseOnly
1: SellOut
2: Frozen
stoploss_value string Equity value below which it will trigger the GlobalProtection

PHP example


<?php

	echo "<link rel='stylesheet' type='text/css' href='https://www.trade-copier.com/webservice/example.css'>";
	
	$url="https://www.trade-copier.com/webservice/protection/getGlobalProtection.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	$filter = ['slave_id' => '29524'];//Optional => Not defined to show the settings for all your Slaves

	curl_setopt($ch, CURLOPT_POST, count($filter));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($filter));
	
	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);

	//We access the existing account(s) list
	if(array_key_exists('globalprotections', $json))
	{
		echo "Global Protection list:<BR>";
		echo '<table id="api_data">';
			
			echo '<th>slave_id</th><th>stoploss_status</th><th>stoploss_type</th><th>stoploss_value</th><th>takeprofit_status</th><th>takeprofit_type</th><th>takeprofit_value</th>';
			
			foreach($json->globalprotections as $protection)
			{
				echo '<tr>';
					echo '<td>'.$protection->slave_id.'</td><td>'.$protection->stoploss_status.'</td><td>'.$protection->stoploss_type.'</td><td>'.$protection->stoploss_value.'</td><td>'.$protection->takeprofit_status.'</td><td>'.$protection->takeprofit_type.'</td><td>'.$protection->takeprofit_value.'</td>';
				echo '</tr>';
			}
			
		echo '</table>';
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        
6.2. setGlobalProtection

Set (add, update or remove) the Global StopLoss and/or TakeProfit to protect the account equity.

URL: https://www.trade-copier.com/webservice/protection/setGlobalProtection.php
request: array of Slave(s) GlobalProtection object

Response: JSON object list with success code 200

Field NameField TypeField Description
slave_id string Slave account_id
takeprofit_status string 0=disabled, 1=enabled
takeprofit_type string Protection type:
0: CloseOnly
1: SellOut
2: Frozen
takeprofit_value string Equity value above which it will trigger the GlobalProtection
stoploss_status string 0=disabled, 1=enabled
stoploss_type string Protection type:
0: CloseOnly
1: SellOut
2: Frozen
stoploss_value string Equity value below which it will trigger the GlobalProtection

PHP example


<?php

	echo "<link rel='stylesheet' type='text/css' href='https://www.trade-copier.com/webservice/example.css'>";
	
	$url="https://www.trade-copier.com/webservice/protection/setGlobalProtection.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	// Slave(s) GlobalProtection list to be added, updated or removed
	$protections = [
	  ['slave_id' => '29517', 'stoploss_status' => '0', 'stoploss_type' => '0', 'stoploss_value' => '5000', 'takeprofit_status' => '1', 'takeprofit_type' => '3', 'takeprofit_value' => '3000'],
	  ['slave_id' => '29524', 'stoploss_status' => '0', 'stoploss_type' => '1', 'stoploss_value' => '6000', 'takeprofit_status' => '1', 'takeprofit_type' => '2', 'takeprofit_value' => '4000'],
	  ['slave_id' => '30649', 'stoploss_status' => '0', 'stoploss_type' => '2', 'stoploss_value' => '7000', 'takeprofit_status' => '1', 'takeprofit_type' => '1', 'takeprofit_value' => '5000'],
	];

	curl_setopt($ch, CURLOPT_POST, count($protections));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($protections));
	
	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);
	
	//If updated is successful, we use the getRiskFactors webservice to check the new value
	if(array_key_exists('success', $json))
	{
		echo $json->code."-".$json->success;
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        

7. Groups

7.1. getGroups

Get a full list of your Groups of Risk Factor(s) existing in your trade copier cockpit

URL: https://www.trade-copier.com/webservice/group/getGroups.php

Response: JSON object list

Field NameField TypeField Description
group_id string Group id
name string Group name

PHP example


<?php

	$url="https://www.trade-copier.com/webservice/group/getGroups.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);

	//We access the existing group(s) list
	if(array_key_exists('groups', $json))
	{
		echo "Groups list:<BR>";
		foreach($json->groups as $group)
		{
			echo $group->group_id." - ".$group->name."<BR>";
		}
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        

8. Positions

8.1. getOpenPositions

Get open positions filtered by "account_id", "from" and/or "to" date

URL: https://www.trade-copier.com/webservice/position/getOpenPositions.php
The request may specify an optional filter object containing the account_id, from and/or to date

Response: JSON object

Field NameField TypeField Description
account_id string Unique identifier of the "Slave" account
master_id string Unique identifier of the "Master" account
ticket string Trade identifier (is not globally unique, but it is unique per account_id)
ticketMaster string Master trade identifier. If equal to the ticket, it is a manual trade
openTime string Trade open time
side string Can be Buy, Sell, BuyLimit, SellLimit, BuyStop and SellStop
symbol string Instrument name
openPrice string  
stopPrice string  
limitPrice string  
stopLoss string  
takeProfit string  
amountLot string Amount expressed in lot, can vary from one broker/technology to another
quantityCcy string Quantity expressed in the account currency
swapCcy string Swap expressed in the account currency
ccy string Account currency

PHP example


<?php

	$url="https://www.trade-copier.com/webservice/position/getOpenPositions.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	
	$filter = ['account_id' => '42169', 'from' => '2017-06-09 09:48:58', 'to' => '2017-06-19 20:00:46'];
	//$filter = ['account_id' => '42169', 'from' => '2017-06-01 09:37:57'];
	//$filter = ['account_id' => '42169'];
	//$filter = [];

	curl_setopt($ch, CURLOPT_POST, count($filter));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($filter));

	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);

	//We access the open position(s) list
	if(array_key_exists('positions', $json))
	{
		echo "Open Positions list:<BR>";
		foreach($json->positions as $position)
		{
			echo $position->account_id." ".$position->ticket." ".$position->openTime." ".$position->side." ".$position->amountLot." ".$position->symbol." ".$position->openPrice." ".$position->stopPrice." ".$position->limitPrice." ".$position->stopLoss." ".$position->takeProfit."<BR>";
		}
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        
8.1. getClosedPositions

Get closed positions filtered by "account_id", "from" and/or "to" date

URL: https://www.trade-copier.com/webservice/position/getClosedPositions.php
The request may specify an optional filter object containing the account_id, from and/or to date

Response: JSON object (a maximum of 1'000 positions can be retrieved per request)

Field NameField TypeField Description
account_id string Unique identifier of the "Slave" account
master_id string Unique identifier of the "Master" account
ticket string Trade identifier (is not globally unique, but it is unique per account_id)
ticketMaster string Master trade identifier. If equal to the ticket, it is a manual trade
openTime string Trade open time
side string Can be Buy, Sell, BuyLimit, SellLimit, BuyStop and SellStop
symbol string Instrument name
openPrice string  
stopPrice string  
limitPrice string  
stopLoss string  
takeProfit string  
closeTime string Trade close time
closePrice string  
amountLot string Amount expressed in lot, can vary from one broker/technology to another
quantityCcy string Quantity expressed in the account currency
profitCcy string Profit expressed in the account currency
swap string Swap expressed in the account currency
ccy string Account currency
commissionBrokerCcy string Broker commission in the account currency

PHP example


<?php

	$url="https://www.trade-copier.com/webservice/position/getClosedPositions.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);

	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	
	$filter = ['account_id' => '42169', 'from' => '2017-06-09 09:48:58', 'to' => '2017-06-19 20:00:46'];
	//$filter = ['account_id' => '42169', 'from' => '2017-06-10 09:37:57'];
	//$filter = ['account_id' => '42169'];
	//$filter = [];
	
	curl_setopt($ch, CURLOPT_POST, count($filter));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($filter));

	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);

	//We access the closed position(s) list
	if(array_key_exists('positions', $json))
	{
		echo "Closed Positions list:<BR>";
		foreach($json->positions as $position)
		{
			echo $position->account_id." ".$position->ticket." ".$position->openTime." ".$position->side." ".$position->amountLot." ".$position->symbol." ".$position->openPrice." ".$position->stopPrice." ".$position->limitPrice." ".$position->stopLoss." ".$position->takeProfit." ".$position->closeTime." ".$position->closePrice." ".$position->profit_ccy." ".$position->ccy."<BR>";
		}
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>
                                                        

9. Orders

9.1. getOrders

Get orders filtered by "from" and/or "to" date

URL: https://www.trade-copier.com/webservice/position/getOrders.php
The request may specify an optional filter object containing master_id, account_id, error_only, from and/or to date. You can also limit the number of row in the result by adding a limit filter.

Response: JSON object (a maximum of 1'000 orders can be retrieved per request)

Field NameField TypeField Description
timestamp string Date/Time
master_id string Unique identifier of the "Master" account
ticketMaster string Master trade identifier.
account_id string Unique identifier of the "Slave" account
side string Can be Buy, Sell, BuyLimit, SellLimit, BuyStop and SellStop
action string Can be Open, Close, Close_Partial, Cancel and None
symbol string Instrument name
quantityOrder string Quantity requested for the order
stopLoss string StopLoss value of the initial order
takeProfit string TakeProfit value of the initial order
quantityExecuted string Quantity executed for the order
quantityExecutedEUR string Quantity executed expressed in EUR
quantityExecutedUSD string Quantity executed expressed in USD
priceExecuted string Price of the executed order
status_id string Status id code
statusName string Text of the status

PHP example


<?php

	echo "<link rel='stylesheet' type='text/css' href='https://www.trade-copier.com/webservice/example.css'>";

	$url="https://www.trade-copier.com/webservice/order/getOrders.php";
	$headers =  array(
		'Content-Type: application/x-www-form-urlencoded',
		'Auth-Username: username',
		'Auth-Token: key',
	);
	
	// Open connection
	$ch = curl_init();

	// Setting the options
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	
    $filter = ['master_id' => '58989','account_id' => '72496', 'from' => '2019-03-26 09:48:58', 'to' => '2019-04-10 20:00:46'];
	//$filter = ['from' => '2019-03-26 09:48:58', 'to' => '2019-04-10 20:00:46'];
	//$filter = ['from' => '2019-03-26 09:48:58'];
	//$filter = ['to' => '2019-03-27 20:00:46'];
	//$filter = ['error_only' => '0', 'limit' => '10'];
	//$filter = [];
	
	curl_setopt($ch, CURLOPT_POST, count($filter));
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($filter));

	// Execute request
	$json = json_decode(curl_exec($ch));

	// Close connection
	curl_close($ch);

	//We access the closed position(s) list
	if(array_key_exists('orders', $json))
	{
		echo '<table id="api_data">';
			
			echo '<th>timestamp</th><th>master_id</th><th>ticketMaster</th><th>account_id</th><th>side</th><th>action</th><th>symbol</th><th>quantityOrder</th><th>quantityExecuted</th><th>status_id</th><th>statusName</th>';
			
			foreach($json->orders as $order)
			{
				echo '<tr>';
					echo '<td>'.$order->timestamp.'</td><td>'.$order->master_id.'</td><td>'.$order->ticketMaster.'</td><td>'.$order->account_id.'</td><td>'.$order->side.'</td><td>'.$order->action.'</td><td>'.$order->symbol.'</td><td>'.$order->quantityOrder.'</td><td>'.$order->quantityExecuted.'</td><td>'.$order->status_id.'</td><td>'.$order->statusName.'</td>';
				echo '</tr>';
			}
			
		echo '</table>';
	}
	else
	{
		//This is an error message that can be access like this:
		//echo $json->code." ".$json->error;
		echo json_encode($json);
	}

?>​
                                                        
Duplikium Trade Copier

HOME

Register for FREE

Login

Cockpit

HOW TO

Get started!

Tutorials

FAQs

Web Service API

FEATURES

Key Features

Supported Brokers

cTrader Brokers

FXCM

LMAX

Screenshots

Videos

Our Solutions

PRICING

Free

Flexible Pack

Prepay

Add-ons

MARGIN TRADING DISCLAIMER
Trading foreign exchange and CFD's on margin carries a high level of risk, and may not be suitable for all investors. The high degree of leverage can work against you as well as for you. Before deciding to invest in foreign exchange you should carefully consider your investment objectives, level of experience, and risk appetite. The possibility exists that you could sustain a loss of some or all of your initial investment and therefore you should not invest money that you cannot afford to lose. You should be aware of all the risks associated with foreign exchange and CFD's trading, and seek advice from an independent financial advisor if you have any doubts.

SITE DISCLAIMER
Trades signals sent through this website are solely those of the customers quoted. They do not represent the opinions of Duplikium on whether to buy, sell or hold particular investments.
While Duplikium try to ensure that all of the information provided on this website is kept up-to-date and accurate, we accept no responsibility for any use made of the information provided. You agree not to hold Duplikium liable for decisions and trades that are based on information from this website. Duplikium cannot be held responsible for the software, broker or other issues that result in the failure to execute a trade command. It is inherent upon you, the client, to make sure you are aware of when trades have been taken, adjusted or closed.
The purchase, sale or advice regarding a particular investment can only be performed by a licensed Broker/Dealer. Neither our website nor our associates involved in the production and maintenance of these products or this website is a registered Broker/Dealer or Investment Advisor in any State or Federally-sanctioned jurisdiction. All purchasers of products referenced at this site are encouraged to consult with a licensed representative of their choice regarding any particular trade or trading strategy. No representation is being made that any account will or is likely to achieve profits or losses similar to those discussed on this website.
Please note that the servers names listed on this website are not a recommendation nor an advertising made by Duplikium. Duplikium is totally independent and has no partnership with any brokers.You have to make your own due diligence when selecting a broker.

SOFTWARE DISCLAIMER
Although rare, internet-based trading can involve technical risks related, but not limited to, Internet connection, software or hardware failures or delays. Duplikium implements a backup system to minimize such occurrences, but is not responsible for any losses or missed trading opportunities as a result of communication failures, disruptions or unexpected system failures.

TRADEMARKS DISCLAIMER
All product and company names are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
Any product names, logos, brands, and other trademarks or images featured or referred to within the trade-copier.com or duplikium.com website are the property of their respective trademark holders. These trademark holders are not affiliated with Duplikium, our products, or our websites. They do not sponsor or endorse Duplikium or any of our products.
Duplikium Copyright 2013-2022

Privacy Policy | Terms of Use | Business Conditions

www.trade-copier.com | www.duplikium.com | info@duplikium.com
Duplikium Sàrl registered in Switzerland under CHE-433.550.864, who is registered address is rue de la Serre 4, 2000 Neuchâtel, Switzerland