There's one thing that's been puzzling me for as long as I've been using MQL... why on earth try to reinvent the wheel and create yet another language, a substandard one at that.
There are MANY excellent languages already available, it would've been so much easier for both MetaQuotes as well as for us developers to write a library (C++, Python, C# or whatever language chosen) with all the MetaTrader features.
I would love it if you'd rethink your past decisions and go with a proper language.
It would be harder to share code written in different languages.
To modify a code of an indicator or an EA you would need to install sometimes dotNet, sometimes Eclipse, sometimes Netbeans, sometimes Python, etc.
Six months have passed since the thread was started.
My guess is still end of First Quarter 2009.
After this years Robot Contest.
Early enough for development (say, 6 months) before ATC2009
Like Phy said, about six months have passed since the opening of this thread, and no announcements for the new MQ5 platform yet. This goes to illustrate the point Milton and LesioS are making, that the choice to develop a new language —similar to C++ or a subset of C++ —instead of developing an API, perhaps should be reconsidered. Sometimes change is good. Companies should always reevaluate costly decisions and be ready to adapt for the good of their customer base, while also, saving companie's resources. Back in the year 2000 for example, Apple did something similar, in respect to change, when they decided to replace their classic OS and base their next generation OS on the Mach kernel "which is derived from the Berkeley Software Distribution (BSD), and later, certain parts from FreeBSD's and NetBSD's implementation of Unix in Nextstep"(source: http://en.wikipedia.org/wiki/Mac_OS_X). This came about after 3 failed attempts, projects codenames: Taligent, Copland and Gershwin. After much controversy among the Apple community, this decision not only catapulted Apple's reputation as a serious server/development platform but served to attract a new breed of sophisticated users. Apple did it again on the summer of 2005, surprising everybody, when they decided to drop the RISC Motorola processors and go with Intel CPUs, for which they had to port the whole OS to a completely different architecture. I'm sure these decisions weren't lighthearted.
Metaquotes should do what Apple did. I say, choose an already mature language like C++ (or Java or Perl or Python), develop a library, and make that language the official language for MQ5. And, trust me, this could mark the difference and do what Mac OS X did for Apple.
The message I'm trying to send is that Apple decided not to reinvent the wheel when they chose to base their next generation OS on a proven, already reliable kernel. They just had to adapt their technology to it. Simple. Genius!
needing inputs please...
1. at moment, as understand it, should EA environment alter - eg, disabled or stopped, interpreter exits Sleep() early - correct?
2. if (1) then will MQL5 do same?
3. if (1) then is EA warranted 2.5secs to 'cleanup' eg, OrderClose()'s, any file(s) activity,... (specifically, in deinit())
4. (3) assumes that i code EA calling Sleep() always [next line] checks EA environment state - so that start() will exit asap and so give deinit() watever left of 2.5secs max time allowed b4 program killed off...
5. is (4) ok thinking, or...?
Best to all
ptr to time series array possible?
ArrayCopySeries() maps/redirects array onto series array selected by Series array identifier.
If i had ability to map six pointers onto the set of six series arrays for symbol/period chart, multi symbol workings would be relatively pain free.
eg, when EA wishes to change to another virtual chart environment identified by symbol/period, six pointers to six series arrays setup plus the five predefined scalars bid,ask,digits,point,bars (EA globals eg, _Bid, _Ask, _Digits, _Point, _Bars), and the six series array pointers eg, _Open, _Close,...,_Time
now say all EA code makes refs to above EA globals and a function eg, MapVirtualChart(sym,per) does above.
plus a _RefreshRates(..) to handle updates to five scalars...
above would seem approximate function to allow multisymbol workings.
this would imply that Terminal continues to keep all MarketWatch series arrays with latest incomming ticks, which believe happens currently.
some of above may be seen as Terminal related, but surely is possible to give answer about my 'ptr to time series array' discussion and that indeed, the pointer could be then used to reference mapped to series arrays like is done in ArayCopySeries().
This level of indirection would seem to be needed to do as discussed.
You have all been silent for months - must be slaving away [as usual:], yes?
Can you supply any updates regarding your work...?