How long would it take to send a ~1500 character string? That's what I'm sending from the slaves to the master.
Arbitrage with no-interest broker 147 replies
eur/usd arbitrage broker? 4 replies
does you broker ban arbitrage on manipulated price quotes? 2 replies
My idea for broker arbitrage 13 replies
Broker arbitrage BIG TIME 4 replies
DislikedSockets are not a problem - Most C based sockets can work in around 300ns (nano). I have myself managed a round trip (a message from java to MT4 and a response back) in about 1-1.5ms (millisecond) - thats not a problem on MT4 timescales.
The advantage of sockets is the simpler server implementation and the potential for access from other machines (maybe an additional 0.5ms within the same LAN)Ignored
DislikedHow long would it take to send a ~1500 character string? That's what I'm sending from the slaves to the master.Ignored
DislikedI myself have a program written in C# and C++ (see attached), the project was started about 3 months ago and so far has been tested in demo for more than 1 month. Everything is fine on demo, but when I moved to the live trading. The game is turned over by the slippage from the retail brokers. The FXDD keeps complaining about the off-quotes and re-quotes. same thing happened with the forex.com. BTW, the average order execution time from my program is less than 1 second on most of brokers. The program is also installed on a vps. With all the data...Ignored
Dislikednondisclosure00,
Thanks for your quick reply... The #3 is broker personality. I tested 6 brokers on demo. One of them is really really bad. basically it tried to screw you up for every single chance. Do you have any thoughts of how to deal with it?Ignored
DislikedIn live. The system works like a champion in demo. grows everyday. But in live, the slippage is much more serious than I expected (I just tested for a few days on live, though).Ignored
DislikedPresumably you're using market orders? I found that #3 (broker personality) was quite a wild card and spent a lot of time on that one - tuning for the live server. I don't want to turn RR's thread into a help desk but just a couple of comments and some homework.Ignored
QuoteDislikedYou probably already are but make sure to refresh rates before transmitting. If the rate in your order doesn't match the rate in the broker you get rejected, particularly when using small slippage #s. I've found that this is ESPECIALLY true on live servers and with OrderClose(). Ironically, you may need to reduce the slippage # to a smaller factor and just accept the fact that you're not going to get all those fills on the slow broker, or just keep refreshing rates and attempting to get a fill while the price is attractive for the slow side of the...
QuoteDislikedThere are a number of issues with order transmission on MT4 brokers. I cover some of those in this article: How to write a close all script (particularly RefreshRates / IsTradeContextBusy / IsTradeAllowed / Slippage) and also see the Notes under OrderSend as well as the NormalizeDouble function...
QuoteDislikedThe difficulty comes when trying to actually put on the arb on the 2nd broker. You don't want to put on the offsetting position before you know the slow quote has gotten a fill, and you may consider just executing on the slow quote though that will take some system development if the signals are infrequent. The edge in this arb strategy is getting the fill on the slow broker. The 2nd fill hedges and locks in profit but doesn't add alpha (unless both broker prices are out of whack).
DislikedAll EA's, in the same terminal instance, share the same thread. This is for MT4. Metaquotes says in MT5, that's changed. Haven't tested to find out yet.Ignored
DislikedThe edge in this arb strategy is getting the fill on the slow broker. The 2nd fill hedges and locks in profit but doesn't add alpha (unless both broker prices are out of whack).Ignored
DislikedAs to the offsetting position, if you put another order after one leg is established, is it still the arb system? To me, it is more like to hedge the previous position. I will try to modified accordingly and see how it goes.Ignored
Dislikednondisclosure00,
Thanks for your quick reply... The #3 is broker personality. I tested 6 brokers on demo. One of them is really really bad. basically it tried to screw you up for every single chance. Do you have any thoughts of how to deal with it?Ignored
DislikedI have mentioned before that my BELIEF is that, for MARKET orders, concurrent execution is worthwhile as the cost of delay is likely to outweigh the cost of slippage. The slippage limit could help (but is it universally implemented ?) but i bet its not gonna reduce the delay. I promise not to say this again - honest !
If MT4 had LIMIT orders then it would be equally viable to execute concurrently or asynchronously, depending on your opinion at the time
I'll add that am also not trying to hijack the thread (but not succeeding very well :-), but...Ignored
DislikedOh ! Thats odd coz my home written copier in MT4 has a number of ea's - one per 'signal' it sends - it uses a blocking socket read to ensure a quick response on order processing. I can and do run 5+ of these in a single Mt4 instance (no polling) , and each has the same response characteristics, around 1ms - which says to me that they are each running in a separate thread (I am running the standard WSA socket stuff) The only ill effect is that the same thread is used to show the EA Properties dialog - so you cannot edit the EA properties without...Ignored
DislikedNow I'm confused. You can send orders concurrently as long as they are in different MT4 instances.Ignored