Average spread stats: EFX vs. Interactive Brokers

discussion on brokers, order execution, order automation and everything broker-related

Moderator: moderators

User avatar
michal.kreslik
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male
Contact:

Average spread stats: EFX vs. Interactive Brokers

Postby michal.kreslik » Tue Oct 16, 2007 11:10 am

Hello, friends,

I think you might be interested in the average spread statistics in pips that I've done yesterday. It's calculated from the millisecond-precision tick data that I've been collecting from EFX & Interactive Brokers from mid August:



The source data only contains new quotes. In this methodology, a quote consists of both the Bid and Ask values. A new quote is created when either the Bid or Ask or both differ from their respective values in the previous quote.

The resulting table also contains information on how many quotes for the FX pairs in question were available for the calculation. The quote stream is not always continuous, i.e. if there is some internet connection or other failure, the quotes are missing in the source data. But, provided the spread values are distributed normally, this should not skew the results in an essential way.

EFX offers more FX pairs than IB, so there are only the resulting values for EFX for some pairs.

The value of the average spread is critical for trading systems that generate high frequency trades. Obviously, the average spread is not the only broker-dependent market access parameter that affects high frequency trading system's tradability. Among the key factors are:
  • average spread
  • executability, both price-wise and size-wise
  • commissions
Attached you'll find the Excel spreadsheet.

Michal
Attachments
AvgSpreads.zip
(3.13 KiB) Downloaded 160 times

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.

alichambers
rank: 50+ posts
rank: 50+ posts
Posts: 79
Joined: Wed Nov 08, 2006 4:46 pm
Reputation: 0
Gender: Male

Postby alichambers » Tue Oct 16, 2007 1:03 pm

Nice work Michal. As you point out, the key question for me is:

- Speed of execution

if we are scalping in a fast market

User avatar
michal.kreslik
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male
Contact:

Postby michal.kreslik » Tue Oct 16, 2007 1:12 pm

alichambers wrote:Nice work Michal. As you point out, the key question for me is:

- Speed of execution

if we are scalping in a fast market


Sure, Alex,

that's one of the most important factors. But how to measure it objectively?

Michal

alichambers
rank: 50+ posts
rank: 50+ posts
Posts: 79
Joined: Wed Nov 08, 2006 4:46 pm
Reputation: 0
Gender: Male

Postby alichambers » Tue Oct 16, 2007 3:19 pm

Agreed - a difficult one.

Posting our experiences with execution speed would be a good start - maybe another thread???

I have found Interactive Brokers to be a little slow at times - using their API trading. Sometimes 10-15 secs for the order request to go through. However, I'm fairly new to trading, so this maybe the norm???

AC

User avatar
dbw451
rank: 50+ posts
rank: 50+ posts
Posts: 50
Joined: Sun Jul 22, 2007 9:45 pm
Reputation: 0
Gender: Male

Postby dbw451 » Wed Oct 17, 2007 1:49 am

Hi Michal,

I'm wondering if this is an apples to apples comparison. I know IB provides data in 2 ms snapshots. Does EFX do something similar or are they sending every quote change? Funny numbers can result from IB averages because you don't have all the quote changes between the snapshots.

Regards,

David
TRADE THE MARKET, NOT THE INDICATORS

http://nickajackcreektradingco.com
Support & Resistance Day Trading

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.

User avatar
daniil
rank: 50+ posts
rank: 50+ posts
Posts: 61
Joined: Mon May 07, 2007 6:40 am
Reputation: 0
Gender: Male

Postby daniil » Wed Oct 17, 2007 1:58 am

Hi Michal!
I suppose you collect the ticks with MS SQL? i've read your topic about that so would you be please so kind as to share the final SQL table format for quotes?
Do you collect Level II data? if so please be aware that demo and real Level II data at least for MBT/EFX does not match.

BRGDS, Dan

4x=0
rank: 150+ posts
rank: 150+ posts
Posts: 410
Joined: Tue Oct 17, 2006 10:53 pm
Reputation: 0
Gender: Male

Postby 4x=0 » Wed Oct 17, 2007 9:57 am

Key questions for Justin at EFX:

1. does EFX emphasize speed and execution?

2. db asked, "I know IB provides data in 2 ms snapshots. Does EFX do something similar or are they sending every quote change?"

3. daniil seems to notice that demo and real Level II data at least for MBT/EFX does not match. Is this true?

I'll send an email

Annu
rank: <50 posts
rank: <50 posts
Posts: 18
Joined: Mon Mar 19, 2007 12:25 pm
Reputation: 0
Gender: None specified

Postby Annu » Wed Oct 17, 2007 1:30 pm

Thanks Michael for posting these very interesting statistics. EFX started to quote fractional pip prices this week much more frequently, i wonder how that will impact your results.

Unfortunatly, the commissions will eat the spread advantage EFX has over IB.

Regarding speed of execution: apparently the new EFX platform, which will be released soon(tm), will feature internet-routing over the akamai-network, which is supposed to bring down latency. At the moment my avg. execution takes about 2.5 seconds from order-entry to confirmation (from europe to the EFX-servers in the USA, measured with an API-project). Looking forward to see how this technology will affect the speed.

User avatar
michal.kreslik
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male
Contact:

Postby michal.kreslik » Fri Oct 19, 2007 5:53 pm

alichambers wrote:Agreed - a difficult one.

Posting our experiences with execution speed would be a good start - maybe another thread???

I have found Interactive Brokers to be a little slow at times - using their API trading. Sometimes 10-15 secs for the order request to go through. However, I'm fairly new to trading, so this maybe the norm???

AC


Alex,

10 - 15 sec for the Forex order during a normal time of the day is definitely far too much. Are you sure you've got the order routing set up correctly in the TWS? Even if you had an IP-packet monitoring antivirus set up, it should not take so long!

Michal

User avatar
michal.kreslik
rank: 1000+ posts
rank: 1000+ posts
Posts: 1032
Joined: Sat May 13, 2006 2:40 am
Reputation: 0
Location: Monte Carlo, Monaco
Real name: Michal Kreslik
Gender: Male
Contact:

Postby michal.kreslik » Fri Oct 19, 2007 6:40 pm

dbw451 wrote:Hi Michal,

I'm wondering if this is an apples to apples comparison. I know IB provides data in 2 ms snapshots. Does EFX do something similar or are they sending every quote change? Funny numbers can result from IB averages because you don't have all the quote changes between the snapshots.

Regards,

David


I've heard about the "snapshot" issue. Anyway, if they really feed the snapshots instead of the continuous stream, it does not matter as long as the snaphots are not skewing the distribution of all their (even hidden) prices. It's because if you draw a random sample from a population of normally distributed cases and measure the sample's statistical properties, you're going to arrive at roughly the same results almost every time you draw a new random sample.

The problem would be if they would only feed the best prices or the worst prices etc. which I guess is not the case.

Imagine this from a standpoint of a US census worker. If he's assigned a task to calculate the average height of a US citizen, it's not going to skew the results much if he omits some randomly picked individuals from the calculation.

Also, I've been told that even if the price does not show up on your chart, you get filled at it with IB.

Last but not least, 2 ms is still much more precise than anyone can ever capture with an ordinary PC without the help of some special (and potentially very expensive) additional technical equipment. I'm collecting the ticks with a millisecond precision, but obviously, I'm limited by the PC's clock timer resolution.

The PC's clock timer interrupt refreshes the time information at a frequency of about 62.5Hz, so it delivers a new time information to the system roughly every 16 ms.

Let me illustrate my point and have a look at this simple code in C#:

Code: Select all

using System;

namespace PcClockTester
{
    class Program
    {
        static void Main(string[] args)
        {
            int count = 0;
            DateTime time = DateTime.Now;

            while (count < 5)
            {
                if (DateTime.Now != time)
                {
                    time = DateTime.Now;
                    Console.WriteLine(time.Second.ToString("d2") + "." + time.Millisecond.ToString("d3"));
                    count++;
                }
            }
        }
    }
}


It cycles 5 times and prints the value of the current time in a format of seconds.milliseconds, but only if there is a new time information available.

If you run this code, you'll get something like this:



As you can see, the time moves in 16 ms leaps for an IBM PC-compatible computers :) However, I've seen some interesting solutions on how to cope with this issue of time precision granularity, but it's a theme onto itself.

Michal
Attachments
PcClockTester.zip
(1.8 KiB) Downloaded 33 times

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.


Return to “brokers”