Reading this post , really makes you think . How is no power to their servers caused by a storm, any different than a power outage caused my a car outside their office that knocks down a telephone pole. What you have to realize is that no one is going to take responsibiliy. Its gods fault . Its like the line from the movie - Animal House - " you F---ed up, you trusted us .
Sorry, with all of the excitement yesterday, I skipped your post accidentally. I’m not sure that you are quoting me properly. Let me explain how the ECN (TDFX) works. Your limit orders sit on the system, along with all customer limit orders. Bank orders do not sit on the system. From that perspective, TDFX is also an STP platform (Straight Through Processing), which means that they compile quotes from various banks, display them in real-time to you, and let your market and stop orders go out to them if there is not a buyer/seller available on the ECN at the prevailing market price. But each bank quote is from a different source, and many of them do not see each other when they move their prices. Because of the number of banks and the number of customer orders that we have flowing through the system, it is not uncommon to see “choice” quotes where the bid and ask are the same or even potentially inverted.
Think of it like this. If you are trying to buy the EURUSD at 1.4810 and the quote is 1.4810 by 1.4811, you are the bid on the ECN (possibly along with other customers on a first-come-first-served basis, and our quotes could also show size at that price from banks). There are sellers at 1.4811, could be banks, could be customers and institutions on the ECN at that price. Now, let’s say bank XYZ on their own system moves their offer/ask price to 1.4810. Maybe they are quoting 1.4808 by 1.4810. They do this on their end. They aren’t looking at our ECN to see that we already have a buyer at 1.4810 for them. When the ECN sees their offer come down to 1.4810, it cancels any customer limit buy orders sitting at 1.4810 and immediately routes them to the bank at that price since the bank is displaying that number. Some fill is typically reached. If the bank fills part of the total order that is sent, they then move their offer up, and the rest come back and sit on the ECN at 1.4810 bid. This can happen extremely fast and quite frequently. Getting executions when that occurs is very possible. But some people make the mistake in assuming that an order sitting at the bid on the ECN must get executed in the process of a bank lowering their sell price to the customer buy price. They don’t interact until the ECN sees the bank price and goes after it. Now, please note that if another CUSTOMER wanted to sell at 1.4810, they would automatically hit the buyers on the ECN at that price. So customer versus customer order interaction is fluid and cannot cross the market. But what the banks do is not.
Now, I hope that is clear so far, so let me continue. What would happen if the quote was 1.4810 by 1.4811, you were trying to buy at 1.4810 and some bank decided to put their quote at 1.4806 by 1.4808? Could they do it? Sure. We can’t give them any parameters over where to put their quote. Most of the banks watch some other banks, but is it possible that at that moment, the other players that they are seeing are wider, maybe 1.4806 by 1.4811? Sure. So for them to go to 1.4806 by 1.4808 makes sense to them. If that happens, our quote would invert at 1.4810 by 1.4808. Any customer bids at 1.4810 would cancel and go try to buy from that bank at 1.4808. One of three things would happen. Either you would get price improvement when they executed you at 1.4808, or they give some amount of a fill, or they are already moving up because several banks and systems hit that at the instant that they went down. There is no guarantee of any one of those three things happening. You are in a market. There are other players, and much of this is extremely fast and computer-generated, which means that orders are routed in split-second fashion from all over the place.
That is how the ECN works, which is TDFX. It isn’t just an ECN, which would mean that it just had the orders of other customers. That wouldn’t provide enough liquidity. It’s also a STP platform routing quotes to about a dozen banks. The two combined is extremely powerful with a lot of liquidity, which is why so many people choose us over some of the other ECN options out there. But, let me go one step further, because everything that I have said so far is mostly handled at the TDFX ECN level. MBTF is simply routing your orders from your account to the ECN. The one thing that MB does do is route the order, and at the time of the route, it analyzes the market and uses a series of complex algorithms to determine what is the best thing to do. This technology is what won MB so many awards for best trading technology on the stock side, where there are tons of market makers and ECNs, and the system needs to snapshot how many shares are available from what sources at what prices and make a good decision to get you the best execution possible. In the forex world, it isn’t quite as complicated, but the algorithms still matter and the technology is important. One function of the algorithms is to determine whether your order should be routed at all, or if it is possible that bad data currently exists in the market. In other words, you don’t want a stop order to go out and trigger just because some bank put up a quote that crossed the market by 20 pips accidentally. There are no absolutes, so we can only program at “degrees” of expectations of what is happening. Obviously, if the bid and ask cross by 20 pips, there is probably either bad data or an extremely fast market where banks are jumping and ignoring each other. It makes no sense to send an order in that scenario because the odds favor either not getting filled or not wanting to get filled. In fact, the system analyzes the other bids and asks and how long they have been there (measured in milliseconds) when it decides if and where to send your order. The reason that all of this is important is that in the case of certain quotes that cause the market to become “crossed” in a manner that doesn’t really make sense, the system won’t send your order because it will determine that something is wrong. I can’t give you a specific of “it will always route your order if the market only crosses by 1 pip” or anything like that because it is more complicated. But in general, in the few times that bad data does come from a bank, it is very possible that you won’t be able to hit them because the system will usually know not to route the order. Other times, you can.
So, as a scalper, what does that mean? It means exactly what it means for scalping any market. We don’t limit or differentiate execution for any customer, no matter what they try to do. The system takes each order and handles it the same way under MBTF’s algorithms and the TDFX ECN’s decision-making. Can you try to pick off a bid or offer in a crossed market? Sure. Will you always get a fill? No. Just in the split second that you recognize it and decide to hit the button, there are likely automated systems that are trying to do the same thing. They will get there first unless the bank has a lot to sell. But we certainly will never prevent you from trying to hit banks and other traders however you want. We’re just trying to create the most liquid and seamless market available. Sorry this was so long. I felt bad that I skipped you earlier, so I thought I’d give you a complete answer.
MB Trading does have a “True UPS” and it worked perfectly, but unfortunately we could not get our generators to turn over in time before the UPS’s were exhausted causing further complications. So the point of failure was the generators…not that MB wasn’t prepared. As I’m sure you know…if you can't turn over the generators – you’ve probably only got 10-20 minutes if that before the UPS batteries start to fail as well.
It would not start for me either
Justin this is great information to have i would suggest this goes on your website under FAQ or something like that.
Anyway, thanks again for your explanation.
This is a good write-up Justin, thanks. I have two questions in line below.
In your website, you offer Open Access through Onixs for automatic trading. If I have an EA, run it through a vps, do I have to use services like Onixs, or I can simply convert my EA and running it through my vps. If it is the latter, can you please tell me where to start learning SDK? I have registered and downloaded SDK from MB Trading, but I got confuse since I don't know where to start.
Zen, there is a Yahoo group "mbtsdk" you can join. Regards.
I apologize for not answering the price v speed question earlier. It was overlooked in the excitement of Thursday (excitement being a bad word). I will also address the comments that you made in post #1589.
You said “In my mind, the fastest execution from when I choose to send an order based on your quoted prices... ought to also result in the best price. Having to choose between one or the other doesn't make sense to me in an ECN environment.”
I would direct you to read my post #1582, which I think that you read, but dig into it again. The bank quotes that you see in our data feed do not sit on the ECN. It is not an exchange, it is an ECN. Customer orders sits on the ECN, and the ECN monitors quotes from various banks. I don’t know if you are familiar with stocks, but let me try this analogy in the stock world, which should make it clear if you have traded there before. If you send your orders through ISLD (the Island ECN), that doesn’t mean that there is a smooth and fluid execution against all market makers because the ECN doesn’t have all of their orders. That is what a Level 2 window in the stock world shows…all of the various market makers and ECNs. If you are buying and place your order through an ECN, and if the ECN determines that it doesn’t have any “in-house” sellers at that price but that other ECNs or market makers are selling at that price, the ECN directs an order to the proper entity or entities. That requires sending an order out of the network to another entity and getting a response, either filled or not. If it was executing against a seller on the ECN, then the fill would be automatic because the ECN controls both the buyer and seller. If you have to send it out, then the two sides are communicating, and the other party has to accept the transaction (either electronically in most cases or manually in some).
So here is the point. Let’s say you want to buy the EURUSD. Let’s say that the quote is 1.4810 by 1.4811. Let’s say that you want to buy 100 lots. Let’s say that there are banks selling at 1.4811, but no customers with orders sitting on the ECN at 1.4811. Let’s say that there are customers selling at 1.4812…we’ll call it 500 lots.
OK, now, here’s the question. You want to buy 100 lots at the market. Which is “faster” and more likely to get filled? Sending an order out to a bank at 1.4811 that has to leave the network and route to the bank and wait for an execution or decline, or hitting the customers that we know are at 1.4812 on the ECN? Especially when the ECN is handling the orders, so it knows if you are the first customer trying to hit 1.4812 and can guarantee the fill because the seller is on the system? I think you can see the answer. Hitting the in-house seller is more guaranteed than going out to the bank. So in the loosest definition of price versus speed, in that scenario, if you set the slider all the way to speed, it would most likely pay 1.4812 to get you the guaranteed execution instead of sending the order out to a bank at 1.4811 and risk getting declined, and by that time, the 4812 could be gone. Of course, there are more complicated scenarios, and that’s why the price versus speed slider has a 1 to 10 scale. The MB system takes a “snapshot” of the market at the split second that your order is entered. “Snapshot” means that it takes into account how fast the price has been moving in either direction, makes a determination of how hard getting filled could be, and makes a determination based on your price vs. speed setting as to where your priorities lie. Now most of the time, this makes very little difference. We have tweaked the algorithms that handle this over time so that they only go so far. For example, at one point in the past you might have heard of someone that had their setting all the way to speed, and they got filled 50 pips above the market. Basically, the “snapshot” suggested that the market was moving quickly, and since the customer was set for a speed fill, the system went only to the ECN for execution, and the closest customer price available was 50 pips higher than the bank quotes. The algorithm no longer works quite like that, so that shouldn’t happen.
You said “Since the only route for FX trading is TDFX, I guess I'm a little concerned that the system would hold an order from being filled at all. If I dump something on market, and there are any quotes, it ought to fill at some (or multiple) levels in my thinking.”
Not exactly true, per the example above. No order is held. Far from it. No matter what your setting, our system does SOMETHING immediately to attempt to get you filled (except if it determines that there are bad quotes due to a massively crossed market). A bank showing a quote doesn’t guarantee you a fill because you don’t know if someone gets to them before you. They aren’t on the ECN. They are available via quotes through the ECN.
Also, keep in mind that MBTF is not TDFX. So for example, you were very concerned about our power issue the other night. We’re you concerned about us or TDFX? These are two totally separate things. MB holds your account and routes your order. TDFX receives your order and has parameters to execute that order. If TDFX goes down, our quotes are down, even if our order servers are up. If MBTF goes down, then we can’t route your orders. But MBTF is not an ECN. TDFX is. And redundancy at MBTF is one thing. Redundancy at TDFX is different since all orders are flowing through TDFX at some level, and all bank quotes are routing that way. TDFX can lose several bank feeds and still operate. But that means that all bank liquidity is directed to TDFX in Los Angeles. How do they determine the point where all of those feeds need to be cut and routed elsewhere, thus replicating the ECN elsewhere?
I would actually suggest that your comments about our power issue Thursday were terrific from a customer perspective, but didn’t really address the issue of what happened. It’s an apples and oranges thing. You are asking something that doesn’t exactly relate to what occurred. Do you know for sure whether TDFX was down or MBTF was down? In other words, I don’t have an issue addressing anything, but in some cases, it would almost confuse the customer that doesn’t understand what MBTF is and how they help you route to an ECN. If you called me up and asked me and I was talking to you, I could give you a complete answer that you would probably understand based on what I think your IT knowledge level is. But that answer isn’t something that would help our customer understand what is going on. I firmly believe that we addressed that issue correctly, and I think that the responses that we received from customers shows that. I’m ALWAYS happy to follow up and go deeper, but it just isn’t what the public wants. I’ll never understand why people that want deeper answers don’t contact us directly instead of asking questions on a forum like this and hoping that we respond in a manner that suits their needs.
You said “I would like to ask what I fear is a Pandora's box of sorts on this matter, but I want to know all the same. Do you (TDFX, or MBTF), match these bid-higher-than-ask orders among banks yourself? I would think doing so might be very profitable, but also it would put the squeeze on your traders, and opens up a whole matter of ethics. Ethics that are NOT currently addressed by legislation.”
In fact, this is not a Pandora’s box at all. When quotes cross at the bank level, it typically occurs in fast markets, and fills can be hard to come by, not because the banks are doing something wrong, but because orders are being passed at a rate that the average customer could never imagine. The idea that we would waste our time trying to write a procedure to hit banks in a crossed market and then hope that we could exit the trade at the other end of the quote is nonsense. It wouldn’t work if you saw all of the orders that are being sent manually and electronically throughout the interbank network. The few times that you might make money (scalpers…please jot this down) from the scenario would be completely offset by the rest of the time when it didn’t work. I can definitely speak for MBTF and EFX when I say that we have no interest and have not spent any time programming for trying to take advantage of arbitrage situations in the forex market created by crossed quotes. It just doesn’t work like that. As well, TDFX does not engage in such practices. The goals of both TDFX and MBTF/EFX is to create a unified market where bank and customer orders are executed fluidly such as the futures are on an exchange. Doing what you suggest is the opposite of attaining such goals.
Finally, in one of the three threads that has been the same conversation for the last 48 hours, someone made a crack about our commissions being too high versus other ECNs. I realize that people that don’t trade with us would have no way of knowing this. And I realize that the average person trading 1 mini lot at a time can get an instant fill a lot of places. But try getting a fill in any market environment for 100 full lots every time. It isn’t easy. Our commissions versus the executions that you would get elsewhere over time are cheap, especially when you realize the quotes that we provide, which are typically liquid at 1 pip bid/ask differential on the EURUSD, GBPUSD, and several other major pairs during most of the key trading hours of the day. Institutional customers that need executions can’t afford to get on a system where one bank and a handful of customers are on an ECN directly and hope to trade well over time. They need customer orders and a dozen large banks and a platform that knows how to route orders appropriately. To those traders, the cost is the cost. The smaller traders also like us because we allow very small minimum account sizes. You can name any other platform that is out there, but the reality is that I doubt that you’ll find a platform that combines the amount of liquidity with the execution technology at a net cost less than us.
If you are familiar with FIX, then you can run the EA without the Onixs piece. Onxis essentially offers a middleware piece that allows customers to connect their programs to us via FIX without extensive FIX knowledge. So in other words, if you understand or want to learn FIX, you don’t need them. If you don’t, then they might save you a lot of time.
Hi Justin. Thank you for your detailed response. All-in-all I think my question is answered, at least to the extent of how I need to set up my automation, for my purposes. It's still not totally clear to me what you gain or lose in terms of configuration if you were to set it on slider 20% price, but I think I have what I need now for the time being. Thank you. Other comments in line below.
I've tried to be as fair to EFX as possible, in saying clearly that these sorts of IT decisions don't fall to EFX to make. They are clearly in the jurisdiction of MBTF / TDFX IT shops. Nevertheless, it's industry standard Justin.
I look forward to the day when FX dealers are publishing their annual availability out to five decimal places, in addition to their full DR plans, in the interest of attracting customers. That day is NOW in trading securities, and in many other types of businesses as well.
You really would do well to err on the side of assuming your customers are more informed, as opposed to less informed though. After all you're talking about a line of business filled with programmers... those are folks typically with degrees in mathematics (not me), and I assure you they (we, the technically minded) aren't going to be scared off by technical details. Here's to hoping you aren't PREFERRING an overall customer based that is "less educated", but I digress.
All-in-all I really hope something was learned from this. One of my emails (which I will not share, since I do not share emails-in-confidence) from one of the executives in the T-M-E (if I may) management chain seems to indicate that something was learned, and that a key IT-related change is being made.
On the most practical (and lowest) level, I hope that I'm not ever in a position and this sort of thing happens again. That's the reality. And if I am in a position and a similar power outage happens, I hope the business continuity plan is resilient enough to be able to sustain the outage without interruption to the trading systems at minimum for long enough so I can close my positions.
Unless you'd like to argue that business continuity plans can not be made resilient enough to survive this exact type of outage without business interruption (and indeed they can), then I consider the matter to be otherwise done and over with from my perspective.
Thank you. Regards.
Interactive Brokers offer 50:1 leverage on USD based pairs only AND automatically switches to 25:1 on non_USD pairs traded like EURJPY.
There are no brokers that satisfy all ideal , prefered settings.
A few quick things i would like to add about this outage before we all move forward.
One would be that your concern about why more people don't call the office direct with concerns is partly a by product to your willingness and ability to communication with your clients and prospective clients on this forum. I consider that an asset. The openness and attention you give to questions and concerns is one of the reasons i do use EFX and i have expressed that too you personally.
Second is I understand that nothing can be 100% foul proof. Althought i do still feel MB was not as prepared as they should have been. I would like to ask that a procedure be put in place to send an alert out. If the power goes out and the ups is good for 10 mins and your generator is not up in 1 min then an alert needs to go out giving them time to exit positions as a worse case situation.
Again thank you for your time here and your answers and insight you have provided.
Thanks for the comment. The facts are these. If you look at the minimum account size at one of the brokers that you mentioned and then consider yourself an “active scalper” on an account that size, it is almost a given that you wouldn’t be paying us $50 per million based on volume price breaks. Our price breaks go as low as $30 per million, which puts us on-par with them. And as sogt725 pointed out, the other broker offers half of the leverage that we do…or less in some cases. I won’t comment on either of their liquidity versus ours, nor the order type control, nor what our bid/ask differential is on average versus either of them. It seems as if all you are saying is that their headline commission is less than our headline commission. That doesn’t factor in what commission most of our active customers that could have an account at those brokers actually pays, nor does it factor in any of these other factors that are important to traders.
Thanks for the comments. It isn’t that people didn’t contact us…we received over 400 e-mails alone, and that doesn’t even count phone calls and live chat session, during the event last week. We replied to all of those e-mails with an explanation of what occurred in the morning, and the overwhelming majority of people that replied to our e-mail said that they understood and appreciated the explanation. Only a handful pursued the conversation or were tech-savvy enough to want to discuss it in more depth. My point was that I didn’t understand why someone who did have that knowledge wouldn’t call in to ask the questions first instead of asking them on this board. You would get a more direct answer immediately. The reality is that if our response had been about tech-speak and generators and DC power and UPS systems, I can guarantee you that a lot of people would have felt like we were talking down to them or over their heads intentionally, and I don’t like to do that. I appreciate your comments, but my only point is that public boards tend to overwhelming give a more negative view of things on any topics than the reality of the situation because the people that are unhappy talk the most. But if I’m unhappy with someone that provides me a service, I’m getting on the phone with them to get answers. That’s just me.
In regard to your second point…let me first reiterate what I have said. The event last week is being reviewed, and we are analyzing every aspect of what went wrong. Based on our past examples, anyone that knows us should know that we take this business very seriously and have no interest in just letting things remain the same if we feel that they could have worked out better. It is our job, since we are the ones with full information, to assess and make a determination of what occurred and any changes that could be made. Off the top of my head, looking at your idea, it sounds logical. Now, let me ask you a question. We send out this message at some interval. You mentioned that on a 10 minute UPS backup, if the generators are down after 1 minute, we send out a message. So a bunch of people close their positions. And then we get the generators working over the next nine minutes. What do we say to people that didn’t want those positions closed and only closed them because of a message that we sent? So I can assume that the next logical step would be, “OK, so send out the message with two minutes of UPS left.” And it still leaves open the possibility that we fix the systems, or we’re open to the possibility that two minutes isn’t enough for customers to see the message and react. So let’s say that ten times in a year, we are forced to go to UPS due to a power problem in LA. Let’s say that one time, it resulted in this. Do we make an adjustment that could hurt our customers at the time over 1 out of 10? Or do we assess whether this should have ever happened, knowing that we have a full system in place, and make sure that the 1 out of 10 doesn’t even occur by making changes.
The only issue that I have with “I do still feel that MB was not as prepared as they should have been” is that you’re making that comment without really knowing whether we were actually fully prepared, and this issue just happened beyond that. I don’t think it is correct to say “Well obviously you weren’t fully prepared because look what happened.” Maybe we were and maybe we weren’t, but the one time something does go badly, you definitely have to analyze it. We could be fully prepared and have a system that has worked great under these circumstances in the past, and then something new occurred here. As you said in the post “nothing can be 100% fool proof.” There is sort of this underlying tone on some of these posts that we weren’t prepared. I don’t think I can agree with that. I think something went wrong here this one time, and knowing what we know, I think we can work to make sure it doesn’t happen again. But any other time that something like this has occurred, our system has worked fine, but of course, no one would know that because it worked. So we aren’t going to implement a bunch of policies that could adversely affect our customers 9 times out of 10 unless we know that it is the best route. All things are being discussed and considered at this time.
Hi Justin: I am wondering if you could put together a FAQ and post it here w/ a link to it in your sig. This thread is now at 100+ pages and growing. Many may not wish to read through it all just to get some basic facts about EFX Group
© Forex Factory