The Lab

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


PartyIDs

Please refer to either FXall QuickTrade - PartyIDs, or Whisperer Enterprise - PartyIDs for the full Enterprise table across all venues.


Regulatory Fields

Please refer to either FXall QuickTrade - Regulatory Details, or Whisperer Enterprise - Regulatory Fields for the full Enterprise table across all venues.


Passthru Fields

Please refer to either FXall QuickTrade - Passthru Details, or Whisperer Enterprise - Passthru Fields for the full Enterprise table across all venues.

WhiteOak will be connecting to ABN AMRO through Fidessa to trade Futures on ICE and LME.

All the certification and tests are limited to ICE and LME exchanges only. New exchanges and their supported Order Types will need to be certified with Fidessa.

Certification Document: 

View file
nameWhiteOak F&O Certification Test Plan-C9A0E09255B6D52C.xlsx
height250

Supported Message Types

...

MultilegOrderCancelReplaceRequest (AC) 

...

OrderCancelRequest (F)

...

ExecutionAck (BN)

...

Indicating DontKnow on a trade.

ExecutionAck message with ExecAckStatus = Rejected

...

Reject on an OrderCancelReplaceRequest or OrderCancelRequest

Supported Order Types and TIF

The following Order Types are certified with Fidessa 

...

Supported Order Types and Time in Force values on ICE and LME 

https://library.tradingtechnologies.com/user-setup/ice-supported-order-types.html

https://library.tradingtechnologies.com/user-setup/lme-supported-order-types.html

Testing in UAT:

Below are some notes to get started on testing in UAT up and running. The following products are available in UAT to test. 

Exchange symbols (Tag55).

ICE Europe

  1. Brent Crude = BRN
  2. GasOil = G
  3. Robusta Coffee = RC
  4. White Sugar = W
  5. London Cocoa = C

ICE US

  1. FCOJ = OJ
  2. Cotton No.2 = CT

LME

  1. AA = AAD
  2. Silver = AGD
  3. Aluminium = AHD
  4. Gold = AUD
  5. Copper = CAD
  6. Lead = PBD
  7. Nickel = NID
  8. Zinc = ZSD

Additional Notes:

ICE

Website: https://www.theice.com/

Look up the products at the website to get the details of ExchangeSymbol(Logical Name) , MIC code, Contract Size, Current trading price, Maturity Date.

Example link of Brent Crude : https://www.theice.com/products/219/Brent-Crude-Futures/data?marketId=5049351

LME

Website: https://www.lme.com/

Look up the products on the website for details such as exchange symbol, mic code = XLME, , contract size, current trading price are available.

Link for Aluminium : https://www.lme.com/Metals/Non-ferrous/Aluminium#tabIndex=0

Sample SBE Messages:

New Order :

{ header={ name=NewOrderMultileg, templateId=(301) "NewOrderMultileg", schemaId=5, version=18320, msgSeqNum=5, sendingTime="20200326-07:56:34.533000000", encodedLength=28, blockLength=332, messageStart=1179469389, messageLength=609 } , body={ NewOrderMultileg.TradingFlags(43): { PossDupFlag=false, }, NewOrderMultileg.OrigSendingTime(122)="20200326-07:56:34.532000000", NewOrderMultileg.TransactTime(60)="20200326-07:56:34.532000000", NewOrderMultileg.OrderRequestID(2422)="", NewOrderMultileg.QuoteID(117)="", NewOrderMultileg.ClOrdID(11)="TEST_AB_1_524819", NewOrderMultileg.OrdType(40)=Limit, NewOrderMultileg.TimeInForce(59)=DAY, NewOrderMultileg.Symbol(55)="G", NewOrderMultileg.SecurityType(167)=FUT, NewOrderMultileg.SecurityGroup(1151)="", NewOrderMultileg.Price(44).mantissa=5335, NewOrderMultileg.Price(44).exponent=-1, NewOrderMultileg.RegulatoryBodies(20021): { SEF=false, EMIR=true, MiFID=true, SFTR=true, }, NewOrderMultileg.HasExtendedOrderFields(20005)=0, NewOrderMultileg.NoPartyIDs(453)=3, NewOrderMultileg.NoPartyIDs[0].PartyRole(452)=ExecutionVenue, NewOrderMultileg.NoPartyIDs[0].PartyID(448)="IFEU", NewOrderMultileg.NoPartyIDs[1].PartyRole(452)=OrderOriginationTrader, NewOrderMultileg.NoPartyIDs[1].PartyID(448)="TESTTRADER", NewOrderMultileg.NoPartyIDs[2].PartyRole(452)=OrderOriginationFirm, NewOrderMultileg.NoPartyIDs[2].PartyID(448)="WOCF", NewOrderMultileg.NoLegs(555)=1, NewOrderMultileg.NoLegs[0].LegSecurityType(609)=FUT, NewOrderMultileg.NoLegs[0].LegSide(624)=Buy, NewOrderMultileg.NoLegs[0].LegCurrency(556)="USD", NewOrderMultileg.NoLegs[0].LegPrice(566).mantissa=5335, NewOrderMultileg.NoLegs[0].LegPrice(566).exponent=-1, NewOrderMultileg.NoLegs[0].LegOrderQty(685).mantissa=2, NewOrderMultileg.NoLegs[0].LegOrderQty(685).exponent=0, NewOrderMultileg.NoLegs[0].LegSettlType(587)=YYYYMM, NewOrderMultileg.NoLegs[0].LegSettlDate(588)="20200801" (raw:18475), NewOrderMultileg.NoLegs[0].HasLegNDFFields(20010)=0, NewOrderMultileg.NoLegs[0].NoLegAllocs(670)=1, NewOrderMultileg.NoLegs[0].NoLegAllocs[0].LegAllocAccount(671)="1515", NewOrderMultileg.NoLegs[0].NoLegAllocs[0].LegIndividualAllocID(672)="0", NewOrderMultileg.NoLegs[0].NoLegAllocs[0].LegAllocQty(673).mantissa=2, NewOrderMultileg.NoLegs[0].NoLegAllocs[0].LegAllocQty(673).exponent=0, NewOrderMultileg.NoLegs[0].NoLegAllocs[0].NoAllocRegulatoryFields(20080)=0, NewOrderMultileg.NoLegs[0].NoLegAllocs[0].NoAllocPassthruFields(20070)=0, NewOrderMultileg.NoLegs[0].NoLegRegulatoryFields(20060)=0, NewOrderMultileg.NoLegs[0].NoLegPassthruFields(20050)=0, NewOrderMultileg.NoBodyRegulatoryFields(20040)=2, NewOrderMultileg.NoBodyRegulatoryFields[0].BodyRegulatoryKey(20041)=MiFIDExecutingDecisionMakerAsAlgorithm, NewOrderMultileg.NoBodyRegulatoryFields[0].BodyRegulatoryValue(20042)="test", NewOrderMultileg.NoBodyRegulatoryFields[1].BodyRegulatoryKey(20041)=MiFIDTradingCapacity, NewOrderMultileg.NoBodyRegulatoryFields[1].BodyRegulatoryValue(20042)="DEAL", NewOrderMultileg.NoBodyPassthruFields(20030)=1, NewOrderMultileg.NoBodyPassthruFields[0].BodyPassthruKey(20031)="PositionEffect", NewOrderMultileg.NoBodyPassthruFields[0].BodyPassthruValue(20032)="C", NewOrderMultileg.NoHops(627)=0, NewOrderMultileg. } }

Amend:

{ header={ name=MultilegOrderCancelRep
laceRequest, templateId=(302) "MultilegOrderCancelReplaceRequest", schemaId=5, version=18320, msgSeqNum=6, sendingTime="20200324-10:57:31.147000000", encodedLength=28, blockLength=268, messageStart=
1179469389, messageLength=454 } , body={ MultilegOrderCancelReplaceRequest.TradingFlags(43): { PossDupFlag=false, }, MultilegOrderCancelReplaceRequest.OrigSendingTime(122)="20200324-10:57:31.14600
0000", MultilegOrderCancelReplaceRequest.TransactTime(60)="20200324-10:57:31.146000000", MultilegOrderCancelReplaceRequest.ClOrdID(11)="TEST_G_32_129731", MultilegOrderCancelReplaceRequest.OrigClOrd
ID(41)="TEST_AB_32_71303", MultilegOrderCancelReplaceRequest.OrderID(37)="00000017479XONC1", MultilegOrderCancelReplaceRequest.OrdType(40)=StopLimit, MultilegOrderCancelReplaceRequest.TimeInForce(59
)=DAY, MultilegOrderCancelReplaceRequest.Symbol(55)="G", MultilegOrderCancelReplaceRequest.SecurityType(167)=FUT, MultilegOrderCancelReplaceRequest.Price(44).mantissa=5475, MultilegOrderCancelReplac
eRequest.Price(44).exponent=-1, MultilegOrderCancelReplaceRequest.RegulatoryBodies(20021): { SEF=false, EMIR=false, MiFID=false, SFTR=false, }, MultilegOrderCancelReplaceRequest.HasExtendedOrde
rFields(20005)=1, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].EffectiveTime(168)="19700101-00:00:00.000000000", MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].ExpireTime
(126)="19700101-00:00:00.000000000", MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].ExposureDuration(1629)=NULL_UINT32, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].StopP
x(99).mantissa=5475, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].StopPx(99).exponent=-1, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].MinQty(110).mantissa=NULL_INT64,
MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].MinQty(110).exponent=0, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].MaxShow(210).mantissa=NULL_INT64, MultilegOrderCancelR
eplaceRequest.HasExtendedOrderFields[0].MaxShow(210).exponent=0, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].DiscretionOffsetValue(389).mantissa=NULL_INT64, MultilegOrderCancelReplac
eRequest.HasExtendedOrderFields[0].DiscretionOffsetValue(389).exponent=0, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].PegPriceType(1094)=, MultilegOrderCancelReplaceRequest.HasExtend
edOrderFields[0].PegOffsetValue(211).mantissa=NULL_INT64, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].PegOffsetValue(211).exponent=0, MultilegOrderCancelReplaceRequest.HasExtendedOrd
erFields[0].NoStrategyParameters(957)=0, MultilegOrderCancelReplaceRequest.NoPartyIDs(453)=3, MultilegOrderCancelReplaceRequest.NoPartyIDs[0].PartyRole(452)=ExecutionVenue, MultilegOrderCancelReplac
eRequest.NoPartyIDs[0].PartyID(448)="IFEU", MultilegOrderCancelReplaceRequest.NoPartyIDs[1].PartyRole(452)=OrderOriginationTrader, MultilegOrderCancelReplaceRequest.NoPartyIDs[1].PartyID(448)="TESTT
RADER", MultilegOrderCancelReplaceRequest.NoPartyIDs[2].PartyRole(452)=OrderOriginationFirm, MultilegOrderCancelReplaceRequest.NoPartyIDs[2].PartyID(448)="WOCF", MultilegOrderCancelReplaceRequest.No
Legs(555)=1, MultilegOrderCancelReplaceRequest.NoLegs[0].LegSecurityType(609)=, MultilegOrderCancelReplaceRequest.NoLegs[0].LegSide(624)=Buy, MultilegOrderCancelReplaceRequest.NoLegs[0].LegCurrency(
556)="", MultilegOrderCancelReplaceRequest.NoLegs[0].LegPrice(566).mantissa=5475, MultilegOrderCancelReplaceRequest.NoLegs[0].LegPrice(566).exponent=-1, MultilegOrderCancelReplaceRequest.NoLegs[0].L
egOrderQty(685).mantissa=2, MultilegOrderCancelReplaceRequest.NoLegs[0].LegOrderQty(685).exponent=0, MultilegOrderCancelReplaceRequest.NoLegs[0].LegSettlType(587)=YYYYMM, MultilegOrderCancelReplaceR
equest.NoLegs[0].LegSettlDate(588)="20200801" (raw:18475), MultilegOrderCancelReplaceRequest.NoLegs[0].HasLegNDFFields(20010)=0, MultilegOrderCancelReplaceRequest.NoLegs[0].NoLegRegulatoryFields(200
60)=0, MultilegOrderCancelReplaceRequest.NoLegs[0].NoLegPassthruFields(20050)=0, MultilegOrderCancelReplaceRequest.NoBodyRegulatoryFields(20040)=0, MultilegOrderCancelReplaceRequest.NoBodyPassthruFi
elds(20030)=1, MultilegOrderCancelReplaceRequest.NoBodyPassthruFields[0].BodyPassthruKey(20031)="PositionEffect", MultilegOrderCancelReplaceRequest.NoBodyPassthruFields[0].BodyPassthruValue(20032)="
C", MultilegOrderCancelReplaceRequest. } }

Cancel:

{ header={ name=OrderCancelRequest, te
mplateId=(303) "OrderCancelRequest", schemaId=5, version=18320, msgSeqNum=8, sendingTime="20200324-08:12:19.457000000", encodedLength=28, blockLength=248, messageStart=1179469389, messageLength=307
} , body={ OrderCancelRequest.TradingFlags(43): { PossDupFlag=false, }, OrderCancelRequest.OrigSendingTime(122)="20200324-08:12:19.457000000", OrderCancelRequest.TransactTime(60)="20200324-08:12:1
9.457000000", OrderCancelRequest.ClOrdID(11)="TEST_F_8_450296", OrderCancelRequest.OrigClOrdID(41)="TEST_AB_8_403812", OrderCancelRequest.OrderID(37)="00000017414XONC1", OrderCancelRequest.Symbol(55
)="G", OrderCancelRequest.NoPartyIDs(453)=3, OrderCancelRequest.NoPartyIDs[0].PartyRole(452)=ExecutionVenue, OrderCancelRequest.NoPartyIDs[0].PartyID(448)="IFEU", OrderCancelRequest.NoPartyIDs[1].Pa
rtyRole(452)=OrderOriginationTrader, OrderCancelRequest.NoPartyIDs[1].PartyID(448)="TESTTRADER", OrderCancelRequest.NoPartyIDs[2].PartyRole(452)=OrderOriginationFirm, OrderCancelRequest.NoPartyIDs[2
].PartyID(448)="WOCF", OrderCancelRequest. } }

ExecutionAck (DontKnow Trade):

...