I have programmed a lot of MetaTrader indicators (MetaQuotes Language) and studied a lot of TradeStation (Easy Language) & both User Manuals.
TradeStation is overall superior because all variables are or can be vectors (one value for each chart bar) or arrays, each with all element values implicitely and automatically defined through single statements.
Whereas in MetaQuotes, only OHLC are automatically vectors. Other user vectors can be defined but each vector element must be explicitely defined through a loop structure. The language has a severe and low limit for the total number of statements executed. Since explict definition of vector elements use at least one statement per element per vector, and a typical chart has 8,000 to 15,000 bars, the language limit of executed statements is easily exceeded if too many vectors are defined, and/or the number of bars is large, and/or the complexity of the program requires significantly more than one statement per vector per element.
I programmed several of John Ehler's indicators and filters for MetaTrader. They are fairly heavy on computations that reference intermediate variables for bars as far back as 50 to 60. I found that only about 300 to 1000 bars could be executed without "Loop Overflow." This is adequate for current trading signals, but is inadequate for backtesting.
If anyone has a solution to the MetaQuotes "Loop Overflow" problem, I am very interested.
If anyone wants my technique for minimizing vector storage so as to maximize number of bars computed (array memory management technique), I would be glad to share it.
I have begun programming a trading robot for MetaTrader. Anyone with any experience and tips? the MetaQuotes.net site has a new English MetaQuotes Expert Manual. Previously, nearly the entire site was in Russian.
Sincerely, Paul Y. Shimada
