public void EvaluateAndUpdateOrder(MyMarketOrder order) { Debug.Assert(order != null); Log.WriteLog("Trying to evaluate and update order " + order.ID.ToString() + ": " + order.Type.ToString()); //update evaluate cd order.EvaluateCoolDownEndTime = System.DateTime.UtcNow.AddMilliseconds(Config.IntervalOfProcessingSameOrder); // get good price double RecommendedPrice = _decide.GetRecommendedPrice(order); // <0 means we cannot find a obvious best price // new price >0? if (RecommendedPrice > 0) { // if already good if (RecommendedPrice == order.Price) { // need no update -> update state order.Status = OrderStatus.NeedNoUpdate; } else { // TODO check config limit // Update -> update state and modify cd /// or hesatate(config restricted) order.Modify(RecommendedPrice); order.Status = OrderStatus.AutoModified; } } else { order.Status = OrderStatus.Hesitate; } Log.WriteLog("Done evaluating and updating order " + order.ID.ToString() + ": " + order.Type.ToString()); }