Replies

olddirtypipster
16 Jun 2020, 10:33 ( Updated at: 21 Dec 2023, 09:22 )

RE: RE:

This from FxPro:

"kindly note that as already informed Fix API is not something that FxPro offers or supports"

Can anyone confirm that they are unable to connect to FxPro  vis FIX API?

olddirtypipster said:

Good spot.

 

Making the change, now I get

> 8=FIX.4.4|9=106|35=5|34=1|49=cServer|50=Quote|52=20200616-07:07:52.172|56=fxpro.10390051|57=Quote|58=RET_ACCOUNT_DISABLED|10=212|

As far as I am aware, this account is not disabled. I tried several others.

Is it that FxPro is not supporting FIX anymore?

PanagiotisCharalampous said:

Hi olddirtypipster,

It seems you have a space in tag 56. Can you remove it and try again?

Best Regards,

Panagiotis 

Join us on Telegram

 

 


@olddirtypipster

olddirtypipster
16 Jun 2020, 10:09 ( Updated at: 21 Dec 2023, 09:22 )

RE:

Good spot.

 

Making the change, now I get

> 8=FIX.4.4|9=106|35=5|34=1|49=cServer|50=Quote|52=20200616-07:07:52.172|56=fxpro.10390051|57=Quote|58=RET_ACCOUNT_DISABLED|10=212|

As far as I am aware, this account is not disabled. I tried several others.

Is it that FxPro is not supporting FIX anymore?

PanagiotisCharalampous said:

Hi olddirtypipster,

It seems you have a space in tag 56. Can you remove it and try again?

Best Regards,

Panagiotis 

Join us on Telegram

 


@olddirtypipster

olddirtypipster
16 Jun 2020, 09:55

DELETE (double post)


@olddirtypipster

olddirtypipster
16 Jun 2020, 09:55

I can confirm that this issue lies solely with FxPro. I connected to pepperstone with no issues.

 

I have also noticed that FxPro's server is out of sync by 1 hour UTC.

 

Can anyone confirm that FxPro still supports connection via FIX protcol?

 

Thanks,


@olddirtypipster

olddirtypipster
16 Jun 2020, 09:06

RE:

I can confirm that this problem still persists. I can also veryfy that my username/password are both correct. 

I have even changed my FIX password, as well as used the raw ip address. Still not able to conect without this error.

 

PanaagiotisCharalampous said:

Hi olddirtypipster,

Can you still reproduce this issue or was it something temporary? If yes, can you confirm that your credentials are correct?

Best Regards,

Panagiotis 

Join us on Telegram

 

 


@olddirtypipster

olddirtypipster
03 Jan 2018, 21:53

RE:

Panagiotis Charalampous said:

Hi olddirtypipster,

Thanks for taking the time to post this suggestion. I will communicate it with the team responsible for FIX API for consideration.

Best Regards,

Panagiotis

Brilliant. I look forward to having this feature enabled on future FIX specification releases.


@olddirtypipster

olddirtypipster
03 Jan 2018, 08:28

Did anyone else notice how the original OP's question was so skillfully avoided?


@olddirtypipster

olddirtypipster
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.

 


@olddirtypipster

olddirtypipster
05 Aug 2016, 22:57 ( Updated at: 21 Dec 2023, 09:20 )

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

 

 

 


@olddirtypipster

olddirtypipster
05 Aug 2016, 19:32

RE: RE: RE: RE:

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

 


@olddirtypipster

olddirtypipster
05 Aug 2016, 17:31

RE: RE: RE:

It looks like the time between these two ticks is 480ms. Is this the average timing between ticks?

ianj said:

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)

 

 


@olddirtypipster

olddirtypipster
05 Aug 2016, 15:33 ( Updated at: 21 Dec 2023, 09:20 )

RE:

Thank you. Now... about that Field 266 that needs to be implemented. Any chance of this happening in the near future? It is a simple matter of implementing the server side cod to handle this request. It should be a relatively straight forward task.

Spotware said:

Dear Traders, 

Please be advised that you can find FIX symbol ID in the symbol information window. Please be advised that those ID might be different for different brokers. 

To open Symbol Information window, click "i" button in the Symbol Description in the Marke watch section.

 


@olddirtypipster

olddirtypipster
04 Aug 2016, 20:04

RE: RE: RE:

My bad dawg, my bad. You aiite my nyuckah. Home skillet is rite. Spotware, Listen up! It turns out that you did not include the codes that represent the traded currency symbols. You need to come correct. For real.

ianj said:

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 ?

 


@olddirtypipster

olddirtypipster
04 Aug 2016, 19:28

RE:

You can see the full documentation for FIX protocol at www.fixtradingcommunity.org/

The documentation supplied by Spotware is not incomplete. Before you use it, you must have a firm understanding of FIX protocol and TCP/IP communications protocol. The reason why it seems incomplete is because you do not have a solid grasp of either.

Coding a monolithic engine for the purpose of market data acquisition and trade execution is no simple task.It requires a solid background of Multithreading best practice and TCP/IP. You then apply this knowledge for FIX implementation.

The primary issue here is not that the documentation is incomplete. The primary issue here is that Spotware has failed to implement some fundamental attributes to their FIX server engine; namely, they have not implemented Field 266.

I would strongly advise that you take some time out, and learn TCP/IP, Multithreading coding and then FIX. Ultimately, you will only be saving yourself much headache in the long run.

ianj said:

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

/forum/connect-api-support/9969

 


@olddirtypipster

olddirtypipster
03 Aug 2016, 14:44

RE:

Spotware said:

Dear Trader, 

Please find the answers below

1) With FIX API you will not receive prices directly from LP, the prices will be those that the respective broker provides

2) There will definitely be the improvement in execution time and latency, although you will still be connected to the broker's servers. 

3) Yes, you will be able to view the full order book

4) A number of market depth  levels will depend on the broker. 

Answers to the questions 5-7 you can find in cTrader FIX API specifications https://help.spotware.com/FIX 

In this case, are there plans to implement Field 266; non-aggregated/aggregated market depth?


@olddirtypipster

olddirtypipster
03 Aug 2016, 13:34

correction: FIX Field 266 not 299


@olddirtypipster

olddirtypipster
03 Aug 2016, 01:47

RE:

I suggest you read the official FIX Protocol documentation at www.fixprotocol.org/

It explains how bodylength, checksum, etc are to be calculated.

Your checksum is dependent on the data packet content. It must be recalculated for each msg sent or the server will return invalid.

MsgSewNum is always updated. If it is out of sequence, you have to reset it.

Read tor official FIX Protocol documentation. It will take some time to get it, but is well worth the extra effort.

moneybiz said:

cTrader FIX Engine
Rules of Engagement
Version 2.1
May 201

This documentation is not well documented and needs examples for all of the requests/responses supported.

For example few unknowns;
1) How is the "BodyLength" calculated?
2) Is "MsgSeqNum" increased on every request or it is fixed to 1 as indicated in the documentation?
3) Is "CheckSum" always 054 as it is documented on or always 000 as it is in the example?

 

 

 


@olddirtypipster

olddirtypipster
31 Mar 2016, 19:29

You need to employ neural networks for pattern recognition. I have built such a system and will be going public with this soon. Stay tuned.


@olddirtypipster

olddirtypipster
31 Mar 2016, 19:19

RE:

This post was removed by moderator.


@olddirtypipster

olddirtypipster
01 Mar 2016, 22:39

RE:

Spotware said:

Hi,

Thanks for your request. As for now Market Depth is unavailable within our Open API. We definitely will take your idea into our account while planning our future releases of the Open API.

BTW, you can vote for cTrader features you'd like to see in future here: http://vote.spotware.com/

 

If you have more question about the Open API, feel free to ask our support here: connect@spotware.com

Also, you can find more details about the Open API in our online Guide: https://connect.spotware.com/

Check it out.

 

Sincerely,

Spotware team. 

 

Has there been any progress on this feature?


@olddirtypipster