So let's say you trade a 3 min time frame. You have a trigger, and it took me, with Excel, 1000 ms or 1 second to send an order in via IB TWS automatically.
So, it took about 100 ms in Excel to grab the data and calculate the signal, 300 ms for me to send an order from Singapore to IB's HQ in US, and another 200 ms from their systems to NYSE. That's a total of 500ms
Now you said changing it to Java/C++ means it will definitely be faster, better, more profitable. Whatever.
Then think again. You are only solving the 100ms problem. And maybe I colo to near New York. Save another 200 ms. Total round time is 500ms, instead of the 1 second. But it may still fail. Why ?
1) As a trading system yes I hv saved 500ms but so what ? From the time it triggered to the point I actually send in the order, the strategy doesn't really mater b/c its a 3 min time frame. I can execute anytime between 5s-10s slower. its fine. Maybe I lose a penny or 2 X 200-500 shares.
2) So after you send in the order. What ? Bound to make money ? No. It still depends on the market, something I cannot control. If the order gets filed, fine. What if it doesn't. I can only act on it. No matter how godly or fast my algorithm, I cannot control the market. So it doesn't matter if its 500ms or 1000ms.
3) And you trade long enough, you notice for 500ms, last done prices and data ticks don't jump 50,000 times. It probably stays there as it is, unless at volatile times. Except for quotes that are staffed in out 50,000. I don't care about that.
So in a way we can argue until we invent the space/time machine. Challenge each other's limitations. Pros and cons. Good luck.