This page describes the project organization.

Cassandre trading bot is provided as a spring boot starter. This is why you can find two projects in the sources : trading-bot-spring-boot-autoconfigure & trading-bot-spring-boot-starter. These starters enable developers to avoid complex configuration and quickly jumpstart their development.

Batch (tech.cassandre.trading.bot.batch).

Tasks that can run without end user interaction, or can be scheduled. You will find the different flux pushed to the strategy :

  • AccountFlux : calls the exchange to retrieve accounts & balances.
  • TickerFlux : calls the exchange to retrieve the tickers requested by the user strategy
  • OrderFlux : calls the exchange to retrieve orders.

Configuration (tech.cassandre.trading.bot.configuration).

Auto Configuration Classes that configures our beans :

Domain objects (tech.cassandre.trading.bot.domain).

Objects from the business specific area that represent something we want to store.

Data transfer objects (tech.cassandre.trading.bot.dto).

Objects that carries data between processes :

Repositories (tech.cassandre.trading.bot.repository).

Isolate the application/business layer from the persistence layer.

Services (tech.cassandre.trading.bot.service).

Offers high level services :

Strategy (tech.cassandre.trading.bot.strategy).

Strategy management :

  • Strategy annotation : this annotation allows cassandre trading bot to know which class is a strategy.
  • CassandreStrategy : cassandre bot will run the first CassandreStrategy implementation found that also have the @strategy annotation.

Util (tech.cassandre.trading.bot.util).

Utility classes :