Gestion des positions

Cassandre fourni un moyen de gérer facilement et automatiquement des positions.

Position longue

Dans votre stratégie, vous pouvez créer une position longue avec la méthode createLongPosition()open in new window

Cette méthode a trois paramètres :

  • La paire de devise (Par exemple : ETH/USDT).
  • Le montant (par exemple : 0.5).
  • Les règles (par exemple : 100% de gain ou 50% de perte).

Voici comment créer les règles d'une position avec l' objet PositionRulesDTOopen in new window :

PositionRulesDTO rules=PositionRulesDTO.builder()
        .stopGainPercentage(100)
        .stopLossPercentage(50)
        .build();

Vous pouvez ensuite créer la position de cette façon:

createLongPosition(new CurrencyPairDTO(ETH,BTC),
        new BigDecimal("0.5"),
        rules);

À ce moment, Cassandre va créer un ordre d'achat de 0,5 ETH qui nous coûtera 750 USDT (1 ETH coûtant 1 500 USDT). Le statut de la position sera alors OPENINGopen in new window , et lorsque tous les trades correspondants à cet ordre seront arrivés, le statut passera à OPENEDopen in new window .

TIP

Si vous souhaitez vérifier que vous disposez de suffisamment de fonds (au moins 750 USDT dans notre cas) avant de créer la position, vous pouvez utiliser la méthode canBuy()open in new window .

Désormais, pour chaque ticker reçu, Cassandre calculera le gain de la position. Si ce gain correspond une des règles que l'on a fixées, elle sera automatiquement clôturée.

Par exemple, si nous recevons un nouveau prix de 3 000 USDT pour 1 ETH, Cassandre calculera que si nous vendons notre position maintenant (ce que l'on appelle "fermer la position"), nous obtiendrons 1 500 USDT, soit un gain de 100%. Cassandre va donc créer automatiquement un ordre de vente de nos 0,5 ETH. Le statut de la position passera à CLOSINGopen in new window , et lorsque tous les trades correspondants seront arrivés, le statut passera à CLOSEDopen in new window .

Vous pourrez alors connaître votre gain exact sur cette position en appelant la méthode getGain()open in new window .

Position courte

Une position courte est l'inverse d'une position longue. Avec une position courte, vous pariez sur le fait que le prix va baisser.

Disons que vous créez une position courte sur 1 ETH avec ce code :

createShortPosition(new CurrencyPairDTO(ETH,BTC),
        new BigDecimal("1"),
        rules);

Cassandre vendra 1 ETH, obtiendra 1 500 USDT et attendra que le prix baisse suffisamment pour acheter 2 ETH avec 1 500 USDT.

Gains

Sur l'objet PositionDTOopen in new window , vous pouvez obtenir :

Sur une position fermée, vous pouvez obtenir le gain et les frais associés avec la méthode getGain()open in new window .