|
I have Currenex on MetaTrader connected right now, but that is institutional level accounts only and I would never know if they were altering the price.
I have Python working inside MetaTrader 4 right now, but it needs a bit more work (error messages, generic calls, etc). I have unconnected python code right now that uses a client server socket connection so a master centralized location will receive all quotes and then tell different MT4 brokers or ECN to trade (either through callback on tick or socket for orders not on tick event). I wrote a simple colliding single threaded socket connection, we're upgrading that to a multithreaded noncolliding socket. (similar to a webserver instead of a doorway.)
I prefer python over perl because of integration, I might be marrying some embedded code inside my own MySQL functions - and I can use Python to do it by using a C wrapper.
I have some CPP code working for DLL integration with MetaTrader.
We have nearly 4 weeks uninterrupted streaming quotes via FIX protocol stored as tick data in MySQL. Dizzyd has implemented the FIX protocol streaming quotes, we process them and are now in the process of connecting to our central server for a socket.
My next step is to get bidirectional communication going between tick in, order out. DizzyD is also working on sending out orders through FIX, I'm working on more of the central logic.
Next step after that, scripts to generate M1, M5, M15, etc in MySQL. Each timeframe will be a separate table, to reduce overhead. I'm thinking about doing some parts of the indicators as SQL called from Python, and other indicators as an automatically updated stored procedure. (no additional socket overhead, no callback or response, lower system overhead.)
|