error loading image

use machine learning to trade cryptocurrencies

Our software package consists of two tools: an Algorithm Trainer and a Trading Client. Their usage and behavior are explained here.

Algorithm Trainer

image not found

Enter the currency pair that you'd like to predict/trade in the first textbox, using the format that appears in the Poloniex URL for that market. You can then select multiple technical indicators and specify which currency pair(s) they'll be applied to. You may keep the indicators' default parameters or modify them as you wish. Stockcharts and Investopedia are good resources for learning more about the indicators. Multiple currency pairs can be specified like this: BTC_XRP, USDT_BTC

Next specify which algorithms to try, and which intraday trading times you'd like to use.

For training and testing we define a week to be Monday through Sunday. Trading for a given week is simulated using a model trained on the preceeding training period. This means that in the screenshot the process of training and simulating is done for each of the 8 weeks of backtesting. The "holding" line is the outcome of holding only the second currency after starting with an amount equal to one unit of the first (i.e. an amount of XRP equal to 1 BTC), and the "trading" line is the outcome of simulated trading. The simulation assumes that all orders get fulfilled and that the fee for each trade is Poloniex's default of 0.15%; you may be paying less if you're a high-volume trader.

You can export your settings even if you haven't trained a model yet. After training, exporting will save a model trained on the most recent training period, along with the current settings and backtesting graph. To make sure you're using a current model for trading, re-train it with the same settings and number of training weeks each Monday.

Note: Start small. Training may take a considerable amount of time if you use more than a few data pairs and technical indicators. Expect it to take several tries before you discover a strategy that you're comfortable using.

Trading Client

image not found

The trading client is mostly straightforward, but you should be aware of how it operates. The current version will trade with whatever holdings you have in the two currencies. In the screenshot, this means that each trading cycle the client will attempt to convert all of your BTC and XRP into whichever one of them is predicted to perform better in the following cycle. In the future you'll be able to specify what fraction of your balance will be used.

Each trading cycle the prediction and order placement will happen at a random time in the 2 minutes preceeding your specified trading time. This means that the client's adherence to the trained strategy is approximate, but avoids detection by other traders. Buy orders are priced one minimum increment higher than the highest open buy order, and sell orders are priced one minimum increment lower than the lowest open sell order. If you opt to re-price unfulfilled orders, this will be done every 10 seconds until 3 minutes after your specified trading time. Unfulfilled orders will be cancelled 15 minutes after the trading time regardless of aggression setting.

Note: We don't recommend opting to re-price unfulfilled orders. It's risky and opens you up to detection and potential exploitation. This option might be removed or have its behavior modified in future versions.


You'll need a 64bit version of Windows, a couple gigabytes of free space, and a modern CPU (i5+ recommended) to use this software.

When launching each tool a console will open in the background where you can view status reports and any errors that might occur (please report any that do!). Exit the tools conventionally instead of closing the console to avoid the temporary folder being left behind as described in "Known Bugs."

A license will allow you to run one instance of both tools concurrently.