Я все еще изучаю C # .Net 4, и это мой первый WinForms, поэтому, пожалуйста, будьте добры.
Продолжая работу над моим проектом, мой финансовый DataFeed направляется в мое приложение с помощью «асинхронных сокетов?». В любом случае, данные, которые я получаю, представляют собой данные по тикам за тик, которые в основном составляют 1 ордер / транзакция. Так что теперь мне нужно строить бары с этим тиком по тиковым данным, в частности, Range Bars.
Моя проблема в том, что я не хочу идти в базу данных и получать эти данные, поэтому я пытаюсь сделать это в памяти, как переменную списка. В конце концов, эта система на главном сервере выполнит все подсчеты чисел и т. Д. И будет иметь клиентов, подключенных через сокеты, для опроса или установки собственных предопределенных алгоритмов для входящих данных и построения своих собственных диаграмм с использованием различных диапазонов и индикаторов.
Я бы не хотел переносить это на клиента, потому что хотел бы, чтобы технология индикаторов была закрытой.
Как бы я это реализовал?
У меня уже есть мой класс под названием Tick
class Tick
{
public double Last { get; set; }
public double Bid { get; set; }
public double Ask { get; set; }
public double BidSize { get; set; }
public double AskSize { get; set; }
public DateTime TimeStampInternal { get; set; }
public int DTNTickID { get; set; }
public int UpdateTypeID { get; set; }
}
Я думаю о
Static List<Tick> Ticks
но я не думаю, что это путь, потому что
- Мне нужно иметь возможность удерживать только определенное количество тиков, и по мере поступления новых данных старые данные выбрасываются, FIFO для сокращения использования памяти.
- Я смогу хранить только 1 статический список, и мне нужно что-то динамическое, например, иметь список для каждого подключаемого пользователя, который будет идентифицирован только для них.
Пожалуйста, помогите мне правильно спроектировать это с лучшими практиками для скорости и эффективности.