It supports fully automatic trading based on custom momentum and price action indicators interpreted by a thoroughly tested algorithm. One could also use this bot to monitor manually opened positions or just to initiate positions without exiting them automatically. Simulation mode is also supported - it can be used to ‘paper trade’ and to get all the notifications without risking any actual funds. Moreover, you can connect the bot to your demo account.
Note: this is a free service, so
Bitmex and OANDA are supported. If you are using OANDA outside of Australia, you would need to convert funds on your account to AUD for trading. This is explained in detail in the section on connecting your accounts.
Note that both live and practice (test) environments are supported for Bitmex and for OANDA. Mind that:
Bitmex:
OANDA:
Note that you could always check /markets command to see which markets are enabled. Other pairs or assets may be added later, but this is definitely not a priority because the above proved themselves very well compared to Forex / commodities or to small-cap crypto.
I was inspired by the work of Tone Vays and decided to automate the numerical indicator and logic behind it for entries and exits. There is plenty of information on his website about how the indicator works and how it should be traded so please refer to these materials (see section 6 there) if you do not know what numerical indicator I am talking about. I am also genuinely interested in data analysis and Machine Learning so I figured a way to use Tone’s indicator in combination with other metrics to train & test asset-specific models.
In this implementation, the core logic involves the following:
All these indicators calculated on 1-minute candles ‘at a point in time’ were labeled and used for model training / testing. While the approach such as 'green number trading above the previous green number' may be fine, they are way too simplistic to perform well especially on sideways market (if you did not understand this sentence, it’s fine). Data and calculations are updated on a regular basis and the most recent market data is used to further validate and improve the model for a particular asset.
Thus, it is completely different from the majority of trading bots out there which usually consider closed candles and only use one trigger (or a simple combination of them) like MACD crossing or price piercing moving averages up or down. What I found is that happens within your candle before its completion is actually important.
Due to the amount of ‘sweat and tears’ I have put into this (learning by losing money, essentially), I will not be willing to share the source code or specific thresholds and parameters of entries, features used, approach to labels, or the exact type of the algorithms I use. It would also be stupid to give away your edge for free, right?
You currently have to select 'standard' (for bitmex) or 'traditional' (for OANDA). However, the core strategy is essentially the same as the core decision engine is based on prepared models and parameters.
The bot usually makes from 1 to 10 trades a month depending on the market conditions. For a more specific answer, please look at the 'strategy backtests' section on the website.
No. If you check the backtesting results and MC (Monte Carlo) simulations, you will see that you will experience limited losses. Multiplied by a margin, this losses may stress one out especially if this happens several times in a row and lasts for several weeks. Please keep this in mind and remember that time on the market is important to compensate for these losses. If you give up after a few unprofitable trades you experience, you should probably not be using this bot in the first place. Moreover, if losses are unbearable for you - you probably should not be trading at all. Also, keep in mind that a safe place to start would be using x1 or x2 margin (you will have less drawdown but also less profit in the end).
Please see the 'strategy backtests' section on the site.
The development history starts in 2017 - early 2018. There were quite a lot of iterations and tests going nowhere. All in all, proper backtesting and bugfixes were completed in Jan-Feb 2019, then a number of issues with the fundamental approach were solved around May-Sep 2019. Proper results tracking have been implemented in Sep 19. All my entries and trading results have been (and will be) posted on the bot’s twitter account but apparently the performance was not great before fixing the critical issues in 2019. From Sep 2019, the results are reflected in the performance trackers (see the links in Q7).
Significantly revised and upgraded algo was then launched in January 2019 and it has been tracked closely since then.
For Bitmex, the short answer is a bitcoin equivalent of $1 (as 1 contract is priced as 1 USD).
To start trading, you would need to make a deposit on bitmex.
For OANDA, you would need a deposit which is sufficient to buy 1 unit on the margin. E.g. if Nasdaq is traded at $7k and you use 10:1 leverage, you will need at least $700 to trade 1 unit. If you are using 1:5 leverage, your minimum balance would have to be $1400.
However, remember that you could also ‘paper’ trade using a demo account.
This is a beta software at this point so it is free and it will stay free for some time. There is also no charge for using the bot at this point.
Meanwhile, feel free to help me pay my AWS bills and contribute as much as you consider appropriate by sending BTC to the following address:
38jZPN1gc8Tr4i5bJSzSD8NLWsSwzJdH5i
Please follow the quickstart guide.
When you just add the bot, it will give you a hint on supported commands. It will also show commands if you click on the slash button or type ‘/’. Fully automatic mode implies starting a task with the /auto command, specifying the platform / market, and just kind of chilling (see the quickstart guide).
If you request a task in an /auto mode, you do not need to do anything at all. The bot will open and close longs or shorts automatically in an eternal trading cycle (until you stop it or a bug occurs). You do not even need to worry about balances as the amounts will be corrected automatically.
Note that running jobs are monitored (‘health checked’) and restarted by admins if any bugs / issues occur.
You will get messages from the bot in the following cases:
If you have an automatic task already running and you cannot wait to open a position, do the following:
now bmex btc/usd
). The ‘now’ prefix will initiate an immediate position opening using the best orderbook price and checking the direction of the market. r bmex btc/usd entry_price
(e.g. r bmex btc/usd 9500
where ‘r’ is the prefix for real mode). The target and stop prices actually do not matter much because they will be automatically changed by the script based on the numerical indicator values. Similar to the previous answer, just use different prefixes:
now-s bmex btc/usd
). s bmex btc/usd entry_price
(where ‘s’ is the prefix for simulation). However, it is highly recommended to use testnet or practice environment if you want to try things out.
The bot always uses maximum available balance on your connected account, and you do not even need to specify the balance.
The /abort command allows to cancel any of active tasks or tasks put on hold. Note that if you have a trading task running and just run /abort, it will not close your positions. To actually close your position, use /close_position command.
Use the /close_position command and respond which position to close.
After the closure of positions originated from any previous state (/auto or /new), the bot will start looking for re-entries. This will be reflected in the /status command results.
There can be multiple reasons for that. Some of examples (certainly not all) may include the following:
Yes, it will continue to trade, but you will apparently not be able to communicate with it. If you would like to close your positions while the Telegram is down - login to bitmex and close them manually. If you feel paranoid that something bad may happen without you knowing - disable the api keys on bitmex and enable them again when Telegram is back online.
Please follow the quickstart guide.
It is not recommended to combine manual and automatic trades on the same account. This is because the bot sets stop-orders alongside with the positions, and uses pre-post states to check how much profit was actually made (considering funding and fees).
It will run and close the position fine, but the calculation of the outcomes will be a bit off when the trade is closed.
The system was switched to only using market orders due to the fact that the execution times of even 1-2 minutes have been impacting the result quite significantly. In one particular scenario, the lag of 3 minutes resulted in 1.8% (18% on margin) difference in the executed price of the order. Needless to say that losing extra 18% on top of the existing loss was not pretty. It is much better to fire market orders and have slightly less profitable exit prices than to be exposed to such a risk.
Also, stops on all exchanges are set proactively for limiting losses, and also after reaching a certain in-profit threshold.
There should only be one active job per asset on your account running at the point in time. You simply would not be able to launch a new job on the same asset.
You can set or move the stops / take profit orders on your account with no problems whatsoever. Moreover, you can just close the trade if you want. The bot will see that the position was closed and it will exit the 'processing' cycle, informing you about the outcome, and starting re-entries monitoring.
The scripts run on an EC2 instance on the cloud. The instance is being backed up every week.
No. Since you only provide API keys to execute orders, the bot cannot withdraw any money from your account. You can also disable the keys any time.