Setup

GF API Documentation
FIX Versions and Messages

FIX Order Server supports FIX 4.4. Only messages and fields relevant to communicating with GAIN Futures FIX Order Server and its clients are included in this document. Additional fields will be ignored and unsupported field values will be rejected. This document is intended to complement the published FIX protocol specification, available at http://fixprotocol.org/ All counter-party applications will be expected to comply with the FIX protocol for all session level behavior and should default to the FIX defined formats and values unless otherwise stated.

Times of Operation

Production and demo: Sunday 4:45 pm ET - Friday 6:00 pm ET

Stage environment (API): Sunday 4:45 pm ET - Saturday 6:00 pm ET

FIX Order Server stores information about Client Order IDs (ClOrdID) to block requests with duplicated ClOrdID. This information will be cleaned up every day at 6:00 pm ET.

GAIN Futures FIX Order Server has a maintenance window between 5:00 pm ET and 6:00 pm ET each day. During maintenance window, connections are allowed but the server can be restarted without report.

GAIN Futures FIX Order Server will not accept connections made outside of session time.

FIX Sequence Numbers

GAIN Futures FIX Order Server resets sequence numbers when FIX session starts on Sunday at 4:45 pm ET.

FIX Header

BeginStringFIX.4.4
TargetCompID

Production environment: OEC

Test environment: OEC_TEST

SenderCompIDOEC username

Connections

Stage environment: api.gainfutures.com, port 9300 (unencrypted); api.gainfutures.com, port 9400 (over SSL)

Demo environment: sim.gainfutures.com, port 9300 (unencrypted)

Production environment: prod.gainfutures.com, port 9400 (over SSL)

Target host for SSL encryption - gainfutures.com

UUID

The UUID identifies the connecting application. GAIN Futures allows one connection per user per UUID. You can obtain a UUID from Customer Service.

Drop Copy

GAIN Futures FIX Order Server sends trades that are performed on behalf of the customer via other GAIN Futures connections as a Trade Execution Report with SolicitedFlag(377)=N. Default value (when missing) of SolicitedFlag(377) field is Y. For backward compatibility, field UnsolicitedIndicator(325)=Y is also provided.

Offline Reports

Execution reports with trades and order status updates that occurred during client was not logged in to GAIN Futures FIX Order Server are reported automatically with 'Y' in PossResend(97) field after successful Logon.

Order Status Request is supported too.

Relations with GF API

All orders submitted via GAIN Futures FIX API are available via GF API and software that uses GF API to connect to GAIN Futures servers. Username that is used as a SenderCompID can be used as a login username in GAIN Futures Trader

In NewOrderSingle message, user can specify a value in Text field, which will be stored in order properties and available for the user via GF API, so the user can distinguish orders sent via GAIN Futures FIX API from the orders sent via GF API. For orders, sent via GAIN Futures FIX API, the property Comments has the following format:

<OECFIX OUID=XXX TEXT='YYY'>

where YYY is the same value specified in the Text(58) field of an order. If the value contains apostrophe (') symbols, they will be escaped to ' value. Examples:

Text=ABC123 will be shown as <OECFIX OUID=XXX TEXT='ABC123'>

Text=123'456.789 will be shown as <OECFIX OUID=XXX TEXT='123'456.789'>

In ExecutionReport messages, ExecID(17) field can contain one of the following unique values: