Clone our Wealth-Lab 8 Extension Demo project on GitHub to get a head start in developing your own Extensions!

This document details the API for building Broker Adapter extensions for WealthLab 8. A Broker Adapter allows WL8 to connect to a live broker, obtain account information, place, and monitor trades. With a Broker Adapter connected, WL8 becomes a powerful trading bot. Both the Strategy Monitor and the Streaming Chart tool can be configured to automatically stage or even place Strategy-generated Signals to a connected broker.

This document details the API for building Building Block Extensions for Wealth-Lab 8, which users can drag and drop to compose a Building Block Strategy.

This document describes how to use the Chart components in Wealth-Lab 8 in your own Extensions. The Chart components are located in the WealthLab.ChartWPF assembly, so reference this assembly in addition to the other ones required for your Extension.

This document details the API for building Chart Drawing Objects for Wealth-Lab 7. A Chart Drawing Object (CDO) appears along a toolbar along the right edge of the WL7 main window when a chart has focus. The user can select a CDO with the mouse, then click and drag on the chart to draw it there. Common CDOs include:

This document details the API for building Chart Style Extensions for Wealth-Lab 7. A Chart Style determines how the open, high, low, close (OHLC) bars are rendered on the WL7 chart. Common Charts Styles include:

This document details the API for building DataSet Provider extensions for WealthLab 8. A DataSet Provider provides one or more pre-generated DataSets that users can select for backtesting. These DataSets appear under special nodes in the DataSet tree in WL8.

This document details the API for building Event Data Provider extensions for Wealth-Lab 7. An Event Data Provider provides symbol-specific data points that are based on specific events that occur on specific dates. Some examples of appropriate events are:

This document details the API for building Historical Data Provider extensions for WealthLab 8. A Historical Data Provider allows WealthLab 8 to consume historical price/volume data from a specific source. Examples of such sources are:

This document details the API for building Indicator Library extensions for Wealth-Lab 7. An Indicator Library exposes one or more WL Indicators, which appear in their own node in the WL7 indicator tree.

This document details the API for building Optimization Visualizer Extensions for Wealth-Lab 8. An Optimization Visualizer occupies a tab in the Optimization Results section of the Strategy window's Optimization section, and lets you present the results of an optimization in a particular way.

This document details the API for building Optimizer extensions for Wealth-Lab 8. An Optimizer decides how Strategy Parameter values should be tested during an optimization. The baseline Optimizer, Exhaustive, simply iterates through each possible combination of Parameter values. As you might imagine, this can lead to run times exceeding hours, days, weeks, months or more depending on how many Parameters a Strategy has. Other Optimizers attempt a different approach to narrow down profitable Parameter ranges.

This document details the API for building Performance Visualizer extensions for Wealth-Lab 7. A Performance Visualizer occupies a tab in the Backtest Results section of the Strategy window, and lets you present the results of the backtest in a particular way. The Visualizer ultimately derives from WPF's UserControl, so you are free to design your Visualizer using all of the available WPF UI controls.

This document details the API for building Plot Style Extensions for Wealth-Lab 7. A Plot Style determines how a time series is plotted (such as an indicator) is plotted on a WL7 chart. Common Plot Styles include:

This document details the API for building Position Sizer extensions for Wealth-Lab 7. A Position Sizer calculates the number of shares/contracts for a Transaction during the backtest process. It has access to the current and historical equity/cash levels of the simulation, as well as other information in order to make the position sizing decision. Position Sizers are exposed to the user in the WL7 position sizing user interface section, in the Strategy Settings tab of the Strategy window.

WL8 supports cross-platform development by enforcing a separation of core logic components and user-interface (WPF) components. WL8's core logic library is WealthLab.Core, which is platform neutral. Although it contains components that require configuration, such as Historical Data Providers and Broker Providers (the Dummy Broker) it does not contain the UI elements to configure these items.

This document details the API for building ScoreCard extensions for Wealth-Lab 8. A ScoreCard generates a roster of Performance Metrics (such as APR, Net Profit, and Sharpe Ratio) based on the results of a backtest run. These Performance Metrics can be displayed in various Performance Visualizers (see VisualizerBase and Optimizations and can even be selected as optimization targets by certain Optimizers.

This document details the API for building Strategy Library extensions for Wealth-Lab 7. A Strategy Library is simply a collection of Wealth-Lab 7 Strategies packaged and compiled in a .NET library assembly. WL7 displays these libraries as separate nodes in the Strategies tree. If your Strategy exposes Parameters, these will be exposed as sliders in the Strategy Settings tab, just like they are for a C#-Coded or a Building Block Strategy.

This document details the API for building Streaming Data Provider extensions for Wealth-Lab 7. A Streaming Data Provider allows WL7 to subscribe to symbol updates, and get notified live whenever trades (ticks) occur for the subscribed symbol(s).

This document details the API for building Wealth-Lab 7 Client Extensions (WLCE for short) for Wealth-Lab 7. A WLCE lets you install one or more menu items into the WL7 Extensions menu, and the menu items can be assigned to an event handler that you define. The event handler typically uses the other features of the WLCE API to show a child window in WL7 that is defined within the WLCE.