Cassandre Trading Bot Versions Save

Create your Java crypto trading bot in minutes. Our Spring boot starter takes care of exchange connections, accounts, orders, trades, and positions so you can focus on building your strategies.

5.0.1

2 years ago

Changelog

  • We are now live testing three exchanges with real assets (Kucoin, Coinbase & Binance).
  • XChange 5.0.9 (with coinbase market order fix).
  • Binance rate limit excess exception fixed.
  • Improved speed of Dry mode.
  • In dry mode, change closing order price to position rules to have an accurate report.
  • During backtesting with positions, the first calculation gain is sometimes false.
  • In archetypes, uses a simulated exchange for tests (to avoid kucoin 403 errors).

5.0.0

2 years ago

Hi everyone, This is a major update that will require you to refactor some of your code (but no problem with database update, liquidbase does it automatically). This release goal was to improve speed and fix some technical debt. You will find below a migration guide.

Changelog.

  • Strategy updates can now receive several updates in only one call.
  • Backtesting tests are now super fast.
  • Database structure update to improve speed (but no more plans to support multi exchange in one bot instance).
  • XChange 5.0.8 and Spring Boot 2.5.2.

Migration guide.

Change database parameters in application.properties.

Replace Cassandre database parameters::

cassandre.trading.bot.database.datasource.driver-class-name
cassandre.trading.bot.database.datasource.url
cassandre.trading.bot.database.datasource.username
cassandre.trading.bot.database.datasource.password

by classical spring boot parameters:

spring.datasource.driver-class-name
spring.datasource.username
spring.datasource.password
spring.datasource.url

Change exchange parameters in application.properties.

Rename cassandre.trading.bot.exchange.name to cassandre.trading.bot.exchange.driver-class-name.

onUpdates methods change.

All strategy updates methods changed. Their name changed and they can now receive several updates in only one call. So basically, when you had: public void onOrderUpdate​(OrderDTO order), you should now have: public final void onOrdersUpdates(final Map<String, OrderDTO> orders).

##Add annotation for backtesting. To have backtesting working, you should now add this annotation added on your unit test: @ComponentScan("tech.cassandre.trading.bot")

4.3.0

3 years ago
  • TAJ 0.14.
  • XChange 5.0.8.
  • Added try/catch to resolve some failures in schedulers.
  • Web site improvement.
  • CancelOrder added to the strategy.
  • Dynamically adjust size of requested currency pairs.

4.2.1

3 years ago
  • Optimize tickers retrieval by retrieving all tickers with one call to the exchange (when exchange supports it).
  • Only retrieve trades by currency pairs based on orders made.
  • Spring boot update.
  • Bot speed improvements when lots of currency pairs required.
  • Improved thread pool management.

4.2.0

3 years ago

The main feature is the ability to run several strategies in the same bot. For example, I run a bot trading BTC/USDT & UNI/USDT. Others changes:

  • Update to XChange 5.0.7.
  • Improved integration tests and added some tests on Binance.
  • Fullfill strategy accounts on start.
  • Add a getter for exchange service in strategies

4.1.1

3 years ago
  • Adding a method to close an opened position.
  • Coinbase integration tests.
  • OpeningOrder & closingOrder are sometimes null without reason
  • Fee currencies are not well calculated.
  • In dry mode, orders use current timestamp instead of ticker timestamp.
  • OpenCollective integration.Allow rules update on position
  • Qovery documentation.

4.1.0

3 years ago
  • New web site made with vuepress.
  • Added documentation on position management.
  • Short position management.
  • Bug fixes for Binance (tickers & orders).
  • Bug fixes for Gemini (orders).
  • Fix login error on Kucoin sandbox.
  • Bugfix on gain calculation (now calculated on every opening trade).
  • canBuy() & canSell() methods now take into account the amounts blocked by positions.

4.0.1

3 years ago
  • When Cassandre restarts, opened positions are sent to onPositionStatusUpdate bug.
  • XChange 5.0.6 library updated.
  • Move to boundedElastic Schedulers.

4.0.0

3 years ago

This is a major release!

I broke quite a lot of things but you should be able to migrate an existing bot code in a few minutes. The biggest change is the data structure that has been completely refactored to allow, in the future, multi strategies and multi bots in a single database.

In this release, I integrated Liquidbase to allow frictionless migration of future Cassandre releases.

This is the list of the biggest changes :

  • Database refactoring & Liquidbase integration.
  • Allow strategy to directly create orders & positions without calling the services.
  • Add methods to retrieve orders, trades & positions directly from the strategy.
  • Lomboz integration.
  • Qase integration to review and manage tests.
  • Refactor PositionDTO to make it more simple.
  • Add a CurrencyAmount object to make it easy to deal with amounts.
  • Use data (orders, trades, positions…) in the database instead of storing them in memory.

3.0.0

3 years ago

Hi, this is a major release.

  • Manage several trades for one order situation.
  • Improved dry mode (now simulate positions, orders, trades, and accounts).
  • Improved documentation on how to deploy your bot with docker.
  • Added a getGains on positionsService to retrieve the total gains of all positions.
  • Position now stores min and max gain made until the position is closed.
  • Added a toString() method on position to display a user-friendly description of the position.
  • Added a parameter to automatically add a table prefix to your trading bot backup. This allows you to run several bot on the same server.

Broken: the backup database structure changed so you can’t stop a previous trading bot and restart it with this release.