Class PositionServiceCassandreImplementation
- java.lang.Object
-
- tech.cassandre.trading.bot.util.base.Base
-
- tech.cassandre.trading.bot.util.base.service.BaseService
-
- tech.cassandre.trading.bot.service.PositionServiceCassandreImplementation
-
- All Implemented Interfaces:
PositionService
public class PositionServiceCassandreImplementation extends BaseService implements PositionService
Position service implementation.
-
-
Field Summary
-
Fields inherited from class tech.cassandre.trading.bot.util.base.service.BaseService
bucket
-
Fields inherited from class tech.cassandre.trading.bot.util.base.Base
accountMapper, currencyMapper, logger, orderMapper, positionMapper, strategyMapper, tickerMapper, tradeMapper, utilMapper
-
-
Constructor Summary
Constructors Constructor Description PositionServiceCassandreImplementation(PositionRepository positionRepository, TradeService tradeService, PositionFlux positionFlux)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description OrderCreationResultDTO
closePosition(GenericCassandreStrategy strategy, long id, TickerDTO ticker)
Close a position - This method is used by Cassandre internally.PositionCreationResultDTO
createLongPosition(GenericCassandreStrategy strategy, CurrencyPairDTO currencyPair, BigDecimal amount, PositionRulesDTO rules)
Creates a long position with its associated rules.PositionCreationResultDTO
createPosition(GenericCassandreStrategy strategy, PositionTypeDTO type, CurrencyPairDTO currencyPair, BigDecimal amount, PositionRulesDTO rules)
Creates a position.PositionCreationResultDTO
createShortPosition(GenericCassandreStrategy strategy, CurrencyPairDTO currencyPair, BigDecimal amount, PositionRulesDTO rules)
Creates a short position with its associated rules.void
forcePositionClosing(long id)
Force a position to close (no matter the rules) - This method can be use by user code.Map<Long,CurrencyAmountDTO>
getAmountsLockedByPosition()
Returns the amounts locked by each position.HashMap<CurrencyDTO,GainDTO>
getGains()
Return the gains made by all closed positions.Optional<PositionDTO>
getPositionById(long id)
Get position by id.Set<PositionDTO>
getPositions()
Get positions.void
updatePositionRules(long id, PositionRulesDTO newRules)
Update position rules.
-
-
-
Constructor Detail
-
PositionServiceCassandreImplementation
public PositionServiceCassandreImplementation(PositionRepository positionRepository, TradeService tradeService, PositionFlux positionFlux)
-
-
Method Detail
-
createLongPosition
public final PositionCreationResultDTO createLongPosition(GenericCassandreStrategy strategy, CurrencyPairDTO currencyPair, BigDecimal amount, PositionRulesDTO rules)
Description copied from interface:PositionService
Creates a long position with its associated rules. Long position is nothing but buying share. If you are bullish (means you think that price of X share will rise) at that time you buy some amount of Share is called taking Long Position in share.- Specified by:
createLongPosition
in interfacePositionService
- Parameters:
strategy
- strategycurrencyPair
- currency pairamount
- amountrules
- rules- Returns:
- position creation result
-
createShortPosition
public final PositionCreationResultDTO createShortPosition(GenericCassandreStrategy strategy, CurrencyPairDTO currencyPair, BigDecimal amount, PositionRulesDTO rules)
Description copied from interface:PositionService
Creates a short position with its associated rules. Short position is nothing but selling share. If you are bearish (means you think that price of X share are going to fall) at that time you sell some amount of share is called taking Short Position in share.- Specified by:
createShortPosition
in interfacePositionService
- Parameters:
strategy
- strategycurrencyPair
- currency pairamount
- amountrules
- rules- Returns:
- position creation result
-
createPosition
public final PositionCreationResultDTO createPosition(GenericCassandreStrategy strategy, PositionTypeDTO type, CurrencyPairDTO currencyPair, BigDecimal amount, PositionRulesDTO rules)
Creates a position.- Parameters:
strategy
- strategytype
- long or shortcurrencyPair
- currency pairamount
- amountrules
- rules- Returns:
- position creation result
-
updatePositionRules
public final void updatePositionRules(long id, PositionRulesDTO newRules)
Description copied from interface:PositionService
Update position rules.- Specified by:
updatePositionRules
in interfacePositionService
- Parameters:
id
- position idnewRules
- new rules
-
closePosition
public final OrderCreationResultDTO closePosition(GenericCassandreStrategy strategy, long id, TickerDTO ticker)
Description copied from interface:PositionService
Close a position - This method is used by Cassandre internally.- Specified by:
closePosition
in interfacePositionService
- Parameters:
strategy
- strategyid
- position idticker
- ticker- Returns:
- order creation result
-
forcePositionClosing
public final void forcePositionClosing(long id)
Description copied from interface:PositionService
Force a position to close (no matter the rules) - This method can be use by user code.- Specified by:
forcePositionClosing
in interfacePositionService
- Parameters:
id
- position id
-
getPositions
public final Set<PositionDTO> getPositions()
Description copied from interface:PositionService
Get positions.- Specified by:
getPositions
in interfacePositionService
- Returns:
- position list
-
getPositionById
public final Optional<PositionDTO> getPositionById(long id)
Description copied from interface:PositionService
Get position by id.- Specified by:
getPositionById
in interfacePositionService
- Parameters:
id
- id- Returns:
- position
-
getAmountsLockedByPosition
public final Map<Long,CurrencyAmountDTO> getAmountsLockedByPosition()
Description copied from interface:PositionService
Returns the amounts locked by each position.- Specified by:
getAmountsLockedByPosition
in interfacePositionService
- Returns:
- amounts locked by each position
-
getGains
public final HashMap<CurrencyDTO,GainDTO> getGains()
Description copied from interface:PositionService
Return the gains made by all closed positions.- Specified by:
getGains
in interfacePositionService
- Returns:
- gains by currency.
-
-