TP ICAP Trade Connector
Features
fix-tpicapConnector KeyNotes
Connectivity
Stunnel configuration:
[TPICAP UAT]
client = yes
accept = 11111
connect = trading-gateway.uat.helix.tpicapcloud.com:11111
verify = 0
PostOnly Orders
PostOnly order is exposed as separate order type: OrdType(40) = R.
PostOnly order type is not applicable for order replacement request.
PostOnly flag, which is passed in order attributes (18=6), has the priority over request's order type. Therefore, the order type, passed in the request, will be overridden if PostOnly flag is present.
Expire Time
It is allowed to pass ExpireTime(126) but it is only valid when TimeInForce is set to DAY or GTC.
ExpireTime is applicable both for order submission and replacement requests.
The connector allows to send Good Till Date orders but TimeInForce(56) will be implicitly set to GTC.
Symbology
Currency pairs in BASE/QUOTE format, e.g. XBT/USD, ETH/USD.
Schedule
Fusion Digital Assets will be extending its Trading Hours to 24 hours Monday to Friday as per the below:
| Description | Details | Start Time | End Time |
|---|---|---|---|
| API Connectivity | API Connectivity permissible during these hours. | Saturday 08:30 UTC | Saturday (Following week) 00:30 UTC |
| Trading Session | Order Acceptance and Trading. | Monday 00:00 UTC | Saturday 00:00 UTC |
| Settlement Cycle | Settlement Obligations provided to Clients and Clients deliver to TP ICAP. | Daily (Monday – Friday) 08:00 UTC | Daily (Monday – Friday) 16:00 UTC |
| Settlement Cycle | TP ICAP reconcile and instruct delivery to Clients. | Daily (Monday – Friday) 16:00 UTC | Daily (Monday – Friday) 18:00 UTC |
Configuration
Connector settings
| Parameter | Default Value | Description |
|---|---|---|
| password | Password. | |
| account | Default Account. | |
| useAccount | false | When enabled account will be passed to and received from FIX messages. |
| selfTradePrevention | Used to select the order to cancel if Self-Trade Prevention is enabled. Valid values: CANCEL_RESTING, CANCEL_TAKING, DECREMENT_RESTING. | |
| selfTradePreventionLevel | Used to select the matching level within the Participant/Margin/Trading Account hierarchy if Self-Match Prevention is enabled. Valid values: MARGIN_ACCOUNT, PARTICIPANT, TRADING_ACCOUNT, COMP_ID, USER. | |
| ➡️ Parties | List of the parties involved into a trading request. | |
| parties[].partyId | Mandatory. Party identifier. Custodian name (Code). | |
| parties[].partyIdSource | Mandatory. Valid values are: D - PROPRIETARY_CUSTOM_CODE. | |
| parties[].partyRole | Mandatory. Used to mark the party as the custodian. | |
| ➡️ MiFID | MiFID Settings. | |
| mifid.positionAccountCode | MiFID II – Used to indicate Execution decision within Firm Code (Trader or Algorithm). Max 30 characters. | |
| mifid.customerCode | MiFID II – Used to indicate Client Identification Code. Max 30 characters. | |
| mifid.investmentCode | MiFID II – Used to indicate Investment decision within Firm Code (Trader or Algorithm). Max 30 characters. | |
| mifid.nonExecBrokerCode | MiFID II – Used to indicate Non-executing Broker Code. Max 20 characters. | |
| mifid.algoIndicator | NO | MiFID II – Used to indicate Algo Trading. Valid values: NO, YES_EXECUTION, YES_EXEC_AND_INVESTMENT |
| mifid.deferredIndicator | NO | MiFID II – Used to indicate Algo Trading. Valid values: NO - Not deferred. Deferral is not yet supported. |
| mifid.commodityIndicator | NOT_COMMODITY_HEDGE | MiFID II – Used to indicate if a Commodities trade is for hedging purposes. Valid values: NOT_COMMODITY_HEDGE, COMMODITY_HEDGE. |
| mifid.orderOrigination | YES | MiFID II – used if order placed via direct electronic access. Valid values: NO, YES. |
Supported order attributes
| Key | Description |
|---|---|
| 1 | Account(1). |
| 18 | Post Only. Allowed values: 6 - Post Only order (aka Resting Limit Order Only). |
| 126 | ExpireTime(126). Format: Unix Epoch timestamp in milliseconds. |
| 20002,7002 | MiFID II – Used to indicate Execution decision within Firm Code (Trader or Algorithm). Max 30 characters. |
| 20003,7003 | MiFID II – Used to indicate Client Identification Code. Max 30 characters. |
| 20005,7005 | MiFID II – Used to indicate Investment decision within Firm Code (Trader or Algorithm). Max 30 characters. |
| 20006,7006 | MiFID II – Used to indicate Non-executing Broker Code. Max 20 characters. |
| 20007,7007 | MiFID II – Used to indicate Algo Trading. Valid values: 0 = No (default), 1 = Yes (Execution), 2 = Yes (Exec and Investment decision). |
| 20008,7008 | MiFID II – Used to indicate Algo Trading. Valid values: 0 = Not deferred (default). Deferral is not yet supported. |
| 20009,7009 | MiFID II – Used to indicate if a Commodities trade is for hedging purposes. Valid values: 0 = Not commodity hedge (default), 1 = Commodity hedge. |
| 1724 | MiFID II – Used if order placed via direct electronic access. Valid values: 99 = No, 5 = Yes (default). |
| 20010,7010 | Used to select the order to cancel if Self-Match Prevention is enabled. Valid values: Resting Order (default) = R, Taking (Aggressive) Order = T, Decrement Resting = D. |
| 20011,7011 | Used to select the matching level within the Participant/Margin/Trading Account hierarchy if Self-Trade Prevention is enabled. Valid values: Margin Account (default) = M, Participant = P, Trading Account = T, CompID = C, User (email) = U. |
Config sample
connectors {
TPICAP : ${template.connector.fix.tpicap} {
settings {
host = "<STUNNEL_HOST>"
port = <STUNNEL_PORT>
password = "<PASSWORD>"
account = "<ACCOUNT>"
# Parties group is required
parties = [
{
partyId = "CLOB"
partyRole = 16
partyIdSource = D
}
]
}
}
}