public BfxTransaction(BfxMarket market) { Market = market; Id = Guid.NewGuid(); OpenTime = market.ServerTime; _derived = GetType().Name == nameof(BfxParentTransaction) ? "Parent" : "Child"; }
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); }); } }
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; }