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 8. A Chart Drawing Object appears in a toolbar along the right edge of the WL8 main window when a chart has focus. The user can select a Drawing Object with the mouse, then click and drag on the chart to draw it there. Common Drawing Objects include:
This document details the API for building Chart Style Extensions for Wealth-Lab 8. A Chart Style determines how the open, high, low, close (OHLC) bars are rendered on the WL8 chart. Common Charts Styles include:
This document details the API for building Event Provider extensions for Wealth-Lab 8. An Event Provider provides data points that are based on 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 8. An Indicator Library exposes one or more Indicators, which appear in their own node in the WL8 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 8. A Performance Visualizer occupies a tab in the Backtest Results section of the Strategy window, and lets you present the results of a backtest in a particular way.
This document details the API for building Plot Style Extensions for Wealth-Lab 8. A Plot Style determines how a time series (such as an indicator) is plotted is plotted on a WL8 chart. Common Plot Styles include:
This document details the API for building Position Sizer Extensions for Wealth-Lab 8. 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 WL8 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 Signal Publishing Service extensions for WealthLab 8. These extensions represent remote services that can be selected in the WL8 Signals Publisher tool. You can publish trading Signals to a publishing service by linking a WL8 Strategy to a Remote Strategy that's defined on the service.
This document details the API for building Strategy Genes for Wealth-Lab 8 Strategy Genetic Evolver. The Genetic Evolver uses these Genes to randomly generate and mutate trading Strategies over a number of generations.
You can create a Strategy Library in a .NET development tool such as Visual Studio, or Visual Studio Code. Create a class library project that targets .NET Core 6, then add the following references to your project:
This document details the API for building Streaming Data Provider extensions for Wealth-Lab 8. A Streaming Data Provider allows WL8 to subscribe to symbol updates and get notified live whenever trades (ticks) occur for the subscribed symbol(s).
The version 8 major release of WealthLab introduced theming, allowing you to run the software in either a Light or a Dark mode. WealthLab's UI platform, Windows WPF, supports theming up to a point, but we needed to add several custom components and integration points so theming could work smoothly.
This document details the API for building Client Extensions for Wealth-Lab 8. A Client Extension lets you install one or more menu items into the WL8 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 API to show a child window in WL8.