private void createStockMatch(stocks_action sell, stocks_action buy, float i_Average) { if (buy.quantity >= sell.quantity) { UpdateActionLog(sell, buy, sell.quantity, i_Average); updatePrice(buy, sell.quantity, i_Average); updatePrice(sell, sell.quantity, i_Average); buy.quantity -= sell.quantity; sell.quantity = 0; sell.status = StockStatusGetter.GetDescription(eStatus.Done); sell.is_updatable = 0; if (buy.quantity == 0) { buy.status = StockStatusGetter.GetDescription(eStatus.Done); buy.is_updatable = 0; } } else { UpdateActionLog(sell, buy, buy.quantity, i_Average); updatePrice(buy, buy.quantity, i_Average); updatePrice(sell, buy.quantity, i_Average); sell.quantity -= buy.quantity; buy.quantity = 0; buy.status = StockStatusGetter.GetDescription(eStatus.Done); buy.is_updatable = 0; } UpdateStockAsMatch(sell); UpdateStockAsMatch(buy); }
private stocks_action UpdateStock(stocks_action stock, stocks_action stockToUpdate) { stock.Id = stockToUpdate.Id; stock.date_time = stockToUpdate.date_time; stock.user_id = stockToUpdate.user_id; stockToUpdate = stock; return(stockToUpdate); }
// POST: api/StocksManager public void Post([FromBody] stocks_action value) { value.user_id = User.Identity.GetUserId(); value.date_time = DateTime.Now; value.Id = Guid.NewGuid().ToString(); value.is_updatable = 1; _stocksMatchManager.AddNewStcokAction(value); }
public void AddNewStockAction(stocks_action i_StocksDataManager) { using (Entities _context = new Entities()) { i_StocksDataManager.status = StockStatusGetter.GetDescription(eStatus.InProgress); _context.stocks_action.Add(i_StocksDataManager); _context.SaveChanges(); } }
public void Put([FromBody] stocks_action value) { try { _stocksMatchManager.UpdateStockAction(value); } catch (Exception ex) { throw new HttpException(400, string.Format("update stock in db faild error:{0}", ex.Message)); } }
private void UpdateStockAsMatch(stocks_action stockAction) { if (IsUserStocksChanged.ContainsKey(stockAction.user_id)) { IsUserStocksChanged[stockAction.user_id] = true; } else { IsUserStocksChanged.Add(stockAction.user_id, true); } UpdateStockAction(stockAction); }
private double getBuyNumberMatch(DarkPoolStockModel i_MarketStockStatus, stocks_action i_Sell, double i_MarketAverage, out float i_SellPrice) { if (i_Sell.market_limit == 1) { i_SellPrice = i_MarketStockStatus.Ask; return(i_MarketStockStatus.Bid); } i_SellPrice = (float)i_Sell.limit; return((i_MarketAverage * 2) - i_SellPrice); }
private static void UpdateStock(stocks_action stock, stocks_action stockToUpdate) { stockToUpdate.stock_name = stock.stock_name; stockToUpdate.limit = stock.limit; stockToUpdate.market_limit = stock.market_limit; stockToUpdate.price_done = stock.price_done; stockToUpdate.amount_done = stock.amount_done; stockToUpdate.quantity = stock.quantity; stockToUpdate.sell_action = stock.sell_action; stockToUpdate.status = stock.status; stockToUpdate.strategy = stock.strategy; stockToUpdate.target = stock.target; stockToUpdate.is_updatable = stock.is_updatable; }
private void updatePrice(stocks_action i_StockAction, int i_Quantity, float i_MatchPrice) { if (i_StockAction.amount_done != null && i_StockAction.amount_done > 0) { i_StockAction.price_done = ((i_StockAction.amount_done * i_StockAction.price_done) + (i_Quantity * i_MatchPrice)) / (i_StockAction.amount_done + i_Quantity); i_StockAction.amount_done = i_StockAction.amount_done + i_Quantity; } else { i_StockAction.amount_done = i_Quantity; i_StockAction.price_done = i_MatchPrice; } }
public void UpdateActionLog(stocks_action i_Sell, stocks_action i_Buy, int i_Quantity, float i_Average) { using (Entities _context = new Entities()) { _context.action_log.Add(new action_log() { sell_user_id = i_Sell.user_id, buy_user_id = i_Buy.user_id, quantity_ = i_Quantity, price_ = i_Average, stock_name_ = i_Sell.stock_name, date_time = DateTime.Now, Id = Guid.NewGuid().ToString() }); _context.SaveChanges(); } }
public stocks_action UpdateActionStock(stocks_action i_Stock) { using (Entities _context = new Entities()) { var stockToUpdate = _context.stocks_action.FirstOrDefault(x => x.Id == i_Stock.Id); if (stockToUpdate != null) { UpdateStock(i_Stock, stockToUpdate); _context.SaveChanges(); } else { throw new Exception("the stock not found in the db"); } return(stockToUpdate); } }
private float GetAvragePrice(float i_SellPrice, stocks_action i_BuyMatch, float i_MarketAverage, DarkPoolStockModel i_MarketStockStatus) { if (i_BuyMatch.market_limit == 1) { if (i_SellPrice <= i_MarketStockStatus.Ask) { return((i_SellPrice + i_MarketStockStatus.Bid) / 2); } else { return(i_MarketAverage); } } else { return((i_SellPrice + (float)i_BuyMatch.limit) / 2); } }
private void deleteStockFromDictionray(stocks_action i_StockToDelete) { if (i_StockToDelete.sell_action == 1) { if (_sell.ContainsKey(i_StockToDelete.stock_name)) { var stock = _sell[i_StockToDelete.stock_name].FirstOrDefault(x => x.Id == i_StockToDelete.Id); stock.status = StockStatusGetter.GetDescription(eStatus.Deleted); } } else { if (_buy.ContainsKey(i_StockToDelete.stock_name)) { var stock = _buy[i_StockToDelete.stock_name].FirstOrDefault(x => x.Id == i_StockToDelete.Id); stock.status = StockStatusGetter.GetDescription(eStatus.Deleted); } } }
public void AddNewStcokAction(stocks_action stocksDataManager) { //add to db try { _dbHandler.AddNewStockAction(stocksDataManager); } catch (Exception ex) { Log.ErrorFormat("Thier is error in insert new stock for user id :{0} the error {1}", stocksDataManager.user_id, ex.Message); } //add to dictionary if (stocksDataManager.sell_action == 1) { if (_sell.ContainsKey(stocksDataManager.stock_name)) { _sell[stocksDataManager.stock_name].Add(stocksDataManager); } else { addToDictionary(_sell, stocksDataManager.stock_name, new List <stocks_action>() { stocksDataManager }); } } else { if (_buy.ContainsKey(stocksDataManager.stock_name)) { _buy[stocksDataManager.stock_name].Add(stocksDataManager); } else { addToDictionary(_buy, stocksDataManager.stock_name, new List <stocks_action>() { stocksDataManager }); } } Log.InfoFormat("insert new stock for user id : {0}", stocksDataManager.user_id); }
private void updateDictionary(stocks_action i_Stcok) { stocks_action stockTpUpdate = null; if (i_Stcok.sell_action == 1) { if (_sell.ContainsKey(i_Stcok.stock_name)) { stockTpUpdate = _sell[i_Stcok.stock_name].FirstOrDefault(x => x.Id == i_Stcok.Id); } } else { if (_buy.ContainsKey(i_Stcok.stock_name)) { stockTpUpdate = _buy[i_Stcok.stock_name].FirstOrDefault(x => x.Id == i_Stcok.Id); } } UpdateStock(i_Stcok, stockTpUpdate); }
private void UpdateActionLog(stocks_action i_Sell, stocks_action i_Buy, int i_Quantity, float i_Average) { _dbHandler.UpdateActionLog(i_Sell, i_Buy, i_Quantity, i_Average); }
public void UpdateStockAction(stocks_action stock) { stocks_action stockToUpdate = _dbHandler.UpdateActionStock(stock); updateDictionary(stockToUpdate); }