Thank you LenMoz for doing that.
QUOTE:
Wealth-Lab Pro is Fidelity’s most powerful trading tool!... v) Elegant extensible design. A user can code completely new functionality and it will be integrated seamlessly
Totally agree.
QUOTE:
2) Weaknesses ...
i) Power users have exploited ... undocumented features to their fullest extent. Any change to core Wealth-Lab will introduce risk of custom extension failure....
And that's true of
any framework. If you're using "private" framework data types, you can expect that API to change and break your code. As computer professionals, we all live with that. What would be good is to better document some of the "public" data types whos API wouldn't be changing. That would allow us to extend the framework more effectively without using the Object Explorer of Visual Studio.
The ability to extend the WL framework into external packages may be the most powerful feature of WL. I'm using a couple Math.Net routines (such as multiple linear regression) now in my private WL DLL library. And I'll eventually use R.NET to interface with R to do further regression model development and plotting.
QUOTE:
iii) Requires C# programming skills
True if you want to get creative, which is the primary reason for using WL in the first place; otherwise, there are simpler alternatives. By coding one's strategy in a compiled--and optimized--computer language, you maximize your speed of execution. For numerically intense problems, this is an advantage.
QUOTE:
b) The inherent design problem…
i) First, runs each symbol through the backtest period in a vacuum, without consideration of capital, [etc]...
iii) It should be the other way around – run each symbol for a bar, then run the PosSizer for that bar, letting the strategy know whether the signal passed or failed cash management.
Totally agree, but there's an implementation logistics problem doing it the other way around. Let me explain:
The current implementation of WL has
time as the fastest moving variable, with
symbols as the next fastest. That's done that way because the WL indicators operate on individual time series data (stock DataSeries) one symbol at a time. That needs to work that way to fit the indicator problem into processor L2/L3 cache to get cache hits (i.e. maximizing Principle of Locality for each indicator computation); otherwise, cache misses would slow the processor down by 15 to 20 times.
I have tried thinking about working around this Principle of Locality problem, but there isn't a good solution. The only option may be to compute all the indicators
prior to entering the trading loop, then transposing the data space with symbols being the fastest moving variable with indicator vectors being the slower moving variable. Just performing this transposition of time data (indicator results) with symbol data may take minutes because the transpose would be done at front-side bus speeds (266 or 333MHz w/cache misses) instead of processor cache speeds (4GHz). After performing this transposition, trading decisions can now be made "across symbols" efficiently because symbols is the fastest moving variable. (NOTE: Plots have to be done with the fastest moving variable on the x-axis, so any plots over time must be done pre-transposition.)
What realistically can be done is to take the trading results and display them in a 2D scatter plot (e.g. risk vs gains) by symbol in a performance visualizer so one can see how each symbol performs compared with all other symbols on the scatter plot. But this is still employing an after-the-fact trading result. It's not taking PosSizer or signaling into account as part of the trading decision.
QUOTE:
a) Make Wealth-Lab Pro a component of Active Trader Pro
Agreed if it's done from a marketing prospective. Let me explain. An entry-level product can often be used to up sell a customer into a higher-end product. So if a budding Active Trader Pro user can be wooed into using Wealth Lab without spoiling his Active Trader Pro experience, then I'm all for it. For example, Wealth Lab could display its Alerts on Active Trader Pro so orders could be place via the latter.