If we were using pure hedges that might be true, but since we're working with synthetic/correlated hedges, it makes sense. All the synthetic hedges we trade will naturally drift apart, sometimes by a pretty large amount, come back together and then drift the other direction. That pip spread that widens and shrinks between correlated pairs is what makes it work. I'm going to guess that the reason dsugum has trouble being quick enough to grab the profit is because he's entering randomly instead of watching the pairs shift apart. When I trade correlated pairs I use dreamliners ideas he started here, along with other tools, correlation charts etc that developed later in his thread.
http://www.forexfactory.com/showthread.php?t=160912
If we were to put some code in which would monitor the pip spread between all 3 pairs, and only initiate the hedge after they had drifted apart a while, we would see a result much faster than randomly starting it. we would also need to initiate the hedges in the opposite direction of the drift.
mbkennel wrote:I'm skeptical there will be any exploitable triangular arbitrage available with real money.
The EA may *seem* to believe that you have it, but remember, that the EA has to be attached to a single chart, and the start() function is only executed when there is a tick on THAT chart. So you may think that you have an arbitrage but it is only because of the intriniscally inadequate infrastructure & design of Empty4. (As in it was made to be easy for amateurs to do simple stuff---pros have real time systems which cost lots of money and full time crack PHDs and real-time software engineers babysitting the codes).
And so even if you get something, there will be 'magically' slippage on just those events which counteracts it, which is just an indication that you got a stale quote, and not a full set of N quotes for which you are guaranteed tradability to a certain size for a certain # of milliseconds. (If you got such a thing, they would make you pay in spread to cover their risk, note that ECN criminals do not guarantee no-slip tradability for this very reason.)
In any case make sure there is liberal use of RefreshRates() throughout the code. If that makes a big difference, then be afraid.
This may turn out to be a great EA to be "sold" which performs on demo and fails on real.
Sorry to be a party-pooper, but exploiting transient anomalies in pricing is not something that we can do, when there are Very Powerful Gorillas With Lots of Money Who Do This For a Living.