Exemplo n.º 1
0
        /// <summary>
        /// The DI constructor.
        /// </summary>
        /// <param name="aggregateTradeClientManager"></param>
        /// <param name="candlestickClientManager"></param>
        /// <param name="depthClientManager"></param>
        /// <param name="statisticsClientManager"></param>
        /// <param name="tradeClientManager"></param>
        /// <param name="logger"></param>
        protected BinanceJsonClientManager(
            IAggregateTradeClientManager <TStream> aggregateTradeClientManager,
            ICandlestickClientManager <TStream> candlestickClientManager,
            IDepthClientManager <TStream> depthClientManager,
            ISymbolStatisticsClientManager <TStream> statisticsClientManager,
            ITradeClientManager <TStream> tradeClientManager,
            ILogger <BinanceJsonClientManager <TStream> > logger = null)
        {
            Throw.IfNull(aggregateTradeClientManager, nameof(aggregateTradeClientManager));
            Throw.IfNull(candlestickClientManager, nameof(candlestickClientManager));
            Throw.IfNull(depthClientManager, nameof(depthClientManager));
            Throw.IfNull(statisticsClientManager, nameof(statisticsClientManager));
            Throw.IfNull(tradeClientManager, nameof(tradeClientManager));

            AggregateTradeClient = aggregateTradeClientManager;
            CandlestickClient    = candlestickClientManager;
            DepthClient          = depthClientManager;
            StatisticsClient     = statisticsClientManager;
            TradeClient          = tradeClientManager;
            _logger = logger;

            aggregateTradeClientManager.Controller.Error += HandleError;
            candlestickClientManager.Controller.Error    += HandleError;
            depthClientManager.Controller.Error          += HandleError;
            statisticsClientManager.Controller.Error     += HandleError;
            tradeClientManager.Controller.Error          += HandleError;
        }
Exemplo n.º 2
0
        /// <summary>
        /// The DI constructor.
        /// </summary>
        /// <param name="aggregateTradeClient"></param>
        /// <param name="candlestickClient"></param>
        /// <param name="depthClient"></param>
        /// <param name="statisticsClient"></param>
        /// <param name="tradeClient"></param>
        /// <param name="logger"></param>
        protected BinanceJsonClientManager(
            IAggregateTradeWebSocketClient aggregateTradeClient,
            ICandlestickWebSocketClient candlestickClient,
            IDepthWebSocketClient depthClient,
            ISymbolStatisticsWebSocketClient statisticsClient,
            ITradeWebSocketClient tradeClient,
            ILogger<BinanceJsonClientManager<TStream>> logger = null)
        {
            Throw.IfNull(aggregateTradeClient, nameof(aggregateTradeClient));
            Throw.IfNull(candlestickClient, nameof(candlestickClient));
            Throw.IfNull(depthClient, nameof(depthClient));
            Throw.IfNull(statisticsClient, nameof(statisticsClient));
            Throw.IfNull(tradeClient, nameof(tradeClient));

            AggregateTradeClient = aggregateTradeClient;
            CandlestickClient = candlestickClient;
            DepthClient = depthClient;
            StatisticsClient = statisticsClient;
            TradeClient = tradeClient;
            _logger = logger;

            // Forward controller error events.
            aggregateTradeClient.Error += HandleError;
            candlestickClient.Error += HandleError;
            depthClient.Error += HandleError;
            statisticsClient.Error += HandleError;
            tradeClient.Error += HandleError;
        }
Exemplo n.º 3
0
 public MeanReversionPaper(string symbol, Decimal scale)
 {
     _stockSymbol   = symbol;
     _scale         = scale;
     _dataClient    = new TradeDataClient();
     _tradingClient = new TradeClient();
 }
Exemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="client"></param>
        /// <param name="callback"></param>
        /// <param name="symbols"></param>
        public static ITradeClient Unsubscribe(this ITradeClient client, Action <TradeEventArgs> callback, params string[] symbols)
        {
            Throw.IfNull(client, nameof(client));
            Throw.IfNull(symbols, nameof(symbols));

            if (callback == null && !symbols.Any())
            {
                throw new ArgumentException($"{nameof(Unsubscribe)}: At least one symbol is required.", nameof(symbols));
            }

            foreach (var symbol in symbols)
            {
                client.Unsubscribe(symbol, callback);
            }

            return(client);
        }
Exemplo n.º 5
0
 /// <summary>
 /// The DI constructor.
 /// </summary>
 /// <param name="client">The JSON client (required).</param>
 /// <param name="controller">The JSON stream controller (required).</param>
 /// <param name="logger">The logger (optional).</param>
 public TradeClientManager(ITradeClient client, IJsonStreamController controller, ILogger <TradeClientManager> logger = null)
     : base(client, controller, logger)
 {
 }
Exemplo n.º 6
0
 public TradeClientTests()
 {
     _client = new TradeClient();
 }
Exemplo n.º 7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="client"></param>
 /// <param name="symbols"></param>
 /// <returns></returns>
 public static ITradeClient Unsubscribe(this ITradeClient client, params string[] symbols)
 => Unsubscribe(client, null, symbols);
Exemplo n.º 8
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="client"></param>
 /// <param name="symbol"></param>
 public static ITradeClient Unsubscribe(this ITradeClient client, string symbol)
 => client.Unsubscribe(symbol, null);
Exemplo n.º 9
0
 public FixClientService(ITradeClient tradeClient)
 {
     _tradeClient = tradeClient;
 }
Exemplo n.º 10
0
 /// <summary>
 /// The DI constructor.
 /// </summary>
 /// <param name="client">The JSON client (required).</param>
 /// <param name="controller">The web socket stream controller (required).</param>
 /// <param name="logger">The logger (optional).</param>
 public TradeWebSocketClientManager(ITradeClient client, IWebSocketStreamController controller, ILogger <TradeWebSocketClientManager> logger = null)
     : base(client, controller, logger)
 {
 }