コード例 #1
0
 public void SetTrade(TradeData data)
 {
     lock (_lockObject)
     {
         var key = $"{data.Exchange}_{data.Instrument}";
         if (_candleDict.TryGetValue(key, out var candles))
         {
             var lastCandle = candles.Last();
             if (ShouldGenerateNextKline(lastCandle, data))
             {
                 var kline = new FutureKlineData(lastCandle);
                 kline.Update(data.Price, data.Quantity);
                 candles.Add(kline);
                 SendToAll(candles);
             }
             else
             {
                 lastCandle.Update(data.Price, data.Quantity);
             }
         }
         else
         {
             var kline = new FutureKlineData();
             kline.Update(data.Price, data.Quantity);
             _candleDict.Add(key, new List <FutureKlineData> {
                 kline
             });
             SendToAll(_candleDict[key]);
         }
     }
 }
コード例 #2
0
 public bool ShouldGenerateNextKline(FutureKlineData lastKline, TradeData newTradeData)
 {
     return(true);
 }