/// <summary> /// Получает блок по свечам-объемам /// </summary> /// <param name="time"></param> /// <returns></returns> protected override HVolumeBlock getBlock(DateTime time) { lock (syncLock) { BlockTime timeBlock = BlockTime.ConvertForDay(time); if (lastUseBlock.NotIsNull()) { if (lastUseBlock.IdTime == timeBlock) { return(lastUseBlock); } lastUseBlock = null; } if (Blocks.Count > 0) { var block = Blocks.FirstOrDefault(b => b.IdTime == timeBlock); if (block.NotIsNull() && block.IdTime == timeBlock) { lastUseBlock = block; return(block); } } if (lastUseBlock.IsNull()) { HVolumeBlock newBlock = loadByIdTime(timeBlock, POSTFIX_FILE_DUMP); if (newBlock.IsNull()) { newBlock = new HVolumeBlock(periodTimeFrame, timeBlock); } Blocks.Add(newBlock); lastUseBlock = newBlock; } return(lastUseBlock); } }
/// <summary> /// /// </summary> /// <param name="timeFrame"></param> /// <param name="idTime"></param> public CandlesBlock(int timeFrame, BlockTime idTime) { lock (syncLock) { periodTimeFrame = timeFrame; IdTime = idTime; } }
/// <summary> /// /// </summary> /// <param name="timeFrame"></param> /// <param name="idTime"></param> public HVolumeBlock(int timeFrame, BlockTime idTime) { lock (syncLock) { periodTimeFrame = timeFrame; IdTime = idTime; } }
public override int GetHashCode() { unchecked { var baseHashCode = base.GetHashCode(); var hashCode = baseHashCode; hashCode = (hashCode * 397) ^ Index; hashCode = (hashCode * 397) ^ (BlockHash != null ? BlockHash.GetHashCode() : 0); hashCode = (hashCode * 397) ^ BlockHeight.GetHashCode(); hashCode = (hashCode * 397) ^ (BlockTime != null ? BlockTime.GetHashCode() : 0); hashCode = (hashCode * 397) ^ Confirmations; return(hashCode); } }
/// <summary> /// Возвращает дату начала хранения /// </summary> /// <returns></returns> private BlockTime getDateBeginKeep() { var date = DateTime.Now.AddDays(daysPeriodKeep * -1); return(KeepDay ? BlockTime.ConvertForDay(date) : BlockTime.ConvertForMonth(date)); }