namespace QuanTAlib; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data; using System.Linq; public enum OType { NIL = 0, // No position BTO = 1, // Buy to Open STC = 2, // Sell to Close STO = 3, // Sell to Open BTC = 4, // Buy to Close END = 5, // Exit the trade } public class TOrders : List<(DateTime t, OType o)> { public void Add((DateTime t, OType o) TOrder, bool update = false) { if (update) { this[^1] = TOrder; } else { base.Add(TOrder); } OnEvent(update); } protected virtual void OnEvent(bool update = false) { Pub?.Invoke(this, new TSeriesEventArgs { update = update }); } public delegate void NewDataEventHandler(object source, TSeriesEventArgs args); public event NewDataEventHandler Pub; }