Questions concerning the new FIX API implementation

olddirtypipster's avatar

olddirtypipster since: 18 Apr 2014;

  05 Aug 2016, 19:32
Questions concerning the new FIX API implementation

Yes. It is not required, but is very much desired; 266="Y" instead of 266="N"

By being able to see non-aggregated prices tagged with unique LP IDs, you could then merge market data from several brokers, while suppressing duplicate prices associated with the unique LP IDs that appear across multiple brokers. You'd get a better idea of overall price action.

FIX protocol is extensible enough that Spotware could easily make Field 266 accessible, and send a unique LP ID for each non-aggregated price.

I am still waiting for their response.

ianj said:

olddirtypipster : I think this answers your question:

<20160805-15:49:44, FIX.4.4:icmarkets.xxx/QUOTE->cServer, outgoing> (8=FIX.4.49=12935=V34=249=icmarkets.xxx50=QUOTE52=20160805-15:49:44.70956=cServer262=1263=1264=0266=N146=155=1267=2269=0269=110=244)

<20160805-15:49:44, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=14235=334=249=cServer52=20160805-15:49:44.72656=icmarkets.xxx57=QUOTE45=258=Tag not defined for this message type 371=266 372=V373=210=084)

ianj said:

Field 266 "AggregatedBook" is NOT required in the spec and NOT documented in the cTrader docs, which means to me that non-aggregated prices are not offered - in the retail world, FULL book is not actually FULL book - lol

I might just prod it anyway, but i would be VERY surprised if it is offered at this level - the bandwidth requirements would increase dramatically

Shame on you when you stepped through to, The OldDirty Pipster - Brooklyn!!!

ianj since: 14 May 2013;

  05 Aug 2016, 19:37
RE: RE: RE: RE: RE:

I can only say i agree - it would be nice, but don't hold your breath

olddirtypipster said:

Yes. It is not required, but is very much desired; 266="Y" instead of 266="N"

By being able to see non-aggregated prices tagged with unique LP IDs, you could then merge market data from several brokers, while suppressing duplicate prices associated with the unique LP IDs that appear across multiple brokers. You'd get a better idea of overall price action.

FIX protocol is extensible enough that Spotware could easily make Field 266 accessible, and send a unique LP ID for each non-aggregated price.

I am still waiting for their response.

ianj since: 14 May 2013;

  05 Aug 2016, 22:20

And here you have it - IC Markets EUR/USD - later Friday - liquidity dropping off so update frequency is not indicative but it seems to be 2-5 tiers - your experience with other brokers may vary 

This matches the "Standard DOM" (center option) on the cTrader gui format EXACTLY

<20160805-19:08:25, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=48135=X34=3349=cServer52=20160805-19:08:25.10556=icmarkets.xxx57=QUOTE268=10279=0269=0278=30241630555=1270=1.10901271=1500000279=0269=0278=30241630655=1270=1.109271=8000000279=0269=0278=30241630355=1270=1.10902271=100000279=0269=1278=30241630855=1270=1.10905271=1500000279=0269=1278=30241631055=1270=1.10906271=8000000279=2278=30241609355=1279=2278=30241409055=1279=2278=30241609255=1279=2278=30241609655=1279=2278=30241499955=110=115)
entry +279=0:278=302416305,269=0,55=1,270=1.10901,271=1500000.0
entry +279=0:278=302416306,269=0,55=1,270=1.109,271=8000000.0
entry +279=0:278=302416303,269=0,55=1,270=1.10902,271=100000.0
entry +279=0:278=302416308,269=1,55=1,270=1.10905,271=1500000.0
entry +279=0:278=302416310,269=1,55=1,270=1.10906,271=8000000.0
entry -279=2:278=302416093,55=1
entry -279=2:278=302414090,55=1
entry -279=2:278=302416092,55=1
entry -279=2:278=302416096,55=1
entry -279=2:278=302414999,55=1
302416306:0:8000000.0@1.109 0ms
302416305:0:1500000.0@1.10901 0ms
302416303:0:100000.0@1.10902 0ms
302416095:1:100000.0@1.10904 215ms
302416308:1:1500000.0@1.10905 0ms
302416310:1:8000000.0@1.10906 0ms


<20160805-19:08:27, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=37635=X34=3449=cServer52=20160805-19:08:27.72756=icmarkets.xxx57=QUOTE268=7279=0269=0278=30241735755=1270=1.10901271=4500000279=0269=0278=30241735855=1270=1.109271=5000000279=0269=1278=30241736255=1270=1.10907271=5000000279=0269=1278=30241736355=1270=1.10906271=3000000279=2278=30241630555=1279=2278=30241630655=1279=2278=30241631055=110=098)
entry +279=0:278=302417357,269=0,55=1,270=1.10901,271=4500000.0
entry +279=0:278=302417358,269=0,55=1,270=1.109,271=5000000.0
entry +279=0:278=302417362,269=1,55=1,270=1.10907,271=5000000.0
entry +279=0:278=302417363,269=1,55=1,270=1.10906,271=3000000.0
entry -279=2:278=302416305,55=1
entry -279=2:278=302416306,55=1
entry -279=2:278=302416310,55=1
302417358:0:5000000.0@1.109 0ms
302417357:0:4500000.0@1.10901 0ms
302416303:0:100000.0@1.10902 2,622ms
302416095:1:100000.0@1.10904 2,837ms
302416308:1:1500000.0@1.10905 2,622ms
302417363:1:3000000.0@1.10906 0ms
302417362:1:5000000.0@1.10907 0ms


<20160805-19:08:27, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=42635=X34=3549=cServer52=20160805-19:08:27.89656=icmarkets.xxx57=QUOTE268=9279=0269=0278=30241755755=1270=1.10901271=9000000279=0269=0278=30241755455=1270=1.10903271=100000279=0269=0278=30241755855=1270=1.10902271=500000279=0269=1278=30241756155=1270=1.10907271=8000000279=2278=30241735755=1279=2278=30241735855=1279=2278=30241630355=1279=2278=30241736255=1279=2278=30241736355=110=173)
entry +279=0:278=302417557,269=0,55=1,270=1.10901,271=9000000.0
entry +279=0:278=302417554,269=0,55=1,270=1.10903,271=100000.0
entry +279=0:278=302417558,269=0,55=1,270=1.10902,271=500000.0
entry +279=0:278=302417561,269=1,55=1,270=1.10907,271=8000000.0
entry -279=2:278=302417357,55=1
entry -279=2:278=302417358,55=1
entry -279=2:278=302416303,55=1
entry -279=2:278=302417362,55=1
entry -279=2:278=302417363,55=1
302417557:0:9000000.0@1.10901 0ms
302417558:0:500000.0@1.10902 0ms
302417554:0:100000.0@1.10903 0ms
302416095:1:100000.0@1.10904 3,005ms
302416308:1:1500000.0@1.10905 2,790ms
302417561:1:8000000.0@1.10907 0ms

olddirtypipster's avatar

olddirtypipster since: 18 Apr 2014;

  05 Aug 2016, 22:57
RE:

What I would like to do is compare these prices to individual LP's, say Barclays or BNP. It would require getting a snapshot for a specific time fragment of prices from these LP's separately (not difficult), streaming non-aggregated prices from cTrader, identifying the target LP's price and comparing them. It would indicate whether the prices in cTrader are indeed solid.

ianj said:

And here you have it - IC Markets EUR/USD - later Friday - liquidity dropping off so update frequency is not indicative but it seems to be 2-5 tiers - your experience with other brokers may vary 

This matches the "Standard DOM" (center option) on the cTrader gui format EXACTLY

<20160805-19:08:25, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=48135=X34=3349=cServer52=20160805-19:08:25.10556=icmarkets.xxx57=QUOTE268=10279=0269=0278=30241630555=1270=1.10901271=1500000279=0269=0278=30241630655=1270=1.109271=8000000279=0269=0278=30241630355=1270=1.10902271=100000279=0269=1278=30241630855=1270=1.10905271=1500000279=0269=1278=30241631055=1270=1.10906271=8000000279=2278=30241609355=1279=2278=30241409055=1279=2278=30241609255=1279=2278=30241609655=1279=2278=30241499955=110=115)
entry +279=0:278=302416305,269=0,55=1,270=1.10901,271=1500000.0
entry +279=0:278=302416306,269=0,55=1,270=1.109,271=8000000.0
entry +279=0:278=302416303,269=0,55=1,270=1.10902,271=100000.0
entry +279=0:278=302416308,269=1,55=1,270=1.10905,271=1500000.0
entry +279=0:278=302416310,269=1,55=1,270=1.10906,271=8000000.0
entry -279=2:278=302416093,55=1
entry -279=2:278=302414090,55=1
entry -279=2:278=302416092,55=1
entry -279=2:278=302416096,55=1
entry -279=2:278=302414999,55=1
302416306:0:8000000.0@1.109 0ms
302416305:0:1500000.0@1.10901 0ms
302416303:0:100000.0@1.10902 0ms
302416095:1:100000.0@1.10904 215ms
302416308:1:1500000.0@1.10905 0ms
302416310:1:8000000.0@1.10906 0ms


<20160805-19:08:27, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=37635=X34=3449=cServer52=20160805-19:08:27.72756=icmarkets.xxx57=QUOTE268=7279=0269=0278=30241735755=1270=1.10901271=4500000279=0269=0278=30241735855=1270=1.109271=5000000279=0269=1278=30241736255=1270=1.10907271=5000000279=0269=1278=30241736355=1270=1.10906271=3000000279=2278=30241630555=1279=2278=30241630655=1279=2278=30241631055=110=098)
entry +279=0:278=302417357,269=0,55=1,270=1.10901,271=4500000.0
entry +279=0:278=302417358,269=0,55=1,270=1.109,271=5000000.0
entry +279=0:278=302417362,269=1,55=1,270=1.10907,271=5000000.0
entry +279=0:278=302417363,269=1,55=1,270=1.10906,271=3000000.0
entry -279=2:278=302416305,55=1
entry -279=2:278=302416306,55=1
entry -279=2:278=302416310,55=1
302417358:0:5000000.0@1.109 0ms
302417357:0:4500000.0@1.10901 0ms
302416303:0:100000.0@1.10902 2,622ms
302416095:1:100000.0@1.10904 2,837ms
302416308:1:1500000.0@1.10905 2,622ms
302417363:1:3000000.0@1.10906 0ms
302417362:1:5000000.0@1.10907 0ms


<20160805-19:08:27, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=42635=X34=3549=cServer52=20160805-19:08:27.89656=icmarkets.xxx57=QUOTE268=9279=0269=0278=30241755755=1270=1.10901271=9000000279=0269=0278=30241755455=1270=1.10903271=100000279=0269=0278=30241755855=1270=1.10902271=500000279=0269=1278=30241756155=1270=1.10907271=8000000279=2278=30241735755=1279=2278=30241735855=1279=2278=30241630355=1279=2278=30241736255=1279=2278=30241736355=110=173)
entry +279=0:278=302417557,269=0,55=1,270=1.10901,271=9000000.0
entry +279=0:278=302417554,269=0,55=1,270=1.10903,271=100000.0
entry +279=0:278=302417558,269=0,55=1,270=1.10902,271=500000.0
entry +279=0:278=302417561,269=1,55=1,270=1.10907,271=8000000.0
entry -279=2:278=302417357,55=1
entry -279=2:278=302417358,55=1
entry -279=2:278=302416303,55=1
entry -279=2:278=302417362,55=1
entry -279=2:278=302417363,55=1
302417557:0:9000000.0@1.10901 0ms
302417558:0:500000.0@1.10902 0ms
302417554:0:100000.0@1.10903 0ms
302416095:1:100000.0@1.10904 3,005ms
302416308:1:1500000.0@1.10905 2,790ms
302417561:1:8000000.0@1.10907 0ms

Shame on you when you stepped through to, The OldDirty Pipster - Brooklyn!!!

ianj since: 14 May 2013;

  06 Aug 2016, 00:39
RE: RE:

I would suggest that most prices (especially on the majors) are "shadowed/mirrored" to a very large degree across many brokers liquidity - multiplying the impression of available liquidity. In fact if you look at, say, Pepperstone & IC Markets, you could not slip a fag paper between them on EURUSD (a lovely colloquialism)

Each broker will have its own credit lines with each LP and so the spreads/sizes from each could vary, but it is unlikely that they will be happy to identify each LP uniquely

I know what you are looking for - good luck getting it. There are commercial and technical difficulties

olddirtypipster said:

What I would like to do is compare these prices to individual LP's, say Barclays or BNP. It would require getting a snapshot for a specific time fragment of prices from these LP's separately (not difficult), streaming non-aggregated prices from cTrader, identifying the target LP's price and comparing them. It would indicate whether the prices in cTrader are indeed solid.

olddirtypipster's avatar

olddirtypipster since: 18 Apr 2014;

  06 Aug 2016, 02:04
RE: RE: RE:

Yes. It is unlikely that a broker will want to uniquely tag each price to an LP.

However, there is a technique I have worked on that tags a set of reoccurring prices across multiple brokers to a unique id group using a pattern recognition machine learning algo. What I need now is  real non-aggregated data to complete the test. I have since been using simulated data with positive results.

ianj said:

I would suggest that most prices (especially on the majors) are "shadowed/mirrored" to a very large degree across many brokers liquidity - multiplying the impression of available liquidity. In fact if you look at, say, Pepperstone & IC Markets, you could not slip a fag paper between them on EURUSD (a lovely colloquialism)

Each broker will have its own credit lines with each LP and so the spreads/sizes from each could vary, but it is unlikely that they will be happy to identify each LP uniquely

I know what you are looking for - good luck getting it. There are commercial and technical difficulties

olddirtypipster said:

What I would like to do is compare these prices to individual LP's, say Barclays or BNP. It would require getting a snapshot for a specific time fragment of prices from these LP's separately (not difficult), streaming non-aggregated prices from cTrader, identifying the target LP's price and comparing them. It would indicate whether the prices in cTrader are indeed solid.

Shame on you when you stepped through to, The OldDirty Pipster - Brooklyn!!!
Spotware's avatar

Spotware since: 23 Sep 2013;

  08 Aug 2016, 16:36

Dear Traders, 

Please be advised that we cannot provide non-aggregated prices due to the contractual agreements.   

TRADERS FIRSTâ„¢ Vote for your favorite features: https://ctrader.com/forum/suggestions

ian.p.johnson1 since: 15 Aug 2016;

  15 Aug 2016, 03:01

Been away a week so no opportunity to comment but on my initial view this week:
 

Updates to a cTrader/cAlgo gui bot (in C#) are identical in (prices/volume and depth) and update frequency (tick per tick) as FIX

The FIX ticks  are slightly are received slightly ahead  (40-100ms) of the cAlgo feeds 

This may be because of the additional overhead of the GUI (more likley) and/or my mechanism for recording ticks (less likley) but it is likely that FIX is faster - the data volume is the same

This is IC Markets live - other brokers may vary 

ian.p.johnson1 since: 15 Aug 2016;

  15 Aug 2016, 03:17
RE:

ian.p.johnson1 said:

Been away a week so no opportunity to comment but on my initial view this week:
 

Updates to a cTrader/cAlgo gui bot (in C#) are identical in (prices/volume and depth) and update frequency (tick per tick) as FIX

The FIX ticks  are slightly are received slightly ahead  (40-100ms) of the cAlgo feeds 

This may be because of the additional overhead of the GUI (more likley) and/or my mechanism for recording ticks (less likley) but it is likely that FIX is faster - the data volume is the same

This is IC Markets live - other brokers may vary 

Looks pretty similar for Pepperstone - cAlgo/cTrader vs FIX

ian.p.johnson1 since: 15 Aug 2016;

  19 Aug 2016, 15:33
RE: RE:

Sooooo - some simple stats for you (IC Markets Live) :

24 hours 18th August

6,618,286 ticks across 73 instruments 
A few of the "big tickers"

 123440 GBPUSD
 124516 EURUSD
 129821 USDCAD
 135040 USDJPY
 151886 AUDJPY
 157122 CADJPY
 158240 GBPCAD
 160263 GBPNZD
 163966 GBPJPY
 168702 GBPAUD
 171227 EURJPY

Pepperstone was in the same ball park with some differences appropriate to the differing set of instruments it offers - am not quoting exact figures as i don't want to get into "tick wars"

Might run up some stats later for peak tick rate etc