~~~ News ~~~

Zorro version 1.96 was released and is available on the Download page. This version comes with an interactive chart viewer/debugger, an options trading workshop, Visual Studio™ support, a function to record options chains, and many other new features and improvements.  

New chart viewer

What's new?

What's new?

Updating to Zorro 1.96

  • You can update a live trading Zorro instance without interrupting the trading process. Please see under Trading how to update a live system.
  • General advices about updating: A syntax error with a script that worked in the previous version is usually caused by a variable, function, or definition that had accidentally the same name as one of the newly added variables, functions, or definitions. If you get a different backtest result, compare the logs; differences are usually caused by updated price histories, asset parameters, or different backtest periods. If you've directly modified Zorro.ini or Z.ini, your modifications will be overwritten by the installation; for Z.ini you can use individual .ini files (Z1.ini, Z2.ini, etc.) that won't be overwritten, and for Zorro.ini use ZorroFix.ini for keeping your settings. Testing a Z system requires recent price data, so make sure to get current historical price data from the Zorro download page or with the Download script.
  • The Zorro.mq4 and Zorro.mq5 EAs have been changed in this version. For trading through MT4 or MT5, unzip them from ZorroMT4/5.zip into their respective MT4/5 Experts folders and compile them.

Zorro 1.99 new features (in beta test)

  • The brokerAsset and brokerAccount functions directly call the corresponding functions of the broker API.
  • The Chart script opens a .t1, .t6, or .t8 file and displays its content in a chart.
  • assetHistory now uses the current asset history symbol when no name is given.
  • The Centage flags automatically convert live or historical prices that are given in cents rather than dollars, as for some agricultural futures and options.
  • A new [Action] scrollbox has been added that can be set up in Zorro.ini or in the script for running Zorro tasks, external programs, or script functions with a mouse click.
  • The SET_PATCH command can now also override the broker API's leverage and margin cost parameters.
  • The timeOffset function now also supports bars in the future.
  • The contractUpdate function can now load chains from any historical data, using the Now variable.
  • The .t8 format is now also accepted for historical price data (History = ".t8"). If the file contains different underlying prices for the same date, as for futures, their average is used.
  • For options on futures (FOPs) the trading class can now be encoded in the IB symbol string.
  • The exchange for the current options chain can now be retrieved or given with the Exchange variable.
  • The ER and KAMA2 indicators have been added to the indicators list.
  • The maximum size of a contract chain has been increased to 20,000 contracts.
  • A list of fixed bugs can be found under bugs.

Zorro Release History

Zorro 1.96 (released November 2018)

  • Stop and Trail distances can now also be used for option contracts.
  • The interactive Chart Viewer allows zooming into chart details and replaying the backtest in single step and slow motion (Zorro S).
  • Level 2 data is now supported by the IB plugin with the GET_BOOK command. Market depth data must be subscribed and the exchange must be coded in the asset symbol.
  • The contract.c include file is now  C++ compatible, which allows writing options trading systems with the VC++ environment.
  • A step by step instruction for writing strategies with Visual Studio was added to the manual (Zorro S).
  • The contractRecord function can store the current option or futures chain in a historical data file in .t8 format.
  • The number of AssetVars has been increased to 16. The first 8 can be read from the asset list.
  • The background color of a panel button can now be changed in the click function.
  • Automatic daylight saving can now be switched off by adding UTC to the time zone, f.i. UTC+1 = Central European Winter Time and UTC+2 = Central European Summer Time.
  • A new workshop for options trading was added to the tutorial.
  • A negative lot parameter to a trade function reverses the trade direction. This allows shorter code in some situations.

Zorro 1.88 (released August 2018)

  • The sortRank function can encode candle patterns for machine learning features.
  • The file_next function can enumerate file names in a directory.
  • Multiple accounts are now supported by the IB plugin. The account can be set up in the account list.
  • Order flow can be analyzed with the order book functions.
  • Broker API requests can be limited with the MaxRequests variable. The limit is automatically set by broker plugins that support the GET_MAXREQUESTS command.
  • The Mode function returns the most frequent value of a data series.
  • The Windows Handle can be used for triggering events between Zorros or asynchronously receiving price quotes from broker plugins.
  • Option Delta can now be calculated with the contractDelta function.
  • With the panelFix function header rows or colums can be determined on a scrolling panel.
  • The default BarOffset for daily candles and D1 history is now set to 16:30 for preventing unwanted midnight bars.
  • The modf function splits a variable in a fractional and integer part.
  • FROM_YAHOO is back! At least for the moment, Yahoo™ data can be downloaded again, using a 'backdoor'.
  • The dataParseJSON function parses OHLC prices from a JSON file to a .t6 dataset.
  • The OrderDuration variable limits the duration of a GTC order.
  • Williams' Market Sentiment Index has been added to the indicator collection.
  • Commission is now stored per trade, which allows to set up script-calculated commission amounts before entry or in a TMF.
  • Option trades displayed in the chart now begin with the strike price.
  • The COT functions can be used to evaluate the Commitment Of Traders report.
  • The priceRecord function can be used to update price history files while live trading.
  • Use file_appendfront for appending data to the start of a file.
  • Different brokers and sources can now be used for trading, live prices, and historical prices through the Symbol syntax.
  • The Z10 system now automatically rebalances the cryptocurrency positions in trade mode.
  • The Binance and Bitfinex cryptocurrency exchanges are now directly supported.

Zorro 1.83 (released May 2018)

  • Stock splits are now detected and can be evaluated with the PriceJump variable.
  • The sortData / sortIdx functions can now also sort in descending order.
  • The FXCM plugin now also downloads bid prices in .t1 files.
  • The marketVal function now supports bid-ask spread from bid prices in .t1 files.
  • Closed trades can be enumerated with for(closed_trades).
  • The contractCPD function can be used for predicting the underlying price from option prices.
  • For finding a particular value in a time series, use the findIdx function.
  • The suspended function returns the current trading permission.
  • Changed margin costs of open positions are now considered in the backtest.
  • On no-leverage accounts, the ROI (return on investment) is displayed at the end.
  • The contractNext function allows to enumerate contracts by their strike value.
  • ConnorsRSI and SMA-based RSI were added to the indicators.
  • The NFA flag does not prevent partially closing trades anymore.
  • The filter and renorm functions can be used for array filtering and normalization.
  • The contractStrike function calculates a strike price from Delta.
  • The TradeIsMissed status can be used for generating adaptive orders. The TradeTest script now supports adaptive entries and exits.
  • Weekend flag 16 suppresses bars outside market hours.
  • Assets and algos can be enumerated with for(used_assets) / for(all_algos).
  • The results function can sum up the results of the last N trades by several criteria.
  • Selecting an account from the account list now also changes the assets in the Asset scrollbox.
  • The broker interface now supports UUID strings to identify trades.
  • The Bittrex plugin is included in the beta version (Zorro S).
  • Weekend = +16 now uses the bar time zone for allowing bar generation without setting AssetMarket.
  • wdatef now supports Unix time stamps with the %t format code.
  • For quicker finding a function, a list by category was added to the manual.
  • Detrend now supports RECIPROCAL mode for swapping currencies of a forex pair.
  • marketVal and marketVol can now also be called in a TMF or tick function.
  • The dataFromQuandl function now automatically adjusts timestamps by 16 hours.
  • Datasets can be truncated with dataClip.
  • A new Z10 system with more than 1000% annual return was added to the Z systems (Zorro S).
  • The Z3 system is now included in the free Zorro version.
  • Crypto history in day, hour, or minute resolution can be downloaded from CryptoCompare (Zorro S).
  • Selecting an asset with the scrollbox now triggers the click function. The selected asset can be evaluated with the AssetBox string.
  • The sftoa function can display prices with an adaptive number of digits.
  • The Coinigy plugin is included in the beta version (Zorro S). Coinigy allows algorithmic trading with many digital currency exchanges.
  • The new History script displays the content of .t1, .t6, or .t8 files (Zorro S).
  • The [Edit] button now also opens the asset list after a test if the script used special assets.
  • Portfolio weights can be generated with the distribute function.

Zorro 1.74 (released January 2018)

  • dataParse is now 2x faster, and supports larger text fields in the target dataset (1.70.2) and a start and end record (1.70.3).
  • The ContractRow variable allows easy expansion of option contracts with further fields in an extra dataset.
  • Colors can be made brighter or darker with colorScale.
  • A negative Capital amount allows backtests without margin call detection.
  • The stridx function can be used for indexing arrays or datasets with asset or algo names.
  • Up to 4 different brokers or price sources can now be simultaneously connected by asset/account list entries (1.70.6, Zorro S required).
  • A page about Broker Arbitrage was added to the manual.
  • The _POS macro helps finding the location of error messages in the script.
  • The GET_MAXTICKS broker command allows downloading historical data in bigger chunks than 300 ticks (1.71.2).
  • Indicators can now be loaded from CSV time series with the dataFromCSV function.
  • The dnorm function returns the probability of a variable in a Gaussian distribution.
  • The strtr function returns a string identifying a trade.
  • The currency symbol and number of decimals for account values can now be set up with the account list (1.71.9).
  • The fill status of a trade can now be returned with the BrokerTrade function. The MTR4 bridge has been modified accordingly.
  • The R Bridge can now also be used with a strategy DLL (1.72.4).
  • The PL_ALLTRADES flag plots trades of all assets in the same chart.
  • Downloading Crypto Currencies from Coinbase and Bitfinex is now supported through the Quandl Bridge (Zorro S required).
  • Limiting trades to local market hours can now be set up in the Weekend variable.
  • Panel cells can be merged with panelMerge.
  • The stop distance of pool trades can be set with StopPool.
  • The IB Bridge now downloads prices in 1500-tick packets, which increased the download speed by up to 30%.
  • The IB Bridge now supports the SET_PRICETYPE command with parameters 1 (quotes) and 2 (trades).
  • The Download script was pimped up. It is now easier to use and offers more features.
  • Perceptrons with an analogue output can now be generated.
  • The start date of the Z8 and Z9 systems is now automatically adapted to the availability of historical data.
  • Unix time stamps in milliseconds are now supported for dataParse (1.73.4).
  • Since Support got permanently complaints by former MTR4 users about the 'wrong lot size', position sizes can now be given as Amount, similar to MTR4 lots.
  • The TrainMode variable got a new flag to generate OptimalF factors separately per WFO cycle.
  • Broker connections can now be set up per asset in the asset list, allowing simultaneous connection to several brokers (Zorro S).

Zorro 1.66 (released September 2017)

  • Statistics data can now be evaluated at the end of the strategy.
  • The dataSaveCSV function can be used for saving datasets in arbitrary CSV formats.
  • The PercentRank function was added.
  • The "reverse" helper functions have been replaced by the MaxLong / MaxShort variables.
  • Option history files in .t8 format are now automatically loaded by contractUpdate.
  • Commission is now automatically reduced by 50% on expired options.
  • A cheat sheet with often used codes was added to the manual.
  • TO_ALERT and TO_CSVHDR modes have been added to the print command.
  • The Zorro panel can now be resized, allowing more space for the message window.
  • The -stay command line option leaves the Zorro window open after running a script.
  • The Cold Blood Index has been implemented through the verify function. It is now displayed every day in live trading by the Z systems.
  • Log files from strategy variants can be more conveniently compared by numbering them with LogNumber.
  • Plot curves are now automatically exported to spreadsheets in the CSV format.
  • The Margin and Risk sliders of the Z strategies have been replaced by a Capital slider similar to Z8.
  • The Z8 system got several improvements (heatmap display, sell priority, weight adaption).
  • A new system Z9 was added to the Z systems, based on Antonacci's "Dual Momentum".
  • The advise function now accepts signals in an array with arbitrary length.
  • The generated perceptron, decision tree, and price pattern rules use now double precision variables.
  • Zorro now distinguishes rejected Pool Trades from externally closed Pool Trades.
  • The Notepad++ editor was integrated in Zorro as a replacement of the SED editor.

Zorro 1.60 (released July 2017)

  • Price data can now also be downloaded from Google Finance, AlphaVantage, and Stooq.
  • The IG plugin by Daniel Lindberg has been added to the Plugins folder.
  • The OptionsCurve script can be used for calculating profit diagrams of option combinations.
  • The assetList function now also sets the Asset scrollbox to the selected asset list.
  • The MTR5 platform is now supported with the MTR5 bridge 1.15
  • The outlier detection can be adjusted with the Outlier variable.
  • The Stoch function now also supports variable time frames.
  • StartDate = NOW can be used for strategies that do not run permanently, but are started periodically, f.i. for modifying a portfolio.
  • AssetMarket can be used for skipping all bars outside market hours in local time.
  • Z8 was changed to trade not anymore at a fixed day of the month. The next trading day is now displayed in trade mode.

Zorro 1.58 (released May 2017)

  • If an asset is not available from the broker, it can be downloaded from Yahoo or Quandl by using special Symbol codes.
  • The callback function can be called from the broker plugin, allowing the script to react immediately on certain API events.
  • In HFT mode, high frequency trading systems can be simulated with pre-set lag.
  • Various plot flags can be set with the PlotMode variable.
  • A StopFactor can now be determined for the Z systems and allows disabling broker stops.
  • The Oanda plugin now also supports Oanda API V2.0.
  • Text can now be assigned to the [Result] button with panelSet.
  • The IB plugin now supports trade volume also in live data.
  • Seconds in .csv files and wdatef fields can now have decimals and are parsed with 1 microsecond resolution.
  • A new lowpass filter function was added that does not use a series.
  • The Quandl WIKI database is now supported by assetHistory.
  • A user-developed Dukascopy plugin has been included.

Zorro 1.54 (released February 2017)

  • Functions for loading arbitrary data, such as option chains, futures, order book content etc. from CSV files have been implemented.
  • The wdatef function parses time/data parameters from formatted strings.
  • The dataFromQuandl function can access Quandl™ datasets for backtests as well as for live trading (Zorro S required).
  • Up to 8 additional asset specific values or strings can be stored in the asset list.
  • The contract functions are for trading and analyzing options and futures.
  • Real money accounts can now be connected in read-only mode with an account list.
  • The EXTRADATA flag of version 1.50 was replaced by the LEAN flag that has the opposite meaning. Historical data is now stored in noncompressed format by default.
  • Option and future chains can be restricted to certain trading classes with the SET_CLASS command.
  • The IB bridge now supports the SET_LIMIT command for getting a better fill price.
  • The IB bridge now supports stock CFDs (type STKCFD).
  • Prices are now stored with 5 digits precision in the trade spreadsheet.
  • Option trades are now based on the real options ask price instead of the extrinsic price.
  • The MinutesPerDay variable prevents "Not Enough Bars" errors of assets that are only traded a few hours per day.
  • The between function now also works for cyclic ranges.
  • PlotPeriod sets the update rate of the chart on the trade status page.
  • The OrderLimit variable allows sending limit orders for filling with best price within a time period.
  • The season indicator can be used to predict price movements based on seasonal strength.
  • qnorm is the inverse of the cdf function.
  • Assets can now be excluded from Z3 and Z7 with the Exclude line in z.ini.
  • The equity or balance curve of a test run is now also exported in CSV format for further evaluation.
  • MTR4 bridge 1.13 now supports a lock command for preventing that trade parameters sent by different Zorro instances interfere with each other.

Zorro 1.50 (released September 2016)

  • Orders for binary options and other special order types can now be sent via MTR4 bridge with the SET_ORDERTEXT command (V 1.47.1).
  • Currency strength functions have been added for detecting currency trends that affect several markets (V 1.47.2).
  • Live trading results can be verified by retesting (V 1.47.2; Zorro S required).
  • Live trading systems can retrain automatically in predefined intervals with the ReTrainDays variable (V 1.47.2; Zorro S required).
  • The sliders can now be moved with slider(num,pos) commands (V 1.47.2).
  • The default data format was changed from .bar to .t6 for including volume and other data streams in the price history (V 1.47.2). .bar data can still be used.
  • With the marketVol function, trade or tick volume of an asset can be used in a trading algorithm (V 1.47.3; Zorro S only).
  • The Fill mode determines how orders are filled in the simulation (V 1.47.4).
  • Numbers can be passed to the Command variable via command line (V 1.47.4; Zorro S required).
  • The number of optimize steps per parameter was increased to 1000 (V 1.47.7).
  • Price ticks are now internally stored in a different format that used less memory for large high-resolution backtests. (V 1.47.7).
  • Disquieting broker messages - such as "An internal server error occurred, our engineers have been notified" - are now filtered out by the Oanda plugin (V 1.47.8).
  • Three Volatility indicators are now supported - Chaikin, Min/Max, and StdDev based volatilities (V1.50.2).

Zorro 1.46 (released July 2016)

  • The assetAdd function allows adding assets via script without editing the asset list.
  • The assetList function loads an asset list immediately.
  • Price history files can be shared among several Zorro installations when a HistoryFolder is set up in Zorro.ini.
  • With the "\r" character in a print/printf statement that jumps back to begin on the current line, a running counter or similar effects can be realized in the message window.
  • The mouse function can be used for automated clicking "Buy" and "Sell" buttons on a broker's web interface.
  • Individual asset lists for the Z systems can now be entered in the Z.ini setup file.
  • A new free trading system Z8 was added to the Z systems.
  • The Oanda plugin now supports sub-accounts.
  • The LINE flag in a plot command plots thick lines in the chart.
  • [Change Folder] in the Strategy scrollbox selects strategies from a different folder.

Zorro 1.44 (released May 2016)

  • The Oanda plugin allows direct trading with Oanda™ (for Zorro S or subscription).
  • Headers for authorization or other purposes can now be included in the http_send function.
  • The TradeTest script opens a panel with buttons for manually trading, useful for testing broker plugins.
  • Files can now be selected in a dialog box with the file_select function.
  • Clicking on [Result] during test or trading triggers the click function. This can be used for performing a calculation or plotting an interim result.
  • The IB bridge was modified for downloading larger price history.
  • The GET_POSITION command is now supported by the IB bridge.
  • The BALANCED flag produces a balanced samples distribution for all machine learning algorithms.
  • A set of normalization functions was added for better adapting indicators to machine learning algorithms.
  • The SIGNALS method exports samples for experimenting with them in R sessions.
  • A default neural function was included in the r.h header. The documentation now got a R example for a 'deep learning' strategy.
  • The Covariance between two series was added to the indicator library.
  • The TRADESIZE flag can be used for training strategies that rely on different trade sizes, f.i. Martingale systems.
  • The 28 Currencies history was updated until the end of 2015.
  • Day gives the current day number of the simulation.
  • Optimal capital allocation among portfolio components can be calculated with the Markowitz efficient frontier.
  • Symbols on a histogram or statistics chart can now have individual colors.
  • The plotHeatmap function can plot correlation heatmaps.
  • The color function can be used for plotting heatmaps or multiple color curves.
  • Date and time can be printed more easily with the strdate function.
  • A set of matrix functions was added.
  • By default Zorro is now installed in the User folder instead of the Program Files folder.

Zorro 1.42 (released February 2016)

  • The STEPWISE flag can be used for debugging trade behavior by single stepping through a test session.
  • Variables can be debugged with the watch function.
  • When a script crashes, the name of the faulty function is now displayed.
  • A negative PlotBars number zooms to the end of the chart.
  • The MTR4 Bridge can now draw horizontal lines and text in the MTR4 chart window.
  • The MTR4 Bridge latency time was reduced from ~100 ms to ~30 ms by optimizing the data transfer.
  • Control panels can now be defined for entering and displaying strategy parameters.
  • The Leverage parameter was changed to reflect account leverage instead of buying power.
  • The location of the .trd files moved from the Log to the Data folder.
  • The last potentially orphaned trade is now displayed in the status page.
  • The Shannon Entropy was added to the indicators.
  • Price data of stocks and indices can now be downloaded from Yahoo with the assetHistory function.
  • The Download script is now controlled with a panel; editing the script is not necessary anymore.
  • Assets can now be tested even with no entry in the asset list. An error message will then be issued and default asset parameters will be used.
  • Trade loops can now be executed from inside a TMF.
  • The wdate function returns the date and time of a bar in the Windows DATE format.
  • Trades can be simulated in an unrealistic naive mode for special purposes.
  • Individual text editors (such as Notepad++) and chart viewers can be used by editing the Zorro.ini file.

Zorro 1.40.2 (released November 2015)

  • Zorro can now trade with Interactive Brokers accounts through the IB plugin.
  • Asset lists and account lists are now in .csv format for easier editing. Leverage and Symbol have been added to the asset parameters.
  • Correlograms can now be plotted with the profile library.
  • Trade slippage, magic number, and other parameters can now be set up in the MTR4 bridge via brokerCommand.
  • The type of an asset can be determined with the assetType function.
  • The frameSync function can be used to snychronize the time frame to full hours or days.
  • A fixed WFO test/training time can be set up with WFOPeriod.
  • Curves stores balance or equity curves during the training process for further evaluation.
  • The putvar/getvar functions share variables globally among scripts.
  • The lock function can synchronize the behavior of multiple Zorros (Zorro S only).
  • The sort functions can now be used without data length limits.
  • The randomize function can shuffle a price or equity curve with or without replacement.
  • Percentile calculates upper or lower percentiles of a data series.
  • ProfitFactor calculates the profit factor of a balance or equity curve.
  • The market function can be used to limit trading to certain hours of the day.
  • The plotData function returns plot data arrays that can be used for further evaluation.
  • Plotting data is now pre-sampled, which makes plotting huge data sets - f.i. a backtest of several years based on minute or second bars - up to 100 times faster than before.
  • The BrokerAccount function is now optional (account data is normally unavailable in a FIX API implementation).
  • The Montecarlo module has been integrated in Zorro, so an external plugin is not required anymore.
  • Periodic I/O tasks can be realized with the tock function.
  • The sample period of the Spectrum function can now be set up independently.
  • The Z.ini file can now be modified while trading, and is updated at the begin of the next bar.
  • The Z7 system got a modified and supposedly more robust algorithm.
  • loop(Assets) loops over all assets from the asset list.

Zorro 1.34 (released August 2015)

  • WFO training time can be minimized by using several CPU cores (Zorro S only).
  • The Zorro window can be started minimized with the -h command line option.
  • The AssetZone variable allows individual time zones for assets in a portfolio system.
  • The pattern analyzer behavior can be set up with the PatternCount and PatternRate variables.
  • A negative series length can be used for generating static, non-shifting series.
  • The ZigZag indicator was added to the indicators list.
  • Machine learning models and script parameters can now be trained at the same time (see Training). In the previous version this was only possible for the integrated machine learning methods, but not for the general NEURAL method.
  • The bar function allows user-defined special bars such a Range Bars or Renko Bars.
  • Training parameters now really produces a HTML file with parameter histograms (in the previous version this was not yet fully included).
  • The R lectures by Harry Georgakopoulos have been included in the Zorro documentation.
  • Zorro will now detect margin calls when Capital is set.
  • The seed function can initiate a deterministic random number sequence.
  • The HH and LL functions now also accept a bar offset.
  • The Ichimoku indicator was added to the collection.
  • The TO_CSV print target prints into a CSV file.
  • The strmid function returns a substring from a string.
  • The asset list AssetsCur.dta contains all 28 major currency pairs.
  • Price history of all 28 major currency pairs is available on the download page.
  • The Z2 system has been improved and got better exit algorithms and a new counter trend algo (A2).
  • The new Z7 system, based on the machine learning algorithm from Workshop 7, was included.

Zorro 1.32 (released June 2015)

  • The R bridge runs R functions from lite-C scripts and allows coding a trade strategy completely in R, using the newest and sexiest AI algorithms.
  • Verbose = 30 now stops the blackbox recording at the first error.
  • The strw function converts strings to wide character strings.
  • The strf function returns a formatted string.
  • The strx function replaces sub-strings in a string.
  • The TO_FILE and TO_ANY print target prints messages to the log file and window in all modes.
  • The TICKS mode was changed. Ticks are now executed in the order of their time stamp, not sorted by asset or trade as before. This makes testing slower, but removes the special restrictions for tick functions, TMFs, and virtual hedging. The old testing method can still be used by setting the FAST flag.
  • The rev function reverses a series so that it now starts with the oldest data.
  • The SHUFFLE flag randomizes a price curve and thus helps determining if profit is caused by a real edge or by artifacts or randomness.
  • The plotWFOCycle and plotWFOProfit functions can be used for analyzing the profit curve over several WFO cycles.
  • The BarZone variable can be used to shift daily bars to a certain local time zone.
  • Chaikin Volatility was added to the standard indicators.
  • The BINARY flag enables the simulation of binary trading.
  • Training now plots all parameter charts in a HTML page, also for portfolios and WFO.

Zorro 1.30 (released April 2015)

  • The OptimalFRatio variable modifies OptimalF factors for preventing large component margin differences in portfolio systems.
  • For scalping strategies, bar periods down to 100 ms are now possible with Zorro S. The BarPeriod variable is now of type var instead of int (check possible compatibility issues, f.i. in print/printf statements).
  • Asset specific parameters can be stored in the AssetVar variables.
  • All Z systems can now be retrained with Zorro S by clicking the [Train] button (even while trading). Price history of all assets from 2008 and above must be available in the History folder. The recent prices are updated and the parameters of the last WFO cycle are trained. Retraining the Z systems is normally not necessary, but was requested by many users.
  • Several small improvements have been implemented in the Z systems, among them different OptimalF factors for the backtest and for live trading, and a different profit lock method.
  • The Z3 system now also trades US indexes.
  • A chart with the current equity curve and other information is now included in the trade status page.
  • If the trade volume is controlled by setting both Margin and Lots, the Lots variable now determines the minimum number of lots per trade. Trades can be automatically skipped when Margin is below the minimum.
  • The backtest can now use T1 (tick based) historical price data.
  • The assetHistory function can now be used to produce T1 price history files.
  • The seconds function is now of type var instead of int (check possible compatibility issues, f.i. in print/printf statements). Its fractional part contains fractions of a second in milliseconds precision.
  • The user-supplied tick function can be used to evaluate incoming price quotes.
  • The AutoCompile flag determines whether scripts are always compiled, or only when they were modified.
  • Plot names beginning with '#' won't appear in the chart legend.
  • The test performance can now be further evaluated with the user-supplied evaluate function.
  • The UO (Universal Oscillator) by John Ehlers was added to the indicator library.
  • The Risk column of the status page now displays the current risk of a trade instead of the initial risk.

Zorro 1.28 (released February 2015)

  • The WebFolder variable can now be set up globally for displaying live trade status on a web site.
  • The strtext function can be used to read strings from an .ini file.
  • The DPO oscillator was added to the TA functions.
  • The AGC and EMA functions now also accept an alpha parameter instead of a time period.
  • Some Zorro properties - for instance, the automatic deleting of old log files - can now be set up in the Zorro.ini file.
  • The commission per asset can now be set up in the AssetsFix.csv file and by script in the Commission variable. The simulation now simulates a spread/commission account, instead of a pure spread account.
  • In the SNB floor removal aftermath, many brokers reduced their maximum leverage from 400:1 or 200:1 to 100:1. The simulated default account (AssetsFix.csv) was also changed to 100:1 leverage, which affects the profit of most systems.
  • The Z4 and Z5 systems are expired and have been removed from the strategy pool.
  • The Z3 system now also got an equity curve trading mechanism.
  • The currently profitable and suspended components of the Z12 system are now displayed in a asset/algo matrix with green and red rectangles.

Zorro 1.26 (released October 2014)

  • The number of open lots per asset can be evaluated with the LotsPool and LotsPhantom variables.
  • The Market Meanness Index (MMI) was added to the indicator library.
  • Haiken Ashi prices (HA) were added to the indicator library.
  • The Z systems have been improved and retrained. New algorithms have been added to the Z4 and Z5 systems for working with very low price volatility.

Zorro 1.24 (released June 2014)

  • The AssetFrame variable can be used to skip quoteless bars of assets in a portfolio system.
  • The TradeCosts script lists the relative trade costs of all main assets.
  • The Script scrollbox now 'remembers' the last selected script.
  • Hedge mode 5 now minimizes the number of open trades by closing trades partially if required.
  • exitLong/Short can now close trades partially.
  • The MTR4 bridge and the FXCM plugin have been adapted to partially closing trades.
  • TrailSpeed raises the stop faster before breakeven, this way preventing that a winning trade turns back into a loser.
  • The Hurst exponent can determine trending state of a price curve.
  • The Alligator indicator was added to the library.
  • The predict function can predict crossovers several bars before they happen.
  • The Momentum variable indicates the 'strength' of crossovers, peaks, or valleys.
  • The saveStatus/loadStatus functions can preserve variables, open trades, and slider positions when the system is stopped or restarted.
  • The AlgoVar variables are now automatically saved, thus keeping their content when a trading system is stopped or restarted.
  • Invalid Margin values are now indicated with an error message.
  • The NFA flag is now ignored in training mode.
  • While trading, Zorro now displays a detailed lists of open trades and performance statistics in a HTML file that is updated every minute.

Zorro 1.22 (released April 2014)

  • The MTR4 bridge was updated to version 1.3 that supports MTR4 version 600 and above.
  • The Multisession plugin allows to trade with multiple brokers, instances, and accounts even with the free Zorro version.
  • Placing the stop level at the wrong side of the price in a TMF is now automatically corrected.
  • The ATR function now adapts to the TimeFrame.
  • A new Virtual Hedging mode allows to combine trades opened on the same bar to a single net trade.
  • The Keltner Channel was added to the indicator library.
  • The PlotDate variable can be used to zoom the chart to a certain date.
  • The print function can print to various targets, f.i. to a message box or to the performance report.
  • Zorro now only logs in to the broker when in trade mode. In test or train mode, missing assets or price data will produce an error message. The Download script now needs trade mode for updating prices or asset data.
  • The exec function can be used to open an external program, document, URL, or batch file.
  • A Monte Carlo plugin is now available for a Monte Carlo analysis of strategy scripts and external trade lists.
  • The annual return is now calculated from the maximum margin instead of the average margin. This produces slightly more pessimistic returns.
  • The R2 coefficient that measures equity curve linearity is now included in the performance report.
  • A small example script for converting .csv price history files to Zorro's .bar format was added (needs the file_write function).
  • The History string can be used for selecting between different sets of historical data files.
  • The file_write function can be used to store the content of a string, series, or array in a file.
  • The NumInRange function can be used to generate price distribution statistics while trading.
  • The ShannonGain indicator calculates the expected gain of the next bar period, based on Shannon probability.
  • A description of using NeuroShell™ and other DLL-based indicators for Zorro was added to the conversion chapter.
  • Trade management functions (TMF) can now be triggered by entry or exit limits, thus allowing for additional entry/exit conditions or trade chains.
  • TickSmooth can remove outliers from incoming price ticks.
  • The TickTime variable can be used to save CPU resources by defining a minimum time between script executions.
  • The plotProfit functions plot the daily, weekly, monthly, or quarterly profit or loss in the price chart.
  • The Z5 system got a new algorithm for the "Stop" slider that re-enters trades closed due to the risk limit. This greatly improves the profit in situations when the risk limit is exceeded.

Zorro 1.20 (released November 2013)

  • The PRELOAD flag allows loading lookback price data from the price history on trade start.
  • The DominantPhase function can detect turning points of the dominant cycle in a price curve even before they happen.
  • The account selection system was implemented for multiple accounts and/or multiple MTR4 clients (Zorro S only).
  • A new FXCM plugin is available where the wrong trade profit issue is fixed, so the SET_PATCH command is not required anymore.
  • Bar charts by plotBar are now automatically aligned so that the chart always starts with the first bar.
  • The MTR4 bridge now supports multiple MTR4 instances on the same PC (Zorro S only). To connect to a particular MTR4 account, either the account number can be manually entered in Zorro's [User] field, or the account selection system can be used.
  • The -d command line option allows to pass a #define statement to the script (Zorro S only). This way many different tasks can be automatized with the same script.
  • The ALLCYCLES flag produces a portfolio analysis of all sample cycles.
  • The plot command now supports plotting different symbols in the chart.
  • A price data gap check can be activated with the GapDays variable.
  • New indicators by John Ehlers (HighPass2, StochEhlers) have been converted to C by DdlV, together with an example script of a trade system.
  • A Filter script has been added for testing and displaying Zorro's spectral filter functions.
  • The sine and square wave generators can now produce hyperbolic chirps for filter testing.
  • Margin at 0 now prevents trades; previously 1 lot was opened, which was a common source of mistakes.
  • A backup of the .trd file is now stored at trade start.
  • Several different money management methods are now discussed at the end of workshop 6.
  • A Gap script was added as an example for a simple gap trading system.
  • The Z5 system was improved for adapting to periods of low volatility.
  • The new Z4 system was especially designed for minimal budgets in the range of $100 .. $400.

Zorro 1.16 (released September 2013)

  • The -quiet command line flag suppresses message boxes.
  • FTP and HTTP functions have been added for accessing the content of websites or sending emails or files to or from remote servers.
  • A new Virtual Hedging mode was implemented and replaces the HEDGING flag. It can greatly reduce the market exposure and the trade duration, and improve profit due to smaller trade costs.
  • A drawdown chart was added to the performance chart.
  • Chart colors can be individually set up with the color variables.
  • The contribution weights of portfolio components are now listed in the portfolio analysis.
  • New trades can now be opened from inside a TMF.
  • The Simulate script simulates a trade system by importing trades from a .CSV file.
  • Entry and exit time of a trade are now stored with tick precision in the .CSV file (previously it was with bar precision only).
  • Some users had problems to set up a trading system on a VPS, so a VPS installation service was added to the download page.
  • The Z5 system now uses virtual hedging.

Zorro 1.14 (released August 2013)

  • While trading, a click on [Result] prints a list of open trades with entry, current, and stop prices.
  • The login function can be used for temporarily logging out from the broker.
  • The memory function can be used for determining the current memory footprint of the script, and for finding memory leaks.
  • The reverse functions are convenient for limiting the number of trades. Their use is explained in workshop 5.
  • The msg function can now be used for modeless message boxes, useful for trade alerts without interrupting the script.
  • The stop loss distance is now displayed in the daily profit/loss reports with Verbose >= 2.
  • OptimalF factors are now also calculated for long and short trades together. This gives a more precise result than averaging the long and short OptimalF factors.
  • A seconds function was added for evaluating intrabar time.
  • The OrderDelay variable can be used for improving profits by entering trades at the optimal moment.
  • A step by step description of adding new assets and downloading price data was added to the manual.
  • The Capital variable allows to set up an initial capital and calculate the CAGR.
  • The advise function can now generate trading rules for multiple assets and algos.
  • The BarPeriod variable can now be set from an optimize call, except for WFO.
  • TimeFrame can now generate individual time frames that are aligned to external events.
  • assetHistory can now be used for updating or adding new assets without downloading historic price data.
  • The state of the input sliders are now stored together with the open trades, and restored when trading is resumed.
  • The state of the Account scrollbox is now preserved when Zorro is restarted.
  • The Weekend variable can now be set to 2 for preventing that bars end during the weekend.
  • The Verbose variable can now be used to set up message verbosity and diagnostics mode via script. It is also added to the Z.ini file for the included systems.
  • The diag.txt file is now separately stored for every strategy.

Zorro 1.12 (released July 2013)

  • Slippage is now recorded while live trading, and displayed in the performance report in total and per trade.
  • An additional algorithm (VO) was added to the Z1 system, increasing the annual return to about 280%
  • After 6 months live test the Z3 and Z5 trade systems have been released.
  • C source generated by machine learning functions is now stored in .c files instead of .rul.
  • The plotMAEGraph function can produce MAE distribution graphs and similar charts.
  • The plotGraph function draws lines and polygons in a chart.
  • The DOT type can be used for plotting a dotted curve.
  • The Trail distance can now be negative for raising the stop loss on any bar regardless if the trade is in profit or not.
  • Due to an internal loop optimization, trades are now entered faster, thus reducing slippage.
  • The MUTE flag prevents playing sounds (in the case that Zorro trades from your bedroom).
  • NumTotalCycles can be used to repeat a full simulation cycle many times.
  • The pattern analyzer can now generate 'fuzzy patterns' with the FUZZY|PATTERN method.
  • The pattern analyzer can now generate pattern finding functions in C that can be exported to other platforms.
  • The equalF and eq functions have been added to the fuzzy logic set.

Zorro 1.10 (released May 2013)

  • Zorro can now run as a MTR4 expert advisor using the MTR4 Bridge.
  • The Spectrum function can be used to find hidden cycles in a price curve.
  • A new workshop was added for trading with machine learning algorithms.
  • AI rules and strategy parameters can now be generated at the same time.
  • The PATTERN analyzer automatically finds profitable candle patterns for price action trading.
  • The FrameOffset variable allows to generate trade signals at different times within the same time frame of a multi time frame strategy.
  • The -diag command line option can be used for finding the reason of a crash or similar problem that terminates the script.

Zorro 1.06 (released March 2013)

  • The AVG flag now allows to plot a value as an average curve over all oversampling cycles.
  • A Laguerre filter was added to the filters.
  • Comparing a function pointer with a var or float value - this can happen when forgetting the () of a function call - will now generate a compiler error.
  • The info and progress commands display text and color signals in Zorro's info window and progress bar.
  • Zorro can now be started from external programs with command line options.
  • Seasonal analysis functions have been implemented. They are also be available as an add-on for Zorro 1.05.
  • The Z12, Z12fx, and Z12nfa combined strategies have been removed because they were found less profitable than trading Z1 and Z2 separately. Reason is an internal mechanism that evaluated open trade profits for trade decisions, which does not work well across opposite strategies such as the Z1 trend trading and the Z2 counter trend trading systems.

Zorro 1.05 (released January 2013)

  • The Total down time - the time spent below a preceding equity peak - is now displayed in the performance report.
  • The timer function can be used for precisely determining execution times.
  • Asymmetric slippage can be simulated by setting the Slippage variable to a negative value.
  • dayPivot calculates the pivot point of the previous day.
  • The stock exchange working hours for the day functions can be changed through the variables StartMarket and EndMarket.
  • The week start and end time can be changed through the variables StartWeek and EndWeek.
  • The DIAG flag prints the execution time for opening and closing positions into the log file.
  • The TICKS flag now also handles entry limits with per-tick resolution.
  • Trade functions can now also be used for individual entry limits.
  • Price history files are not anymore automatically downloaded at the begin of a new year - this confused beginners and was a bad idea anyway. Instead the assetHistory function was implemented.
  • A new broker plugin with the ForexConnect™ API interface has been implemented. It provides a more stable connection than the previously used Order2Go™ broker plugin.
  • Logging in to the broker with several Zorro instances on the same PC will now generate an error message.
  • The Z1 / Z2 system components are now optionally filtered with the results of an out-of-sample test with the real trading parameters. This reduces the backtest performance, but should improve the real trading performance.

See also:

Zorro Home, Get Started, Bug History, Brokers, Tutorial

► latest version online