Dukascopy FIX API. Programming Guide. Revision 8.0.1

Similar documents
FIX Specification for MarketData (FIX BookFeed) Programming Reference. Version 3.3

TQ-LENS Dark Liquidity Aggregation Service

FIX DROP RASH Format - ETMF Updated March 5 th,2015

Forwards & NDFs FIX MarketData Specification (FIX Bookfeed) Programming Reference

Trade Feed FIX Specification Programming Reference

FIX Protocol. Version 1.3. Revised Feb 10, 2014

NASDAQ Options FIX System

BTS FIX Sell-Side Gateway

CHX Direct Access Server (DAS) Link Specification

Introduction to ITG POSIT FIX Protocol

OTC Link FIX Messaging Service FIXIE Trade

Turquoise Derivatives FIX 4.2 Business Design Guide

Technical Specifications February FIX 4.2 Protocol Specification Guide. Version 4.8

BTS 2 Technical Guide #5. BTS2 FIX Specification on Market Data Handling Market Trade Message (MsgType = X, MDEntryType = 2)

OTC Link FIX Volume Feed FIXIE Feed

I D E M M I G R A T I O N T O S O L A. SOLA FIX Business Design Guide

FIX Interface Specification

Forwards & NDFs FIX Order Entry Specification Programming Reference

FIX Proxy Specification-v5.1.5 Programming Reference Nov 21, 2017

LMEselect 9.1 FIX Specification

FBMS FIX Direct Specification. For use with FIX Protocol Version 4.2/4.3. Version: Title: FBMS FIX Specification Page 1 of 46

Nasdaq CXC Limited FIX 4.2 Application Notes

LMEselect 9.2 FIX Specification

LMEselect 9.4 FIX Specification

FIX Certification Test Cases Guide

A Trader's Guide to the FIX Protocol

FIX Interface Version 1.0 Updated March 15, 2018

Bats Europe FIX Specification

UBS MTF Trading Notice Rules of Engagement Update - Tag 15

UBS MTF Market Notice Post-Session Order Expiry

OTC Link FIX Quotation Service FIXIE Quote

Derivatives FX Fixed Income

Contents 1. Login Layout Settings DEFAULTS CONFIRMATIONS ENVIRONMENT CHARTS

Borsa Italiana. MIT502 - Guide to Application Certification MIT502 - Guide to Application Certification. Issue 7.1 June 2017

BM&FBOVESPA Electronic Link (BELL) Financial Information exchange (FIX) Rules of Engagement. Derivatives FX

NOM and BX Options FIX System

INET FIX Interface Specification Version 4.2 Updated March 15, 2018

Procedure for cancelling working orders automatically with the Cancel on Disconnect functionality activated (hereinafter the Procedure )

US Options FIX Specification. Version 2.4.7

Empanelment Checklist- ATS

INET FIX Interface Specification - ETMF Updated March 5 th, 2015

London Stock Exchange

Turquoise. TQ201 - FIX 5.0 Trading Gateway. Issue A (Turquoise Lit Auctions ) 1 December 2017

Trading activity performance agreement.

ISE, GEMX, & MRX FIX INET Specifications VERSION NOVEMBER 13, 2017

SERVICE AND TECHNICAL DESCRIPTION. Guide to the FIX 5.0 Interface to TradElect

Equity Futures Enhancements

US Equities/Options Web Port Controls Specification

PMXQ is the non-tradable, physically-deliverable future, tied directly to PJM Western Hub Real-Time Peak Financial Futures

Cboe US Equities FIX Specification

BCS FIX 4.4 PROTOCOL SPECIFICATION ORDER ROUTING FOR FIXED INCOME MARKET

Genium INET PRM User's Guide

US Equities/Options Web Port Controls Specification

SSEOMS Customer Specification 4.2 MiFID II Extension Flat Tags

Aliceblue Mobile App. User Manual

Nasdaq CXC Limited. CHIXMMD 1.1 Multicast Feed Specification

User Guide 24 May 2016 Copyright GMO-Z.com Forex HK Ltd. All rights reserved.

WESTERNPIPS TRADER 3.9

New Trading Platform Customer FAQ s

PROTRADE February 2017

Johannesburg Stock Exchange

EntryPoint: Error Codes. Derivatives Equities. System/Component. Version: Last modified: 11/09/2017

Cboe Summary Depth Feed Specification. Version 1.0.2

SSEOMS Customer FIX Specification 4.2 MiFID Extension with Repeating Group Tags

DotEx International Limited

Mobile Forex trading with TradeRoom Mini

Protocol Specification

NFX TradeGuard User's Guide

Cboe Europe TRF FIX Specification

Nasdaq Precise User Guide. VERSION 1.0 July 9, 2018

Regulations of trading operations BT Technologies LTD

Firm Administrator Dashboard User Manual. 20 Dec 2017

META TRADER 5 MOBILE (ANDROID)

THE NIGERIAN STOCK EXCHANGE

Turquoise. TQ301 Native Trading Gateway. Issue A (Turquoise Lit Auctions ) 1 December 2017

ORDER EXECUTION POLICY

Terms of Business for ECN Accounts

THE NIGERIAN STOCK EXCHANGE

Neovest 5.0. Order Entry. For Windows NT/2000/XP

FpML Payload Definition for IRS & CDS (Pre-Trade)

T7 Release 6.0. Enhanced Trading Interface (ETI) Manual. Production Version. ETI Version: 6.0. Version: 1.2

Version 1.2. May 18, TRACE C&A FIX Specification ver 1.2 1

LOGIN. Tap on the Remember Me button to save the username information. For subsequent login, you only need to enter the password

Nasdaq Dubai Trading Manual Equities

Order Execution Policy

Nasdaq Nordic INET Pre-Trade Risk Management Service Guide 2.8

Terms of Business for PRO.ECN.MT4 Accounts

Options Spreads and Combinations

API Programming Guide Date: 01/14/2013

BTS Orders and trades register layouts Borsa Italiana and ETLX markets

NYSE LIFFE US NOTICE No. 17/2013

Terms of Business for PRO.ECN.MT4 Account

Terms of Business for ECN.MT4 & NDD.MT4

Regulations for trading operations

+44 (0)

Moscow Exchange Market Data Multicast FIX/FAST Platform

NLX TRADING PROCEDURES. Version 1.8 (September 2016)

MT5 PRO ACCOUNT TERMS OF BUSINESS

FxPro Financial Services Ltd. Order Execution Policy

Technical Specification November Reconciliation Files

Transcription:

Dukascopy FIX API Programming Guide Revision 8.0. Updates: ExpireTime for Stop and Stop Limit orders MktData, Data Feed interface, Trading interface, New order single, info

CONTENTS:. INTRODUCTION 2. OVERALL DESCRIPTION 3. MESSAGE FLOW 4. DATA FEED INTERFACE 5. TRADING INTERFACE 3 4 6 7 9

. Introduction. General Information Dukascopy FIX API is based on FIX4.4 protocol. The API is used to receive a real-time data feed, submit orders, set / modify / cancel orders, and receive automated notifications of trading activities. Dukascopy follows the International Organization for Standardization (ISO) currency pair symbol convention of CCY/CCY2. Limit for max orders per second is 6. Limit for max open positions is 00. page 3

2. Overall 2. Connection Schema Both clients and Dukascopy FIX engines communicate using SSL-encrypted TCP sockets. No special SSL certificates needed for now. Client can use either resource provided by FIX engine or using SSL tunneling. The SSL-tunneling functionality is provided by freely-available open source products. The time of client's machine should be synchronized with Dukascopy FIX server. Dukascopy uses GMT time as a base. Incoming connection is identified by the IP address of the system where client's application is running. There are two FIX connections per client which are used for the FIX interface: one for data feed and one for Trading. In order to connect to Dukascopy FIX API server, user must obtain from Dukascopy: TargetCompId two SenderCompId username password Client must connect to Dukascopy FIX API server from previously agreed IP addresses and ports. The following system messages are used: Logon a message sent by a client to initiate a FIX session to Dukascopy. The Logon message establishes the communication session, authenticates the connecting client, and initializes the message sequence number. FIX session logon message type A should be the first message sent by FIX API client to the server, after establishing network connection. Note, that password in the client's logon message should match the expected value, otherwise the session will be terminated. page 4

Logon Message Fields 98 08 4 3 4 name EncryptMethod HeartBtInt ResetSeqNumFlag Username Password This field specifies the method of encryption. Messages are always uncrypted Heartbeat interval is in seconds. The heartbeat interval is driven by the FIX client. Default value is 30 seconds Indicates that the both sides of the FIX session should reset sequence numbers. Should be 'Y' - yes The username provided by Dukascopy The password provided by Dukascopy Logon message is needed both for Data feed session and trading session. In case of unsuccessful Logon, FIX server will send Logout message (MsgType=35). Heartbeat a message sent by Dukascopy during periods of application inactivity to ensure connection validity. The FIX client will automatically respond to the heartbeat messages upon receipt. Resend Request a message that can be sent by either Dukascopy or a client, to request certain messages for resending. The resend is used when gaps are detected in the sequence numbering, message losing, or during the initialization process. Logout a message warns about the normal termination of the trading session. Sessions terminated without a Logout message will be considered an abnormal condition. The Dukascopy FIX gateway treats a client as logged out whenever the communication session is dropped. Client is disconnected if session is not restored in 2 hours. page 5

3. Message Flow The following page describes typical message flows. 3. Message Flow Matrix (FIX 4.4) API Client Direction Dukascopy Comments Market Data Request (Subscribe) Market Data Request (Unsubscr) New Order Single (Market, Limit, Stop or Quote) Market Data Request Reject Market Data Snapshot Quote Status Report..n Market Data Requests If not a valid request Streaming prices for subscribed symbols Information about current status of instruments Client sends unsubscribe request Client sends an Order (Market, Immediate or Cancel, Limit, Stop or Quote) Order Cancel Request Client sends order cancel request to cancel pending limit orders or executing quote orders Order Cancel / Replace Request Client sends order cancel request to edit pending limit orders or executing quote orders Execution Report Order Acknowledged/Rejected (OrdStatus) OrderMassStatus Request Client sends request to resend all pending orders and info about currently opened positions Notification Text information about system events and order execution process Info Request Instrument Position Info Info Information about currently opened positions Client sends a request for the account details Text information regarding user account 3.2 FIX 4.4 Messages Format All message formats meet the FIX 4.4 specification. All fields required by FIX are required by Dukascopy API, and the order must be according to the FIX specification. All messages must have all required FIX header / footer fields, BeginString, BodyLength, MsgType, SenderCompID, TargetCompID, MsgSeqNum, SendingTime, and CheckSum in their appropriate places according to the FIX 4.4 specification. page 6

4. Data Feed interface 4. Market Data Request (MsgType = V) User must send market data request for subscription or un-subscription to / from data feed. TimeInForce field is optional and used only for Fill or Kill data feed subscription. 262 263 264 265 267 46 59 name MDReqID Subscription RequestType MarketDepth MDUpdateType NoMDEntryTypes NoRelatedSym (Instrument block) TimeInForce Identifier of request. Set by client. «Snapshot + Updates (Subscribe)» and «Disable previous Snapshot + Update Request (Unsubscribe)» is supported '' Top of Book '2'.. '5' Number of feed level Full Refresh (0) is supported only Must contain both MDEntryType (269) Bid (0) and Offer () Must be set to ONE (or all) instrument only Currency pair symbol ('EUR/USD' for example) for subscription to the instruments must be set. Valid Values: '4' Fill or Kill (FOK) Use this field only in case if you want to subscribe for Fill or Kill data feed 4.2 Market Data - Snapshot/full Refresh (MsgType =W) As a response to «Market Data request» Market Data Snapshot / Full Refresh starts sending data to client. 'TimeInForce ' field indicates subscription for Fill of Kill data feed. 268 269 270 27 59 273 name (Instrument block) NoMDEntries MDEntryType MDEntryPx MDEntrySize TimeInForce MDEntryTime Currency pair for which the market data applies. 'EUR/USD' for example Number of entries(mdentrytype) in Market Data message(market depth) Bid(0) or offer() Price of current bid or offer Value of current bid or offer Valid Values: '4' Fill or Kill (FOK) This field indicates subscription for Fill or Kill data feed. Time of Market Data Entry page 7

4.3 Quote Status Report (MsgType = AI) The message is used to deliver information about current status of instrument. Dukascopy API server will automatically send those messages without request; client doesn't need to subscribe for receiving this information. Use this message to define available instruments. 7 537 name QuoteID QuoteType Instrument code Currency pair symbol. 'EUR/USD' for example Trade status of current instrument. Can be Tradeable () and Restricted Tradeable (2) 4.4 Market Data Request Reject (MsgType =Y) If a Market Data Request is not accepted, Dukascopy will send a FIX 4.4 Market Data Request Reject. 62 28 name MDReqID MDReqRejReason Must refer to the MDReqID (262) of the request. Folowing values can be set: '0' Unknown symbol '4' Unsupported SubscriptionReq '5' Unsupported MarketDepth '6' Unsupported MDUpdateType '8' Unsupported MDEntryType page 8

5. Trading Interface After client successfully logged into a FIX API server, the server automatically sends to client Execution Reports about orders in pending or executing state. 5. Execution Report If an order has been partially filled, then for each remaining order execution, an execution report will be sent to a client, showing the current executed amount in the CumQty field. 37 7 39 50 59 4 5 38 54 40 6 26 60 name OrderID ClOrdID ExecID OrdStatus ExecType TimeInForce CumQty LeavesQty OrderQty Side OrdType AvgPx ExpireTime TransactTime OrderID of order. Set by Dukascopy FIX API Identifier of order. Set by client Unique OrderID of execution. Set by Dukascopy FIX API. For partially filled orders API server sends execution report for each execution with unique ExecID & same OrderID Following order states are supported: '2' Filled (if partly too) '4' Canceled '8' Rejected 'A' Pending New (Order has been received by FIX system but not yet accepted for execution) 'B' Calculated (sent to execution) To get current status of order use OrdStatus. ExecType always set to 'I' - Order Status Currency pair symbol. 'EUR/USD' for example '' Good Till Cancel (GTC) '3' Immediate or Cancel (IOC) the sort of Limit order '4' Fill or Kill (FOK) execution without partial lls '6' Good till date (GTD) Currently executed amount Remained quantity for further execution Initially requested order amount '' Buy '2' Sell '7' Undisclosed (OrdStatus '4' Canceled or '8' Rejected) '' Market '2' Limit (slippage is not considered) '3' Stop (Stop-Limit if slippage is specified) 'Q' Quote (Dukascopy specic) in this case 59 is not considered 'Z' Only for instrument exposure closing Price at which the trade was executed Valid only if OrdType is Q (quote), or OrdType is '2'; '3' and TimeInForce = '6' Time of execution report. Sets by Dukascopy FIX API page 9

92 2 3 70 03 544 name LastRpt Requested Commission CommType Slippage OrdRejReason CashMargin Only for reports with 'reject' state! Value 'FALSE ' will be set in case if the order will be resubmitted External account ID. This field is used only for multi accounts connection Commission of execution Commission type. Provided only type '3' - absolute, in account currency Used only for Market and Stop orders. Defines the maximum allowed slippage in pips. The minimum half a pip step is allowed (i.e. 3 or 3.5 is accepted, 3.2 is not accepted). If slippage is not defined, the order will be placed based on a default slippage value Relevant if 'OrdStatus ' is Rejected. '3' Order Exceeds Limit '99' Other The field is set only in case of Margin Call trade. Valid value: '3' Margin Close 5.2 New Order - Single (MsgType =D) Market, Limit, Immediate or Cancel, Stop and Quote orders are supported. In case of Limit and Quote orders, an order will be executed when market price is equal or better than requested price. Market order will be executed by the best available market price. 44 40 59 38 54 60 26 70 name ClOrdID Price OrdType TimeInForce OrderQty Side TransactTime ExpireTime Slippage Unique identifier for the order as assigned by client Price at which the trade was requested. Do not set for market orders '' Market '2' Limit (slippage is not considered) '3' Stop (Stop-Limit if slippage is specified) 'Q' Quote (Dukascopy specic) in this case 59 is not considered 'Z' Only for instrument exposure closing '' Good Till Cancel (GTC) '3' Immediate or Cancel (IOC) the sort of Limit order '4' Fill or Kill (FOK) execution without partial fills '6' Good Till Date (GTD) enables Expire Time setting for Stop Limit & stop orders Currency pair symbol. 'EUR/USD' for example Requested order amount '' Buy (Bid for OrdType = Quote) '2' Sell (Offer for OrdType = Quote) Time when this order request was initiated/released by the trader or trading system Valid only if OrdType is Q (quote), or OrdType is '2';'3' and TimeInForce = '6' Used only for Market and Stop orders. Defines the maximum allowed slippage in pips. The minimum half a pip step is allowed (i.e. 3 or 3.5 is accepted, 3.2 is not accepted). If slippage is not defined, the order will be placed based on a default slippage value page 0

5.3 Order Cancel Request (MsgType = F) Please note that only limit/stop orders in 'Pending New' status and quote orders in Calculated status can be canceled. 37 4 name OrderID OrigClOrdID ClOrdID Unique OrderID of order that should be canceled ClOrdID of the previous non-rejected order Unique account ID of request Currency pair symbol. 'EUR/USD' for example 5.4 Order Cancel/Replace Request (MsgType = G) Use this message for updating order details. Please note that limit/stop orders in 'Pending New' status and quote orders in Calculated status can be updated only. 37 4 38 44 54 26 40 70 59 name OrderID OrigClOrdID ClOrdID OrderQty Price Slide ExpireTime OrdType Slippage TimeInForce Unique OrderID of order that should be updated ClOrdID of the previous non-rejected order Unique account ID of request New requested amount of order New stop price at which the trade was requested New side value New expiration time External account ID (only for multi accounts. Ignored for a single connection) '' Market '2' Limit (slippage is not considered) '3' Stop (Stop-Limit if slippage is specified) 'Q' Quote (Dukascopy specic) in this case 59 is not considered 'Z' Only for instrument exposure closing Used only for Market and Stop orders. Defines the maximum allowed slippage in pips. The minimum half a pip step is allowed (i.e. 3 or 3.5 is accepted, 3.2 is not accepted). If slippage is not defined, the order will be placed based on a default slippage value Currency pair symbol. 'EUR/USD' for example '4' Fill or Kill (FOK) Set this field only in case if you operate with Fill or Kill orders! page

5.5 Notification (MsgType = 'U') The message is used for client information about current account state. 7003 58 7004 name NotifPriority Text Name '0' INFO '' WARNING '2' ERROR '3' ALERT Text explanation of reason for rejection SenderCompId of the client 5.6 Info Request (MsgType = 'U7') Client requests information about current account state. field in InfoRequest message is mandatory for multi user accounts; For a single connection blank InfoRequest message must be sent. name 5.7 Info (MsgType = 'U2') The message is used for client information about current account state. 7005 7006 7007 5 7004 name Leverage UsableMargin Equity Currency Name Leverage of account Current margin of account Current equity of account Currency of account SenderCompId of the client 5.8 Instrument Position Info (MsgType = U3 ) The message is used for client information about currently opened positions. 5 7008 7004 name Amount Name Trading instrument Current position amount (positive value for long, negative for short ) Name SenderCompId of the client page 2

5.9 OrderMassStatusRequest (MsgType = AF ) Client requests orders in pending status and info about currently opened positions. Report will be sent by server for each pending order and each position. 585 584 name MassStatusReqType MassStatusReqID 7' Status for all orders is supported only 5.0 Activation Request (MsgType = U5 ) This type of request should be implemented only for Multiple s. It's used for information purposes about the accounts under one accounts' group. 5. Activation Response (MsgType = U6 ) This type of response is used only for Multiple s. It's sent by Dukascopy as a reply to Activation Request. 3 name MassStatusReqType Username (login) of the account External account ID 5.2 Overnight Report (MsgType = U4 ) This message is sent each day after settlement, informing a client about overnights result. 5 7008 name Amount External client's ID or ID in case of single user Currency Difference between secondary amounts of the two swap legs page 3