/** * Unsubscribe a ticker * @param tickerSymbol * @return */ public FutureOperation unsubscribeTicker(final BitfinexTickerSymbol tickerSymbol) { final FutureOperation future = new FutureOperation(tickerSymbol); pendingUnsubscribes.registerFuture(future); lastTickerActivity.remove(tickerSymbol); final UnsubscribeChannelCommand command = new UnsubscribeChannelCommand(tickerSymbol); client.sendCommand(command); return future; }
public QuoteManager(final BitfinexWebsocketClient client, final ExecutorService executorService) { super(client, executorService); this.client = client; this.lastTickerActivity = new ConcurrentHashMap<>(); this.tickerCallbacks = new BiConsumerCallbackManager<>(executorService, client); this.candleCallbacks = new BiConsumerCallbackManager<>(executorService, client); this.tradesCallbacks = new BiConsumerCallbackManager<>(executorService, client); this.pendingSubscribes = new FutureOperationRegistry(); this.pendingUnsubscribes = new FutureOperationRegistry(); client.getCallbacks().onCandlesticksEvent(this::handleCandlestickCollection); client.getCallbacks().onTickEvent(this::handleNewTick); client.getCallbacks().onExecutedTradeEvent((sym, trades) -> trades.forEach(t -> this.handleExecutedTradeEntry(sym, t))); client.getCallbacks().onSubscribeChannelEvent((s) -> pendingSubscribes.handleEvent(s)); client.getCallbacks().onUnsubscribeChannelEvent((s) -> pendingUnsubscribes.handleEvent(s)); }
/** * Unsubscribe the candles * @param currencyPair * @param timeframe * @return */ public FutureOperation unsubscribeCandles(final BitfinexCandlestickSymbol symbol) { lastTickerActivity.remove(symbol); final FutureOperation future = new FutureOperation(symbol); pendingUnsubscribes.registerFuture(future); final UnsubscribeChannelCommand command = new UnsubscribeChannelCommand(symbol); client.sendCommand(command); return future; }
/** * Subscribe a ticker * @param tickerSymbol * @return * @throws BitfinexClientException */ public FutureOperation subscribeTicker(final BitfinexTickerSymbol tickerSymbol) throws BitfinexClientException { final FutureOperation future = new FutureOperation(tickerSymbol); pendingSubscribes.registerFuture(future); final SubscribeTickerCommand command = new SubscribeTickerCommand(tickerSymbol); client.sendCommand(command); return future; }
/** * Subscribe candles for a symbol * @param currencyPair * @param timeframe * @return * @throws BitfinexClientException */ public FutureOperation subscribeCandles(final BitfinexCandlestickSymbol symbol) throws BitfinexClientException { final FutureOperation future = new FutureOperation(symbol); pendingSubscribes.registerFuture(future); final SubscribeCandlesCommand command = new SubscribeCandlesCommand(symbol); client.sendCommand(command); return future; }
/** * Unsubscribe a executed trades channel * @param currencyPair * @param orderBookPrecision * @param orderBookFrequency * @param pricePoints * @return */ public FutureOperation unsubscribeExecutedTrades(final BitfinexExecutedTradeSymbol tradeSymbol) { final FutureOperation future = new FutureOperation(tradeSymbol); pendingUnsubscribes.registerFuture(future); final UnsubscribeChannelCommand command = new UnsubscribeChannelCommand(tradeSymbol); client.sendCommand(command); return future; }
/** * Subscribe a executed trade channel * @param currencyPair * @param orderBookPrecision * @param orderBookFrequency * @param pricePoints * @return */ public FutureOperation subscribeExecutedTrades(final BitfinexExecutedTradeSymbol tradeSymbol) { final FutureOperation future = new FutureOperation(tradeSymbol); pendingSubscribes.registerFuture(future); final SubscribeTradesCommand subscribeOrderbookCommand = new SubscribeTradesCommand(tradeSymbol); client.sendCommand(subscribeOrderbookCommand); return future; }