EBS Adapter

Using the Adapter

The Spotfire Streaming Adapter for ICAP/EBS enables a StreamBase application to connect to an ICAP/EBS trading venue, and to exchange FIX messages with it.

Because this adapter uses the FIX protocol to communicate with the EBS venue, its user-visible functionality is nearly identical to that of the Spotfire Streaming FIX adapter. See the FIX Adapter page for primary instructions on configuring and using the EBS adapter.

The EBS adapter has the following differences, compared to the FIX adapter:

  • User Logon Values:

    The EBS venue requires a username and password to be included when logging in along with several additional parameters. The following table defines these logon-related parameters that must be present in configuration file used by the adapter:

    Parameter Description
    CstmApplVerID Contains the custom application version ID used in logging in to the EBS venue. As of January 28, 2011, the only supported value is 1.3, the default value if this line is not present in the configuration file.
    Username Contains the username of the account being used to access the EBS venue.
    Password Contains the initial or current password of the account being used to access the EBS venue. The adapter initially attempts to logon to the EBS venue using this password. If this fails, the adapter emits a warning and attempts to use the NewPassword value instead.
    NewPassword Contains the new password of the account being used to access the EBS venue. When the initial password expires, the adapter sends a message to the EBS venue to change the password to value specified by NewPassword, logs on using the new password, and emits a message indicating the password has been changed. At this point, the Password parameter in the configuration file should be replaced with the value specified by NewPassword, and NewPassword should be set to a different new password. Until Password and NewPassword are updated, subsequent logons generate a warning attempting to use the obsolete Password value and then use the password specified by NewPassword.
    UserData.AutoCancelDuplSession Contains Y or N to indicate whether an existing EBS session for the same user should be cancelled before the new logon is accepted. If AutoCancelDuplSession is false and an EBS session already exists for this user, the logon fails.
    UserData.SendConfirmedDeals Contains Y or N to indicate whether the EBS venue should send trade capture alert messages (MsgType=AE, MatchStatus=2) in response to matched buy or sell orders.
    UserData.LargeDifferenceCheck Contains Y or N to indicate whether the EBS venue should reject a bid price that varies (higher or lower) from the current Dealable Best Bid by more than the large difference pips for the currency pair. Also rejected is an offer price that varies (higher or lower) from the current Dealable Best Offer by more than the large difference pips for the currency pair. If Large Difference check is disabled, no restriction in effect and order accepted.
    UserData.PriceCheck Contains Y or N to indicate whether the EBS venue performs a check to determine if the price is acceptable and not inverted. In the ICAP FX Spot trading system, this check is known as “Bid Greater than Offer,” but it applies to both sides of an order. (Refer to the EBS FX Spot Dealing Rules for more details.)
    UserData.WideSpreadCheck Contains Y or N to indicate whether the EBS venue ensures that a bid price less than the current Dealable Best Offer by more than the wide spread pips is rejected, and an offer price that exceeds the current Dealable Best Bid by more than the wide spread pips is rejected. If Wide Spread is disabled, no restriction is in effect and the order accepted.
    UserData.LocalPriceDisplay Contains Y or N to indicate whether local bid and offer prices are displayed in Market Views for the EBS client. If disabled, local bid and offer prices are suppressed. The local price and trader ID are replaced with “NoPrice”. This parameter only affects the information shown in the market update to the client.
    UserData.HideMyPrices Contains Y or N to indicate whether the trader ID will not appear to other traders on the floor. If another trader on the same floor has this parameter enabled, his Trader ID will not appear in market view updates. This feature is only in effect if the TFA has already allowed any trader on the floor to select this option.
    UserData.AllowFixedDateNDFs Contains Y or N to indicate whether to request the Ai Server to provide details regarding tradeable Fixed Date NDFs in the Logon Response message.
    UserData.name=value Adds a new entry to the NoUserData repeating group of a Logon Request message. For example, the line UserData.OrderThroughput=10 would add an entry with UserDataName of OrderThroughput and UserDataValue of 10.
  • Additional Settings:

    In addition, you must add the following settings to your engine's configuration file:

    • For QuickFIX/J, add these to either to the [DEFAULT] or session-specific section of the configuration file:

      • DefaultApplVerID=FIX.5.0

      • BeginString=FIXT.1.1

    • For StreamBaseFIX, make sure the <begin-string> element of your EBS session in the configuration file has a value of FIXT.1.1 and the <version> element is set to FIX.5.0.

Here is an example of the above settings used in the context of a QuickFIX/J configuration file:

#
# EBS adapter configuration file for QuickFIX/J
#
[default]
ConnectionType=initiator
ResetOnLogon=Y
StartTime=00:00:00
EndTime=00:00:00
DefaultApplVerID=FIX.5.0
AppDataDictionary=EBSQFJDictionary.xml
# This prevents excessive memory usage over time.
# See http://n2.nabble.com/limiting-memory-usage-of-FileStore-(patch)-td839881.html 
# for details.
FileStoreMaxCachedMsgs=0

[session]
BeginString=FIXT.1.1
SenderCompID=EBS_Initiator
TargetCompID=EBS_Acceptor
SocketConnectHost=EBSHostname
SocketConnectPort=4340
HeartBtInt=1
FileLogPath=logs/EBSAdapter
FileStorePath=store/EBSAdapter

#
# User login properties
#
CstmApplVerID=1.3
Username=MyUsername
Password=MyCurrentPassword
NewPassword=MyNewPassword

# Note: the "UserData." prefix is optional in the following property names. 
# However, this prefix may be required for user login properties added to 
# the EBS Ai FIX spec in the future.
UserData.AutoCancelDuplSession=Y
UserData.SendConfirmedDeals=Y
UserData.LargeDifferenceCheck=Y
UserData.PriceCheck=Y
UserData.WideSpreadCheck=Y
UserData.LocalPriceDisplay=Y
UserData.HideMyPrices=Y
UserData.AllowFixedDateNDFs=Y
#UserData.OrderThroughput=1
#UserData.dealcode=ABCD

Here are the same settings in the context of a StreamBaseFIX configuration file:

<?xml version="1.0" encoding="UTF-8"?>
<sessions>
  <session name="MySession">
    <version>FIX.5.0</version>
    <begin-string>FIXT.1.1</begin-string>
    
    <sender-comp-id>EBS_Initiator</sender-comp-id>
    <target-comp-id>EBS_Acceptor</target-comp-id>
    
    <acceptor-hostname>EBSHostname</acceptor-hostname>
    <port>4340</port>
    
    <initiator>true</initiator>
    <reset-on-logon>true</reset-on-logon>
    <dictionary></dictionary>
    <heartbeat-interval>1</heartbeat-interval>
    <useDateMilliseconds>true</useDateMilliseconds>
    
    <cstm-appl-ver-id>1.3</cstm-appl-ver-id>
    <username>MyUsername</username>
    <password>MyCurrentPassword</password>
    <new-password>MyNewPassword</new-password>
    
    <user-data-list>
      <user-data name="AutoCancelDuplSession" value="Y" />
      <user-data name="SendConfirmedDeals" value="Y" />
      <user-data name="LargeDifferenceCheck" value="Y" />
      <user-data name="PriceCheck" value="Y" />
      <user-data name="WideSpreadCheck" value="Y" />
      <user-data name="LocalPriceDisplay" value="Y" />
      <user-data name="HideMyPrices" value="Y" />
      <user-data name="AllowFixedDateNDFs" value="Y" />
      <!--
      <user-data name="OrderThroughput" value="1" />
      <user-data name="dealcode" value="ABCD" />
      -->
    </user-data-list>
    
  </session>
</sessions>

As included in StreamBase software, this adapter can use the QuickFIX/J FIX engine and the StreamBase® High-Performance FIX Engine. The QuickFIX/J FIX engine is included in Spotfire StreamBase distributions. The StreamBase High-Performance FIX Engine is available as a separate product. Contact product Support for additional information.