Esempio n. 1
0
 public BfxTransaction(BfxMarket market)
 {
     Market   = market;
     Id       = Guid.NewGuid();
     OpenTime = market.ServerTime;
     _derived = GetType().Name == nameof(BfxParentTransaction) ? "Parent" : "Child";
 }
Esempio n. 2
0
        public BfxTickerSource(BfxMarket market)
        {
            // If market is FX_BTC_JPY, get BTC_JPT ticker to calculate realtime SFD rate.
            if (market.ProductCode == BfProductCode.FXBTCJPY)
            {
                _source = Observable.Create <BfxTicker>(observer =>
                {
                    // Merge order book, native ticker and market health(REST)
                    market.RealtimeSource.GetOrderBookSource(market.ProductCode).CombineLatest
                    (
                        market.RealtimeSource.GetTickerSource(BfProductCode.FXBTCJPY),
                        market.RealtimeSource.GetTickerSource(BfProductCode.BTCJPY),
                        (ob, fxbtcjpy, btcjpy) =>
                    {
                        if (fxbtcjpy.Timestamp > _lastServerTime)
                        {
                            _lastServerTime = fxbtcjpy.Timestamp;
                            _serverTimeDiff = fxbtcjpy.Timestamp - DateTime.UtcNow;
                        }
                        return(new BfxTicker(ob, fxbtcjpy, btcjpy, _serverTimeDiff));
                    }
                    )
                    .Subscribe(observer).AddTo(_disposables);

                    return(_disposables.Dispose);
                });
            }
            else
            {
                _source = Observable.Create <BfxTicker>(observer =>
                {
                    // Merge order book, native ticker and market health(REST)
                    market.RealtimeSource.GetOrderBookSource(market.ProductCode).CombineLatest
                    (
                        market.RealtimeSource.GetTickerSource(market.ProductCode),
                        (ob, nt) =>
                    {
                        if (nt.Timestamp > _lastServerTime)
                        {
                            _lastServerTime = nt.Timestamp;
                            _serverTimeDiff = nt.Timestamp - DateTime.UtcNow;
                        }
                        return(new BfxTicker(ob, nt, _serverTimeDiff));
                    }
                    )
                    .Subscribe(observer).AddTo(_disposables);

                    return(_disposables.Dispose);
                });
            }
        }
Esempio n. 3
0
 public BfxParentTransaction(BfxMarket market, BfxParentOrder order)
     : base(market)
 {
     _order = order;
 }
 public BfxChildTransaction(BfxMarket market, BfxChildOrder order)
     : base(market)
 {
     _order = order;
 }
 public BfxChildTransaction(BfxMarket market, BfxChildOrder order, BfxParentTransaction parent)
     : base(market)
 {
     _order = order;
     Parent = parent;
 }