Replies

olddirtypipster
09 Jan 2015, 00:22

Here is a concrete example of the unexpected results that you need to be aware of if using double instead of decimal for your monetary calculations.

using System;

class Test
{
    static void Main()
    {
        double x = 0.1;
        double y = x + x + x;
        Console.WriteLine(y == 0.3); // This will generate a false, even though it should be true!
    }
}

Although the result of 0.1 + 0.1 + 0.1 is 0.3, this routine will generate the unexpected result = false.

A double will always have rounding errors, use "decimal" if you're using .NET. It is that simple.

 

As for the second response, I had an experience with a previous broker who offered me FIX API market depth. They also offered the cTrader ECN account. I streamed the prices for the FIX price stream as well as the cTrader price stream to my database and compared them. There were significant discrepancies in the price to volumes.

The worry is that if one were lookingf or anomalies such as icebergs, hidden orders, etc, these would have been going un-noticed.

Wouldn't the practice of this broker in publishing different market streams based on user account level be considered illegal?


@olddirtypipster

olddirtypipster
06 Jan 2015, 23:21

RE:

You want to start the cTrader.exe via a windows service c? May I ask why?

Regardless, If you wish todo so, you might want to look into the CreateProcess Win32 API call. You can use this in managed C# code via [DllImport("kernel32.dll")]

I truly fail to see why you would ever want to do this, however. It's got that bad code smell to me, man...

 

sho@fxbi.org said:

Hi,

Is it possible to launch cAlgo from as a Windows Service or from a Console Application?  I cannot seem to Add Reference in Visual Studio.  If so, what is the C# code for that?

Thanks in advance.

Scott

 


@olddirtypipster

olddirtypipster
03 Jan 2015, 22:17

Not actual trades, but rather, available contracts.

If you see an ask price of 1.66524 @ 2.5M, it means that this LP currently has 2,500000 unit of this base currency to sell at this price. In terms of auctions, this price may or may not be the best offer.

If it is not the best, then it means that a competitor is selling at a lower price (for example 1.66523 @ 1.5M). If this better offer is accepted, then the orderbook reflects this and the price increases to the next best price. In this case it may be the previously quoted one. In this way, you would see an overall increase in the price on the DOM view. This is the core reasoning behind price movement on your candlestick chart.

Problem is that more often than not, the reason why prices change on the DOM is not because of an actual buy or sell. Often times, offers are placed on the orderbook, and then rapidly cancelled prior to being taken up. As there is no way of telling if an orderbook change is due to a buy/sell or cancelled order, reconstructing actual time and sales from a raw orderbook is anything short of a major challenge. LP's are also not willing to release time and sales information to the uninformed trader. You need to first be in the money to see the money.


@olddirtypipster

olddirtypipster
03 Jan 2015, 21:47

RE:

It has been stated that thee prices come directly from the liquidity providers that your broker is subscribed to.

kami said:

Does the tick volume feed directly from the broker and their client's activity ONLY? Or is it from another source, such as ALL orders conducted through the cTrader Platform across ALL brokers and providers and is then drawn on the tick volume? I ask this because comparing a few different brokers I see the tick volume on cTrader remains quite constant and similar, however it has minor differences here and there. My trading style is heavily dependent on volume, and since there is no trading volume feed readily available for Forex I want to know how reliable your tick volume would be as a bigger picture of the Forex Market and activity of ALL retail/professional activity.

 

Thanks

 


@olddirtypipster

olddirtypipster
03 Jan 2015, 21:45

I am still doubting the accuracy of the DOM view, and for that matter, the pricing feed.

Two things I would appreciate some commentary on by the dev team hopefully.

Firstly, for monetary calculations, best coding practice states that it is ALWAYS advised that one use the DECIMAL type verses the DOUBLE type for monetary calculations due to round off errors.

Problem is, cTrader and cAlgo bots and indicators both use double representation for their calculations. This will invariably lead to round off errors! There is no reason to believe therefore, that the internal engine of cTrader or cBot are not using double types for their monetary calculations. This is a MAJOR issue in my book. Maybe a developer with coding experience can shed some light on this.

Secondly, I am very worried about latancy and throughput with their DOM view. Yes, they might be using reputable liquidity providers but if you have poor latency, then it might be that some of the price changes never make it to the screen.

 

For instance, on the cTrader DOM you might see a price change between say 1.66543 and 1.66541 at a difference in volume of 250k in 300ms time intervals. However, what you might not see is the hidden 10 ticks that may have occurred in a time interval of 30ms at 11M volume or greater each! This hidden knowledge of such large volume might carry with it some very important information regarding orderflow that never makes it to the cTrader view!

Maybe someone at cTDN could shed some  light into these concerns.

Thanks.


@olddirtypipster

olddirtypipster
30 Dec 2014, 21:33

Are you for real???


@olddirtypipster

olddirtypipster
20 Dec 2014, 23:41

Due to round off errors while using float or double, it is advised that monetary values be represented using the decimal type.

Could someone at Spotware please explain why they decided to use double to represent their prices then? Would this not cause significant issues when performing certain calculations?

Very concerned. considering what this API is intended to do, and the finances that are at stake for professional use.


@olddirtypipster

olddirtypipster
18 Dec 2014, 23:32

Is there any way that the default location for cBots and Indicators can be changed?

Having them in \Documents\cAlgo is not something I feel happy about. We should be able to delect the location of them.

Can this be done?


@olddirtypipster

olddirtypipster
16 Dec 2014, 21:02

Yes. This worked.

Thank you for your time.

 

- OldDirty -


@olddirtypipster

olddirtypipster
15 Dec 2014, 11:02

RE: RE:
Will there be support for getting market depth?
Spotware said:

Hi,

Mocean said:

Hello,

When will details of "Spotware Connect API" be available? And when will it Go-Live?

Please find draft of Spotware Connect API reference documentation here:

https://sandbox-connect.spotware.com/draftref/

Please find draft of Spotware Connect API reference here:

https://sandbox-connect.spotware.com/draftref/  this might have answers for most of your questions

Spotware Connect is under development now. So please track the online doc updates. New features are going to be delivered soon.

Specific questions:

1) What are the order execution protocols - will this employ LP "last looks" as MT4 does? There is no point having fast execution if LP's can pull their orders.

We use Protobuf based protocol for SSL stateful connections and JSON based HTTPS protocol for stateless requests. You can find details in the draft (see above)

2) Will Connect be an add-on to cTrader/cAlgo - or will it be a stand alone UI?

No, it is standalone online service.

3) Will it provide the ability to customise the cTrader platform?

No, currently we don't have plans to let customizations.

4) What order information is blind to the server/LP/PB - will they see account numbers, SL, TP?

All the info will be available with the API. See the documentation for details.

5) Will it provide flexibility to customise execution rules? eg. remove SL cancellation if inside Spread? Streamline execution code?

That will be provided fully functional trading API within Spotware Connect API. So you will be able to do anything you want with execution of your orders, amendments of protections, etc.

6) Will there be access to institutional level liquidity?

If you mean L2 prices, so yes that will be available with the API.

7) Will there be the ability to trade multiple brokers from the one platform at the same time?

Yes, you will be able to get access to different accounts of different brokers. Currently it is already supported. See the API reference.

8) Will there be the ability for a syndicate to create a Broker account with their own broker server and deal direct with LP's?

No. We will not have such a functionality within Connect API. To get access to those services you have to ask brokers directly for that.

Thanks,

A

 



@olddirtypipster

olddirtypipster
15 Sep 2014, 20:13

RE:

Spotware said:

Thank you for your suggestion. We will consider it.

Brilliant!

 

This is good news indeed.


@olddirtypipster

olddirtypipster
25 Aug 2014, 14:12

RE: RE:

lebron said:

Spotware said:

Many new time frames have been released including a 2 hour timeframe on Spotware cTrader! It will be live for our broker's cTraders soon. 

click here for more info  

Great news.

You do not need tore- code the GUI to present 2 hour data.

You simply have to collect the tick data, and segment it in what ever period you wish;

i.e. have the start OLHC price at the start of the tick data  period, calibrated to a true opening price, then have the end OLHC price as the end of the period pre-calibrated to a true closing price.

This is a very simple thing to do! Periods are not fixed in gold.


@olddirtypipster

olddirtypipster
12 Aug 2014, 17:28 ( Updated at: 21 Dec 2023, 09:20 )

RE: RE:

olddirtypipster said:

Case in point:

 

Here, you are seeing the non-aggregated display non-aggregated market depth of a broker's feed for GBPUSD.

Your platform could potentially outshine theirs, since yours is open ended. It would offer programmers to stream in this non-aggregated data to their statistical analysis toolbox, and gain a better edge on market orderflow.

Everyone benefits!

Spotware said:

Now that it has been confirmed that non-aggregated market depth can be achieved, is there a reason why you do not plan to provide such functionality?

We do not plan to provide such functionality because it is first request to implement it. We are not sure that traders will find such functionality useful.

 

 


@olddirtypipster

olddirtypipster
12 Aug 2014, 17:27 ( Updated at: 21 Dec 2023, 09:20 )

RE:

Case in point:

 

Here, you are seeing the non-aggregated display non-aggregated market depth of a broker's feed for GBPUSD.

Your platform could potentially outshine theirs, since yours is open ended. It would offer programmers to stream in this non-aggregated data to their statistical analysis toolbox, and gain a better edge on market orderflow.

Everyone benefits!

Spotware said:

Now that it has been confirmed that non-aggregated market depth can be achieved, is there a reason why you do not plan to provide such functionality?

We do not plan to provide such functionality because it is first request to implement it. We are not sure that traders will find such functionality useful.

 


@olddirtypipster

olddirtypipster
06 Aug 2014, 09:13

Please also refer to the following conversations: /forum/ctrader-support/3269


@olddirtypipster

olddirtypipster
05 Aug 2014, 18:11

Firstly, as was stated previously,, the ability to view aggregated verses non-aggregated depth of market could be provided as an option. There is very strong evidence to support the fact non-aggregated data is fundamentally useful in general within the wider FOREX trading community. You really do not have to carry out your own census to determine how useful viewing non-aggregated market depth is, just as how you do  not necessarily have to carry out a census to determine how useful the MACD is to traders!

Unlike the MACD, however, "The analysis and interpretation of non-aggregated market depth in obtaining knowledge of market order-flow "is a far more advanced topic that that of "Analyzing the MACD to inform ones trading decisions".

Traders having a vested interest in having my recommended feature implemented would undoubtedly be far and few between, as this represents a more advanced item that would likely never be used by less experienced traders!

To address your curiosity about whether this feature will be used my most cTrader end users, the evidence (obtained by reviewing other posts made in these forums) suggests that it is not likely to be a hotly used feature! I can safely say this because there have been very few high level discussions about proper use of depth of market (DOM) on this board, and those that do exist were as a result of the OP's seeking clarity in using DOM.

Sadly therefore, it is unlikely that this request will ever acquire sufficient votes to draw your attention, simply because there are too few users who even understand what it means!

Now, if your mission statement is to provide functionality for the lowest common denominator, then you simply do not need to implement this feature at all, since the lowest common denominator will simply have no use for it. However, in doing so, you run the risk of detracting those persons seeking a a serious, open ended. intuitive trading platform.

Please note that adding this feature will in no way take away from the trading platform. It will only add to it a feature that, in the eyes of experienced traders, is glaringly absent!


@olddirtypipster

olddirtypipster
05 Aug 2014, 17:19

RE:

Spotware said:

You can find some of liquidity aggregators fully-integrated with Spotware there: http://www.spotware.com/partners/liquidity-aggregators.

We have checked specifications of couple of aggregators. Indeed it is possible to retrieve non-aggregated market depths. However we do not plan to provide such functionality. You can post your idea to vote.spotware.com. We will consider to provide such functionality if it collects enough votes.

Indeed, these are truly some high  powered aggregators with very reliable currency feeds! It is truly a pity that you are not allowing your users full access to their data in a way that would allow your platform to raise the bar on what can be done, setting a precedence never achieved by any other company before!

Now that it has been confirmed that non-aggregated market depth can be achieved, is there a reason why you do not plan to provide such functionality?

In order to achieve this, it would be quite literally an exceedingly small change as the major infrastructure to accomplish this has already been provided within your platform. You are simply not utilizing it.

Here are the steps to achieving this:

1) Change the FIX message market data request from a 266='Y' to a 266='N'

2) Provide a checkbox on the GUI that will toggle between the two states.

This could easily be done in the next release, so it would be very helpful if you could provide a reason why you are reluctant to accomplish this. Especially when this change will invariably add to the richness of your already well designed platform. It would also bring you much closer to the tenets that you originally stipulated here:

We Believe:

  • Trader and broker interests can be aligned
  • Traders deserve execution transparency
  • Dealer intervention is rudimentary in retail FIX
  • Scalability should not cost you a new license
  • FIX is the standard; bridges are a crutch

You are correct that I should put this to a vote, and I already have. However, there exists the fear that the difference between aggregated and non-aggregated market depth, thought very important, may very well be outside the scope of most low tiered traders, and it is likely that these are the ones populating this forum, who are mostly active seeking help seeking help in building cBots for their latest trading strategy.

The correct use of Depth of Market to help a trader acquire order-flow, helping them make informed decisions about the relationship between their trading, is a skill that only the most seasoned of traders would have acquired.

To this end, I have some very legitimate fears regarding the success of this voting process.

The majority of these experienced retail traders would simply not be using cTrader, as they would easily be able to afford the minimum deposits (Dukascopy for example requires a minimum £100,000 deposit or minimum volumes traded per month of around £500 million per month) to acquire a direct FIX gateway connection directly to the market. They would therefore not require cTrader to access the market depth as they would have their own proprietary platforms that allow them Direct Market Access.

It is more likely that the traders that do populate this forum are low tiered, and simply do not have sufficient knowledge about market depth and its importance to make an informed decision about non-aggregated data implementation! As such, I predict that my request may never reach the number of votes that you are looking for, not because most people here would not appreciate the added option, but would simply not care enough to cast their vote!

My recommendation is therefore at a severe disadvantage due to the very small numbers of informed traders who also use this forum.

This is a change that I could very easily accomplish on my own. If you are reluctant to make these changes wholesale, then at least arm me with the ability to make these changes on my own.

You see, cTrader represents one of the last few hopes for those experienced retail traders with limited investment capital, to access the rich data that exists to carry out their fundamental market analysis. Without it, we very literally have nothing else to fall back on!

In this case, I truly hope that there is something you can do.

I look forward to your response.


@olddirtypipster

olddirtypipster
05 Aug 2014, 12:35

This is very peculiar to say the least!

I have established demo FIX connections to several aggregators in the past, combining the feeds from them. These included Currenex, Thompson Reuters, Integral and DeltaFlow, and even LMAX. They all have allowed non-aggregated market data requests (266='N') to be made.

Having the ability to call for non-aggregated price feeds is fundamental to accessing transparent market depth! To say that an aggregator will not allow you to accomplish this is strange to me. Maybe you should renegotiate with these entities, then? Why else would there be an option imbedded in the FIX protocol for this to be accomplished, if this feature is not supported by the vast majority of aggregators?

1) Are you currently using one or several aggregators?

2) If you are using several, is cTrader then further aggregating the market data from each individual aggregator, and displaying these to the end user?

3) If so, how do you ensure that there is no overlap in the market data that you receive when displaying this to the end user? Overlap when compiling previously aggregated data will undoubtedly result in biased data, skewed in favor of the the liquidity provider with the greatest multiplicity across each aggregator, unless you are then able to separate the individual LP's out.

This will naturally bring the quality of data being provided into question.

For this reason, if it were not possible to de-aggregate the data coming in from a given aggregator, then it would not be possible to combine aggregators into one comprehensive feed, as they may all be using one or more of the same liquidity provider feed that could not be separated out! This would render any aggregator not supporting 266-'N' incompatible with any other aggregator. It is highly unlikely that this is the case.

4) Could you make the aggregator(s) that cTrader is currently connected to public knowledge?

Regards,


@olddirtypipster

olddirtypipster
04 Aug 2014, 21:04

RE:

Spotware said:

We cannot provide an access to non-aggregated Depth of Market.

Is this based on policy, or is it a technological restriction?

On your website you state this:

We Believe:

  • Trader and broker interests can be aligned
  • Traders deserve execution transparency
  • Dealer intervention is rudimentary in retail FX
  • Scalability should not cost you a new license
  • FIX is the standard; bridges are a crutch

The last statement suggests that you use FIX protocol to access the Full Book.

This means that you can request for a non-aggregated book from your liquidity providers, who would all support this feature.

Your second statement implies that you goal is to achieve transparency. By not having your end user see the non-aggregated prices, you are completely going against this!

You first statement suggests that you are willing to work with your end users.

To this end, i am eager to know why tyou are not able to show non-aggregated prices.

Regards.

 

 


@olddirtypipster

olddirtypipster
04 Aug 2014, 18:51

RE:

Spotware said:

We cannot provide an access to non-aggregated Depth of Market.

May I ask why?


@olddirtypipster