Build Highlights Video: https://youtu.be/WD0OrKW8uTM
- Add a "WL.com My Strategies" folder that automatically synchronizes with your "My Strategies" folder on WealthLab.com.
- The Positions view will now show the entry time used if Granular Processing was selected.
- WL8 will now start in Offline Mode automatically if no internet is detected on startup.
- Added Symbol Mappings to Data Manager, Historical Providers.
- The "BarChart" Plot Style (used by the VChart indicator) can now use the chart's bar colors, and can plot using different chart styles including candlestick. If you had Workspaces that plotted VChart, you may need to add the indicator to those Workspaces again.
- Added PlotTimeSeriesHistogramTwoColor and PlotIndicatorChartStyle methods.
- PlotBarHistory will now use the chart's color scheme if the Color parameter is not specified.
- CryptoCompare now sets the number of decimals for currency pairs based on the data's precision.
Build Highlights Video: https://youtu.be/J2BW0cjYwx4
- Added DonchianMid indicator to represent the middle line of a Donchian Channel. Use Highest(High) and Lowest(Low) for the upper and middle lines.
- The Strategies in the WL.com Published Strategies list are now downloaded from the Published Strategies in our new Web Backtester. Publish some quality Strategies on WealthLab.com to share with the community!
- Strategy Rankings can now be configured to run on a single symbol instead of a DataSet.
- Fixed issue introduced in Build 20 where custom indicators could no longer be used in Building Blocks.
- Fixed issue introduced in Build 20 that caused Daily+ Strategies in the Strategy Monitor to not produce correct signals.
- Several other minor fixes and enhancements.
Apologies for a new build right on the heels of the last one but Build 19 caused a break in the Strategy Evolver and we wanted to resolve that quickly. As a bonus, you'll find a nice facelift for the Strategy Monitor in Build 20, in addition to:
- Streamlined the Strategy Monitor polling mechanism for better performance when this option is selected.
- Fixed Quote Triggers for StopLimit orders.
Build Highlights Video: https://youtu.be/jMFmAEF8KWI
- Added a multiplier parameter to the MathIndOpInd indicator so you can accomplish things like creating Bands using 2xATR or 2xStdDev.
- The Theme menu now has an option to have Strategy plotted indicators massage their colors to fit the Theme. If you don't want this behavior, turn the menu option off.
- Added PlotIndicatorHistogramTwoColor to plot an indicator using a two-color histogram.
- The Exhaustive Optimizer has been improved, resulting in faster optimizations and less memory usage.
- You can now configure the Strategy Monitor to use a single symbol instead of only a DataSet.
- The Heikin Ashi chart will now have a Heikin Ashi streaming bar, and Trend Chart Styles will also have a streaming bar.
- Strategy compilation has been optimized, resulting in reduced lag when dragging Building Blocks and opening/compiling Strategies.
- New right click option to go to specified date on chart.
- Added Building Block option to use Closing price as basis for Sell/Cover Trailing Stop. Previously always used High/Low, respectively.
Build Highlights Video: https://youtu.be/5YMuPxxqEM0
- Added a new Equal Shares Advanced Position Sizer to limit the number of entries per bar across the portfolio.
- Signals that are auto-traded placed on the final bar of market close are now given a special FinalBar status, and submitted to the broker 15 minutes after market close to avoid cancelation by broker. Disable the Pre/Post Market Trading preference for FinalBar behavior.
- Added a new VWAPLine plot style, that breaks the line each day, and the VWAP indicator now uses this plot style by default.
- Fix - Previously, the PSAR indicator occasionally plotted inside a bar's range, and acceleration increased for every bar - even when a new high/low was not made.
- Fix - Align compressed n-Second intervals with the :00 minute mark.
- Fix - Horizontal line was snapping to values out of view for low-priced instruments.
- Fix - "N Bars Ago" Qualifier Building Block was not properly resetting the index, which affected conditions in the same block that followed it.
- Cleaned up more indicators so they do not plot before their first valid bar containing data.
- Added new Transformer Indicator, RisingFalling, to more easily track if an indicator, such as FRED FundsRate, is rising or falling on a monthly, or other, scale.
- Better handing of tick data, tick DataSets can now source Daily and higher scales.
- Fix: MathIndOpInd in Building Blocks was always using a source of Close even if some other source such as Volume was selected.
- Fix: stop/limit prices that are almost precisely equal to [but infinitesimally below] a futures contract tick increment are no longer adjusted to a lower tick.
- Change! Futures stop/limit price adjustment - stop/limit prices were previously "floored" in all cases. See Preferences > Backtest > Futures Mode in the User Guide for stop/limit price adjustment behavior based on Transaction and Order Types.
- New! TimeSeries ConsecBarsAbove() and ConsecBarsBelow() methods return the number of consecutive bars above/below two series.
- Added BarHistory overload to IsOptionExpiry() to detect if expiration occurs on a market holiday.
- Fix: MarketClose orders with WaitForClose status will be canceled when a paired CancelationCode order is filled.
Build Highlights Video: https://youtu.be/wb0hzUA0ivU
- Added new Strategy C# methods:
- Rebalance issues a buy or sell order to maintain a certain percentage of portfolio equity for a symbol.
- GetOpenPositionQuantity returns the total number of shares/contracts for all open positions for a symbol.
- Click on the left panel "Filter" labels to clear the filter text.
- You can now edit an indicator source after having assigned thr source to another indicator.
- Ensure that Portfolio Sync checks Broker Account positions using the mapped symbol.
- Fix: Transformer indicators can now handle indicators with string parameters.
Build Highlights Video: https://youtu.be/1uJRp2dy_40
- Added ROCR100 Indicator
- Suppress IMMEDIATE FILL warning for LimitClose orders
- Optimized copying chart price data to clipboard
- Broker account value wasn't used when displaying signal dollar amount for next-bar-open position sizing
- Fix Sell/Cover At Profit Target and Stop Loss rules for Point values. Affected instruments whose SymbolInfo.PointValue was other than "1" (primarily non-stocks).
- Added an overload reset time parameter (default 0930) that resets the VWAP calculation - especially for 24-hour markets. VWAP for "Stocks" will always automatically reset at 0000 also.
- More robust intraday scale detection for illiquid symbols - especially for futures and option contracts whose data may be sparse at the beginning of the series.
- Streaming charts for intervals greater than 1-minute were not properly completing bars during the premarket session.
- Fix - WFO Parameters were not always applied to some symbols during WFO backtest run.
- Fixed issues when using multiple text note drawings on one chart.
Build Highlights Video: https://youtu.be/h3ZtcuPnRyU
- Implemented a new Order Type: StopLimit. This behaves like a stop order, but if the stop price is hit, it issues a limit order instead of a market order. You can establish a different limit price by assigning a value to the Transaction StopLimitLimitPrice property, otherwise the limit price defaults to the stop price (the OrderPrice property).
- Added new Mountain Indicator drawing style, and corresponding Strategy methods PlotIndicatorMountain and PlotTimeSeriesMountain.
- Added PlotIndicatorBands and PlotTimeSeriesBands methods to make it easier to plot indicator bands in Strategy code.
- Added the RS VA EMA from Oct'22 issue of Technical Analysis of Stocks and Commodities magazine.
- Fix Cover at Profit % building block.
- Fixed exception when backtesting a Trade History strategy on delisted/wrong symbols
Build Highlights Video: https://youtu.be/MFXL-0oL-Ms
- Improved calculation of PriceGrid Confidence Factor, only hits against filled cells are counted now. You can use the old, legacy, calculation method by passing true in the new parameter.
- Fixed DrawText bug introduced in Build 10.
Build Highlights Video: https://youtu.be/xkzJZuYei_o
Breaking Change Note: If you have Compiled Strategies, you may need to rebuild them if you're calling any of the Draw/Fill related methods, because we added a new parameter (behindBars) to these methods.
- Added new Max Risk Percent Position Sizing option.
- Default Max Risk Stop Level is controlled by an Indicator defined in Trading Preferences, default if MathIndOpValue, 10% below the Low price.
- Override GetMaxRiskStopLevel to set a specific initial stop loss level that will be used instead of the default Indicator.
- Trading Preferences also contains options allowing you to have the Backtester automatically generate exit orders, and whether the exit order stop level is static. Dynamic Max Risk Stops are generated in a "trailing stop" manner.
- Position Metrics tab can plot a position's Risk % to build ratios such as RiskPct/PositionProfitPct.
- Pushing drag and dropped Indicators into a Code-Based Strategy now results in Indicators created as variables for more flexibility.
- Added "behindBars" parameters to drawing methods to control whether a Strategy drawn shape appears above or below the bars of the chart.
Build Highlights Video: https://youtu.be/qoqrw6hyqKY
- Added a new Weights Performance Visualizer for Rotation Strategies.
- Created a new UserStrategyBase override, ExecuteSessionOpen that passes the open price of the symbol being processed.
- Added a collapse button to indicator and volume panes on the chart.
- Data Providers are now more careful about checking Offline Mode before making web requests.
- WL8 was making some web requests even when Offline Mode was enabled, fixed.
- Fixed incorrect IMMEDIATE FILL warning for manual stop orders.
Build Highlights Video: https://youtu.be/VlPEH4T-sOY
- Support for Pre/Post Market order placement, enabled via a new Trading Preference. Pre/Post Market orders are supported by the Dummy Broker, TD Ameritrade and Interactive Brokers.
- Added two new Scaling options, N-Day and Weekly options that can be begin on a specific day of the week.
- Added a warning message if you turn on streaming data while in Offline Mode, with the option to turn off Offline Mode.
- Notable fix: Rotation Strategies are now working with intraday data.
- Notable fix: FindOpenPositionAllSymbols didn't work for secondary symbols.
Build Highlights Video: https://youtu.be/0NdXa8aZQ3A
- Auto-trading has been improved to handle different scenarios in a more graceful way:
- Signals will be pruned before sent to the Order Manager. For example, if there is a Market order and a Limit order to exit the same Position, only the Market order will be sent. And if there are two Limit orders with different prices, only the closest Limit order will be sent.
- New orders are submitted after active orders are canceled, allowing OCO orders to be properly "replaced" on a bar by bar basis. Native broker "Replace" actions bypass this feature for more efficiency.
- A new Portfolio Sync Trading Preference, Sell Orphan Positions at Market, allows WL8 to track the Positions that were generated during auto-trading, and if they do not exist in subsequent runs of the backtester Strategy, will be automatically closed. This handles cases of a Position being filled in real life, but not in the backtest.
- Be sure to update your Extensions too, many enhancements there related to auto-trading, especially with Interactive Brokers.
- The Strategy Monitor now uses the Advanced Strategy Settings of the Strategy, including the Retain NSF Positions setting.
Build Highlights Video: https://youtu.be/FRdM769yffI
- You can now right click to edit bar data in the chart, for supported data providers.
- You can also right click in the chart to manually apply a stock split, once again for supported providers.
- Added a new override method to UserStrategyBase, NewWFOInterval. The Building Block code generator uses this to recalculate indicators whenever a new WFO interval occurs in a backtest that uses WFO parameters. This allows these WFO backtests to work with dynamic indicator parameters. You can employ a similar approach if needed in C# Coded Strategies.
- WL8 will now avoid placing exit orders if corresponding positions were not found in the connected broker account. This will solve issues in certain brokers like Alpaca issuing short positions for sells with no positions.
- Buildiung Block strategies in auto-trading will now cancel open exits for a position once another exit for that position was filled. To do the same in a C#-Coded Strategy, assign a unique int value to Backtester.CancelationCode, different for each group of exits that should be linked. Open the C# Strategy code for a Building Block Strategy for details.
- Added GetQuote method to Historical Data Provider base class.
- Added ability to specify preferred exchanges in Cryptocompare provider.
Build Highlights Video: https://youtu.be/e4MkVECifhY
- Added GetChartImage method to UserStrategyBase, so you can get a System.Drawing.Bitmap instance of the Strategy's chart image.
- Added new Strategy Evolver Genes, Sell and Cover after N Bars.
- You can now establish a timeout value for Strategy Evolver Strategies.
- The Strategy Evolver can now evolve Strategies that use multiple positions per symbol.
- You can now set the Run Time for Daily+ Strategy Monitor Strategies directly when you add them to the SM.
- The Strategy Save As dialog now shows you the Strategies in each Folder you click.
- 60-minute bars are now built from 30-minute bars, if available, which overcomes some issues around not showing the last 60-minute bar in a chart that filters out pre/post market data.
Build Highlights Video: https://youtu.be/7PTITvCD5ys
- Added EquitySlope Performance Metric to Basic ScoreCard, returns the Linear Regression Slope of the Equity Curve.
- Added LimitClose Order Type. Similar to MarketClose, but uses a Limit Order instead of Market.
- Added Limit-on-Close special order type in Trading Preferences. If enabled, brokers that support LOC orders will place WL8 LimitClose orders as LOC.
- Added new override to DrawBarAnnotation that lets you pass a TextShape enumerated parameter, to more easily render various common shapes on the chart.
- You can now optionally associate Commissions with a Market, or a Symbol defined in the Markets & Symbols tool. A new Backtest Setting determines whether to use the Commission settings established in Markets & Symbols.
- Added a new Indicator, ConsecCandle, that returns the number of consecutive bars of white candles (Close greater than Open, positive Indicator values) or black candles (Close less than Open, negative Indicator values.)
- Equity Curve, Drawdown Curve, Rolling Profit Visualizers will no longer include dates with no data in the chart x-axis.
- System.IO.Pieplines version updated (required by Alpaca extension.)
- Genetic Evolver will no longer mutate negative values for Indicator Compare to Indicator N Bars Ago.
- Indicator Dropdowns were incorrectly not including Indicators that take a BarHistory and not a TimeSeries as a source (solves the mystery of the "missing ADX" in the Webinar2 video.)
- New Chart Preference to peg vertical size of chart to Indicators was causing other Indicator panes to get squashed to zero.
- IndOnInd Indicator was plotting in incorrect pane.
Build Highlights Video: https://youtu.be/O5b9tRvmEXQ
- Numerous minor fixes, including the Strategy Monitor item disappearing when AutoStage is clicked, Order Manager removing completed Strategy orders incorrectly, and many others.
- View Parameter Sliders in the left hand panel (View Menu) and manipulate them for the active Strategy/Chart window.
- Added Chart Preference to size vertical chart area to indicators, or to price only.
Build Highlights Video: https://youtu.be/P4Y6SqQOmK8
- Welcome to the first Build of WealthLab 8! WealthLab is now migrated to the .NET6 framework, resulting in even better performance. It also sports a new Dark Theme. Use the Migration Tool in the Home Page to quickly get your DataSets, Strategies, and User preferences migrated to WL8.
- Attention! WealthLab 8 is now available! We won't be releasing any new WL7 builds unless there is some breaking change in some external provider that needs attention. Migrate over to WL8 when you can. Both versions can be run side by side, so no hurry.
- This build fixes a version mismatch with the Newtonsoft Json DLL that was causing a NeuroLab failure. Updating the NeuroLab extension itself is not required. However, if you use the TD Ameritrade Extension, please update that.
- Fixed a bug introduced in Build 51 that caused some Weekly and Monthly backtests to fail.
- WL8 note: Today we finished migrating the code base, and are moving on to the WL7 -> WL8 conversion utility. WL8 should be released very soon!
- Alpaca Users Note: You'll need to reinstall the Alpaca Extension after upgrading to Build 52, because Alpaca uses a later version of a certain library. Apologies for the inconvenience, and this has already been resolved for WL8.
- Building blocks will now plot Stop and Limit exit prices.
- Fix corrected bar count report.
- ASCII low frequency files (such as seconds-based) will now properly scale to higher scales like minute or daily.
Build Highlights Video: https://youtu.be/9JxJjqevTeU
- This maintenance build contains numerous minor fixes and enhancements. This includes CryptoCompare improperly returning partial bars in historical data, duplicate symbol issues when starting a Strategy twice at the same time in the Strategy Monitor, and issues getting an external series in a Strategy. Primary development focus has now shifted to migrating WL7 to .Net6, and this justifies a new major upgrade, so WL8 is on the way! See the Build Highlights video for details!
Build Highlights Video: https://youtu.be/9PGu0qurOro
- Added Signals Navigator to the Strategy Window Chart, so you can scroll through the chart for each Signal generated.
- The process to select the best Walk Forward Optimization (WFO) run has been abstracted into an extendable class called WFOResultSelectorBase.
- Changed Benchmark Backtest so it applies collected dividends, if appropriate, and "Collect Dividends" is selected in Backtest Settings.
- Fix: In some local hour/pre-market scenarios, Daily updates were skipped.
- Several other minor fixes and enhancements.
Build Highlights Video: https://youtu.be/Jb60OqtbDyo
- Added a symbol chooser dropdown to the chart symbol entry field.
- You can now select a default Indicator Set in Chart Preferences.
- Strategy descriptions now support rich text via the Markdown syntax.
- Added an option to prevent the Strategy Monitor from deactivating after performing a Run Now.
Build Highlights Video: https://youtu.be/-HyWetzxjOk
- Security Type and Currency have been added to Markets and SymbolInfo. BarHistory also has properties now for SecurityType and Currency. If BarHistory has a SymbolInfo assigned, these properties are pulled from it, otherwise from the Market instance if assigned.
- Implemented exteneded Extension Help File syntax. You can use compound file names for Help files now. For example CompanyName.FileName.md. WL7 will strip the prefix and title the Help topic "File Name". To defeat the automated camel casing in this processing, use the # character. For example File#Name.md will resolve to "FileName".
- You can now click the Profit % in the Strategy Window status bar to toggle it to APR %.
Build Highlights Video: https://youtu.be/ATzt92WjdEA
- You can now optionally link a C# Coded Strategy to an external source code file. When you make changes to the file in another editor, the code in the WL7 editor will update. This is a one way notification, changes you make in the WL7 editor will not be passed to the external file.
- Added Strategy List View.
- Added MarketState Indicator.
Build Highlights Video: https://youtu.be/qgl61z4v_8I
- Added Volume Profile Support, consisting of:
- VolumeProfile class in WealthLab.Core so you can generate Volume Profile instances in C#-Coded Strategies. VolumeProfile is documented in the QuickRef.
- Volume Profile Chart Drawing Object.
- Three Volume Profile Indicators that generate Volume Profiles on a bar-by-bar basis and return the Point of Control (VolProHighNode), and the lowest volume nodes that are above and below the Point of Control while still being in the High Value Area (VolProLowNodeUpper and VolProLowNodeLower).
- Added an option in Strategy Advanced Settings to turn off the automatic updating of Granular Processing data during a backtest.
- You can now customize Chart Axis Fonts in Chart Preferences.
- You can now drag Signals and drop them into an already open Quotes window.
- Added a new Order Manager option to turn off the auto-removal of canceled Strategy orders.
- A MetaStrategy Component can now be configured to run on a single symbol instead of a DataSet.
- Strategy Monitor settings window will remember and resuse last settings supplied.
- For longer backtests, you'll now see the current date being processed in the status bar.
- For Indicators plotted in Strategies, colors are no longer darkened or lightened to ensure contrast against background.
- Fixed an issue causing Exceptions in long running Optimizations.
- Fixed some issues around Streaming Charts not properly closing the last bar at market close.
Build Highlights Video: https://youtu.be/vaH6XBwo1gQ
- New Strategy Genetic Evolver tool added.
- Added new performance metrics Avg Bars Held as % of History, Largest Bars Held as % of History, and NSF Ratio.
- Offline Mode state is now saved with a Workspace.
- Fixed bug causing inflated volume when streaming using the Yahoo Streaming Provider.
- Fixed a bug in the previous build that caused mismatching between Building Block Exit and Entry Blocks.
Build Highlights Video: https://youtu.be/90SDtgaGrAI
Breaking Change to Framework - Please update any installed installations while you are updating to Build 42 to ensure smooth operation.
API Users - A handful of common properties have been refactored and promoted to the Configurable base class, and in the process the Glyph property has changed from System.Drawing.Bitmap to System.Drawing.Image. You will need to recompile libraries such as Data Providers and Brokers that have classes that derive from Configurable.
- Added a new Strategy type - Trade History - allowing you to import historical trades from a file and run them as a backtest. Also added special parsers to the Interactive Brokers and TD Ameritrade Extensions to support their specific historical trade export format.
- A majority of List Views now have their column ordering and widths persisted.
- Added Start Date to the DataSets view in the Data Manager.
- Added Day of Month and Trading Day of Month as new Position Metrics.
- Added Delete Local Files option to Event Providers in the Data Manager to clear out potentially outdated Event information.
Build Highlights Video: https://youtu.be/JfgXnc1j8to
- Added multi-level Tabular Optimization Filtering, and the ability to save your favorite filters as Filter Sets.
- Added a new Backtest Preference to control how Open Positions are matched to Exits when there are multiple Open Position candidates possible.
- If you have the chart toolbar hidden, it will automatically become visible as you type in a symbol.
Build Highlights Video: https://youtu.be/3wUX3WeNQn4
- You can now assign a value to a Transaction instance's Quantity property after calling PlaceTrade with a Sell/Cover. If the Quantity is less than the existing Position, WL7 will automatically split the Position to accomodate. Likewise, if the Quantity is greater than the most recent open Position, WL7 will split the Transaction to potentially exit multiple open Positions with one call to PlaceTrade. I realize I didn't cover this in the Build 40 Highlight video, but I'll cover it in the next Build 41 video!
- Added SmoothedInd, new Transformer Indicator that applies a Smoother Indicator (such as SMA or EMA) to a source Indicator.
- Added a new command-line switch "/p" to open WealthSignals Publisher and automatically Publish all Strategies (assuming this is done within the allowed publish time window.)
- Fixed charting bug introduced in Build 39 that caused target pane to incorrectly change when changing Indicator parameters.
Build Highlights Video: https://youtu.be/58dvKu5bo4g
- Our Building Block design has undergone an update to simplify and bring it more in line with the design of our Web Builder. You can now collapse the parameters section of a Building Block, and when you open a Strategy, all of the Blocks are pre-collapsed with descriptive headings.
- Fractional Shares Preference added to Trading Preferences. This is a Preference for stock brokerages (cryptos obviously already support fractional shares.) Currently implemented for Alpaca Build 12. To issue Strategy-generated Fractional Share purchases:
- Position Sizing mode must be set to Next Bar Market Open
- Order Type must be Market (Alpaca restriction)
- Fractional Shares Trading Preference must be enabled
- You can now multi-select Performance Metrics from the Metrics Preferences tab.
- Account Balances are now shown to full decimal precision in Accounts tool, especially important for crypto brokers like Binance.
- Added a Backtest Preference to add 1 to a Position's Bars Held count if it was sold at the start of market open. Typically, this day isn't counted for Bars Held purposes.
Build Highlights Video: https://youtu.be/nePm_1qX6Ok
- You can now save Named Data Ranges in the Strategy Window, and re-use those Data Ranges all throughout WL7.
- "Bad Tick Filter" implemented for screening data spurious ticks.
- You will now see a daily high/low/volume quote in the Quotes tool when you select a symbol.
- Added a Workspace menu option to automatically reactivate Strategy Monitor Strategies when the Workspace is opened.
- Indicator Labels are now highlighted in the chart pane when you hover the mouse over the indicator.
- Added a new Chart Preference to hide the horizontal trade Signal lines.
- Repaired "RSI Agita", "Tactical Asset Rotation", and "WSJ Common Sense" Sample Strategies.
- Added logic to avoid larger than required intraday historical data requests when Max Bars Data Range is selected.
Build Highlights Video: https://youtu.be/ix8sAC-iu0k
- Added the Multi-Condition Group Building Block, that let you build more complex Strategies that take action when some of a group of Conditions are true. The new Block also lets you iterate through a group of Conditions in an Optimization.
- You can now specify the amount of data to load into the chart using all of the Data Range options, in Data Preferences. This applies to Chart windows only, not charts in Strategy windows.
- Once a chart is opened, you can change its data range by clicking it down in the status bar.
- Market holidays (special market hours) are now correctly accounted for for pre/post market filtering.
Build Highlights Video: https://youtu.be/GN_5e5bBu5U
- Added Positions Navigator to Strategy Window Chart.
- Chart labels and toolbar control sizes now responsive in Expert Mode.
- Added an option in Debug Window to auto-clear the Debug Log between runs.
- You can now hide the Drawing Toolbar from the View menu.
Build Highlights Video: https://youtu.be/7QSAyNUTe_E
- Enabled Broker order continuity. When you connect to a Broker, it will query for open orders (typically limit and stop) and populate them into the Order Manager. Will also preserve internal Signal Block Strategy linking if possible. The following Brokers have updates to support this new feature: Alpaca, Binance, Interactive Brokers, Kraken, TD Ameritrade.
Build Highlights Video: https://youtu.be/EqxgxLfF4Dw
- Added a parameter to WriteToDebugLog to allow sequential debug log output, instead of grouped by symbol.
- ASCII DataSets are now cached in binary format files, resulting in a performance boost.
- Added a minimum Commission per Trade option in Backtest Preferences.
- Added a warning when you enter a manual order with a price more than 10% away from the current quote.
- Fixed glitch that caused crypto updates to end prematurely when requesting N bars of data.
Build Highlights Video: https://youtu.be/WbLnO3cEosI
- A new Data Corrections section has been added to the Data Preferences. You can now enable data corrections from Historical Providers, and control how WL7 refreshes historical data in the event of new dividends, splits, or unaccounted price gaps.
- Hot Fix - selecting Make Optimizable in a Building Block Strategy was throwing an exception in Build 31.
- Weight column added to Quotes tool, and Weight will be used as tie-breaker for simultaneous Signals.
- You can now see the Published Strategies downloaded from WL.com in the Strategies tree. For now, there are a handful of example Strategies, but soon you'll be able to publish your own Strategies on WL.com.
- Periodic Returns / Weekly now can group by week number.
- Several other minor fixes, including issue with Strategy Parameters in Strategy Monitor for Compiled Strategies.
Build Highlights Video: https://youtu.be/UXu5K50wUXA
- The Tabular Optimization Visualizer can now report interim results during a Standard Optimization.
- Added several new methods to the Parameter class to support non-linear Parameter value ranges. The new methods are:
- AssignExplicitValues - you can pass a number of hard coded numeric values, or a List containing floating point double values.
- AssignPercentageValues - assigns values within the MinValue and MaxValue range, incrementing by a specific percentage.
- AssignFibonacciValues - assigns the Fibonacci numbers that are within the MinValue and MaxValue range.
- You can now Lock a Strategy from the Strategy window toolbar. You can make changes to a Locked Strategy, but cannot Save those changes.
- Added a new Chart Preference to turn on anti-aliasing to display smoother lines.
- Alphavantage: intraday crypto data now supported, also added determination of Market by symbol.
- Added new right click option to Remove Trigger in the Quotes window.
- Triggered Quotes now also display the Trigger Percent, in addition to the text "Triggered".
- Added new right click options to Stage/Place orders from Quotes window.
- Granular Processing will now work with WealthData delisted symbols.
- You can now copy the Strategy Settings to the clipboard.
Build Highlights Video: https://youtu.be/p-W9K4i0fbc
API Users: There was a breaking change in the OptimizerBase class. The Optimize method has a new bool parameter. Please see the Optimizer API document for details.
- You can save optimization runs to a file, and open them again from the File menu.
- You can also resume an optimization run that was cancelled, or an uncompleted run that was saved to file and reopened.
- Standard optimizations will auto-save every minute, WFO's after every interval, and Symbol by Symbol after every symbol.
- Added new Chart Preference to display WL6 style trade arrows, where the entry arrows are gray, and the exit arrows are red or green depending on trade profit.
Build Highlights Video: https://youtu.be/js81fCy_rx4
- Added HeikinAshi class to WealthLab.Core for converting a normal BarHistory to a Heikin-Ashi version.
- Added StrategyRunner class to make it easier to run backtests from your custom Extensions or even from Strategy code.
- Original Transaction Weight will be used to break ties when using Granular Processing.
Build Highlights Video: https://youtu.be/xuCCof5KcQY
- Symbol by Symbol Optimization has been introduced. In this mode, a complete Optimization is run for each symbol in the DataSet, allowing the best Parameter values for each symbol to be determined.
- Parameter values from the Symbol By Symbol, Standard, and WFO Optimizations can be saved with the Strategy as Preferred Values, although only Symbol by Symbol allows you to determine the best Parameters values for each symbol.
- Finally, you can backtest a Strategy with its Preferred Values enabled. In this case, each symbol adopts the Parameter values saved in its Preferred Values.
- You can now type in lower case characters for Symbols by holding down the Shift key.
- Several other minor, miscellaneous fixes and improvements.
Build Highlights Video: https://youtu.be/ArN9K0kyCVs
- Added GannHiLoActivator to TASC indicators.
- Fix: Transformer Indicators were not honoring modified parameters in the selected target Indicator.
- Fix: Optimization Surface Graph did not populate when Tabular Result pushed to other Visualizers.
Build Highlights Video: https://youtu.be/ArN9K0kyCVs
- Add right margin space to a Chart by clicking and dragging left where the chart edge meets the right margin. Great for projecting future trendlines or Fibonacci levels. This only works if a Strategy is not attached to the Chart.
- Right click on a chart to push the drag and dropped Indicators to C# Code.
- You can now delete rows from the Optimization Tabular result list.
- Added Gap Indicator, which is useful for certain IndexLab composite Indicators.
- Fix: Saving Workspaces with Charts with hidden Volume was throwing an Exception.
- Fix: ASCII DataSets were not always indicating the correct supported Scales.
Build Highlights Video: https://youtu.be/5kOIk99fry8
- Added two new Transformer Indicators, MathIndOpInd which lets you perform a mathematical operation on two other indicators, and MathIndOpValue which performs an operation on an Indicator and a fixed value.
- You can now set the location of the Wealth-Lab 7 Data Folder form the File menu.
- The By Symbol Visualizer has undergone significant performance optimizations, it was causing delays in large backtests.
- Compressing data to higher frequencies (daily to weekly for example) now uses the market calendar to determine if the final bar of the compressed series is actually the end of the compressed interval.
- You can turn the zero anchoring of the Equity Curve Visualizer on or off.
- Fixed a precision in PriceGrid when you create a PriceGrid from an area of data from a BarHistory (i.e., from the chart.)
Build Highlights Video: https://youtu.be/qdPEYy9L7B8
- This release includes the WealthSignals Publisher tool, so you can publish Signals to your WealthSignals.com strategies.
- You can now optimize the following three Position Size parameters: Starting Capital, Amount, and Margin Factor.
- Introducing Transformer Indicators - Indicators that apply Transformations onto other Indicators. These are especially useful in Building Block Strategies, can can also be dropped onto the chart in their own right. Included are OffsetInd (which applied an N Bar Offset to an Indicator), ScaleInd (which scales an indicator to another frequency), and SymbolInd (which generates the Indicator from an external symbol.) Look for them in the "Transformer Indicators" folder in the Indicators List.
- The new SymbolInd indicator mentioned above replaces the Indicator Symbol Qualifier, which has been removed from the Building Blocks tree.
- Added logic to speed up backtests if an Event Provider is checked by avoiding excessive data requests.
- Fidelity Select Sector Fund DataSet's composition now dynamically changes over time.
- Added DMH TASC Indicator from Stock & Commodities Dec 2021 issue.
- Fix: MetaStrategy was not honoring base-level Strategy's Margin Factor setting.
- Fix: Recent change to save pane heights in Workspace caused Charts with attached Strategies to fail to reload in a Workspace.
- Fix: Some Conditions Building Block parameters were broken in non-US locales.
Build Highlights Video: https://youtu.be/iAQm84q6ARc
- Added Calendar Projection Drawing Object to help track things like wash sale end dates on the chart.
- Indicators can now be marked as lengthy in their calculations (virtual IsCalculationLengthy property). The Indicator Profiler new version now uses this property to determine which Indicators to disable by default.
- Yahoo! Finance Provider will not make requests if symbol is a Wealth-Data delisted stock.
- For the purposes of calculating Bars Held, limit/stops that execute above the limit/stop price are not counted as being held for that bar (same as market exit orders).
- Sort order is now retained when list results are copied to clipboard.
- Workspaces now save chart pane heights.
Build Highlights Video: https://youtu.be/XXlPsv99JSQ
- The Home Page now contains all of the Extension version information, along with the WL7 version info.
- You can now specify a Default Workspace WL7 will open with when launched.
- Added a new command line argument /w to open WL7 with the specified Workspace. Place the Workspace name in a quoted string after the argument: /w "My Workspace".
- More information is now saved regarding chart settings in Workspaces.
- Fixed some account anomalies that were discovered in the Quotes tool and Order Manager.
Build Highlights Video: https://youtu.be/oolDuE2Guck
- You can now configure Parameters for MetaStrategy Components.
- Fixed some issues with MetaStrategies, results should now 100% match independent Strategy runs, as long as all settings are equal.
- Added Symbol Equity graph in the "By Symbol" Performance Visualizer.
- Added the new PriceGrid class to WealthLab.Core, which lets you create and evaluate chart patterns based on a 2D grid of mapped price values.
- Enhanced the Event Provider API, so that Event Providers can be configured to calculate and return Events for selected items only. This is currently utilized by the CandleStick and the upcoming Chart Patterns Extensions.
- Fixed an issue with Building Block Strategies not using the correct optimized Parameter values on the first Strategy run.
- Several other miscellaneous fixes and enhancements.
Build Highlights Video: https://youtu.be/b4nYRHdHfU4
- Added a new Backtest Preference so you can control how Signals are sorted in the Signals tab.
- Fixed some minor issues that were introduced in recent Builds, including missing progress bar during data updates.
Build Highlights Video: https://youtu.be/b4nYRHdHfU4
- Implemented WealthSignals Trader tool so you can easily download your WealthSignals trades and route them to the desired broker for execution.
- Added Trading Thresholds, so you can stop auto-trading when Account Buying Power, Cash, or number of Entries exceeds the threshold you specify.
- There is a new toggle button next to a chart's symbol entry field which allows you to Link the chart, so that it responds to symbol changes in other charts and loads the same symbol.
- The Equity Curve Visualizer now lets you see the number of Open Positions.
- Now handling sparse optimization results better in the Optimization Visualizers.
- Broker Recorded Account Value in Position Sizing preference was non operational in Strategy Monitor, fixed.
Build Highlights Video: https://youtu.be/mzHssTClrG8
- Added Portfolio Synch options to Trading Preferences. Use these to ensure that WL7 does not exceed the quantity of your actual positions for exit signals, and to optionally force all exit signals to use the full quantity in your positions.
- One Cancels Other order support has been added, with an option in Trading Preferences. Currently only Alpaca, IB and TB brokers support OCO natively. Brokers that do not natively support OCO will still leverage the WL7 software-based OCO. When enabled, WL7 automatically places OCO orders for pairs of matching stop/limit orders sumbitted at the same time.
- Market on Open order support has been added, with an option in Trading Preferences. Curretly only Alpaca and IB brokers supports MOO. When enabled, supporting brokers will detect Market orders that are submitted within the target market's window for Market on Open orders, and submit them as MOO.
- Added "Trailing" checkbox to Sell/Cover at Stop Loss Exit Building Blocks.
Build Highlights Video: https://youtu.be/DtU-sDJNnfI
- Fixed a drag and drop indicator bug introduced in Build 16.
Build Highlights Video: https://youtu.be/DtU-sDJNnfI
Important: This Build introduces some breaking changes to the Broker interface. Please update any Broker Extensions (Alpaca, Kraken, Interactive Brokers, TD Ameritrade) when updating to Build 16.
- Added support for Same Bar Stop and Limit Exits. The support extends to both backtesting and live trading:
- Option One: Set the AutoStopLossPrice and/or AutoProfitTargetPrice of the Transaction class that is returned from a call to PlaceTrade.
- Option Two: Override the AssignAutoStopTargetPrices method in your Strategy code. This allows you to establish stop/limit prices based on the actual execution price of the order, and works even in live trading.
- Added Accounts Window which shows all accounts and positions for connected Brokers. You can close positions from this tool, and even enable streaming to get current prices for all of the positions.
- You can now start WL7 with optional command line arguments, "/u" to perform an automatic data update on startup, and "/c" to automatically close WL7 after the automated data update completes.
- You can now manually enter Strategy parameter values, in addition to using the sliders like before. Additionally, parameter values are no longer locked to the start/stop/step increment values, so you can run backtests from optimizers that return values that are not locked to the step increment (like the finantic.Optimizers).
- Added Percent/Points selection in Building Blocks Sell/Cover at Stop Loss and Sell/Cover at Profit Target.
- We now display the Parameter Default Value in the Optimization Parameters list.
- Added MAD indicator from Stocks & Commoditoes Oct 2021 issue to TASC Indicators.
- ASCII DataSets can now handle seconds-based scales.
- You can now target other Drag & Dropped indicators in the Indicator Parameters Editor dialog for TimeSeries parameters.
- You can configure Dummy Accounts using the Configure button in the Order Manager for the Dummy Broker, including adding new Dummy Accounts.
- Fixed MetaStrategies, their components were not always restricting purchases based on their Portfolio Weighting.
Build Highlights Video: https://youtu.be/xviZi50kmck
- Multi-column sorting is now activated throughout WL7. The tabular views will retain 3 levels of sort, with up/down arrow visual cues.
- Added ATR and ATRPercent reversal types to PeakTroughCalculator. (PeakTroughCalculator and Trendline classes have moved from WealthLab.Core to WealthLab.Indicators to facilitate this change.)
- Added the ability for Chart Styles to suppress the default gridlines (Point & Figure does this now) and render cumulative volume (all Chart Styles in the TrendChartStyles extension do this now.)
- Added optional paneTag parameter to DrawHeaderText.
- Added a Chart Preference to turn off the rendering of entry/exit arrows, and a corresponding DrawTradeArrows property in the ChartDisplaySettings class so you can control them in code based Strategies, using SetChartDrawingOptions.
- Added choice of Population/Sample to StdDev and RSquared, and added RSquared.Value method.
- Added optional font parameter to DrawText.
- Periodic Returns Visualizer now lets you select Benchmark Data for comparison.
Build Highlights Video: https://youtu.be/ZWNb4GKo2qY
- Added Strategy Import and Export. Let's you easily share strategies and their settings with other Wealth-Lab 7 customers and the support team!
- Added new method: SetPaneDrawingOptions. Lets you control each chart pane's relative height and position via code.
- Added new method: SetChartDrawingOptions. Lets you control a variety of cosmetic chart properties via code.
- Added new property: ExecutionDataSetName. Returns the name of the DataSet that the Strategy is currently executing on, or null if it was run in single symbol mode.
- Added new method SetTextDrawingFont to set the font to use for drawing text within Strategy code.
- Added text filtering to QuickRef.
- Added new Yahoo! DataSet": "Major US/World Indices".
Build Highlights Video: https://youtu.be/zCOB7zmksOU
- Added new Strategy Rankings tool (under Tools menu).
- Added a new Metric Columns Preference Page where you determine which metrics (among all ScoreCards) to use in Optimizations and Rankings.
- Exposed MetaStrategy Component column to Signals tab.
- Fixed EnvelopeUpper, could not be used in Blocks.
- Fixed empty Optimization in non-US locales if fractional parameters are included.
Build Highlights Video: https://youtu.be/YDlUVNhWOEg
- Added new Advanced Trendline Building Block, and supporting new methods in the PeakTroughCalculator and Trendline classes.
- Added Fibonacci Extensions drawing tool.
- Added SendEmail method to send email messages like trade alerts via SMTP
- When you move the mouse over an indicator plot in the chart, the corresponding right margin value marker is now brought to the front.
- Fixed ClosePosition throwing a runtime error if LastPosition is null.
- Fixed copy to clipboard from Debug Log's right click menu.
Build Highlights Video: https://youtu.be/rc_EuL3Xqe8
- Fixed a recent change that broke MetaStrategies, causing second and subsequent Strategies in the MetaStrategy to not return any results.
- Added some internal references so the dynamic keyword can work in C# Coded Strategies.
- Fixed copy to clipboard from Positions, also made Tag and Metastrategy columns hidden unless there's a tag/Strategy is Metastrategy.
- Fix for Data Tool duplicate symbols if they have mixed cases.
Build Highlights Video: https://youtu.be/rc_EuL3Xqe8
- Overhauled MetaStrategy component calculations so Profit Curves now line up with overall Equity Curve.
- Added ExecutionMode property to determine if the Strategy is running from a Strategy Window, Streaming Chart, Optimization, or Strategy Monitor.
- You can now directly specify the broker account number to use in Streaming Chart windows and Quote windows.
- You can now specify the broker and account directly in the Backtest window Signals tab.
- Certain Indicators that "peek into the future" (namely, the Swing Indicators in the Community node) are flagged in the Indicator list.
- Several miscellaneous fixes and enhancements.
Build Highlights Video: https://youtu.be/0ZrmJVm5vBI
- Added elements of the WL6 Data Tool to Data Manager, DataSets tab:
- Data Truncation
- Inactive Symbols
- Data Integrity
- Added a custom built ScottPlot library to the distribution. This can be used to generate various charts and plots in memory, and render them to a chart using DrawImage and the new DrawImageAt.
- Added MAE (Max Adverse Excursion) and MFE (Max Favorable Excursion) to Positions Performance Visualizer.
- Fixed index out of range exceptions that sometime occurred in streaming charts with Strategies.
- The Log Viewer will now show you a counter of the number of duplicate items logged, instead of logging numerous identical items.
- Several other minor fixes and enhancements.
Build Highlights Video: https://youtu.be/WVa_sc1DJ_c
The primary changes in Build 8 are not outwardly visible, but were required to support a number of Extension upgrades, and to support the upcoming NeuroLab Extension. Depsite this, there are still several notable changes:
- Added Linear/Log option to Trendline Break Condition Building Block.
- Exit Signals from NSF Positions are now flagged as such in the Signals list.
- Corrected WealthData dividends that were not properly back-adjusted for splits.
- Deleted Strategies will now be put into the Windows Recycle Bin.
- Several other miscellaneous fixes and enhancements.
Build Highlights Video: https://youtu.be/TajAJ4htNb0
- The Strategy Monitor has gone through a round of optimizations that should result in an order of magnitude performance gains.
- Changed LastPosition to return the last Position, whether it's open or closed. Added LastOpenPosition to return the last open Position.
- Created a new Advanced Strategy Settings area for advanced backtest settings that should be applied at a Strategy level and not globally.
- Retain NSF Positions option has been moved from Backtest Preferences into Advanced Strategy Settings.
- Added a new Advanced Strategy Setting, Granular Limit/Stop Processing, that lets you use intraday data to determine the precedence of limit/stop fills within a daily bar.
- Added MACDClassic indicator.
- Added Swing indicators to WealthLab.Community library.
- Numerous miscellaneous fixes and enhancements.
- Exposed new Chart Preferences for showing the Chart Status Bar, and controlling the auto-hide behavior of the Chart Toolbar.
- DrawBarAnnotations now stacks properly if multiple annotations are drawn to the same bar.
- Fixed issues in the ReverseFisher indicators.
- Several other miscellaneous fixes and enhancements.
- Fixed an issue in Build 4 that prevented Building Block Strategies to work because of the removal of the Plot method.
- Added method PlotStopsAndLimits so you can visualize your stop/limit prices on the chart.
- Added a search field in the QuickRef.
- Added hotkey F5 to run a backtest.
- Added optional paneTag parameter to PlotIndicator and PlotIndicatorLine to control where the indicators get plotted.
- Removed deprecated Plot method, use the methods like PlotIndicator, PlotBarHistory, and PlotTimeSeries instead.
- Added MFI, TradingDaysSince, and TradingDaysLeft indicators, and moved some more obscure indicators to the PowerPack extension.
- Exposed Cursor Color (Vertical and Crosshair) as a new Chart Preference.
- Metastock: fix for symbols with trailing spaces.
- Yahoo: fix for partial bar missing in streaming.
- Added Building Blocks for Exiting using ATR-based Stop/Limits.
- Added Sound Preferences to Preferences window.
- Added ToMinute method to TimeSeriesCompressor, and fixed a bug in that method for BarHistoryCompressor.
- Tabular Optimization Results can now push a set of parameter values to the other Optimization Visualizers.
- One Parameter Graph Optimization Visualizer now works better with sparsely populated results.
- Fixed exception that occurs when you disable a Transaction Weight Building Block.
- Shrinking Window and Exhaustive (non-Parallel) Optimizers now honor Optimization Variable on/off check-boxes.
- Added One-Parameter Graph Optimization Result Viewer.
- Optimization Surface Graph will now automatically default to the first actual set of recorded parameter values, especially helpful for non-Exhaustive optimizations.
- Added option to create Building Block Strategies that maintain multiple open Positions.
- Added new Commission type - Percent of Trade Value.
- Added PlotBarHistoryStyle method so you can plot a BarHistory with a specific chart style in another pane.
- GetHistory and GetHistoryUnsynched now have an optional dataSetName parameter, so you can specify a DataSet to use when requesting external data.
- Fix: WL7 was experiencing issues when you write a very large number of strings to the Debug tab.
- Fix: Transaction Weight Highest/Lowest was reversed.
- Welcome to Wealth-Lab 7!
- Check back in this spot for details on new builds.