Topics
Replies
ianj
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.
@ianj
ianj
05 Aug 2016, 22:20
( Updated at: 21 Dec 2023, 09: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
@ianj
ianj
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
ianj
05 Aug 2016, 18:52
RE: RE: RE:
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
@ianj
ianj
05 Aug 2016, 18:47
RE: RE:
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
olddirtypipster said:
Spotware said:Trader FIX API specifications https://help.spotware.com/FIX
In this case, are there plans to implement Field 266; non-aggregated/aggregated market depth?
@ianj
ianj
05 Aug 2016, 18:41
RE: RE: RE: RE:
olddirtypipster - this should answer some of your questions:
where:
279=0 is NEW
279=2 is DELETE
269=0/1 is Bid/Offer
It tells me that its is a TIERED aggregated book sent as a delta from the prior book using entryId to select/remove aggregated entries - the tiered nature is strongly (>90%) indicated by their being no duplicate prices on the same side and the wider prices being larger in this limited sample
This is, as you can see, IC Markets - i have no reason to believe, at this time, that other brokers will be different
<20160805-15:29:08, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=41035=X34=249=cServer52=20160805-15:29:08.91556=icmarkets.xxx57=QUOTE268=6279=0269=1278=29427798755=1270=1.10808271=1500000279=0269=1278=29427798855=1270=1.10807271=100000279=0269=1278=29427798955=1270=1.10809271=8000000279=0269=0278=29427798455=1270=1.10807271=100000279=0269=0278=29428091855=1270=1.10806271=4500000279=0269=0278=29428091555=1270=1.10805271=500000010=253)
279=0:278=294277987,269=1,55=1,270=1.10808,271=1500000.0
279=0:278=294277988,269=1,55=1,270=1.10807,271=100000.0
279=0:278=294277989,269=1,55=1,270=1.10809,271=8000000.0
279=0:278=294277984,269=0,55=1,270=1.10807,271=100000.0
279=0:278=294280918,269=0,55=1,270=1.10806,271=4500000.0
279=0:278=294280915,269=0,55=1,270=1.10805,271=5000000.0
<20160805-15:29:14, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=24235=X34=349=cServer52=20160805-15:29:14.11056=icmarkets.xxx57=QUOTE268=4279=0269=0278=29428595055=1270=1.10805271=8000000279=0269=0278=29428595255=1270=1.10806271=1500000279=2278=29428091555=1279=2278=29428091855=110=023)
279=0:278=294285950,269=0,55=1,270=1.10805,271=8000000.0
279=0:278=294285952,269=0,55=1,270=1.10806,271=1500000.0
279=2:278=294280915,55=1
279=2:278=294280918,55=1
<20160805-15:29:18, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=50835=X34=449=cServer52=20160805-15:29:18.94656=icmarkets.xxx57=QUOTE268=11279=0269=0278=29428897555=1270=1.10803271=3100000279=0269=0278=29428897655=1270=1.10802271=5000000279=0269=0278=29428897355=1270=1.10804271=1500000279=0269=1278=29428897755=1270=1.10804271=1600000279=0269=1278=29428897855=1270=1.10806271=8000000279=2278=29428595055=1279=2278=29427798455=1279=2278=29428595255=1279=2278=29427798855=1279=2278=29427798955=1279=2278=29427798755=110=151)
279=0:278=294288975,269=0,55=1,270=1.10803,271=3100000.0
279=0:278=294288976,269=0,55=1,270=1.10802,271=5000000.0
279=0:278=294288973,269=0,55=1,270=1.10804,271=1500000.0
279=0:278=294288977,269=1,55=1,270=1.10804,271=1600000.0
279=0:278=294288978,269=1,55=1,270=1.10806,271=8000000.0
279=2:278=294285950,55=1
279=2:278=294277984,55=1
279=2:278=294285952,55=1
279=2:278=294277988,55=1
279=2:278=294277989,55=1
279=2:278=294277987,55=1
<20160805-15:29:19, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=45535=X34=549=cServer52=20160805-15:29:19.09756=icmarkets.xxx57=QUOTE268=9279=0269=0278=29428930855=1270=1.10801271=5000000279=0269=0278=29428930755=1270=1.10803271=100000279=0269=0278=29428930655=1270=1.10802271=4500000279=0269=1278=29428931255=1270=1.10803271=100000279=0269=1278=29428931155=1270=1.10804271=1500000279=2278=29428897555=1279=2278=29428897655=1279=2278=29428897355=1279=2278=29428897755=110=112)
279=0:278=294289308,269=0,55=1,270=1.10801,271=5000000.0
279=0:278=294289307,269=0,55=1,270=1.10803,271=100000.0
279=0:278=294289306,269=0,55=1,270=1.10802,271=4500000.0
279=0:278=294289312,269=1,55=1,270=1.10803,271=100000.0
279=0:278=294289311,269=1,55=1,270=1.10804,271=1500000.0
279=2:278=294288975,55=1
279=2:278=294288976,55=1
279=2:278=294288973,55=1
279=2:278=294288977,55=1
<20160805-15:29:19, FIX.4.4:icmarkets.xxx/QUOTE->cServer, incoming> (8=FIX.4.49=50635=X34=649=cServer52=20160805-15:29:19.24956=icmarkets.xxx57=QUOTE268=11279=0269=0278=29428955855=1270=1.10801271=9000000279=0269=0278=29428955555=1270=1.10802271=600000279=0269=1278=29428955955=1270=1.10803271=1500000279=0269=1278=29428956055=1270=1.10802271=100000279=0269=1278=29428956155=1270=1.10805271=8000000279=2278=29428930855=1279=2278=29428930755=1279=2278=29428930655=1279=2278=29428931255=1279=2278=29428931155=1279=2278=29428897855=110=232)
279=0:278=294289558,269=0,55=1,270=1.10801,271=9000000.0
279=0:278=294289555,269=0,55=1,270=1.10802,271=600000.0
279=0:278=294289559,269=1,55=1,270=1.10803,271=1500000.0
279=0:278=294289560,269=1,55=1,270=1.10802,271=100000.0
279=0:278=294289561,269=1,55=1,270=1.10805,271=8000000.0
@ianj
ianj
05 Aug 2016, 18:09
RE: RE: RE: RE:
Anecdotally i would say you should not be expecting more ticks than you might, say, see in a cAlgo feed - that is something i will be able to comment on next week if i get to deploy this by then (possibly also vs the "other" platform feed for my broker)
At the moment the TOP of book is coming in, as you can see, as a 5=W Market Data - Snapshot/Full Refresh, NOT by the documented Incremental Refresh (35=X)
Perhaps Depth will do that
olddirtypipster said:
It looks like the time between these two ticks is 480ms. Is this the average timing between ticks?
@ianj
ianj
05 Aug 2016, 17:48
RE: RE: RE: RE:
I have no idea yet - i am implementing the other messages not defined in spec (35=W Market Data - Snapshot/Full Refresh is not in doc)
Looks like i'll have to extrapolate for now
When i have dug about a little ill post some stats re the feed/update rates etc
@ianj
ianj
05 Aug 2016, 17:06
RE: RE:
Thanks - that works perfectly - ill dig into the book options soon - here i have a basic top of book :
8=FIX.4.49=12335=W34=249=cServer52=20160805-14:02:27.30256=icmarkets.xxx57=QUOTE55=1268=2269=1270=1.10531269=0270=1.1053110=240)
8=FIX.4.49=12335=W34=349=cServer52=20160805-14:02:27.78256=icmarkets.xxx57=QUOTE55=1268=2269=1270=1.10532269=0270=1.1053110=254)
@ianj
ianj
04 Aug 2016, 22:39
I tried using SenderSubID (50) in all my messages - i can still log on but i am still unable to subscribe to Market updates (my Symbol is rejected)
FYI my logon message FIX is as follows - dunno if it helps
8=FIX.4.49=11935=A34=149=icmarkets.xxx=QUOTE52=20160804-19:30:43.69256=cServer98=0108=30141=Y553=xxx554=xxx10=169
One though occurred - TraddingSession Status messages are not documented so i assumed that were not being used
However i can logon:
8=FIX.4.49=9435=A34=149=cServer52=20160804-19:30:43.77956=icmarkets.xxx57=QUOTE98=0108=30141=Y10=163
@ianj
ianj
04 Aug 2016, 22:22
RE:
That is interesting - i didn't look at the spec and managed to log on successfully without using SenderSubID AT ALL
However, i was unable to submit a MarketDataRequest - looks connected
I'll let you know how it goes for me when i read the manual - lol
sentrap2009@yandex.ru said:
Hi everyone
I have some trouble with the cTrader Fix API.
I can't log on.I send this message:
8=FIX.4.49=107 35=A 34=1 49=ctrader.3129678 50=Trade 52=20160720 11:25:01.724 56=CSERVER 98=0 108=30 553=3129678 554=#MyPassword# 10=079
But I get this response: Required tag missing (Field=50)
This is my log-file:20160720-11:25:01.626 : Connecting to 212.83.157.16 on port 5202
20160720-11:25:01.681 : Connection succeeded
20160720-11:25:05.960 : Initiated logon request
20160720-11:25:06.082 : Message 1 Rejected: Required tag missing (Field=50)
20160720-11:25:06.083 : Session FIX.4.4:ctrader.3129678/Trade->CSERVER disconnecting: Tried to send a reject while not logged onI attached the files (FIX44.xml and quickfix.cfg config-file) to this message https://yadi.sk/d/AE-Y03J5tTyqp
@ianj
ianj
04 Aug 2016, 20:00
RE: RE:
Errm ! I am experienced with Java/C++ coding and FIX - I have previously coded production FIX connectors for Currenex, FXCM, Baxter, EBS, Reuters - i know what i am on about. Yes your issues may be correct. I am just atempting to USE it NOW and am running into more basic problems. I am aware that FIX is just a protocol for defining a connection and most connections are slightly different in their usage of fields available.
The FIX document 2.5 offered is INCOMPLETE - it does not accept the intuitive regular EURUSD, EUR/USD etc symbols, refers to Spotware to defined the symbols to use - that information is not provided and should at least be provided as an addendum or separate document (as it tends to change)
That is clear in my problem description along with my example
TLDR ?
@ianj
ianj
30 Aug 2016, 12:53
RE:
Everything in the link you provided is valid to some degree. However the functionality i mentioned is not part of that list and is considered the minimal functionality required for a viable TRADE link
The FIX protocol WAS implemented in a manner that allowed interpretation of the protocol. There are many trading feeds out there that successfully and effectively layer the the trading functionality onto FIX protocol - each is slightly different and the role of a "connector" is generally to implement that mapping of functionailty
Spotware said:
@ianj