FIX Trading API

Market Data

Subscription

Success

Client sends market data subscription request for EURUSD

8=FIX.4.3 9=118 35=R 34=2 49=FIXTEST 50=FX 52=20170330-18:35:08.631 
56=SAXOQUOTE_TEST 131=EUR/USD1490898908621 146=1 55=EUR/USD 460=4 10=075 

Saxo begins streaming mass quotes

  8=FIX.4.3 9=768 35=i 49=SAXOQUOTE_TEST 56=FIXTEST 34=4 57=FX 
  52=20170330-18:35:08.665 369=5 131=EUR/USD1490898908621 
  117=5L3-EURUSD-2017-3-30:18.35.8:52 537=1 296=1 302=1 304=4 295=4 
  299=5L3-EURUSD-2017-3-30:18.35.8:52-0-5000000 55=EUR/USD 460=4 132=1.06912 
  133=1.06929 134=5000000 135=5000000 60=20170330-18:35:08.665 64=20170403 
  299=5L3-EURUSD-2017-3-30:18.35.8:52-1-10000000 55=EUR/USD 460=4 132=1.06911 
  133=1.06931 134=10000000 135=10000000 60=20170330-18:35:08.665 64=20170403 
  299=5L3-EURUSD-2017-3-30:18.35.8:52-2-20000000 55=EUR/USD 460=4 132=1.06902 
  133=1.06937 134=20000000 135=20000000 60=20170330-18:35:08.665 64=20170403 
  299=5L3-EURUSD-2017-3-30:18.35.8:52-3-25000000 55=EUR/USD 460=4 132=1.06898 
  133=1.06943 134=25000000 135=25000000 60=20170330-18:35:08.665 64=20170403 
  10=087 

Failure

Client sends market data subscription request

8=FIX.4.3 9=118 35=R 34=3 49=FIXTEST 50=FX 52=20170330-18:35:08.632 
56=SAXOQUOTE_TEST 131=XXX/YYY1490898908632 146=1 55=XXX/YYY 460=4 10=197 

Saxo rejects request (symbol does not exist)

8=FIX.4.3 9=163 35=AG 49=SAXOQUOTE_TEST 56=FIXTEST 34=3 57=FX 
52=20170330-18:35:08.604 369=3 131=XXX/YYY1490898908632 658=1 146=1 
55=XXX/YYY 58=3: Currency 'XXX/YYY' not valid ;  10=105 

Orders

Market Order

Success

Client sends market order

8=FIX.4.3 9=193 35=D 34=3 49=FIXTEST 50=FX 52=20170330-18:35:20.635 
56=SAXOTRADE_TEST 115=TestStrategy 1=7989274/INET 11=EUR/USD1490898920625 
21=1 38=100000 40=1 54=1 55=EUR/USD 60=20170330-18:35:20.635 460=4 10=017 

Saxo confirms receipt of market order

8=FIX.4.3 9=245 35=8 49=SAXOTRADE_TEST 56=FIXTEST 34=3 57=FX 
52=20170330-18:35:20.620 369=3 37=182987095 11=EUR/USD1490898920625 
17=13135372520620521551 150=0 39=0 55=EUR/USD 460=4 54=1 38=100000 40=1 
59=0 32=0 31=0 151=100000 14=0 6=0 60=20170330-18:35:20.609 10=040 

Market order is filled

8=FIX.4.3 9=296 35=8 49=SAXOTRADE_TEST 56=FIXTEST 115=TestStrategy 
34=4 57=FX 52=20170330-18:35:20.620 369=3 37=182987095 
11=EUR/USD1490898920625 17=13135372520609521450 150=F 39=2 64=20170403 
55=EUR/USD 460=4 54=1 38=100000 40=1 59=0 32=100000 31=1.06924 151=0 
14=100000 6=1.06924 60=20170330-18:35:20.609 21=1 10=120 

Failure

Client sends market order

8=FIX.4.3 9=198 35=D 34=4 49=FIXTEST 50=FX 52=20170330-18:35:24.930 
56=SAXOTRADE_TEST 115=TestStrategy 1=7989274/INET 11=EUR/USD1490898924928 
21=1 38=10000000000 40=1 54=2 55=EUR/USD 60=20170330-18:35:24.929 460=4 
10=030 

Market order is rejected (trade size is too large given current liquidity)

8=FIX.4.3 9=277 35=8 49=SAXOTRADE_TEST 56=FIXTEST 115=TestStrategy 34=5 
57=FX 52=20170330-18:35:24.902 369=4 37=0 11=EUR/USD1490898924928 
17=13135372524901792552 150=8 39=8 103=0 55=EUR/USD 460=4 54=2 
38=10000000000 40=1 59=0 151=10000000000 14=0 6=0 21=1 
58=28: Rejected by liquidity control 10=099 

Limit Order (aggressive)

Success

Client sends limit order

8=FIX.4.3 9=201 35=D 34=5 49=FIXTEST 50=FX 52=20170330-18:35:40.289 
56=SAXOTRADE_TEST 115=TestStrategy 1=7989274/INET 11=EUR/USD1490898940289 
21=1 38=100000 40=2 44=1.05 54=2 55=EUR/USD 60=20170330-18:35:40.289 
460=4 10=139 

Saxo confirms receipt of limit order

8=FIX.4.3 9=253 35=8 49=SAXOTRADE_TEST 56=FIXTEST 34=6 57=FX 
52=20170330-18:35:40.269 369=5 37=182987098 11=EUR/USD1490898940289 
17=13135372540269796254 150=0 39=0 55=EUR/USD 460=4 54=2 38=100000 40=2 
44=1.05 59=0 32=0 31=0 151=100000 14=0 6=0 60=20170330-18:35:40.262 
10=196 

Limit order is filled

8=FIX.4.3 9=304 35=8 49=SAXOTRADE_TEST 56=FIXTEST 115=TestStrategy 34=7 
57=FX 52=20170330-18:35:40.269 369=5 37=182987098 11=EUR/USD1490898940289 
17=13135372540261829653 150=F 39=2 64=20170403 55=EUR/USD 460=4 54=2 
38=100000 40=2 44=1.05 59=0 32=100000 31=1.06912 151=0 14=100000 
6=1.06912 60=20170330-18:35:40.262 21=1 10=248 

Failure

Client sends limit order

8=FIX.4.3 9=200 35=D 34=6 49=FIXTEST 50=FX 52=20170330-18:35:46.680 
56=SAXOTRADE_TEST 115=TestStrategy 1=7989274/INET 11=EUR/USD1490898946680 
21=1 38=100000 40=2 44=105 54=1 55=EUR/USD 60=20170330-18:35:46.680 
460=4 10=095 

Limit order is rejected (bad limit price)

8=FIX.4.3 9=281 35=8 49=SAXOTRADE_TEST 56=FIXTEST 115=TestStrategy 34=8 
57=FX 52=20170330-18:35:46.654 369=6 37=0 11=EUR/USD1490898946680 
17=13135372546653229455 150=8 39=8 103=11 55=EUR/USD 460=4 54=1 38=100000 
40=2 44=105 59=0 151=100000 14=0 6=0 21=1 
58=172: Order exceeds aggressive tolerance 10=023