Topics
21 Mar 2017, 07:32
 3440
 4
21 Mar 2017, 07:31
 1902
 2
28 Sep 2016, 22:42
 2598
 2
30 Aug 2016, 03:31
 3248
 3
27 Aug 2013, 21:35
 2963
 2
12 Aug 2013, 16:50
 3746
 4
13 Jun 2013, 20:44
 4408
 2
13 Jun 2013, 19:54
 3197
 3
03 Jun 2013, 20:32
 0
 3731
 8
14 May 2013, 16:26
 2916
 2
Replies

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:

Dear Trader, 

Please be advised that FIX protocol has a certain level of limitations, due to the fact it was created for all the financial industry with very specific purposes. You can read more about it here http://help.spotware.com/FIX/limitations. 

With FIX API you cannot access any functions that are available in cTrader platform, there is no way Spotware can extend its functional since the protocol is developed and supported by FIX Protocol Limited (FPL).

Although, Spotware provides its own trading API, which provides an access to different functions not available in FIX Protocol. Follow this link to learn more https://connect.spotware.com/documentation/section/trading-api  

 


@ianj

ianj
30 Aug 2016, 03:39

RE:

If you have any difficult replicating the issue, try the fxpig SPA (unfiltered) feed, and also to a MUCH lesser degree the MPA feed. I have not seen the problem on icmarkets or pepperstone so far. 


@ianj

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:49

This was addressed by Spotware in this posting :

 

/forum/ctrader-support/9960?page=2#16


@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:32

I noticed i had omitted the SenderSubID (field 50) field in the Standard Header (p3) which seems an obvious cause - but it doesn't help setting it to "QUOTE" - my symbols are still rejected


@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 on

I 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:49

I would be pleasantly surprised to see a FULL order book - much more likely is that we will see the tiered aggregated book that we see in cTrader and have access to in cAlgo.

I will let you know just as soon as i know what Symbol to use :)


@ianj

ianj
04 Aug 2016, 20:18

It would be nice to have a OrderCancelRequest as well - lol 

Yes i can go to the FIX specs but i would be running blinkered as each platform varies in its usage and interpretation of fields - can we have documentation for your implementation please 


@ianj

ianj
04 Aug 2016, 20:09

Saying all that this is quite exciting to a retail trader. As far as i can see this is the first time i have seen free access to a non institutional trading platform over FIX without significant monthly fees, volume or account size qualifying limitations.

Respect :)


@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
04 Aug 2016, 19:07

Any chance of addressing this question re Symbol/MarketDataRequest  and incomplete FIX documentation

/forum/connect-api-support/9969


@ianj