Log in to see Cloud of Tags

Wealth-Lab Wiki

Wealth-Lab 6 Open Issues

This page provides a list of new and open issues.  Reference numbers are for internal tracking.


  • (146) Application needs to support 120 DPI throughout
    • Suggestion: revert to the standard "Smaller - 100%" text size. Selecting the "Medium - 125%" option in Display (Windows Control Panel) causes some overlay and/or partial invisibility in various tools like Strategy Parameter box, compiler error message box, and many other parts of the interface.
    • Workaround:Fix Wealth-Lab Fonts in Windows 10
      • Workaround: On Windows 10, right click on Wealth-Lab's shortcut, select Properties, then under the Compatibility tab set 'Override high DPI scaling behavior' to 'System' from the dropdown.
      • Workaround: Set 'Disable display scaling on high DPI settings' and/or 'Disable fullscreen optimizations' checkbox (in the Properties > Compatibility tab of Wealth-Lab's task bar icon): How to Make the Windows Desktop Work Well on High-DPI Displays and Fix Blurry Fonts
    • Workarounds for Apple Mac + Parallels users only:
      • First, Fix Wealth-Lab Fonts in Windows 10
      • in the Mac menu go to Actions (the Virtual Machine menu in older versions of Parallels Desktop) > Configure... > Hardware -> Video and..., then set "Resolution: Scaled" (not Retina).
      • Open Parallels Control Centre > Windows 10 Configuration > Options > Sharing, click on the Share Mac tab and select Share None Folders and also uncheck Share Mac user folders with Windows
    • Less likely workarounds:
      • Workaround: run Windows10_DPI_FIX.exe from this site if you're not on Windows 10 Creators Update
      • Workaround: Follow procedure which involves tweaking the system registry and using an external manifest file. Instead of using regedit.exe, simply download this file and execute. The manifest.txt file from the article should be saved in UTF-8 encoding either as WealthLabDev.exe.manifest (WLD) or WealthLabPro.exe.manifest (WLP).
      • Workaround (?): customize the font size of a Windows GUI item on an individual basis: How to Change the Default Font on Windows 7
      • Workaround (?): try editing the WealthLabPro.exe.config (or WealthLabDev.exe.config) file in the main folder under Program Files (requires elevated user rights) to activate EnableWindowsFormsHighDpiAutoResizing:
      • // below this line: <add key="ChunkDays90MinBars" value="360"/>
        // add this line:
        <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
      • Workaround ?: if your screen resolution is high, try to change it to a smaller resolution

  • (190249) Missing "Save" and "Save As" menu items
  • "Save" and "Save As" choices are missing from the File menu.
    • Workaround: enable "Function toolbar" from the View menu.

  • Saved workspace restored incorrectly for users with multiple monitors (applies to Wealth-Lab 6.9)
    • Workaround: Save affected workspace to a new name, delete the old one.

  • (8125) Exception: Requested Clipboard operation did not succeed
    Quite frequently, after copying text in the Editor (Ctrl+C), the following exception occurs.
    • Suggestion: Do not use Wealth-Lab Editor in parallel with an active remote desktop session e.g. RDP/VNC and/or any 3rd party utility/software monitoring for clipboard activity in the background (e.g. Notepad++ with MultiClipboard plugin, KeePass with TCATO activated).

  • Crash upon playing a WAV file for the Alert sound
    • Wealth-Lab will crash when playing a non-PCM wav file (like any in ?C:\Windows\Media\subfolder\*.wav)
    • Workaround: Choose PCM WAV files only (C:\Windows\Media\*.wav files are probably okay), other types and codes are unsupported.

  • (49880) Synchronization of external 60-minute Bars does not work properly when using "Fixed Bars"
    • Workaround: Use Most Recent (months, days etc.) option

  • (192679) Benchmark B&H Throws "Error processing symbol [last in DataSet]"
    • If no data exists for the first symbol in the DataSet for a Multi-symbol Backtest (Portfolio Simulation mode) and Benchmark B&H is enabled, the error appears and the simulation post-processing (visualizer) is aborted.
    • "Error processing symbol {last symbol} Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index"


  • (177409) Fundamental items plotted before acquiring the data can't be refreshed until the chart is reopened

  • Wealth-Lab requires at least one bar before a fundamental item's release date to properly display it.
  • For example, when charting an annual fundamental item which is timestamped July 03, choosing any starting date after June 30 would make the chart display the item as 0.
    • Workaround: choose your data loading range accordingly

  • (182124) Drag and drop doesn't function for non-symbol fundamental items
    • Workaround: click "Push all indicators and fundamental items into the Strategy code"

  • Point and Figure chart cannot be changed to Log %, freezes WLD 6.9.24
    • Workaround: downgrade to 6.9.23 (create a support ticket - only if you're a customer with active maintenance period)

  • Streaming stops in charts upon launching a New Workspace Window
    • Workaround: depress the Stream button and click Stream again to restart streaming

Strategy Wizard ("New Strategy from Rules")

  • (3926) Multiple Open Positions allowed in Single Position Rules-based Strategy.
    • The Strategy Builder does not take into account the possibility that multiple stacked stop and/or limit orders can trigger on the same bar in a "Single open Position" Strategy.
    • Workaround: convert result to code-based Strategy and fix the logic manually.

  • Issues when regional settings imply the usage of ',' as the currency/decimal separator.
    • (97929) When an indicator requires a double type input, generated Strategy produce a compiler error CS1501
    • Comma (',') may not be accepted when typing in fractional values
      • Workaround: switch both numeric and currency decimal separators in Windows (Control panel - Regional options) to "." (dot). You might need need to replace "," to " " (blank space) in digit grouping symbol, if applicable.

  • (177410) Optimization Results > "Set these parameters as default" has no effect in Rule-based strategies
    • Workaround: "Open Code in new Strategy Window", optimize, and set the parameters as defaults.

  • (177411) "Set these parameters as default" after optimization of a Rule-based strategy may fail if the Strategy contains rules with identical parameter names (e.g. two moving average crossover or Parabolic stop conditions). Generated code is borken and won't compile.
    • Workaround: Either fix compiler error manually, or rename all identical strategy parameter names so they become unique across all existing conditions in the Strategy

  • When adding a condition from the General Indicators group you get an exception message like System.ArgumentException: An item with the same key has already been added.
    • Workaround: close the error dialog to continue working the program
    • Workaround: uninstall Quandl provider

Combination Strategies

  • Compiled strategies are not available in Combination Strategies
    • Compiled Strategy libraries like "ActiveTrader Strategy Pack" or custom compiled libraries do not appear on the available Strategy list in Combination Strategies.

  • (90184) Occluded Button, Text Labels in Combination Strategy Control. Intermittent issue. After loading a saved Combination Strategy, not all form elements are drawn. Some controls appear as black boxes.

  • Extension methods, e.g., this.GetDataSetName(), do not function in Combination Strategies.

Compiled Strategies

  • Strategy Parameters missing for Precompiled (DLL) strategies when opened from Home Page
    Precompiled strategies (in a DLL) are missing Parameter Sliders when opened from the Home Page. Workaround: open the Strategy conventionally i.e. via "Open Strategy".

  • (3844) Preferred Values cannot be saved for Strategy Libraries

Strategy Monitor

  • (84581) SM may not find some symbols e.g. from other provider's DataSets or Index-Lab
    • Workaround: Use GetExternalSymbol overload that accepts dataSetName:
      Bars idx = GetExternalSymbol("DataSet Name", "Index symbol", true);

  • (98369) Strategy Monitor: Run Now Hangs Up with Intraday Data: an already Activated strategy hangs with "Run Once beginning..." after selecting "Run this Strategy Now"
    • Workaround: to un-freeze it, double click on it to edit and OK the dialog, then "Activate" - you'll get "Run now ended".

  • (179201) Strategy Monitor is unable to catch up with updating a 1-minute Strategy applied to more than 25 symbols if it's initialized during market hours because during the initial activation / data update, each symbol takes approximately 2-3 seconds to update.

  • (107082) "Current TimeZone not found" error
    When Strategy Monitor is opened, you get an error message saying that Current TimeZone not found. Bug affects localized Windows editions after the user changes system's Display Language.
    • Workaround: revert the Display Language (e.g. German Windows Ultimate, Display Language changed to English - roll it back to German).

  • (192681) Strategy Monitor creates duplicate Alerts for a single signal to trade a secondary symbol.
    • Workaround: Use the Strategy Window. It will generate a single alert only, as expected.

  • "Run Dailies" always fail on second attempt in WLD

  • Strategy Monitor throws a NullReferenceException error when trying to open its window or add a strategy on intraday bar intervals:
    • Solution: open the Preferences dialog (F12 key) and select any Streaming data provider.
    • Workaround: If using odd bar scales (like 9-minute bars), switch to a supported bar scale (1, 2, 10 Minute etc.)

WealthScript & Strategy Editor

  • SplitPosition issues:
    • (7282) SplitPosition() does not interact realistically in Portfolio Simulation Mode
      • Background: In a Portfolio Simulation it's correct to expect that all Positions associated with a split be accepted or all be rejected according to the amount of cash available on the entry bar.
    • Problem: Currently Wealth-Lab treats split Positions as a separate Positions competing for cash, and if Position.Priority is random each Position has a random chance of being selected or rejected in a high-exposure MSB Portfolio Simulation. A possible outcome is that one Position associated with a split be accepted while another is rejected, which is unrealistic.
      • Partial Work-around: After calling SplitPosition(), assign the same Priority to the new split Position as the original. The assignment will help to reduce (but in no way guarantee) the frequency that different actions are taken for Positions associated in a split when the strategy enters several Positions on the same bar.
        /* Example: */
        Position p = LastPosition; // Position to split
        Position sp = SplitPosition(p, 49.99); // The new Position
        sp.Priority = p.Priority; // Assign the same Priority as the original Position
    • After SplitPosition, most AsOfBar properties are invalid for the first Position in Portfolio Simulation mode
      • Problem: Having split a Position into two with SplitPosition, the following properties incorrectly report 0, NaN for the first part of the splitted Position if Strategy is run in a Portfolio Simulation mode: MFEAsOfBarPercent, MFEAsOfBar, MAEAsOfBarPercent, MAEAsOfBar, NetProfitAsOfBarPercent, NetProfitAsOfBar.
      • Partial workaround: Switch to a Raw Profit position sizing mode.

  • (250) ClearPositions does not function as expected in MSB
    • Problem: In Multi-Symbol Backtest mode, the ClearPositions method clear trades for all symbols in a DataSet. On the Trades list, only the last symbol's trades are left. It is working by design of the new Wealth-Lab .NET, where all of the positions are stored in one list - that's why ClearPositions clears them all and does not work as expected in Multi-Symbol Backtest mode.

  • (76675) Editor: Non-white space character cannot be typed if included in CreateParameter after ampersand
    • Problem: Including an ampersand as part of CreateParameter description (e.g. "L&S") and compiling prevents from typing the character after the ampserand (i.e. "S"), whitespace excluded, in that Strategy Window.
    • Workaround: Don't use an ampersand for the parameter's string name. If you must, just leave a space after it.

  • FundamentalDataSeries issues:
    • FundamentalDataSeries("earnings per share", 4, 0) raises an exception on certain symbols if Fidelity fundamental data is aggregated
      • Workaround: None. Wrap the call to FundamentalDataSeries in a try/catch block to suppress exception.
    • FundamentalDataSeries is 0 if date range doesn't include at least one bar prior to the last item of a fundamental series being charted.
      • Workaround: Load enough data or use FundamentalDataItems
    • (103725) FundamentalDataSeriesAnnual overload with symbol name ignores the symbol parameter, executing on the current (primary) Bars.
      • Workaround: Wrap the call to FundamentalDataSeriesAnnual(symbol...) in SetContext/RestoreContext.
    • FundamentalDataSeriesAnnual may return zero if the most recently reported fiscal quarter is FQ4.
      • Workarounds:
        Call this function in place of FundamentalDataSeriesAnnual():
        public DataSeries FDSeriesAnnual(string symbol, string item, int offset)
        int bar = Bars.Count - 1;
        DataSeries result = FundamentalDataSeriesAnnual(symbol, item, offset);
        int fq = (int)GetFundamentalItem(bar, symbol, "fiscal quarter").Value;
        while (fq == 4 &amp;&amp; bar > 0)
        result[bar] = FundamentalDataSeries(symbol, item, 4, false, offset * 4)[bar];
        fq = (int)GetFundamentalItem(bar, symbol, "fiscal quarter").Value;
        return result;

        You can also use the aggregate overload for FundamentalDataSeries to add the last rolling 4 quarters of a fundamental item:
        string eps = "earnings per share";
        //Replace this:
        //PlotSeries(FundPane,FundamentalDataSeriesAnnual(eps, 0), Color.DeepPink, LineStyle.Solid, 2);
        //With this:
        PlotSeries(FundPane,FundamentalDataSeries(eps, 4, false, 0), Color.DeepPink, LineStyle.Solid, 2);

  • DataSetSymbols issues:
    • (182123) Invalid Benchmark Buy and Hold message for DataSetSymbols
      • When using SetContext in a DataSetSymbols loop, the dialog "Invalid Benchmark Buy and Hold Symbol:" is displayed when encountering a symbol with a null Bars object. This occurs even if Benchmark Buy & Hold is not enabled.
    • Synchronization issue with trading "DataSetSymbols" when the starting dates of the symbols' series are not the same, provided that some symbols are traded before the start dates of other symbols. For the workarounds refer to this post.

  • (221371) ChartPane.Decimals doesn't work for all panes but the VolumePane

  • SetScaleMonthly doesn't always function correctly with Weekly data of external symbols
    • Problem: Applying SetScaleMonthly to a compressed Weekly chart (source data is Daily) of an external symbol may result in an incorrect compressed data (month has more than 4 weeks)
    • Workaround: Use a workaround from this forum thread.

  • Named DataSeries issues:
    • FindNamedSeries doesn't return data (returns zero) of external symbols derived after SetContext or using GetExternalSymbol.

  • AddCalendarDays issues:
    • AddCalendarDays breaks chart scroll
    • Bars.IsSynthetic wrongly marks the first trading bar after a series of synthetic bars added by AddCalendarDays. It does not work as documented, i.e. synthetic bars are not marked.
    • AddCalendarDays always peeks, even when the interpolate parameter is set to false. A work-around to that behavior can be found in this forum thread.

  • Synthetic option issues:
    • If the price of the underlying is above the Put's strike prior to bar 30, then the Put is priced at zero. The opposite is true for calls.

  • Zooming the chart may fail if DrawCircle() is applied to the chart if the price range exceeds $2,000,000.00
    • Workaround: Don't use DrawCircle() on bars where the price exceeds this figure:

      for(int bar = 0; bar < Bars.Count; bar++)
      if (Close[bar] < 2100000)
      DrawCircle(PricePane, 9, bar, Close[bar]+ 0.05, Color.Empty, Color.Green, WealthLab.LineStyle.Solid, 1, true);


  • (157411) WFO Crashes on Bars with Open Interest
    • Wealth-Lab crashes 5-10 seconds with an unhandled "Index was out of range" exception after starting a Walk-Forward Optimization on data containing an Open Interest series.

  • (76499) Exhaustive optimization (2 Parameter Graph) may be unable to plot all values when step is relatively tight compared to the range
    • A cosmetic/display issue which does not affect the accuracy.

  • (98352) 3D graph colors: change the existing color scheme from the current 'dark blue to white' to a more intuitive version

  • (13704) Optimizer runs past Stop value

  • (192680) ?Monte Carlo optimization locks up on 2nd run of "Dual Donchian Bands [Rev.A]" strategy after changing a parameter

  • ?Monte Carlo optimizer crashes Wealth-Lab when running concurrent optimizations in multiple workspaces.
    • Workaround: do not run multiple instances of MC optimization.

PosSizers, Visualizers

  • (221370) Equity Curve does not copy Open Positions data

  • (151225) Intraday Excursion for a Positions' Entry Bar Are Not Reflected in the Drawdown Curve
    • Unlike Position.MFE/MAE functions, the portfolio drawdown series does not consider the intraday drawdown of positions on their entry bar. This affects strategies that exit at market after 1 bar, leading to false report of actual drawdown experienced by the Portfolio.

  • (177412) Trades Tab does not include Dividends for Trade profit

  • Consider "Expectancy (traditional)" value wrong in both Performance+ and MS123 Scorecards. Do not use it.


  • When running a Strategy in MSB mode when an indicator is used in multiple scales simultaneously (via SetScale...) and it accepts Bars as a parameter, you get an error message and chart rendering stops incorrectly:
    • Error processing symbol XXX Unable to cast object of type 'WealthLab.DataSeries' to type 'WealthLab.Indicators.IndicatorName'

  • (55091) Calculating StochD gets slower in geometric progression depending on smoothing
    • Building StochD using shorter lookback and smoothing period (e.g. 14,3) is fast, but slows down in geometric progression when larger periods are selected.
    • Workaround (for code-based Strategies):
      //DataSeries stochd = StochD.Series(Bars,period,smooth);
      DataSeries stochd = SMA.Series( StochK.Series(Bars,period), smooth);
    • Workaround (for rule-based Strategies):
      When speed matters, replace your long-term StochD(period,smooth) with corresponding StochK(period) used with SMA(smooth)

  • (756) Williams %R readings contradict standards
    • They range from 0 to 100 while the common wisdom is to plot it on inversed scale, i.e. from 0 to -100.
    • Workaround: the final result has to be multiplied by -1.
      DataSeries PctR = WilliamsR.Series( Bars, 14 );
      PctR *= -1;

  • (18427) FirstValidValue after Synchronize is incorrect for ARSI

  • (3138) Manually typed overbought/oversold threshold values less than 1 are rounded in Indicator Options dialog (which doesn't affect their correct plotting on the chart)

  • When adding Peak/PeakBar or Trough/TroughBar indicators to a chart and then deleting one of the two, an unhandled exeception is generated.


  • Index stops updating if underlying DataSet contains invalid/unsupported symbol(s)
    • If the DataSet the index is based on contains symbol(s) which are either invalid or return an error during update, Index-Lab will not complete updating the index.
    • Workaround: remove invalid/problematic symbols from the DataSet

  • (179209) Index-Lab (IL) performance for updating and use in Strategies is suboptimal when working with large DataSets:
    • Updating IL data re-requests symbol updates when contained in different indices
    • IL symbol updates are aborted when encountering an updated error for an invalid symbol
    • Accessing an IL symbol in a Strategy may be excessively slow


  • Quotes window throws a NullReferenceException error when trying to use it
    • Solution: open the Preferences dialog (F12 key) and select any Streaming data provider

Orders and Trading

  • All AtLimit orders aren't being Auto-Staged (manual Staging doesn't work either) while Auto-Place works.
  • (13901) Stop orders (and Limit orders assumed) with constant price are unnecessarily canceled and replaced if the order's Position shares are reduced by Portfolio Synch or increased by Exit Orders "full Position" logic. Applies to Auto-Trading.
  • (163890) Quotes Stop After Removing Items. Streaming quotes in the Quotes tool may be halted inadvertantly after manually removing some items.
  • (63321) Accounts Tool: Profit does not reflect Futures Mode Point Value
  • Paper Trading: (62779) Market orders fail at session open "Could not get Quote".
  • Paper Trading: (62854) Paper Trading in international markets doesn't work outside of hours defined in "US Equities".
    • Workaround: Launch a text editor with elevated privileges (as admin) and manually edit the Open and Close Market hours in the ..\Data\Markets.xml file beneath Wealth-Lab's main program directory under Program Files (and/or Program Files(x86)).

Development related (affects Extension development)

  • PosSizers
    • (62853) In PosSizers, the Candidates list is empty for Alert sizing
      • The collection functions as advertised for historical backtests, but for sizing Alerts at Bars.Count it is not being populated.
    • (68056) PosSizers: Starting Equity/Cash are reported for Alerts at Bars.Count. Update: In multi-symbol backtests, there may be a discrepancy between the "EquityCurve" and "equity" values.
      • The feature functions as advertised for historical backtests, but for sizing Alerts at Bars.Count it is equal to the starting equity value.

  • Performance Visualizers
    • (30255) SystemPerformance.Strategy.DataSetName returns wrong DataSet name for Rotation-type Strategy.
      • Returns the DataSetName string stored in the XML file at the time of saving it.
    • (7488) IsIntraday Bug in Performance Visualizers, PosSizers
      • The .IsIntraday property of SystemPerformance.Results.EquityCurve, .Results.CashCurve, .ResultsBuyHold.EquityCurve, .ResultsBuyHold.CashCurve, ResultsLong.EquityCurve, .ResultsLong.CashCurve, .ResultsShort.EquityCurve, .ResultsShort.CashCurve incorrectly boolean value false on all intraday data while true should be returned.
    • (80612) Visualizers: RawTrades issues in Combination Strategies
      • The SystemPerformance.RawTrades.Count property in Aggregate Strategy mode is identical to its Number of Trades: i.e., trades dropped due to insufficient capital are not included on the RawTrades list.
      • All Combo Strategy children have their SystemPerformance.RawTrades property null.

Important Disclaimer: The information provided by Wealth-Lab is strictly for informational purposes and is not to be construed as advice or solicitation to buy or sell any security.  The owner of Wealth-Lab.com assumes no liability resulting from the use of the material contained herein for investment purposes. By using this web site, you agree to the terms of this disclaimer and our Terms of Use.

ScrewTurn Wiki. Some of the icons created by FamFamFam.