Background - I am not a programmer. I do trade spot forex on an intraday basis. I am willing to learn programming
Specific Query - I
Yes, MetaTrader4
is still not able ( in spite of all white-label-ed Terminals' OrderBook Add-On(s) marketing and PR efforts ) to provide an OrderBook-L2/DoM-data
into your MQL4
/ NewMQL4
algorithm for any decision making. Third party software tools' integration is needed to make MQL4
-code aware of the real-time L2/DoM-data
.
LMAX widget has impressive look & feel, however for your Excel export it requires a lot of programming efforts to re-use it for an automated scanner to produce data for 1 & 2 while there may be some further, non-technical, troubles on legal / operational restrictions for automated scanner to be operated on such data-source. To bring an example, the data-publisher policy restrict automated Options-pricing scanners for options on { FTSE | CAC | AMS | DAX }, may re-visit the online published data-sources no more than once a quarter of an hour and get blocked / black-listed otherwise. So a care and a proper data-source engineering is in place.
Size of data collection is another issue. Excel has some restrictions on an amount of rows/columns that may get imported. Large data-files, the more the CSV-imports may strike these limits. L2/DoM-data
, collected for 2-3 hours just for one single FX Major may go beyond such a limit, as there are many records per second ( tens, if not hundreds, with just a few miliseconds between them ). Static file-size of collected data-records take typically several minutes to just get written on disk, so proper distributed processing data-flow
-design and non-blocking-fileIO
engineering is a must.
Real-time system design is the right angle to view the problem solution approach, rather than just some programming language excersise. Having mastered some programming language is a great move, nevertheless, so called robust real-time system design, and Trading software is such a domain, requires, with all respect, a lot more insights and hands-on experience than to make an MQL4
code run multi-thread-ed & multi-process-ed with a few DLL services for a Cloud/Grid-based distributed processing system.
For just a raw idea, what the Market can produce per second, per milisecon, per microsecond, let's view a NYNEX traffic analysis for one instrument:
One second can have this wild relief:
And once looking into 5-msec sampling:
data-source
owner legally permits your automated processing.DataPump
software, independent of the HTML-wrapped WidgetDataPump
data-source
>> DataPump
>> DB-store
performance & robustness on being able to serve error-free a 24/6 duty for several FX Majors in parallelDataPump
fed DB-store
local data-source
for on-line/off-line interactions with your preferred { MT4 | Excel | quantitative-analytics } package