Back to Home

Introduction

ENZO-TSC is a Trading System Client for cryptocurrencies, based on proprietary technology by NEWTYPE K.K.

ENZO-TSC is a software that automatically executes trades on the your behalf utilizing our proprietary algorithmic models. We currently support BTC/USDT on the Binance international exchange (Binance.us is currently not supported due to the lack of daily volume).

Chart and status panel

Making a consistent profit from trading is extremely difficult. The amount of effort and dedication required, simply to stay afloat in the markets, can be overwhelming. Some may find early success, but without a strong foundation, proper risk management and sustained performance, luck eventually runs out, wiping out the initial gains sometimes with just a few mistakes.

We spent over two years developing and testing the ENZO Trading System with the goal in mind to one day be able to trade the markets without having to worry about every change of direction.

As a result, we now have what we believe is a compelling product that is worth sharing (see the FAQs on why we're willing to open it to the public for the time being).

ENZO-TSC is a completely autonomous system that runs unattended. There's no need to configure its behavior or guess what the market will do. All trades are generated by our model on our servers, and are communicated in real-time to the client on your computer via a proprietary protocol.

User and System Interaction

The client is connected to your Binance account via a set of API keys, allowing it to execute trades on your behalf. Your funds stay in your account and we never have any access to it.

Chart and signal panel

Above is a view of the trading signals coming from our server. At any given time, an history of 30+ days worth of signals is shown, including basic performance stats and the equity curve, which displays the oscillations in profit.

Performance

Our model is the result of two years of research and development which culminated in a system that we believe is both competitive and relatively future-proof, thanks to its adaptability.

Live performance can be seen at the following pages:

  • Virtual Fund is a simulation that shows the potential of the latest algorithms.
  • Reference Fund is a fund with actual money traded on a trading account on the market.

Note: the Reference Fund is our "ground truth" because all trades are recorded on the exchange and cannot be rewritten. The Virtual Fund instead gives a view of how the performance would have been if utilizing the most recent algorithms from the start of the year, when they were not available.

Backtests for the years 2018 and 2019 show profits above +300% per year, and a Sharpe ratio over 4.5. The first 6 months of tests for 2020 show a profit of +175% and a Sharpe ratio of 5.7 (see also the Virtual Fund)

Risk management is embedded in the system. The maximum risk per-trade -3.5% (minus commission and slippage). Having a solid stop-loss is a very important it separates a viable strategy from one that simply looks good on paper.

201820192020 (half)

Above are the equity curves of the backtests performed for the years 2018-2020 of the BTC/USDT market. The simulations start with 1,000 USDT at the beginning of each year. See the section about Reference Testing for more information.

Disclaimer: it should be noted that markets evolve, and trading edges tend to deteriorate with time. So, it's important to manage the expectations and not rely on an investment of this kind for subsistence. Profits are not guaranteed and are not linear, months of loss and months of profit tend to cluster together, so, the wise investor should consider this as a medium and long term endeavor, investing only surplus money.

Requirements

  1. An account on the Binance exchange (see our referral link).
  2. A computer that can run uninterrupted (Windows PC, Linux or Raspberry Pi 3 and above).
  3. A stable Internet connection.

Because calculations are done by our servers, the ENZO-TSC application runs comfortably on low spec machines, consuming a limited amount of RAM and CPU power.

The software operates transparently and can be left unattended. It does however need to be always active and with a stable Internet connection. Depending on the market conditions, trading opportunities may happen only once per day, and the client will need to be active to act on those signals.

Security

With our solution, the funds stay in your own private account and we never have access to them.

The API key access is used by the client locally and never communicated to our servers. Furthermore, API keys can and should be limited to trading-only, so that withdrawal of funds is technically impossible for anyone that may come into possession of such keys.

Extras

While the client is meant to be left mostly untouched, there are some features that may be of use for the more advanced users.

Market Watch

This window gives are real-time view of the most active crypto pairs on Binance. The Change value allows to filter out markets where price has little or no movement. The Health value filters out those markets with poor liquidity. This is a very important metric, since markets with poor liquidity will often show sudden spikes in price only because of the relative lack of activity.

Market Watch

As a reminder, the current version of ENZO-TSC only supports BTC/USDT signals. This feature is meant for advanced user that wants to keep an eye on other markets.

High-Frequency Display

High-frequency data is normally meant for bots. We use it in some of our algorithms to react to sudden price jumps and to estimate slippage and to filter out some types of "stop-hunts".

A display of HFT activity is included as an option in the client software. This doesn't have an immediate practical use for the regular user, but it might be a compelling visualization tool for some.

Volume Heat-Map

The Volume Heat-Map shows the distribution of volume in 2-dimensions. This visualization may be useful to determine the hot-spots that define price levels.

Again, we utilize this data internally, and it's only exposed for the advanced user that may be doing their own research.

High-Frequency DisplayVolume Heat-Map
High-Frequency tradesVolume heat-map

Left: a clip of HFT activity display in the client. 1-minute candles are shown as a reference.
Right: a view of the Market Watch. Here the criteria selects only 10 markets out of 714 possible.

Download

ENZO-TSC is free to download and to use, provided that a Binance account with a referral link is used.


Algorithmic Trading and Our Model

Man vs Machine

Perhaps the most important thing to consider is the fact that there is no single ideal way of profiting form trading. The market is composed by many players, both individuals and institutions, all trying to make a profit for themselves with their own approach. Many approaches can work at the same time, because this not a winner-takes-all kind of scenario.

The human approach to trading can be either based on special insight, based on a deeper understanding of the markets and news related to it, or it can be more methodical based on a series of indicators and rules which, if applied rigorously, can be considered as an algorithm.

The former approach is often romanticized, but it's hard to sustain and hard to quantify. A lot of cognitive bias comes into play when considering a series of facts and feelings before buying or selling an asset. The latter approach is more future-proof because it's built on a series of rules that work on hard data such as price and volume data. The latter approach can also be converted into a computer program to automate trading as well as to perform extensive testing to verify the goodness of a system.

Our approach is indeed fully quantitative. Our algorithms work purely on price and volume data, looking for a statistical edge that can shows consistent profit over multiple years of historical market data.

One negative aspect of the quantitative approach, is that some of the trades may look like bad choices from a human perspective. This is because a person tends to get emotionally attached to individual trades, and can have a hard time accepting a bad trade, even if it's part of a system that is highly profitable as a whole.

A human trader may feel better by taking an early profit in a trade, whereas a good quantitative model might ignore that chance, sometimes to a fault, while still being the better performer at the statistical level, and therefore in the long term.

Predicting the Future

Some future events may indeed be predicted, depending on the scope of such prediction.

Modern computer models are able to predict if it will rain in the next 24 hours with a very good degree of confidence. The quality of predictions starts to falter as one hopes to guess outcomes farther into the future. This is because, with time, more randomness is added to a system, making it more difficult to predict from the data at hand.

Admittedly, markets are not direct physical entities. They can be manipulated on a whim, given a large enough amount of money, but this is also something that can become part of a model. One may not predict when something happens in the time domain, but a statistical model can still leverage knowledge in the frequency domain (read: chance of occurrence).

Quick Overview of the Model

The model is based on an ensemble of algorithms, with one those operating on high-frequency data (see below), attempting to capture sudden surges in price.

Each algorithm has a series of variations, bringing the whole range of possible combinations into the hundreds, all of which are actively simulated also during live trading. Selection of the specific algorithm to be used for live trading is performed via machine learning. Because our software is written in high performance C++, we have more power and flexibility at our disposal when it comes to techniques that can be applied.

The algorithms are based on a mix of standard and custom indicators of our design. The custom indicators have some predictive powers and are used as primary indicators. These indicators are based on a series techniques involving Kalman filters, spline fitting, historical matching and self-adapting affine transformations.

Mir Match affine matching indicator

Above is an example of our "Mirror Match" indicator, utilizing self-adapting affine transformations to extrapolate a potential market prediction

High-Frequency Approach

Our best performing algorithm in terms risk vs profit is based on our proprietary Climb Detection system. This algorithm does not depend on typical indicators or OCHL candlestick charts, but instead utilizes high-frequency trade aggregate data to instantaneously respond to sudden price and volume surges. This was initially devised to catch price "pumps", but testing has shown that it is also a very good indicator of beginning of longer-term positive trends. Trades generated by this algorithm are much rarer but have a higher degree of confidence and can be combined with relatively narrow stop-losses.

It should be noted that this system does not generate a large number of trades, it simply operates with HF data to produce very infrequent trades.

Climb Detection Trades

Above is an example of trades generated by the Climb Detection system. The bottom half shows a trade (magenta cross) in the context of HF data. Dots represent trade aggregates, with color and size varying in relation to volume of such trades.

Reference Tests

Our tests show the potential to earn up to 300% per year, this however should only be considered as demonstration of potential profit rather than a guarantee. The key issue being that markets tend to evolve, and strategies deteriorate as a consequence. Additionally, testing can easily lead to false hopes when the process of optimization and testing overlap (see: "data mining" or "curve fitting"), whether that's done in error or willingly to deceive.

Methodology of testing is therefore extremely important. The main focus should be to minimize the optimism that can easily creep in during the process of optimization, especially with naive Machine Learning approaches. We invested a great deal of time strengthening the testing methodologies in order to increase the reliability of the results.

Here's an overview of backtested performance for the years 2018, 2019 and the first half of 2020:

YearProfitAlphaMarket
Change
Max DDSharpeSortinoProfit
Factor
2018+393%+465%-72%19.9%4.57.02.0
2019+355%+260%+95%24.7%4.67.02.0
2020 (half)+175%+148%+27%14.7%5.79.02.5
  • Profit: profit for the year.
  • Alpha: profit over the market (compared to Buy & Hold strategy).
  • Market Change: change in value of the asset (BTC) from the start to the end of the year. This is independent of the model and shown here only as a reference.
  • Max DD: Maximum Draw-Down, maximum drop from peak profit.
  • Sharpe Ratio: popular reward-to-variability metric (with risk-free rate at 0% ).
  • Sortino Ratio: popular risk-adjusted return metric.
  • Profit Factor: average profit divided average loss.
201820192020 (half)

The equity curves above show the evolution of profit for the years 2018, 2019 and the first half of 2020.

Here are some additional stats:

Year# of TradesAverage
Position Time
Win/Loss Ratio
201850215 hours1.2
201948018 hours1.1
2020 (half)24418 hours1.1
  • # of Trades: the total number of all trades, Buy or Sell.
  • Average Position Time: average time between a Buy (Position Open) and subsequent Sell (Position Close).
  • Win/Loss Ratio: Number of winning trades divided by number of losing trades.

Backtests, while useful, can be deceiving, because proof of past performance is not a guarantee of future performance. However, there are ways to improve the validity and applicability of these tests.

Our system was designed to be walk-forward from the inception. With a walk-forward approach, data used for the training phase of the algorithms is not used for the final performance-testing phase. This is done to reduce the chance of hindsight bias seeping through the model.

Testing is additionally verified utilizing a Monte Carlo Permutation method, where the original trades are pitted against a very large amount of possible alternative sets of trades, to determine the probability that an alternative algorithm operating randomly would perform better than the one being tested. This has to be a negligible number, or else the algorithm being tested is deemed worthless.

Another key factor to consider is the management of risk. Some traders tend to be careless with the concept of stop-loss, something that works well until a major event wipes out all of the profits.
Our algorithms are instead very strict in terms of how much each trade is allowed to lose. Major price drops are actually welcome because a well placed stop-loss can turn them into an indirect profit.

201820192020 (half)
2018 P&L per Position2019 P&L per Position2020 P&L per Position

The charts above show the Profit & Loss of each position on a time-scale spanning for one year per chart.

No loss goes below -3.5% (plus commission and slippage). These larger losses also coincide with periods of the market when major profit is possible. See the dots representing those rare trades that can earn over +20% at once.

The rarity of those highly profitable trades highlights the importance of playing the long game. It's important to hold the initial investment stable for at least 6 months, to maximize the likelihood of catching those short periods when most of the profit is made.

A view of P&L of Positions in the frequency-domain can better demonstrate the effect of the risk management that is in place.

201820192020 (half)
2018 Frequency of P&L2019 Frequency of P&L2020 Frequency of P&L

The chart above shows Profit & Loss on a frequency-scale, positions are binned in clusters of 1%.

The chart in frequency-domain shows a typical normal distribution truncated on the left side. This is the effect of the maximum risk-per-trade setup.

The long tail on the right side, instead, tells that closing trades that bring a large profit and very rare. One may argue that rare events cannot be relied upon, however this is also a matter of choice. A strategy could easily split these positions into sub-trades and change the distribution to have less flat tails as a consequence.


Q&A

Q: Why are you sharing your system, if it is profitable?

A: Because it takes money to make money.
We are a small, self-funded, start-up with limited capital to invest. Licensing access externally today is a way for us to raise capital and get exposure. This also gives us the opportunity to study market behavior with larger capital at play, something that can't quite be simulated otherwise.
Also notice that we retain the IP relative to the trading model, framework, know-how and everything else relative to the system. Simply put, "we're not giving away the formula".

Q: How is this different from other bots?

A: Most commercial bots are tools with slick web interfaces that are either a platform to build strategies or that provide signals from random strangers, plus a series of parameters to tweak at one's best guess. That is a fool's errand. Anytime guesswork and unguided parametrization is involved, luck becomes a prevalent factor. Anyone can devise a seemingly clever strategy and claim proof of success.
What we offer instead, is access to a complete trading system that doesn't expect a user to act on emotion and personal bias, and that takes care of the heavy work of creating and testing strategies inclusive of risk management. Everything that we put on the market has been tested with years of data with strict standards of validation that we've set for ourselves.

Q: Are you doing HFT such as arbitrage?

A: Some of our techniques rely on high-frequency data to catch sudden price movements, however the system still performs a relatively small amount of trades.
When it comes to actual HFT, there is a series of fundamental issues that makes it not suitable for most. Timing is very important, which translates into the need to improve the physical location of the trading system itself. Arbitrage is also difficult to test off-line in a simulation (read: without losing real money), because it's a dynamic kind of trading based on real-time action and reaction, while historical data are static by definition. The fundamental concept of arbitrage is also simple enough for occasional edges to quickly evaporate. Another issue is that fees on crypto exchanges make it prohibitive to truly execute a large number of trades without instantly losing profit on fees alone.

Q: When will you add support for other cryptocurrencies

A: Internally we have tested several other currencies that we still trade from time to time. Official support will however require more testing and optimization. One issue with alternative cryptocurrencies is that liquidity tends to be low, meaning that the effects of slippage can be prohibitive, especially for a large pool of traders. Another issue is that there often isn't enough market history to do longer term testing.

Q: When will you support other exchanges?

A: Adding new exchanges is in the plans, but it will take more resources for development. If you'd like to see a particular exchange server supported, please let us know.