Automated Trading Overview

Version History

An overview of the changes on each release of the automated trading bot

To update to the latest version of the bot, go to the bots settings and click on 'Restart Server'.

11th Jan 2020 version 1.1.52

  • Percentage amounts now supported for ETHUSD on BitMEX

11th Jan 2020 version 1.1.51

  • managed orders timeLimit property was not being respected when using aggressive entry orders. It is now.
  • When the entry time limit has been reached, managed will still attempt to place a sl and tp if they were requested, to catch a partially filled entry.

2nd Jan 2020 version 1.1.50

  • Market maker order now support % sized bidAmount and askAmount.
  • Connections held open for slightly longer to prevent repeated reconnection attempts with stacked commands
  • Some updates to prepare for a cleaner event log in Alertatron.

31st Dec 2019 version 1.1.49

  • Updated FTX support to ignore attempts to use 'reduce only' orders on spot markets. The order is now submitted without the reduce only state enabled in this case.

30th Dec 2019 version 1.1.48

  • Couple of tweaks to BitMEX integration for better handling of position size information around startup and cancelling orders.
  • Minor improvements to the market maker order.

29th Dec 2019 version 1.1.47

  • BitMEX support now cleans up the orders table more often to reduce memory usage.
  • BitMEX cancelling orders is now faster
  • Trailing Take Profit orders now give out more consistent data to the log, making them a bit easier to track.
  • Managed order give clearer details on any failures
  • BitMEX support now enforces the exchange max stop order limit (10 stop orders). When you try and place the 11th stop order, it will fail.
  • Aggressive orders now handle price movements whilst trying to move an order better (especially on BitMEX, which just cancelled them before). This resolves an issue some customers were seeing when using managed() orders with an aggressive entry order.
  • Some behind-the-scenes updates to prepare for a new feature on the front-end (coming soon).

26th Dec 2019 version 1.1.46

  • BitMEX shutdown now waits for the socket connection to close.
  • Deribit rate limiting is looser on connection and tightens up with higher usage. Should result in faster performance when connecting for a few simple commands.
  • Aggressive orders now place their initial order a small distance away from the current price and move it up to the front of the book from there. This reduces the failure rate for placing the initial order during price action and leans on the more fault-tolerant 'move order' to adjust it into place.

24th Dec 2019 version 1.1.45

  • Ho ho ho edition
  • Big update to support the introduction of rate limits on the Deribit API. Alertatron now gracefully handles rate limit requests and imposes the required limits if you exceed your accounts rate limit. We use a smart rate limiting system that supports Deribits burst allowance, and only locks you down if you exceed the burst limits. We also auto reset the limits if your connection is idle for a while.

Full information about the limits can be see on Deribits site

23rd Dec 2019 version 1.1.44

  • Reduced min order size on BitMEX to $25
  • Rewrote the background processing system that manages background tasks. Previously this waiting for all commands in the block to execute, then ran background tasks until they all completed. Now the background processing starts as soon as the order is execute. The worst case scenario for the old solution was like so...
keys(symbol) {
    # Start a background order (like market maker or managed)
    backgroundCommand(....);

    # Wait a long time (any command that took a long time really)
    wait(1h);

    # Background tasks would not check their status until here
}

New Behaviour is like this...

keys(symbol) {
    # Start a background order (like market maker or managed)
    backgroundCommand(....);

    # Background task is now updating in the background from here

    # Wait a long time (any command that took a long time really)
    wait(1h);

    # Background tasks can keep going here, or they might have finished long ago
}

20th Dec 2019 version 1.1.43

  • Rewrote part of the order replacement strategy in the Market Maker order, so it can tolerate the wicks and post-only behaviour commonly seen on BitMEX.
  • A few minor adjustments to the BitMEX driver to help keep order information fresh, more of the time.

18th Dec 2019 version 1.1.42

  • Cancelling background orders now gives better information on what's happening
  • Updated the order in which orders are cancelled. Background orders are now cancelled right away, instead of being asked to cancel.
  • After using a cancel() command you can now be sure that all order will have finished cancelling before the next command starts, freeing up the relevant margin allocated to those orders. Previously, some orders were queued for deletion and that process had not completed by the time the next command started.
  • Version 42, which is the answer.

15th Dec 2019 version 1.1.41

  • Lots of minor improvements...
    • Deribit no longer attempts to cancel orders that were already cancelled
    • Track a little more about orders in sessions, for future features.
    • BitMEX now reports less pointless information into the log
    • A few logging messages tweaked for better clarity

15th Dec 2019 version 1.1.40

  • Added some more tests for trailing stops and take profits
  • Aggressive orders now handle some edge cases a little better
  • Bot is now capabale of telling Alertatron which version it is, making some planned features possible.

13th Dec 2019 version 1.1.39

  • Updated the ping pong order so it now works with % sized orders
  • Updated the aggressive entry order to function more reliably when used on multiple exchanges / markets at once.
  • Updated the logging of the aggressive entry order so it is clearer which messages are part of which order
  • Updated algorithic virtual order handling, also adding some clearer logging.

12th Dec 2019 version 1.1.38

  • Fixed an issue with placing market orders on FTX and updated some tests.

11th Dec 2019 version 1.1.37

  • Add support for balance() to FTX
  • Fixed a couple of potential issues on FTX if you have no open position

11th Dec 2019 version 1.1.36

  • Update to FTX to use the correct value for PnL and average entry prices.

11th Dec 2019 version 1.1.35

  • Beta of FTX support added
  • Updated the market market order to move orders in places when auto balancing, instead of using a cancel / place new order approach. Should be more efficient, esp on BitMEX.

9th Dec 2019 version 1.1.34

  • Fixed a bug in the market maker order that caused the autoBalanceEvery setting to be far far quicker than specified. Now 15m means 15 minutes and now a fraction of a second...

1st Dec 2019 version 1.1.33

  • Handle attempts to cancel orders that have already been cancelled better.
  • Updating order price will now validate the state of the order prior to attempting to change the price.
  • Both of these improvements are to help resolve some recent issues seen on BitMEX. If you use BitMEX, it is recommended that you restart your bot to get these changes as soon as possible.

1st Dec 2019 version 1.1.32

  • Updated the min order size for BitMEX XBTUSD to match their requirements and reduce the chance to people getting their BitMEX account banned for 'spam orders'. Min order size is now 20 contracts, with 1 contract increments.
  • Tweaked to the rate limiting on the BitMEX api. This should have no impact under normal conditions.

26th Nov 2019 version 1.1.31

  • Resolved an issue reported when running orders on multiple symbols simultaneously on the same exchange. BitMEX and Deribit that trade on more than one symbol / instrument, especially from the same alert are recommended to update to this release.

26th Nov 2019 version 1.1.30

  • Minor adjustments to logging wording for better clarity

25th Nov 2019 version 1.1.29

  • Reduced the amount of logging, especially during trailing stop orders.
  • Provided some details about cancellations, as BitMEX can report harmless errors in some conditions.

23rd Nov 2019 version 1.1.28

myApiKeys(XBTUSD) {
    managed(side=buy, amount=1000, entry=aggressive, stopLoss=1%, takeProfit=3%);
}

20th Nov 2019 version 1.1.27

  • Added a new command: exchangeSettings(). This allows exchange specific settings to be adjusted. At the moment there is only a single setting to change on BitMEX only, which is the ability to try and change the leverage setting to some target value, or to enable Cross Margin. Learn more here

18th Nov 2019 version 1.1.26

  • Fixed an issue that meant BitMEX always used the current price for offsets, even when requesting to use the average entry price.

17th Nov 2019 version 1.1.25

  • Resolved a race condition on starting up the Deribit connection, when multiple separate alerts, all wanting to execute commands on the same Deribit API keys, arrive at Alertatron simultaneously. Whoever gets in there first starts up the connection, with the other attempts waiting for the connection to be stable before proceeding.

17th Nov 2019 version 1.1.24

  • Added support for offsets relative to average entry price on Deribit and BitMEX (see below).
  • Updated the back-off strategy used on BitMEX during 'system overload'. This should enable the bot to make more attempts to push orders through, as well as making more over-all attempts before failing. Other exchanges are not affected by this issue.
  • Updated the managed() order. Previously, if using position=xxx for your entry, and your position size was already at the target level, the command would correctly determine that the entry order was of zero size. It would then abort the entire order. This update ensures that the order will keep running, even though no entry order was placed, to close the current position using a stop loss or take profit if they were defined.

Average Entry

Prior to this release you can specify various prices (such as limit order prices) relative to the current price, using an absolute offset, a percentage offset, or it was also possible to specific the exact price to use. These options were expressed like this...

Example Meaning (assuming asset priced in USD)
offset=50 offset $50 from the current price.
offset=1% offset is calculated as a percentage of the current price. If the price is $10,000, and offset is 1%, then 1% of 10,000 is 100. An offset of $100 will be used.
offset=@950 The @ at the start of the value indicates this should be treated as an absolute price of $950, regardless of what the current price is.

With the addition of support for Average Entry offsets, it is now also possible to specify your offsets relative to your open positions average entry price, instead of the being limited to the current price.

This is done by prefixing the offset value with an e (for entry).

So, in addition to all the options in the table above, you can now also use the following values...

Example Meaning (assuming asset priced in USD)
offset=e50 With an open position, offset will be $50 from your average entry. With no open position, offset will be $50 from the current price, as above.
offset=e1% With an open position, offset will be 1% away from your average entry price. With no open position, offset will be relative to current price, as above.

For spot exchanges that don't have a concept of an open position or average entry price, these new options will give results relative to the current price. This will also happen on BitMEX and Deribit in cases where you don't have an open position.

13th Nov 2019 version 1.1.23

  • Update to cancel() on BitMEX so it does not attempt to cancel orders that were already filled. This was harmless, but produces error messages in the logging terminal that were confusing.
  • The BitMEX API handler will now wait longer after submitting an order for BitMEX to update the accounts position size. This is only an issue during 'system overload' events and the longer wait should increase stability when using that exchange under those conditions. Other exchanges were not affected by this issue.

12th Nov 2019 version 1.1.22

  • MarketMaker() order is now a little stricter when reading some of its settings. The default values are also more useful.

Some images from Unsplash

About Alertatron.com

Your TradingView alerts, with charts, PM'd to you.

Get all your alerts from TradingView, sent to Telegram, Discord, Slack, Email or webhooks, with a chart snapshot attached.

Capture Charts

See a high quality chart with every alert, captured at the moment the alert was triggered. See exactly what the market was doing and make informed decisions.

Automate Trading

Trigger orders on popular cryptocurrency exchanges and trade 24/7. Access powerful algorithmic orders to maximise your profits.

Integrations

Connect your alerts to Telegram (channels, groups and private chats), Discord, Slack, email or send push notifications to other services with webhooks.

Easy To Setup

Nothing to install and no browser extensions. Captures alerts 24/7, even with your computer switched off. Be up and running in seconds.