- In an effort to improve the reliability of our free QData service, we’ve moved the QData service and our Screener service to a new server. If you use QData please upgrade to Build 49 before the end of September 2023 to ensure your QData and Screener continue to be function.
- Slippage will now be applied to MarketClose exit orders unless the MOC/LOC Trading Preference is enabled and scale is daily+ or it is the last intraday bar of the trading day.
- Margin factor will now be applied to MetaStrategies.
- Fix SMMA(LRSlope) producing NaN output.
- Fix Live Position sync scenario for Backtest Positions using PositionTags other than 0.
- Process same-bar Stop exits following Stop entry orders that fill on the Open. Previously the same-bar “Stop entry/Stop exit” scenario only considered exits that the bar’s Close would have triggered.
- Max Risk Pct PosSizers will also get Use Broker Account Value when that Trading Preference is enabled.
- Like Position sizing in the backtest, Signal shares will now also reflect currency conversions when Multi-Currency is enabled.
- If Strategy Genetic Evolver cannot find benchmark data for the selected scale, it will use the first BarHistory in the collected backtest data instead.
- For futures mode, tick sizes are now applied to same-bar exits.
- BarHistorySynchronizer now accounts for syncing Markets that have two different time zones.
- Fixed issue causing exception when streaming weekly+ charts pre-market.
- Fix for compiled Strategies with parameters (B45).
- Fix for broken Strategy Genetic Evolver (B45).
Build Highlights Video: https://youtu.be/0M174KVKGbA
- Added WriteToStatusBar method to StrategyBase so you can write text to the Strategy window status bar.
- Added PerformOptimization method to StrategyRunner.
- Fixed option sizing when using Broker-reported account value for % of Equity Size.
- Fixed partial bar in streaming charts for weekly, monthly, quarterly and yearly scales.
- Strategy settings will be restored for compiled strategies too.
- Round Lots can now be applied to Advanced Pos Sizers.
- You can now drag a Strategy from the Strategy List View into a Streaming Chart.
- Fixed erroneous fat-finger warning for manually-placed StopLimit orders.
- Added new virtual properties to BrokerBase to identify if the broker supports native MOC and LOC orders.
- Updated libraries for the various Crypto providers.
- Added Cut, Copy, and Paste right click menu options in the Strategy List.
- Collective2 will now connect as long as you have the C2 Basic Plan, the Premium C2 plan is not required.
- You can now color the Volume bars using SetSeriesBarColor.
- Replaced: One Percent a Week with One Percent a Week v3 in Sample Strategies. You can use Version 3 to set up full trade automation in the Strategy Monitor. See the description in the Strategy Settings view for more information.
- Order Manager’s Edit Order dialog will use the right decimal and tick format for limit/stop prices.
- Fix so Max Entry Signals issues the correct signals.
- Fix to resolve SymbolData not returning completely up to date data for external symbols.
- You can now connect to Collective2 using only the v4 API Key.
- Fixed internal exception on plotting an indicator set.
- Fixed Symbol Filter Condition disappearing from strategies when upgrading from build to build.
- Slight fix to WilderVolStop indicator calculation to be more in line with the source material.
- Fix: Addressed an Index Out Of Range error affecting compressed data from external symbols in ASCII DataSets in some rare occurrences.
- Fix: Optimization was broken by a label fix introduced in B40.
- Fix: TimeSeriesCompressor didn’t account for the market’s closing time.
Build Highlights Video: https://youtu.be/EQdQjdeTmmg
- New Core Feature! Collective2 ... supports Stocks, Options, Futures, and Forex. Read about it in the C2 Blog article.
- Added Standard Deviation of Returns to the Metrics, and Arithmetic/Geometric Mean and Std Dev to the Periodic Returns Visualizer.
- Added Wilders Volatility Stop (WilderVolStop) Indicator.
- Optimization parameter checked/unchecked states are now saved with the Strategy. Also added popup menu items for selecting all, selecting none, or selecting only the current optimizable parameter.
- Debug log performance improvement, works smoothly even with large amounts of data output to the log.
- Change: Apply Round Lots only for non-futures SecurityTypes (Index, Stocks, ETFs, and CFDs).
- Change: made the “Bars Since Benchmark High” curve more transparent in the Drawdown visualizer.
- Change: Improved GetOptionsSymbol() for weeklies: true. Previously, weeklies that fell on a regular expiration were not marked as weeklies.
- Change: Final Order Delay processing will be bypassed completely if the Broker Provider assigns a 0 delay.
DataProviderBasevirtual methods for
GetSymbolStrike()and ‘GetSymbolExpiry()` to parse and return the strike and expiration of an option symbol.
OptionsHelper.C2Symbolstatic class for converting option symbology from other providers to C2 option symbol format.
- Added: OptionSynthetic.‘GetOptionsSymbol()` priceIsStrike overload to exactly specify a strike for a synthetic.
- Replaced: One Percent a Week sample strategy with One Percent a Week v2 that can be Auto-Traded using Daily bar polling in the Strategy Monitor.
- Fix: Strategy Monitor Polling for 60 Minute bars should now work correctly for all providers.
- Fix: Fixed Value and Percent of Equity contract Position Sizing for Options did not account for PointValue.
- Fix: Alpha Vantage provider failed to return intraday data for more than 30 days ago.
- Fix: Alpha Vantage intraday data stopped matching other providers’ due to incorrect bar timestamps.
- Fix: make “Indicator Symbol” qualifier backward compatible with strategies created before B36
- Fix: When Use MOC/LOC is enabled, the Dummy Broker will process MOC/LOC orders at the specified seconds before the close instead of executing them immediately.
TradingDaysBetweenDates()could have been inaccurate for intraday DateTimes when weekends or holidays were between the dates.
- Fix: Live Positions will work with the Broker mapped symbols.
- Fix: KVO indicator was ignoring parameters
ScaledIndworked only for the first instance of an indicator, e.g., SMA, and returned the same SMA even if it used different parameters.
- Fix: optimization elapsed/remaining time reset after 24 hours.
- Fix: CryptoCompare intermittently assigned US Stocks instead of Cryptos to the BarHistory.Market when date format was dd.MM.yy.
- Change: Assign Market based on SymbolInfo if it exists.
- New: Added “Bars Since Benchmark’s Equity High” to Drawdown visualizer.
- Fix: Strategy Monitor unable to open Strategy Window if set to Symbol mode.
- Fix: Converting WaitForClose order types to Market and Limit orders won’t affect canceling active orders in the same order group.
- Fix: Alpha Vantage intraday data was broken due to a change in the API.
OptionSyntheticstatic class with
GetGreeks()methods for synthetic options. See the Backtest and Auto-Trade Options Blog article for examples.
FindPositionAllSymbols()was returning the most recently-created position with a different tag.
- Fix: Cost basis for options was incorrect.
- Fix: Yahoo! Streaming data timestamps were wrong due to an internal change in the Yahoo API.
- Fix: Yahoo! Streaming’s previous Close value was always 0.
- Change: SecurityType.Forex will no longer be handled in Futures Mode.
MFE/MAEPctAsOf()were returning incorrect values following Build 36’s Multi-Currency enhancement.
Build Highlights Video: https://youtu.be/w8Tw3W8kKmc
- New! Enable Multi-Currency Backtests and choose your Base Currency in Backtest Preferences.
- Breaking Change! -
GetOptionsSymbol()moved from BrokerBase to DataProviderBase.
OptionGreekclass. DataProviders can implement virtual methods
- New: Convert MOC and LOC orders that were in WaitForClose status to regular Market and Limit orders when placing them the specified number of seconds before the session's close.
- Change: Holiday checks will now work for intraday timestamps.
- Fix: Corrected ToMinute() bar compression for market close-near-midnight scenario.
- New: Added a Reverse ("Not") option to Symbol Filter
- New: Save "Turn on Streaming Last Price Updates" checkbox value with Save Workspace
- New: added choice of ATR period to CloseAtTrailingStop
- New: added choice of ATR period to ZigZagHL
- New: added currency code column, improved Open Profit label on Positions tab
- New: User-selectable ATR Period in TrailingStopType.ATR
- Change: friendly compiler warnings for some missing extensions
- Fix: Yahoo streaming broken
- Fix: error getting company name in Yahoo provider
- Fix: Event providers don't update event items intermittently (AlphaVantage, WealthData, Yahoo)
- Fix: null exception when revealing a hidden DataSetProvider
- Fix: SchaffTrendCycle defined as oscillator
- Fix: LimitMove OrderType crash scenario in Quotes
- Fix: null protection on adding DataSet in DataSetFactory
- Fix: IndOnInd producing broken code for AveragePrice in IndOnInd
- Fix: "Filter Pre/Post" not saved in Workspace
- Fix: SetTextDrawingOptions help using Color instead of WLColor
- Fix: Conflicting prices for manual orders (unsubscribe on symbol edit)
Build Highlights Video: https://youtu.be/N-SQAxLfxcg
- Added Apex Strategy Collection feature to Strategy Genetic Evolver.
- Fixed: Weekly timestamps for 7-trading-day per week markets are now correct, ending on Sundays.
- Fixed: Live Positions can return a Position even if no theoretical Positions had been created.
- DataTool: better feedback when Truncate would remove all bars, but does not.
- Optimized Strategies list performance.
- Added SDO oscillator from TASC June 2023 issue.
- Added new Parallel Channel drawing tool.
- New Backtest Preference to control how limit/stop Exits are prioritized.
- Added new Backtest Preference to allow processing of cosmetic Strategy methods in the Strategy Monitor.
- Signal Publisher can now use Advanced and Max Risk Position Sizing.
- Added Canada TSX index to World Indices.
- Fixed SZO indicator's FirstValidIndex definition.
- Added Median line to Position Metrics Visualizer.
Build Highlights Video: https://youtu.be/x_71H9ra3SI
- Added new tools to Streaming Charts, including Buy/Sell/Short/Cover buttons, visuals of live orders on the chart, and tradable horizontal and trendline tools.
- added CAMA indicator (TASC).
- fixed Closed Equity shifted to the right.
- Added MinerviniTrendRatio to Community Indicators.
- Added "ATR at entry bar" option to the "Sell/Cover at ATR Stop/Limit" Blocks.
- Added Neon color codes to WLColors. e.g. WLColor.NeonBlue, WLColor.NeonYellow, etc.
- Fixed Sell/CoverAtStopLoss blocks when multiple blocks were used.
Build Highlights Video: https://youtu.be/eLHjUpUFGf8
- Added WFO Range Wizard so you can specify Walk-Forward-Optimization Intervals in terms of days, weeks, months, or years.
- Created a Filter Set Manager tool where you can add and edit Filter Sets, instead of having to do it in the Optimization Tabular Result Visualizer.
- Added a new Trading Preference to Block Exit Orders when Position not Found which was the default behavior all along. You can now disable this behavior if it's problematic.
- The Backtester has improved the way it simulates same-bar exit orders. If the entry order type is not a Market order, then the closing price of the bar must meet the same-bar exit price in order for the same-bar exit to trigger.
- Strategy Rankings tool has been simplified, and vertical scrolling issue fixed.
- CrytpoCompare updates are now throttled to 4 requests per second to prevent missing updates due to the API rate limits.
- Added StochSlowK, StochSlowD, and KDJ Indicators.
- Added Hann filter from S&C April 2023 issue.
- Market/LimitOnClose orders "Behavior 2" will cancel companion orders when their Market or Limit order is placed.
- Enhancement - Enabled second to minute interval compression.
- Fix - Historical Index Exits were always returning a minimum commission.
- Fix - TimeSeriesSynchronizer correctly aligns an intraday TimeSeries to a Daily+ TimeSeries, putting the Daily+ value on the last bar of the intraday series for that date.
- Fixed startup freeze caused by strategy sort.
- Fix - Strategy Monitor runs with NSF Positions may have aborted with Use Live Positions enabled.
- Hot fix for broken compiled Strategies in Build 29.
Build Highlights Video: https://youtu.be/mOAgQBX8QtY
- Genetic Evolver improvements:
- Now performs "sexual" preproduction, taking the best 2 entries and best 2 exits and creating children in the next generation by swapping them
- Fixes issues that caused some genes that were unchecked in Preferences to still appear
- Removes multiple identical Conditions
- Increases diversity by eliminating too many Strategies that have the exact same gene code
- Added Nickname feature to Accounts, add Account Nicknames in the Accounts tool.
Build Highlights Video: https://youtu.be/S8fRB9v0F3c
- Added new Portfolio Sync option, Use Live Broker Position. When selected in a Streaming Chart or Strategy Monitor, WL8 will load a live Broker Position into the last bar of the backtester and remove any theoretical positions. The backtester will then execute the final bar's logic on the "live" position, resulting in an improvement in synchronization with your broker account.
- Yahoo dividend for mutual fund symbols now includes capital gain.
- Fix: Most providers (IQFeed excluded) may have cached partial Daily and Intraday bars if the data were requested during premarket hours.
- Change: TimeSeries functions ConsecBarsAbove and ConsecBarsBelow will return 0 instead of NaN when the value of the TimeSeries is below/above, respectively.
- Revamped the WealthSignals Publisher tool into a generalized Signals Publisher where you can publish Signals to different Signal Publishing Services, including WealthSignals and Wealth$im on WealthLab.com. More Signal Publisher plugins will be available later.
- You can now optimize the Max Open Positions position sizing setting.
- Promoted the MassageColors property from IndicatorBase to TimeSeries, so it can now be used in conjunction with PlotTimeSeries methods.
- Added a sound for the optimization completion event.
- Fixed "Behavior 2" for MarketClose and LimitClose order types. These orders were not placed at "n seconds before close".
- Fixed LineSeriesStyle color: should be the color from the previous to bar instead of bar to the next bar.
- Exposed new TrendlineEnvelopes() method in PeakTroughCalculator that returns the list of all unbroken Trendlines. You can apply custom filters to select/discard the line(s) you want to use.
- Fixed exception upon adding a strategy to Strategy Monitor if its market got deleted.
Build Highlights Video: https://youtu.be/pXVX52Qkt0Y
- The Backtester will now prune exit signals to remove unnecessary duplicates. This change can impact backtest results, especially Evolver Strategies which had a tendency to produce Strategies like this due to their random mutations. The pruning follows these rules:
- If a Market exit is submitted, Limit and Stop exits for the same Position will be ignored.
- If multiple Limit exits are submitted for the same Position, only the one closest to the current price will be accepted.
- If multiple Stop exits are submitted for the same Position, only the one closest to the current price will be accepted.
- Added IBS indicator
- You can now download updates of WL8 and Extensions right from the Home page. After download, WL8 will run an updater to automatically install the updated versions!
Build Highlights Video: https://youtu.be/0kReX5qZkVU
- New Screener tool - allowing you to run Screens of the entire US stock market with your Strategies!
- Added an option to restrict data loading to only the selected DataSet. Prevents WL8 from using other Providers to load data in case a symbol cannot be loaded from the selected DataSet.
- Data Manager integrity checks now checks and can repair BarHistories with NaN values as well as zeroes.
- Added new Trading Threshold to limit number of Open Account Positions.
- Allow seconds in Daily+ schedule for the Strategy Monitor. With Polling, you can schedule a Daily+ run seconds before the market close. To make it work, ensure that the Daily+ delay is set to 0 in Preferences > Trading > Misc. Trading Settings
- Added new Strategy plot method: DrawTextVAlign, for aligning text along its top or bottom edge.
- Added HiddenBullish and HiddenBearish DivergenceType. Regular divergences signal a trend reversal, whereas hidden divergences indicate trend continuation. Use the PowerPack to easily create Strategies based on divergences!
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.