Yes Michal! Let's talk about FPI mechanics...
let's imagine that we have the smallest latency time ever.
so what is the way to make it stable (at least with MBT\EFX)?
I guess you're talking about the internet connection latency
. This kind of parameter is not as crucial as is the time needed to process the order
at the broker. This is not to say that with a latency of 3 seconds you can run the FPI arbitrage, that would be a suicide. But a physical round trip ping of up to 250 ms
is ok. I'm getting an average of about 190 ms round trip ping to EFX servers and about 125 ms to IB here in Europe.
Quite obviously, the lower the round trip ping, the better. In the near future, I'll be moving the data collecting servers to the NIX backbone here in Europe, so I can post updated results on ping values here if you're interested.
I don't quite get your question about making "it stable". When I was talking about building a stable FPI framework, I meant stable in a programmatic sense (no program crashes).
Unfortunately, the question of order processing speed does not depend on the quality of your internet connection directly. One can assume that once you set up yourself to run the FPI arbitrage with millions of dollars, your data connection is backed up at least from three sources etc., but that does not provide you with any advantage in terms of the order processing speed.
My FPI framework is using a set of parameters that restricts it from opening or closing the FPI rings during times when there is a high volatility expected. There are basically two ways on how to do this:
- expected fundamental news: these dates and times have to be entered by hand. You can then set the pre- and post- time span when you don't want the FPI framework to run the arbitrage. For instance, if you enter the date and time of the next NFP, you can set that you don't want to run the arbitrage 10 mins before the news and 45 mins after the news is out
- statistics of average tick volume: this takes the statistics of the average tick volume during a trading week (Sun 5 pm - Fri 5 pm ET) for the given FX pair, calculated over some longer time interval (like last 12 months) from SQL and the user can then set the maximum average volatility that he or she has got the guts for. The higher the value, the more arbitrage opportunities, but the higher the risk of the broker not processing your order on time. Again, if you've got an excellent broker, you can do more arbitrages.
This is just a brief glimpse of the overwhelming complexity the FPI implementation takes.