public static void UpdateVolumes(ResizeableArray <CandleStickData> candles, TradeInfoItem trade, int period) { if (candles.Count == 0) { return; } CandleStickData saved = candles.Last(); if (saved.Time > trade.Time || saved.Time.AddMinutes(period) <= saved.Time) { UpdateCandle(saved, trade); return; } saved = null; for (int ci = 0; ci < candles.Count; ci++) { CandleStickData c = candles[ci]; if (c.Time <= trade.Time & c.Time.AddMinutes(period) > trade.Time) { saved = c; break; } } UpdateCandle(saved, trade); }
public static void UpdateCandle(CandleStickData candle, TradeInfoItem trade) { if (candle == null) { return; } if (trade.Type == TradeType.Buy) { candle.BuyVolume += trade.Amount; } else { candle.SellVolume += trade.Amount; } candle.BuySellVolume = candle.BuyVolume - candle.SellVolume; }
protected internal virtual void InsertTradeHistoryItem(TradeInfoItem item) { if (TradeHistory.Count > 0) { TradeInfoItem first = TradeHistory.First(); if (first.Time > item.Time) { throw new Exception("Invalid Trade History Items Order By Time"); } if (first.Id != 0 && first.Id != item.Id - 1) { throw new Exception("Invalid Trade History Items Order By Id"); } } TradeHistory.AddFirst(item); ShortTradeHistory.AddFirst(item); }
public void AddAccountTradeHistoryItem(TradeInfoItem item) { AccountTradeHistory.AddLast(item); AccountShortTradeHistory.Add(item); }
protected internal void UpdateSimulationTradeData(TradeInfoItem tradeInfoItem) { TradeHistory.AddLast(tradeInfoItem); }
protected internal virtual void AddTradeHistoryItem(TradeInfoItem item) { TradeHistory.AddLast(item); ShortTradeHistory.Add(item); }