General Application Changes

New Portfolio

The new Portfolio is a type of chart that splits the view between a list of instruments on the left side, and the chart, subcharts and tools from the selected item on the right side. Portfolios of the new type will (depending on your settings) maintain their trade history even if one of the portfolio items is removed, so that the trade history for a portfolio that changes over time will remain intact and visible in the performance report. Usage of the Portfolio (Classic) is still possible, but has to be enabled in the options.

Correlation Matrix

The Correlation Matrix document is a type of scanner that calculates the results of a chosen correlation-type function for each item in a symbol list against each other item in the same (or different) symbol list. Any indicator that takes two data inputs can be selected for the correlation function, and any predefined or user-defined symbol list may be selected for either the row or column list.

Python module editor

The Python Module Editor allows Python packages and modules to be created, modified or viewed. Most standard text editor commands are supported, including Python syntax highlighting. Context-menu shortcuts to open Python modules either from the Python Module Editor or from an Equilla editor are available.

Optimizer Improvements

  • Optimizers in a workspace can now be scheduled to optimize at specific times and days. All currently scheduled items can be viewed, edited and/or removed via the Scheduled Jobs button or via File > Print > Print and scan schedule.
  • The Optimizer wizard now allows the selection of either Monte Carlo or Walk Forward Monte Carlo as the optimization method. Selecting either of these modes will also require the selection of the number of simulations to run (per symbol in the case of symbol list optimization). The Monte Carlo optimizer will not repeat combinations it has already simulated.
  • The Optimizer wizard now provides a method to calculate the in- or out-of-sample width, by entering the corresponding sample size and the desired number of samples.
  • The Optimizer wizard now can unify the same parameters from different instances of the same indicator or strategy, so that the parameter ranges need only be specified once.
  • When optimizing the Active property of several scripts for both true and false values, only a single script can have the true value during a given run. This feature allows the optimization of a strategy component without generating additional unnecessary combinations that consume significant time.
  • The Optimizer results document now allows the chart style for the displayed results to be selected from either bar, range bar, line or point.

Minimize subcharts

Subcharts may be minimized by clicking the minimize button next to the maximize button in the upper right of a subchart pane. If there are one or more minimized subcharts, a restore button will appear in the top-most visible subchart that may be clicked to obtain a menu of subcharts that can be restored.

Rolling Forward Symbol Wizard

  • The Continuation and Rolling Forward wizard allows user-defined Rolling Forward instruments to be created. For the Rolling Forward symbol, the history of the old contract is replaced by the history of the new one as they rollover. (In Continuation symbols, the history is created by stitching together parts of the history of each contract as they rollover.)
  • The Continuation and Rolling Forward wizard now allows the rollover of a contract to occur with respect to the expiration quarter or year (in addition to the prior options of expiration day or month). The number of days and months prior to the rollover point may now be additionally specified. (Previously, only days could be specified.)

Dialog to add additional timeseries fields

The field dropdown menu for an instrument in the property inspector will now provide the option Add Field… if the data feed supports more timeseries fields than are displayed in the initial field dropdown menu. The Add Timeseries Field dialog allows a field to be browsed for or searched by keyword.

Synchronize stop line values for identically named items in the same workspace

Stop Lines in the same or in different charts in the same workspace can have their values synchronized when one is changed.

Hourly candles with a minute-based offset

Via the Defining Your Own Trading Period settings, it is now possible to display 60 minute candles, with a minutes offset from the natural clock hour.

Option to use only closed bars when scanning

To use only closed bars when scanning securities in the Scanner, set the option Only Closed Bars to True. This is useful in daily periods to ensure the scan uses the data from the close of the prior session for all instruments.

Option to regenerate missing trades from last save point when opening a workspace

Checking the option File > Options > Advanced > Strategy Orders > Generate orders from the last save point, when a workspace is opened will force all missing trades from the last save point forwards to be generated when loading a workspace.

Option to automatically add a list of strategies and indicators when a strategy is added to a chart or Portfolio

When the first strategy is added to a chart or a portfolio, the list of indicators and strategies specified in the options under File > Options > Advanced > Indicators & Strategies > Automatically insert the following items when a strategy is added to a chart and Automatically insert the following items when a strategy is added to a portfolio will be added.
The default items for charts are Strategy Equity Portfolio and Strategy Drawdown Portfolio. In case of a portfolio, the Portfolio Leave Exit strategy is added in addition to these two indicators.

Sortino Ratio in the performance report

The Performance Report now contains the Sortino Ratio in the same section as the Sharpe Ratio.

Sortino Ratio and Sharpe Ratio as trading statistics

Both the Sharpe Ratio and the Sortino Ratio may be queried from Equilla or used for optimization.

Seasonal chart wizard for non-future contract instruments

The Seasonal Chart wizard has been enhanced to alternatively allow selection of a single instrument instead of a future/forward contract series. This new option will then create a seasonal chart based on the single instrument, using the Seasonal Projection indicator to overlay historic years and the seasonal average.

Pattern-based Drawing Tools

  • Triangle
  • Triangle Pattern
  • ABCD Pattern
  • XABCD Pattern
  • Elliott Wave 5 Line
  • Elliott Wave 3 Line

Indicators and Strategies

Buy & Hold Benchmark indicator

The Buy & Hold Benchmark indicator calculates the open equity of a theoretical Buy & Hold strategy on a specified benchmark symbol, investing the initial capital. It can be used in a chart or portfolio to compare the equity of a strategy against a benchmark Buy & Hold.

Ref indicator

The Ref indicator allows access to the data from another workspace series from within the current chart (or other document). This indicator can be used, for example, to access the Strategy Equity values from a portfolio and compare them to a benchmark of some type within another chart.

Strategy Equity Workspace indicator

The Strategy Equity Workspace indicator plots the combined open and closed equity for all charts and portfolios in the current workspace.

Tool Alerts indicator

The Tool Alerts indicator adds a window to the chart that shows a ticker of the most recent tool alerts that have occurred since the indicator was added (or modified). This indicator is mainly included as a demonstration of intercepting tool alerts from Equilla.

Trend Lines indicator

The Trend Lines indicator plots trend lines onto a chart based on high and low swings of a specified strength. The indicator only works on charts with a fixed bar width.

Trend Channels indicator

The Trend Channels indicator plots trend channels based on high and low swings of a specified strength. The indicator only works on charts with a fixed bar width.

Monthly Perf Grid indicator

The Monthly Perf Grid indicator shows a grid of the monthly performance (over the prior month) of the parent instrument.

Kahler’s Volatility indicator

The Kahler’s Volatility indicator plots a measure for volatility derived from the expected return of a straddle strategy.

Renko Shadows indicator

The Renko Shadow indicator draws shadows on a Renko chart, showing the price movement away from the current trend.

Percentile indicator

The Percentile indicator plots the value at the boundary of the specified percentile.

Periodic Change indicator

The Periodic Change indicator shows either the percent or absolute price change of a parent item over a defined calendar period (day, week, month, quarter or year).

Price Volume Profile Viewport indicator that plots the profile for visible bars

The Price Volume Profile Viewport indicator calculates the profile based on the data currently visible in the chart’s viewport. If a chart is scrolled, zoomed, or new data causes the visible data range to change, the profile will be recalculated.

P&F Volume Profile Viewport indicator that plots the profile for visible columns

The P&F Volume Profile Viewport indicator calculates the profile based on the columns currently visible in the chart’s viewport. If a chart is scrolled, zoomed, or new data causes the visible data range to change, the profile will be recalculated.

Price Volume Profile Intrabar indicator

The Price Volume Profile Intrabar indicator plots the intrabar volume profile for each bar in the chart when the chart is extremely zoomed in. The intrabar volume levels are generated using a lower period specified in the properties. The profiles will only be plotted if twenty or less bars are visible in the chart.

Portfolio Allocation indicator to visualize allocation by Sector/Group/Category

The Portfolio Allocation indicator can be added to a portfolio or chart to show how the portfolio is invested in a specific group or instruments. The indicator allows grouping by industry sector (for stocks), instrument type (Stock, Bond, etc.) or by using the group labels defined in a portfolio.

Strategy Symbol Ranking indicator

The Strategy Symbol Ranking indicator lists the symbols in the portfolio ranked according to a strategy statistic.

Strategy Periodic Returns indicator

The Strategy Periodic Returns indicator plots the percent or absolute gain over a given calendar period.

Strategy Monthly Returns Grid indicator

The Strategy Monthly Returns Grid indicator plots a heatmap of the monthly strategy returns.

Percent Performance Periodic indicator

The Percent Performance Periodic indicator plots the percent change over the current calendar period.

Clenow Momentum Portfolio strategy

The Clenow Momentum Portfolio strategy is a momentum-based portfolio trading strategy (created for the S&P 500). The strategy will buy symbols that show an upward trend in an upward market, represented by a benchmark symbol (typically the S&P 500 index).

Dogs of the Dow strategy

The Dogs of the Dow strategy will once per year find the index members (typically from the DJI index) with the highest dividend yield and invest equally in each.

Group Alloc Portfolio strategy

The Group Alloc Portfolio strategy invests capital according to weight given to each portfolio group. Use the Set Group option in a portfolio to define the individual groups.

Portfolio Leave Exit strategy

The Portfolio Leave Exit strategy will exit a position in a security in a Portfolio when the security is removed from the current portfolio. By default, it is added to a Portfolio when the first strategy is applied.

Price To Book Momentum Portfolio strategy

The Price To Book Momentum Portfolio strategy invests equally in the securities with the lowest price to book ratio, adjusted for strong relative momentum.

Sector Alloc Portfolio strategy

The Sector Alloc Portfolio strategy invests capital according to weight given to each market sector.

Target Return Portfolio strategy

The Target Return Portfolio strategy is a relative return based portfolio trading strategy. The strategy will calculate the lowest risk portfolio for the specified annual target return rate (based on the ‘Efficient Frontier’ concept).

This Bar Close Mode Added to Timed Exit (Bars) strategy

The Timed Exit (Bars) strategy now allows the choice of This bar close orders to be generated to exit a position, in addition to the previously available Next bar market order mode.

Top Dogs Portfolio strategy

The Top Dogs Portfolio strategy is a generic implementation of the Dogs of the Dow trading system. Once per year, find the best performers and invest equally in each. It uses lowest Rate of Change as the performance measure.


Workspace reference instruments

A workspace reference instrument is a new type of instrument that references another data series item in the same workspace. Reference instruments allow, for example, the output from one chart or portfolio in the workspace to be used as input into another chart.

Workspace reference symbol lists

A workspace reference symbol list is a new type of symbol list that references other data series in the same workspace. Reference symbols lists are used exclusively in association with the `List()` function in an Equilla instruments block to provide a filtered list of reference symbols for processing in the Equilla code.

Portfolio/chart inline instrument lists

To access all symbols or indicators in a chart or portfolio from a single indicator or strategy, without the need to have an input data series, the `SelfList()` function may be used.

Equilla HistoryLength function

The `HistoryLength` function returns the maximum number of bars to be loaded, as specified in the properties. The `TotalBars` function returns the number of bars that were actually loaded.

Tool Alerts API

The Tool Alerts API is an Equilla extension object that can be used to intercept and react to alerts generated from tools in the same chart. The API consists of two objects, `EquillaExt.ToolAlert`: which will contain details of an alert, and `EquillaExt.ToolAlertListener`: which is used to listen for new alerts.

Function to obtain current document title from Equilla

The new function `CurrentDocumentTitle()` will return the name of the current document if it has been set. If the default title for a document is being used, an empty string will be returned.

FitQuantityToCapital() function

The FitQuantityToCapital() function returns the closest quantity to a desired target that can be purchased with the available capital including fees.

Percentile() standard library function

The Percentile function returns the value at the boundary of the specified percentile using the interpolation method.

PercentileNearestRank() standard library function

The PercentileNearestRank function returns the value at the boundary of the specified percentile using the nearest rank method.

PercentileNearestRankArray() standard library function

The PercentileNearestRankArray function returns the value at the boundary of the specified percentile in an array, using the nearest rank method.

Optionally query the group of any portfolio item with the PortfolioGroup function in a portfolio or portfolio (classic)

The `PortfolioGroup` method has an optional parameter that specifies which portfolio item should be accessed to return the group name. This parameter is only supported in Portfolios and Portfolio (classic).

Optimize keyword

The Optimize keyword indicates an input should be optimized by default.

IndustrySector instrument property

Returns the value of the industry sector of the selected instrument (if supported by the instrument type and data feed).

IndustrySectorName function

Returns the localized name of the industry sector value passed as an argument.

FeedName instrument property

Returns the name of the upstream feed from which the instrument is delivered. Synthetic instruments will return `FeedUndefined`. This field is generally used to provide specific support in an indicator or strategy (e.g. where symbol or field names differ). A selection of constants for common feeds are available.

IsFeedAvailable() function to check if a named feed is available

The IsFeedAvailable() function takes a feed name (see constants above) and returns true if that feed is available on the current system. It does not check if the feed is up, only that it is configured to be available. This function can be used, for example, in instrument blocks to select different symbols based on which feeds are available on the system.

GetKeyIndexArray function to create and access key/value data via arrays

The GetKeyIndexArray() function may be used to simulate an associative array using two or more normal arrays. The function requires one array to store keys and one or more arrays to store values. The arrays must not be resized or reordered outside of this functions, although elements in the value arrays can be read and written freely.

ToolSetFillColor() function

The ToolSetFillColor() function is used to change the current fill color of a rectangle tool drawn using DrawRectangle().

ToolSetFillExtent() function to set how much of a rectangle tool should be filled

The ToolSetFillExtent() function is used to change how much of a rectangle gets filled. Partially filling a rectangle with a transparent border is a great way to create histograms.

ToolSetLabel() for rectangle tools

The ToolSetLabel() function can now be used to set the label for a rectangle tool.

API evaluate a script when a chart is scrolled or zoomed

An Equilla script may request that it be evaluated when a user zooms or scrolls a chart, or a data change causes the bars visible in the chart viewport to change, by using either of the functions `FirstVisibleBar()` or `LastVisibleBar()`, to determine which bars are currently inside the chart’s viewport. The standard library function `IsViewportChanged()` may be called on each evaluation to determine if the viewport did change since the last evaluation.

Python inline instrument data arrays

Data from inline instruments declared in an Equilla instrument block may now be accessed specifically from a Python block using the lowercase syntax.

Python method to schedule incremental evaluation

The method `equillaRequestEvaluationIncremental()` may be used from Python code within a `PyExec` block to schedule an incremental evaluation of the script.

Python strategy signal API

Signals generated by the strategy engine (such as placing and execution of orders) can now be subscribed to from within a Python block in an Equilla Script. This feature, which is also available from the Equilla extension API, is often used to forward order events to third-party applications or order routing systems. To subscribe to strategy signals, simply provide a reference to a method that will be invoked when a list of signals is generated.

Access 2d Equilla array from Python

Two dimensional Equilla array variables can now be accessed from embedded python code as normal python list of lists.

Python print() to output window

The Python print command will now display its output into the main Output window, in a similar way to using the Equilla Print() command.

NumPy, Pandas and SciPy modules for embedded Python

NumPy, Pandas, SciPy and their dependent modules: python-dateutil, pytz and six, are now available when using the embedded Python version. If using a standalone Python installation, instead of the embedded Python version, NumPy, Pandas, et al. will need to be separately installed into that installation as usual (e.g. via PIP).

Miscellaneous changes

  • “Composite symbols” have been renamed to “formula symbols”, see Create Formula Symbols.
  • The Symbol Search button in the toolbar now offers a drop down menu that allows spreads, continuations and combined symbols to be created instead of normal symbols from the data feed.
  • The search dialog now supports a market level search for the Eikon, Quandl and CSV data feeds.
  • The color of the title tab of a workspace can now be set from the workspace tab context menu.
  • The property inspector allows the display unit of all selected items in a Watchlist, Scanner or Portfolio to be changed in one action.
  • The option to show the current week’s data in a chart has been added to the Home > Chart > Time Span menu.
  • The Command Line period setting format has been expanded to support tick and volume bar periods.

Request your free trial now!