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.
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.
GAIN Futures FIX Order Server resets sequence numbers when FIX session starts on Sunday at 4:45 pm ET.
BeginString | FIX.4.4 |
TargetCompID | Production environment: OEC Test environment: OEC_TEST |
SenderCompID | OEC username |
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
The UUID identifies the connecting application. GAIN Futures allows one connection per user per UUID. You can obtain a UUID from Customer Service.
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.
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.
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:
If ExecutionReport is a trade (ExecType(150)=TRADE), then ExecID(17) is a fill ID of corresponding fill in GF API
If ExecutionReport is an order status, then ExecID(17) is an order state ID of corresponding order state in GF API
Otherwise, ExecID(17) is a synthetically-generated value with "OECFIX:" prefix