The Z Systems

The Z systems are prefabricated, ready-to-run strategies for a wide range of markets, based on algorithms published in research papers, in the Black Book, or on Financial Hacker. To avoid misunderstandings: they should not be the only reason of using Zorro! We encourage you to learn developing your own systems. Strategy development is not totally trivial - but if it were, there would be many more working systems around, more people would trade them, and the market inefficiencies they're exploiting would be leveled sooner or later. This effect keeps the number of successful strategies in check and gives skilled coders a large advantage over code-illiterate traders.

When using a Z system, do not do it blindly, but learn system development, understand how it works, and eventually replace it with your own system. There are five good reasons why you should use own systems. First, you have the chance to program better strategies than the relatively simple Z systems. Second, you have a lot more parameters to adapt your systems exactly to your broker and your capital and risk limits. Third, you can face drawdowns with greater confidence since you know precisely what the systems do and why. Fourth, you'll acquire experience with programming and statistics, important for long-term success not only with algorithmic trading. And finally, you can not blame us for losses.

The Z systems use relatively simple algorithms, but all underwent a solid development and test process with the methods described in the Black Book. Early versions of some of the systems had been in live trading since 2012; the results so far have been consistent with the simulation and the backtest equity curves shown below. We're constantly observing the systems and replace expired algorithms or whole systems when we think they became unprofitable. The current systems cover a large range of trade methods, win rates, and budgets:

System
Z1
Z2
Z12
Z3
Z7
Z8
Z9
Z10
License free free Zorro S free Zorro S free Zorro S Zorro S
Traded assets
Forex, Index CFDs
Forex, Index CFDs
Forex, Index CFDs

Silver, Index CFDs

EUR, USD, GBP, JPY

Stocks, ETFs

Sector ETFs, Treasure

Crypto-currencies

Trade method
Trend following
Mean reversion
Anticorrelation
Breakout
Price patterns
Portfolio rotation
Portfolio rotation
Coin rotation
Trade algorithm
Spectral filters
Spectral filters
Spectral filters
Cluster detection
Machine learning
Markowitz MVO
Dual momentum
Markowitz MVO
Bar period
4 hours
4 hours
4 hours
1 day
1 hour
1 day
1 day
1 day
Avg trade duration
10 days
10 days
10 days
8 days
5 hours
6 months
6 months
6 weeks
Retrain or rebalance
4 months
4 months
4 months
6 months
4 months
5 weeks
5 weeks
3 weeks
Max drawdown
9 months
9 months
5 months
10 months
9 months
6 months
8 months
6 months
Annual return
~130%
~130%
~190%
~120%
~70%
CAGR 18%
CAGR 31%
~1000%
Profit factor
~1.4
~1.6
~1.6
~2.1
~1.3
~4
~9
~2.5
Win rate
~44%
~57%
~52%

~64%

~55%
~69%
~79%
~58%
Required capital
~2000 $
~2000 $
~3000 $
~2000 $
~1000 $
~5500 $
~5500 $
~0.5 BTC
Avg monthly income
~300 $
~400 $
~900 $
~500 $
~100 $
~150 $
~300 $
~1 BTC

For long-term investment, the Z8 or Z9 systems are probably the best suited since they have the highest win rate and the lowest risk. They can be traded even without Zorro, on an IB account with the MoneyPouch roboadvisor system that uses Z9 variants. The other Z systems have higher annual returns, but accordingly higher risk. All trading systems can cause a complete loss of the invested capital. Many have long drawdown periods that you see in the table above and the equity curves below. You're more likely to start in a drawdown than not. Be prepared for losses and do not invest what you can't afford to lose.

The Z systems will not start right away. You need to download historical data for testing them - see below. So when you ask for help on the user forum because "Z1 shows lots of 'history missing' errors", we know that you have not read the manual! For trading the Z systems live, you'll probably also need to rename some assets, dependent on what names your broker uses; look for details under Tips&Tricks below. Training the Z systems is not necessary. We provide new trained rules and parameters with any Zorro update. All non-daily systems have been trained with oversampling and are thus robust against price curve noise.

By clicking [Test], the system is tested for determining its performance with different slider and parameter settings and different broker accounts. All Z systems are out-of-sample tested, using walk-forward analysis. For keeping the Zorro installation size small, the required historical price data files are not included in the setup file. Get them separately on the Zorro download page. The Z systems normally need historical price data, for Z1-Z3 from 2010, for Z7 from 2006. Your test results can slightly differ from the figures above. Broker accounts with higher lot amounts, margins, and commissions can even produce very different results.

The Z strategies are not available in script. They are compiled executables (*.x) only. This is not due to some secret trade algorithm - all algorithms are published, so any Zorro user can check them out and write similar strategies. But if we provided the script code, anyone could see when the strategies buy and when they sell. It would then be easy to prey on Z system users with fore-running methods. For the same reason, some of the strategies contain a random element that makes it hard to predict their trading behavior. This random element has only a small effect on the strategy performance, but it ensures that many people can trade the strategies without hampering each other. It is not possible to reverse engineer compiled Zorro strategies for determining their trading behavior.

Due to the profit limit, the free Zorro license allows to trade only one system - either one of the Z strategies or a system of your own - on a real money account. Z1, Z2, Z3, and Z8 are included in the free Zorro version. The other systems are partially included as demo versions; the versions for real money trading are included in Zorro S.

In live trading, the Z systems do not automatically reinvest profits. The traded volume must be manually controlled with the Capital slider (see below) and is unrelated to the account balance. OptimalF factors are used by some systems for distributing the capital among the components, but not for reinvesting. If you want to reinvest your profits, use the Capital slider for increasing the investment proportionally to the square root of the profit accumulated so far.

Z1

Z1 trades a portfolio of trend following algorithms with currencies, commodities, and indices. The algorithms are variants of the systems from chapter 3 of the Black Book. They are self-adapting to the market within certain boundaries, and can detect unprofitable market periods. OptimalF factors are used for distributing the capital among the components. Trade exits are handled by TMFs. Some of the algorithms control the trade duration by moving the stop loss; this can cause the stop to move in both directions.


The equity curve above is from a walk-forward analysis on an Oanda US account with 100:1 leverage. It is slightly on the optimistic side due to selection bias from generating the OptimalF factors from the whole simulation period. For reducing the expiration risk of single components, an equity curve trading mechanism is implemented. You can deactivate it with the Phantom flag (see below). A table with the current algorithm states is displayed on the trade status page:

EUR/USD VO:LS -198 HU:LS +68
USD/CHF VO:LS +726 LP: +549 HU:S +612 ES:LS +190 LS: +611
GBP/USD LP:LS +610
USD/CAD HU:LS -108 ES:L -73 LS:L +821
USD/JPY VO: +2400 HU: +1178
AUD/USD VO:S -82 LP:LS -0 LS:S +582
NAS100 ES: +886
SPX500 ES:L +318 LS:L +629
US30 LP: +256 ES:L +761
GER30 LP:LS +746 HU:LS +1186
XAU/USD LP:L +420 ES:S +3457 LS: +2020
XAG/USD VO:L +1797 LP:L +89 LS:S +156
UK100 LS:L -47

In the above matrix, active algorithms are displayed with their identifier (VO, LP, etc.) and L and/or S for the currently preferred trade direction, long, short, or both. Algorithms that are currently winning are displayed on a green rectangle. Algorithms that are currently losing and thus temporarily suspended (if equity curve trading was enabled, see below) are displayed on a red rectangle. The displayed numbers are the total win or loss per component, including phantom trades.

Due to their relatively long lookback period, Z1 and Z2 should only be traded with brokers that provide sufficient price history. If price data gaps are indicated in the message window at start, it is recommended to use the Preload flag (see below) or trade the system with a different broker. Otherwise the shortened price history can affect the performance in the first weeks.

Z2

Z2 is a portfolio of mean reversion systems as described in chapter 4 of the Black Book. While its own algorithms are more or less correlated, it is anticorrelated to Z1. The algorithms are self-adapting to the market. OptimalF factors are used for distributing the capital among the components. Trade exits are handled by TMFs. Some of the algorithms control the trade duration by moving the stop loss; this can cause the stop to move in both directions.



The equity curve above was generated in the same way as the Z1 equity curve. Z2 also contains an equity curve trading mechanism that can be deactivated with the Phantom flag (see below). A table with the current algorithm states is displayed in the trade status page:

EUR/USD CT:L -62
USD/CHF CT:LS -130 HP:S +35
GBP/USD BB:LS +634 CY:LS +466
USD/CAD CT:LS -139
USD/JPY CT:L +884 CY:L +3464
AUD/USD HP:S +1076
NAS100 BB:L +797 CY:L +1768 HP: +5861
SPX500 CY:L -120 HP:L +51
US30 CT:L +1110 CY:LS +688
GER30
XAU/USD HP:LS +4231
XAG/USD HP:LS +3347
UK100 CY:LS +325 HP:L +526

Like Z1, Z2 should only be traded with brokers that provide sufficient price history.

Z12

A combination of Z1 and Z2, exploiting the anticorrelation of their equity curves. By combining Z1 and Z2 to a compound system, profit is increased and drawdowns are reduced. The Z12 profit exceeds the sum of Z1 and Z2 profits, while the capital requirement is lower than the sum of both. The above remarks about the Z1/Z2 drawdown, equity curve trading, and lookback period also apply to Z12.

Z3

Z3 is a medium-term commodity and index trading system. It detects price clusters that precede breakouts. Price breakouts happen frequently especially with metals and stock indices, and constitute an exploitable inefficiency. The results are uncorrelated to Z1 and Z2, so all systems can be traded simultaneously with Zorro S. Since Z3 is based on a single algorithm, the equity curve is unaffected by selection bias.

The equity curve above is from a walk-forward analysis on a Oanda US account with 100:1 leverage. The performance depends on asset volatility. In low volatility periods the equity is more or less flat. As with Z1 and Z2, the trade duration is controlled by moving the stop loss level. This can cause the stop to move in both directions and to tighten even when the trade is not in profit.

Z7

Z7 is a forex trading system based on a price pattern detection algorithm similar to chapter 5 of the Black Book (a variant is described on the Financial Hacker blog). It is designed for low capital requirement and short trades (5 hours). Trades are triggered by price patterns preceding weekend gaps and shortlived up- or downwards movements. Z7 uses different patterns for the US, European, and Pacific sessions. The results are unrelated to trends and cycles, and uncorrelated to the other systems.

The equity curve above is from a walk-forward analysis on a Oanda US account with 100:1 leverage. All Z7 trades end after at least one market day, most after a few hours. The stop loss is relatively distant and is used for risk limitation only. A trailing mechanism locks profits when the trade goes high into profit in volatile situations.

Z8

Z8 is a long-term trading system based on a modified Markowitz mean/variance optimization (MVO) algorithm. It is an improved version of the MVO system described on Financial Hacker. Z8 opens a portfolio of ETFs, stocks, or other assets determined by an external asset list, and re-allocates the invested capital among the portfolio components every 5 weeks for achieving a positive balance curve with minimum variance. Since it trades with low leverage, the profit, but also the risk is smaller compared to the other systems.

Z8 equity curve

The balance curve above is from a walk-forward test with the default assets, based on a margin account with 2:1 leverage and $5000 start margin. The backtest reinvests the capital growth to the power of 0.9, and keeps the remaining profit as cash reserve on the account for buffering drawdowns. The assets, account leverage, and price data source must be set up in an asset list named AssetsZ8.csv. By default it contains a set of ETFs that were selected by industry diversity and by their supposed long-term prospects. Z8 can also trade stock portfolios or any other instruments with long-term positive returns. Forex or CFDs are not suited for Z8. For adding a new asset, just duplicate a line in AssetsZ8.csv and edit the asset name in the first column. For temporarily out-commenting a line, add a '#' in front of the asset name. The Symbol column contains also the download source. Between 10 and 300 assets can be contained in the list. When you remove an asset from the list, make sure to also manually close any of its open positions (this won't happen automatically).

Z8 needs not be trained, since this is automatically handled by the MVO process. The [Train] button can instead be used for finding assets with low correlation (Zorro S only). It displays a heatmap of the correlations between the assets in Assets8.csv (red = high correlation, blue = low correlation). If you don't have Zorro S, you can use the script for generating heatmaps on Financial Hacker.

Z8 equity curve

For the backtest, historical data is automatically downloaded from the data providers set up in the 'Symbol' column in the asset list, so no further price history files are necessary. If you want to download data from a different source, either edit the asset list, or load it before starting the strategy. The system will automatically detect that up-to-date data is already present, and not attempt to download it again.

For trading Z8, the broker API must support the GET_POSITION command, which is the case for the IB TWS API. Make sure that you've subscribed market data for all traded assets (with IB, normally the "US Value Bundle"), that you're permitted to trade them (check all relevant boxes on the "Trade Permissions" page), and that the leverage in AssetsZ8.csv matches your account leverage. If your portfolio contains leveraged ETFs, check their margin requirement: IB accepts Leverage 2 for unleveraged or 2x leveraged ETFs; Leverage 1.333 for 3x ETFs; and Leverage 1 for 4x ETFs.

Since Z8 trades only every 5th week, it needs not run permanently, and requires no VPS and no permanent broker connection. Just start it in [Trade] mode once every 5 weeks after the opening time of the New York market (9:30 ET). Z8 will first download historical prices of all assets, then calculate the optimal portfolio. Set the Capital slider to the total margin you want to invest. After about a minute a message box will pop up, like this:

Z8 equity curve

"Old" is the current position in the asset, and "new" is the new position. Clicking [Yes] will automatically sell or buy the difference of any position, and this way optimize the portfolio. If the broker API does not support position requests, the 'old' positions will all be 0, even when positions are open. In that case open or close the position differences manually in the broker's trading platform, then click [No] on the message box. Afterwards the trading session is closed, and the suggested date for the next start is printed in the message window.

Since you can only buy integer numbers of shares, the real invested margin will normally be smaller than Capital, dependent on portfolio component weights and prices. The maximum capital can be set up in Z.ini (see below); it is limited to $7000 with the free Zorro version. For avoiding margin calls, we recommend to set Capital not higher than about 80% of the account equity. For accounts with no leverage, edit the asset list and set all leverages to 1; you can then set Capital at 100%. If the system does not open all trades - for instance due to a temporary connection problem or to being outside market hours - just run it again. Since it is detects actual positions, running it several times does no harm. If you missed the suggested start date, maybe because you're on vacation with all the money you made so far, run it at the next occasion. Missing a single date does not do much harm, but don't miss many dates in a row.

Z9

Z9 is a long-term trading system based on the "Dual Momentum" strategy by Gary Antonacci (see books). It rotates a selection of assets in AssetsZ9.csv, which should contain a mix of US sectors, non-US indices, and bonds or treasury. The portfolio is rotated so that it always contains the top third of the assets, selected by their highest relative momentum and positive absolute momentum. If no sector or index has any positive momentum, the system invests in treasury. If treasuries tank too, the system stays out of the market.

Z9 equity curve

The balance curve above is from a walk-forward test with the default assets, based on a margin account with 2:1 leverage and $5000 initial capital. Although the Z9 system uses a mathematically simpler algorithm than the Z8 system above, is shows better CAGR. Editing the asset list, setting up the z.ini parameters, reinvesting profit to the power of 0.9, and rebalancing the portfolio works just as described for Z8 above. In the Type column of the AssetsZ9 list, enter 0 for sectors, 1 for bonds, 2 for non-US indexes, and 3 for a lead index that represents the US market. The lead index is used for detecting market crashes and can be omitted at slightly higher risk. As with Z8, [Train] generates a correlation heatmap. For trading Z8 and Z9 simultaneously on the same account, AssetsZ8 and AssetsZ9 must be modified for making sure that they share no assets.

Since US ETFs are not available anymore to European clients due to the PRIIP regulation, an alternative asset list AssetsZ9E has been included that contains only ETFs that can be traded in Europe. The assets are similar to their US counterparts. The asset list can be set up in the Z.ini or a Z9.ini file. Since European ETFs are not available from Stooq, they are downloaded from Yahoo.

Z10

Z10 is a cryptocurrency rotation system based on mean-variance optimization like Z8, but with very different settings, performance, and risk. It trades on a bitcoin account, so its return is displayed in fractions of bitcoin and independent of the bitcoin price. It rotates a selection of major coins defined in AssetsZ10.csv, which have been selected by trade volume, technology, and market expectancy. If a digital coin is not available for trading at your exchange, remove it from the list, or replace it with another by using strictly fundamental criteria. It is recommended to keep a dollar or gold backed coin - such as USDT or DGD - on the list as a 'safe haven' when the crypto market takes a dip.

Z10 equity curve

Z10 achieved about 15 times higher returns - at lower risk - in 2017 than a mere bitcoin buy-and-hold strategy. 'Lower risk' however is relative. If you had invested 10 bitcoins at total $10,000 in January 2017 in a Z10 system, you had already lost 2 of them by March. But by December, if you hadn't backed out in panic before, you owned about 150 bitcoins at 1.5 million dollars value. Cryptocurrency speculations can be highly profitable, but also highly risky. Any future profits are hypothetical, but the Z10 profits are twice hypothetical. The backtest time was slightly above one year only. Most of the traded coins didn't exist before 2017, and some appeared even later. Cryptocurrencies are currently (Summer 2018) going down fast. Since unsuccessful coins have been delisted and thus don't appear in the portfolio, the backtest has likely selection bias.

The balance curve above is from a walk-forward test starting January 2017 with the Z10 assets, based on a standard bitcoin account with no leverage, 0.25% transaction fees, and 1% spread. The prices are from CryptoCompare™. Editing the asset list, setting up the z.ini parameters, reinvesting profit, and rebalancing the portfolio works just as described for Z8 above.

The investment can be set up with the Capital slider in units of 1/10000 bitcoin. Z10 opens at the end of the test a text file Z10rot.txt in the editor, containing today's suggested coin positions and the next rebalance date. It can look like this:

USDT/BTC: 1904@0.00011236 (0.2139 BTC)
FTC/BTC: 4266@0.00002952 (0.1259 BTC)
LTC/BTC: 8@0.01899999 (0.1520 BTC)
Next Rotation: Monday, June 18 2018

In the above example, Capital was set to 5000, i.e. 0.5 BTC. You should have a portfolio of 1904 USD Tether, 4266 FTC, and 8 LTC. If markets go downwards and few coins are profitable, it can happen that not all capital is assigned, or none at all. Next rebalancing is on June 18. Z10 requires rebalancing every 2-3 weeks. This way it can be traded at any cryptocurrency exchange even if not supported by a Zorro plugin; otherwise use [Trade] mode for automatically rotating positions. By default, the system gets the current coin prices from CryptoCompare. The first steps to enter cryptocurrency trading are described under Brokers.

 

Setup and trading

Every Z strategy can be configured at startup with parameters from an .ini file, and is controlled at runtime with the Capital and Panic sliders. First set up the strategy to your country and other requirements: open Strategy\Z.ini with the script editor, and edit the following parameters:

Line Default Description
NFA = 0
No US account.
Set this to 1 for for NFA mode (only when NFA was not defined in an account list). Often required for US accounts and brokers, f.i. IB; normally not for MT4 accounts. A wrong NFA flag causes trades not being closed, so test your account before setting it!
FXOnly = 0
Trade all assets.
Set this to 1 for trading only currencies; often required for US accounts, as CFD trading is restricted in the US. This reduces the profits and increases the risk due to the correlation of major currencies, so always run a new test after modifying this line, and check if the systenm is still profitable.
Phantom = 0
No equity curve trading.
Set this to 1 for enabling equity curve trading. When active, trades of Z1, Z2, or Z12 components are temporarily suspended when the algorithm deteriorates, and resumed when it becomes profitable again. Equity curve trading can reduce the profit, but can also prevent losses by expiration of strategy components.
Hedge = 4
Virtual hedging.
Set this to 2 for disabling virtual hedging, to 4 when your broker requires FIFO compliance or does not support partially closing of trades (as is the case for the MT5 plugin and also some MT4 brokers), or to 5 for full virtual hedging with partial closing. 
MaxCapital = 5000
5000
Set this to the desired maximum value of the Capital slider for trading with higher volume (Zorro S only)..
Weekend = 2
Always online.
Set this to 7 (see Weekend) for automatically logging off at weekends; set it to 3 for staying online, but not trailing and stopping trades during the weekend.
Verbose = 1
Verbosity.
Set this to 2 or 3 for more messages (see Verbose).
BrokerPatch = 0 Broker API ok. Set this to 3 for letting Zorro calculate the balance, equity, and open trade profits displayed on the Zorro panel (see SET_PATCH), rather than reading the values from the broker API. Recommended for some versions of the FXCM API that didn't calculate equity correctly.
Preload = 0 Load all prices. Set this to 1 for loading the lookback period prices not from the broker's price server, but from Zorro's historical data files (see PRELOAD). Recommended for some MT4 brokers that offer only a very short price history. Recent history files are required.
StopFactor = 1.5 Distant broker stop. Set this to 0 for not sending any stop loss values to the broker (see StopFactor and StopPool). Sometimes required when the broker rejects trades with too distant stops, or accepts only certain stop values.
MaxRequests = 0 Default request limit. Use this to limit the requests per second when several Zorros trade on the same broker account that has a request limit
BarOffset = 0 Default bar offset. Set this to the trading time in minutes since midnight when trading Z3 assets in other time zones.
AssetList = "" Default account. Enter a different asset list for simulating different accounts or for setting up different symbols. All traded assets must be contained in the list.
Exclude = "" No excluded assets. Enter a list of comma separated asset names (f.i. "EUR/USD,NAS100") for excluding those assets in Z3 and Z7. The asset prices are still loaded, but the asset is not traded.
Cancel = 0 Cancel no trade. Set this to the trade ID when a position was closed externally and must not be managed anymore by Zorro. Zorro normally detects externally closed trades, but not when a trade is closed by opening a counter-trade on an NFA account. The cancelled trade will be removed from the trade list at the end of the current bar. In the case of virtual hedging, cancel the phantom trade only; this will also automatically cancel the pool trade.

The .ini file is read at start of the strategy. If you want to trade different Z strategies with different parameters, save Z.ini under the name of the strategy, f.i. Strategy\Z12.ini for Z12. The strategy will then read the parameters from its corresponding .ini file. Not all parameters have effect on all strategies; f.i. for Z8/Z9 only MaxCapital, Verbose, and AssetList are relevant.

While running, the Z strategies are controlled with two sliders: 

Slider Range Default Description
Capital 0..7000 2000 Average invested capital; determines the trade volume and sets an upper limit for the total margin invested. This is not identical to the Required Capital of the system, which can be higher due to drawdowns. In [Test] mode you can adjust this slider for getting the desired monthly income (MI) and required capital.
Panic 0..100 0 Z1-Z7 only: tighten the stop loss of all open trades in percent of the current price difference to the original stop loss. At 0, stop loss control is completely up to Zorro; at 100 the stop limits are placed just at the current asset prices. This causes trades to be sold as soon as their prices move slightly in adverse direction, and can be used for taking profits early. No new trades are opened as long as the position is above 90. This slider reduces the profit, so use it only in drastic situations, for instance when an upcoming event - like Brexit - will have a large impact on the stock market. Put it back to 0 when the danger is over.

The sliders can be set after starting the strategy (if no strategy is running, the sliders have no meaning). The last slider positions are stored, and the sliders are initialized to their last positions when the strategy is started again.

The most important is the Capital slider. Before trading the system, make sure you've read this page from top to bottom. Determine your minimum capital requirement by testing the strategies with different settings of the slider, and check the required capital in the performance report. Set aside enough capital for trading, either in your broker account or at least in your bank account. For reinvesting your profits, you can slowly increase the slider when the capital on the account grows. For not risking a margin call, take care to re-invest or withdraw capital only according to the square root rule explained in the Black Book.

For a realistic backtest, make sure that the account settings in the asset list are correct and up to date. For the Forex and CFD systems, an average Oanda US account with 100:1 leverage is simulated in the backtest. For stock and ETF trading systems it's an average IB Margin account with 2:1 leverage. The capital requirement and the system performance can be very different on accounts with higher trading costs or lower leverage. If a certain asset is not provided by your broker, remove it from the strategy as described below. If it is available, but under a different symbol, edit the asset list and enter its symbol name. US citizens are normally not allowed to trade CFDs; in that case set the FXOnly flag (see below) for trading Forex only.

Check the requirements of your broker and account. Typical issues are not being able to open or to close a trade ("Can't close...") due to NFA compliance, FIFO compliance, a wrong symbol, an invalid trade size, or unsupported partial closing. Make sure that NFA and Hedge are set correctly.

Before starting live, run a backtest with the Capital slider at the same position as in the trading session. This allows the system to permanently compare live performance with backtest performance, using the Cold Blood Index. The Capital can be increased later, but the initial position must match the last backtest. The CBI is printed once per day in the message window and on the status page. Consider pulling out when it gets down to a low value or 0.

After starting a strategy, the first trades will be entered after about 1..3 days. The frequency of trades depends on the strategy and the market; in unprofitable periods with high market efficiency there will be only a few trades, especially when Phantom is set in the Z.ini file. Most trades are hold for 2-3 days, but some can stay open for weeks when they are profitable.

Your account balance will often go down in the first weeks after starting a strategy. This is not a real drawdown, but the result of two statistical effects. Unprofitable trades are closed early, while profitable trades stay open longer and thus contribute later to the balance. Additionally, the equity fluctuations - the up and down 'ripples' in the equity curve - will almost always exceed the initial profit unless you have an exceptionally lucky start. Both effects will cause periods of negative balance and equity in the first time of almost all strategies. You can see such a typical start in the profit curve below. When the profit accumulates, negative balance periods get shorter and eventually disappear. However if you're not yet in the profit zone after several months and your trade returns still deviate largely from the predicted performance, as visible from a low CBI, something is wrong. The strategy might be expired and you should stop trading it.

Z5 profit curve
Typical live profit curve of an automated trading system (Zorro Z5, now expired). Note the equity fluctuations and the negative peaks. During its lifetime the system was highly profitable and steadily winning. Still, people lost money with it by entering at an equity top and pulling out in panic at the bottom of the next drawdown. From the start it took about 8 weeks until enough profit was accumulated for keeping the equity curve safely above zero. Other Z systems have even higher equity fluctuations and longer drawdown periods.

Events - such as entering and exiting trades, or trailing the stop loss - are displayed in Zorro's message window. The strategies use trade management functions and adapt the stop limits permanently to the price development of the asset. Additionally to the standard messages (see Trading), Z1, Z2, and Z12 inform from time to time when the risk or possible profit of open trades change. They are displayed this way in Zorro's message window:

[AUD/USD:CY:S4400] Estimated risk: 150
[USD/JPY:CT:S4321] Estimated profit: 720

The estimated risk is the maximum loss, the estimated profit is the minimum win that Zorro currently predicts for the trade, in units of your account currency. When the risk goes down or the profit goes up, the position is moving in favourable direction. Note that it's only an estimate, so the real loss as well as the real win can be worse.

Z Systems Tips & Tricks

Stopping & starting: At trading start, the systems download recent price data from the broker or from other price sources for filling the LookBack period. Therefore avoid starting the strategies during the weekend when recent prices are not available and broker servers can be offline. Otherwise gaps in the price data can cause reduced performance during the following week. Once a system is trading, stop it only in case of an emergency. Most systems do not enter trades immediately after being started, so frequent stopping and starting will cause a system not to trade. While a system is stopped, it can not react on the market, which bears the danger of a potential loss when positions are still open.

Testing & re-training: The strategies can be tested with historical price data (you can get the price data from the Zorro download page). The meaning of the performance parameters can be found under performance report. The most recent parameters are used for trading. The strategies must be re-trained regularly for keeping them profitable; in out-of-sample backtests they started to deteriorate about 4..12 months after the last training. New parameter sets will be released with Zorro updates, so dou don't need to train them yourself. But if you want, you can do that with Zorro S by clicking the [Train] button, even while live trading. The factors file (Z12.fac) of Z12 is not re-trained since it changes very slowly and needs the full simulation period. A new factors file is provided with any Zorro update.

Invest & withdraw: All profitable strategies have long drawdowns that are listed in the table above (Worst Drawdown). Take care to remargin your account when you're in a drawdown and your equity gets dangerously low. On the other hand, if you don't have Zorro S, remove profits regularly from your account - the free Zorro version will stop trading when your balance exceeds 7000 $ or the equivalent in your account currency (see profit ceiling). For the maximum amount to reinvest or to withdraw during a trading session, follow the square root rule. Exceptions are Z8 and Z9 where capital requirement is mainly determined by margin, not by drawdown.

Low capital: You can trade strategies with low capital, such as a few hundred dollars, when you move the Capital slider mostly to the left and run repeated tests until the value displayed under Capital meets your needs. You can also reduce the capital requirement by removing assets from the portfolio, as described below. Note that low capital and few assets will normally reduce the live performance and increase risk and drawdowns due to the reduced number of trades.

Add / exclude assets: Z8, Z9, Z10 support individual asset lists. The other systems are optimized for a particular set of assets; you can not add, but you can exclude assets from trading. For excluding all assets except currencies, set FXOnly (see above). For excluding particular assets, use the Exclude list in z.ini. For excluding a certain component from trading in Z1, Z2, or Z12, edit the Z12.fac factors file (Data\Z12.fac) and place minus signs '-' in front of its OptimalF factors. The algorithms with the ES, HU, LP, LS, VO identifiers belong to Z1, A2, BB, CT, CY, HP to Z2. An example for excluding the CT algorithm with the USD/CAD asset:

...
USD/CAD:CT          -.041  1.32  263/420
USD/CAD:CT:L        -.029  1.25  177/227
USD/CAD:CT:S        -.058  1.38   86/93
...

Components with a negative or .000 OptimalF factor are automatically excluded this way. Be aware that excluding the least profitable assets or algorithms will generate a too optimistic backtest result due to selection bias.

Rename assets: Edit the asset list - normally History\AssetsFix.csv - and enter the asset name used by the broker in the Symbol column of the spreadsheet, as described under asset list. Do not modify the asset names in the first column, since they are used by the strategies. Exceptions are systems like Z8, Z9, Z10, for which you can freely add or remove assets in the asset list.

Multiple Zorros: You'll need Zorro S for trading several Z systems at the same time. Also make sure with your broker that your account is set up to allow multiple sessions. Some brokers set up accounts for single sessions only by default. Since Zorro stores its logs and trades in files named after the script, do not trade the same script with several Zorros in parallel, except when you gave the scripts different names, or are running them from different Zorro installation folders.

Tax: In most countries you have to pay tax for trading profits. Normally the broker keeps records of your trades that you can download from his website. Otherwise Zorro also records all trades in the trades.csv spreadsheet in the Data folder for your tax declaration. Interest (rollover) and profit/loss are recorded separately. Usually you have to submit this spreadsheet or the broker's records together with your tax declaration.

Updating: We'll publish updates to the Z strategies in regular intervals, so it's recommended to visit the user forum or the Zorro website from time to time. If you checked the box on the download form, you'll also be informed by email about updates. Please look here for how to move from an old to a new version with no interruption to trading.

Expiration: All strategies can eventually expire; for instance the Z5 system expired when the Swiss removed the CHF cap. If we suspect that a certain system will expire, we'll announce that on the forum and will also inform subscribers and Zorro S users by email. Normally we'll provide a successor after a system expired. As long as the markets are not perfectly effective, there will always be infinite possibilities for profitable trade algorithms.
 

Rules for regular income with automated trading

See also:

Strategy, Testing, Trading, Links

► latest version online