Zorro 2.62 was released and is available on
the download page. The list of features can be found below.
February 2024 | Zorro 2.60 released
Zorro 2.60 is now available on
the download page. The feature list can be found below.
October 2023 | Robot Wealth Bootcamp
Trade like a quant!
Click the link to enroll on the new course on ideas and techniques to extract market
edge. Learn market intuition, systematic strategies, and data
analysis techniques for trading and investing.
July 2023 | Zorro 2.56 released
Zorro 2.56 is now available on
the download page. It comes with many new features. The feature list can be found below.
February 2023 | Robot Wealth Bootcamp
Trade like a quant! Enroll on the new
4-week course on ideas and techniques to extract market
edge. Learn market intuition, systematic strategies, and data
analysis techniques for trading and investing.
January 2023 | Zorro 2.53 released
Zorro 2.53 is now available on
the download page. Among the many new
features are improved broker plugins, millisecond resolution,
crypto hash functions, and more example scripts for data import
from various formats. The full list of new features can be found below.
November 26, 2022 | Algo Trading
Conference
Johann Christian Lotter will speak on the
2022 Algo Trading Conference in Melbourne, Australia, about
the best and the worst algorithmic trading strategies.
August 2022 | Company holidays 8-22 to 9-07
We'll be back on September 7. Support will continue, but we
won't take development contracts during the holidays.
August 2022 | Zorro 2.50 released
Zorro 2.50 is now available on
the download page. It got many new
features, including a 64 bit version, a new Python interface,
direct compiling C++ scripts, and improved charting. The full list of new features can be found below.
Zorro 2.48 is now available on
the download page. It got many new
features for trading in different time zones, negative prices,
reality checks, and additional price sources. The full list of new features can be found below.
Get it today!
December 2021 | Zorro 2.44
Zorro 2.44 was now released and is available on
the download page.
October 2021 | Priority support
If you need immediate help with script coding or
algo trading, and cannot wait for email support, you can now
subscribe priority support on
the support page. Priority support
provides fast technical solutions and coding help by online chat.
August 2021 | Zorro 2.40
Zorro 2.40 is now available on
the download page.
New: contour charts, a reality check template, more
cryptocurrency exchange plugins. and a lot other new features.
The full list can be found below.
April 2021 | Trade like a Quant
Learn to trade a portfolio of low-touch, rules-based, quant trading strategies, in 6 weeks. 25% discount with any new
purchase of a Zorro S permanent license or annual subscrption. Enroll until
April 30 at the
Robot Wealth Algo Bootcamp.
February 2021 | Zorro 2.35
Zorro 2.35 was released and is now available on
the download page.
New: external optimization libraries, faster backtest, multi-account status script, new broker and data feed plugins. and a lot other new features.
The full list can be found below.
August 2020 | Zorro 2.30
The new Zorro version 2.30 is now available on
the download page.
New features: realtime chart generation, interactive payoff diagrams for options, emails on errors, new indicators, and many more new features.
The full list can be found below.
March 2020 | Zorro 2.25 released
Zorro version 2.25 is now available on
the download page.
New features: a generator for artificially shaped price curves, improvements
to the visual debugger, new indicators, a new capital distribution algorithm, a workaround for the upcoming German trader tax, and many more. The full list can be found below.
January 2020 | Free Zorro video course
Our partner, Robot Wealth,
offers a free 4-part tutorial series showing you how to
effectively set up, backtest and maximize your trading with
Zorro as a solo retail trader. You'll also see how they utilize
Zorro daily in their professional trading book. Get the course
here.
November 2019 | Zorro 2.20
Zorro version 2.20 is now available on
the download page.
New features: an indicator development workshop, carrying over
trade statistics to a new session, more scripts and tools, a
Zorro integration toolkit, and many more. The full list can be found below.
September 2019 | New affilate ATFX
New ATFX real accounts are now
rewarded with a Zorro S subscription.
ATFX is a 'No Dealing Desk' Forex / CFD broker with no
commission, many CFD classes, and MT4/Zorro connection.
July 2019 | Zorro 2.15 released
Zorro version 2.15 is now available on
the download page.
This version features communication between Zorro instances, new
IB order types, more flexible bar generation, and many more new
features. The full list can be found below.
May 2019 | Zorro 2.12 released
Zorro version 2.12 was now released (download).
This version includes two new optimizer algorithms, many added
scripts, and the new Z13 options trading system with 50%
historical CAGR. The full list of new features can be found below.
May 2019 | Historical data service
Upon general demand, we're now selling
M1 price history and EOD options history for all US stocks and
ETFs on the Download page. Contact info(at)opgroup.de
for bulk licenses.
April 2019 | Black Book third edition
The third edition of the
Black
Book contains new Zorro strategies for trend and counter-trend
forex trading, and two new chapters about stock and options trading.
The new scripts can be downloaded
here (also with the password from earlier editions). Zorro 2.08
or above is required for the new systems.
April 2019 | Zorro 2.08 released
The new Zorro version 2.08 is now available
on the Download page. Zorro 2.08 contains
the new Python bridge, an email function, more functions for options,
and has a smaller memory footprint for low resolution backtests.
The full list of new features can be found below.
Dec 2018 | Price Probability Distribution
A new article on
Financial Hacker illustrates the algorithm behind the
contractCPD market sentiment function and its use in a simple
trading system.
New Functions and Features | Zorro Project
What's new?
Updating Zorro 2.60 to Zorro 2.62 - questions and answers
How do I update a live trading Zorro
without interrupting? The procedure is described under Trading.
Why do I get error messages
when the script previously compiled fine? Most likely due to improved error
detection, a
name conflict with a new keyword, or a deprecated variable or function.
Deprecated keywords are
defined in legacy.h, which can be included for still using
them.
Why do I get a different
backtest result? Most likely due to new price histories, new asset parameters, or changes listed below.
You can find out by comparing both logs.
Why can't I test the new Z system?
You need recent historical data. Get it from the
Zorro download page.
Why are my settings
gone? Updates overwrite default settings. Keep individual settings in individual files
(ZorroFix.ini, Z1.ini,
Z2.ini, etc).
Zorro 2.63.4 beta - new features
The data format has been changed in 64-bit mode. 64-bit script DLLs must
be recompiled.
The dataCompressSelf function compresses a
dataset for reducing its file size.
The latest published beta version is
available on the Download Page. Zorro S features
can be unlocked in beta versions with a valid Zorro license. Z strategies
are not included in beta versions. A list of fixed bugs can
be found under bugs.
Future Zorro features
If you want a new Zorro function, feature,
or a new broker plugion, there are two ways to get it.
You can either pay us for implementing it, and donate the feature to the community. Or you can suggest it on the
User Forum in the Zorro Future section. There
you can also comment or support features suggested by other users. We
normally implement any suggested feature when it is useful
(please give a usage example), popular (supported by
other users), backwards compatible (won't break existing
scripts), and efficient (saves a lot of code in a script). How long it takes depends on the usefulness of the
feature and how hard it is to implement. Donated features have priority.
Zorro Release History
Zorro 2.62 (July 2024)
Python machine learning libraries can now be used with the
advise function.
The
Z8 and Z9 systems now export a rebalance file
that can be directly imported in the TWS 'Rebalance Portfolio' window.
Fractional shares are supported.
Zorro 2.60 (December 2023)
Various small improvements to the IB plugin for
better differentiating between orders and trades.
The BrokerTrade function can now
distiguish between cancelled and filled orders.
Stops and order limits are
now automatically rounded to the next PIP step when sent to the broker. This
can be disabled with the TR_FRC flag.
If the last leg of a combo order timed out, the
other legs are automatically cancelled.
The Chart script opens a .t1, .t6, or .t8
file and displays its content in a chart.
The CryptoCompare download function
has been adapted to the new 2000 prices limit.
Z9 now downloads UK ETFs from Stooq (Yahoo
sometimes delivered wrong prices for UK assets).
assetHistory now uses the current asset
history symbol when no name is given.
The Centage flags automatically convert
live or historical prices given in cents, as
for some agricultural futures and options.
A new [Action] scrollbox has been added. It
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.
MaxLong and MaxShort
can be set to a negative number for preventing the updating of open
trades.
The Zorro.exe can now be assigned to files with .t1,
.t6, .t8 extension and automatically
displays them in a chart.
A name can be passed via command line to the
Define string.
PlotHeight2 can be used for determining
the proportions of additional charts in the interactive chart viewer.
The account is now stored per trade so that trades from multiple
brokers or accounts can be resumed.
Options can now be combined with the combo
functions.
Algo identifiers ending with ":L"
or ":S" now automatically suppress trades in opposite
direction.
The VWAV function calculates volume weighted
average values.
Zorro 1.96 (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.
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 (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.
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.
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 (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 "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 (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 Payoff 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 = NOWcan 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 (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 (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.
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 (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 (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 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 (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 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.
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.
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 (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 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 (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 (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.
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 (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 (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.
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 BarMode 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 (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 (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 (March 2013)
The AVG flag now allows to plot
a value as an average curve over all oversampling cycles.
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.
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 (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.