예제 #1
0
 public void RaisePriceChanged(Price price) {
   PriceCurrent.AddOrUpdate(price.Pair, price, (k, v) => price);
   if(PriceChanged != null) {
     var args = new PriceChangedEventArgs(price, GetAccount(), GetTrades());
     PriceChanged(this, args);
   }
 }
예제 #2
0
 public bool CloseTrade(Trade trade, int lot, Price price) {
   if(trade.Lots <= lot)
     CloseTrade(trade);
   else {
     var newTrade = trade.Clone();
     newTrade.Lots = trade.Lots - lot;
     newTrade.Id = NewTradeId() + "";
     var e = new PriceChangedEventArgs(price ?? GetPrice(trade.Pair), GetAccount(), GetTrades());
     newTrade.UpdateByPrice(this, e);
     trade.Lots = lot;
     trade.UpdateByPrice(this, e);
     CloseTrade(trade);
     tradesOpened.Add(newTrade);
   }
   return true;
 }