Skip to main content

TP ICAP Trade Connector

Features

fix-tpicapConnector Key
Instruments
FX
Request Types
SUBMITCANCELREPLACE
Order Types
MARKETLIMIT
Time In Force
GTCIOCFOKDAYGTD
Order ID Mapper
SEQUENCE
Order Status Request
Cancel On Disconnect
Commission
Post Only
Fast Cancel
Fast Replace

Notes

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.

note

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:

DescriptionDetailsStart TimeEnd Time
API ConnectivityAPI Connectivity permissible during these hours.Saturday 08:30 UTCSaturday (Following week) 00:30 UTC
Trading SessionOrder Acceptance and Trading.Monday 00:00 UTCSaturday 00:00 UTC
Settlement CycleSettlement Obligations provided to Clients and Clients deliver to TP ICAP.Daily (Monday – Friday) 08:00 UTCDaily (Monday – Friday) 16:00 UTC
Settlement CycleTP ICAP reconcile and instruct delivery to Clients.Daily (Monday – Friday) 16:00 UTCDaily (Monday – Friday) 18:00 UTC

Configuration

Connector settings

ParameterDefault ValueDescription
passwordPassword.
accountDefault Account.
useAccountfalseWhen enabled account will be passed to and received from FIX messages.
selfTradePreventionUsed to select the order to cancel if Self-Trade Prevention is enabled. Valid values: CANCEL_RESTING, CANCEL_TAKING, DECREMENT_RESTING.
selfTradePreventionLevelUsed 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.
➡️ PartiesList of the parties involved into a trading request.
parties[].partyIdMandatory. Party identifier. Custodian name (Code).
parties[].partyIdSourceMandatory. Valid values are: D - PROPRIETARY_CUSTOM_CODE.
parties[].partyRoleMandatory. Used to mark the party as the custodian.
➡️ MiFIDMiFID Settings.
mifid.positionAccountCodeMiFID II – Used to indicate Execution decision within Firm Code (Trader or Algorithm). Max 30 characters.
mifid.customerCodeMiFID II – Used to indicate Client Identification Code. Max 30 characters.
mifid.investmentCodeMiFID II – Used to indicate Investment decision within Firm Code (Trader or Algorithm). Max 30 characters.
mifid.nonExecBrokerCodeMiFID II – Used to indicate Non-executing Broker Code. Max 20 characters.
mifid.algoIndicatorNOMiFID II – Used to indicate Algo Trading. Valid values: NO, YES_EXECUTION, YES_EXEC_AND_INVESTMENT
mifid.deferredIndicatorNOMiFID II – Used to indicate Algo Trading. Valid values: NO - Not deferred. Deferral is not yet supported.
mifid.commodityIndicatorNOT_COMMODITY_HEDGEMiFID II – Used to indicate if a Commodities trade is for hedging purposes. Valid values: NOT_COMMODITY_HEDGE, COMMODITY_HEDGE.
mifid.orderOriginationYESMiFID II – used if order placed via direct electronic access. Valid values: NO, YES.

Supported order attributes

KeyDescription
1Account(1).
18Post Only. Allowed values: 6 - Post Only order (aka Resting Limit Order Only).
126ExpireTime(126). Format: Unix Epoch timestamp in milliseconds.
20002,7002MiFID II – Used to indicate Execution decision within Firm Code (Trader or Algorithm). Max 30 characters.
20003,7003MiFID II – Used to indicate Client Identification Code. Max 30 characters.
20005,7005MiFID II – Used to indicate Investment decision within Firm Code (Trader or Algorithm). Max 30 characters.
20006,7006MiFID II – Used to indicate Non-executing Broker Code. Max 20 characters.
20007,7007MiFID II – Used to indicate Algo Trading. Valid values: 0 = No (default), 1 = Yes (Execution), 2 = Yes (Exec and Investment decision).
20008,7008MiFID II – Used to indicate Algo Trading. Valid values: 0 = Not deferred (default). Deferral is not yet supported.
20009,7009MiFID II – Used to indicate if a Commodities trade is for hedging purposes. Valid values: 0 = Not commodity hedge (default), 1 = Commodity hedge.
1724MiFID II – Used if order placed via direct electronic access. Valid values: 99 = No, 5 = Yes (default).
20010,7010Used 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,7011Used 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
}
]
}
}
}