Qu'est-ce qu'une stratégie ?

Une stratégie est une classe que vous allez écrire et qui va décrire ce que vous voulez faire (acheter, vendre, créer une position) en fonction des actifs dont vous disposez sur votre compte et des données du marché (des tickers qui arrivent) ou de toute autre information que vous irez chercher.

Afin que votre stratégie soit reconnue et exécutée par Cassandre, elle doit avoir l'annotation @CassandreStrategyopen in new window et hériter de BasicCassandreStrategyopen in new window .

Vous devez ensuite implémenter les méthodes suivantes :

Vous trouverez ci-dessous une stratégie minimale, il s'agit d'une simple classe avec :

package com.mycompany.app;

import tech.cassandre.trading.bot.dto.user.AccountDTO;
import tech.cassandre.trading.bot.strategy.BasicCassandreStrategy;
import tech.cassandre.trading.bot.strategy.CassandreStrategy;
import tech.cassandre.trading.bot.util.dto.CurrencyDTO;
import tech.cassandre.trading.bot.util.dto.CurrencyPairDTO;

import java.util.Map;
import java.util.Set;

/**
 * Simple strategy.
 */
@CassandreStrategy
public final class SimpleStrategy extends BasicCassandreStrategy {

    @Override
    public Set<CurrencyPairDTO> getRequestedCurrencyPairs() {
        // We only ask for BTC/USDT tickers (Base currency : BTC / Quote currency : USDT).
        return Set.of(new CurrencyPairDTO(BTC, USDT));
    }

    @Override
    public Optional<AccountDTO> getTradeAccount(Set<AccountDTO> accounts) {
        // From all the accounts we have on the exchange,
        // we must return the one we use for trading.
        return accounts.stream()
                .filter(a -> "trade".equalsIgnoreCase(a.getName()))
                .findFirst();
    }

}

TIP

Dans un même trading bot, il est possible de faire fonctionner plusieurs stratégies ! Par contre, elles seront toutes connectées au même exchange.