private void ProcessSymbolDetails() { Log("GetSymbolDetails start"); ResponseSymbolDetails[] resp = _bfxRestConnectorV1.GetSymbolDetails(); Log("GetSymbolDetails end"); //--- initial fill of DB (on very first start only) if (_bfxNeedInitInstruments) { for (int i = 0; i < resp.Count(); i++) { string instrument = resp[i].pair; string instrUpper = instrument.ToUpper(); //for now intrested only in Xusd pairs if (instrument.Contains("usd")) { DBCommunicator.TransactAddInstrument(instrUpper, CodesStockExch._04_CryptoBitfinex); } } return; } //--- end of initial DB fill foreach (var dbIsntr in Instruments) { for (int i = 0; i < resp.Count(); i++) { decimal decMinOrdSize = Convert.ToDecimal(resp[i].minimum_order_size); if (resp[i].pair == dbIsntr.instrument.ToLower() && decMinOrdSize != dbIsntr.minimum_order_size) { dbIsntr.minimum_order_size = decMinOrdSize; int oldDecimalVolume = dbIsntr.DecimalVolume; dbIsntr.DecimalVolume = CUtilConv.GetRoundTo(dbIsntr.minimum_order_size); DBCommunicator.UpdateCryptoInstrumentData(resp[i].pair, CodesStockExch._04_CryptoBitfinex, decMinOrdSize, dbIsntr.DecimalVolume); Log(String.Format("Update minimum_order_size={0} {1}", dbIsntr.minimum_order_size, dbIsntr.instrument)); if (oldDecimalVolume != dbIsntr.DecimalVolume) { _bfxWebSockConnector.UpdateDecimalVolume(dbIsntr.instrument, dbIsntr.DecimalVolume); Log(String.Format("Update DecimalVolume {0} {1}", dbIsntr.DecimalVolume, dbIsntr.instrument)); } } } } if (_tradeHistStor == null) { _tradeHistStor = new CTradeHistStor(Instruments.GetInstruments(), DBCommunicator); } }