static FrameworkExtensions()
        {
            SubscriptionManagerSubscriptionsField = GetFastField <SubscriptionManager, Dictionary <int, Dictionary <Instrument, int> > >();
            EventBusAttachedField           = GetFastField <EventBus, EventQueue[]>();
            EventBusAttachedCountField      = GetFastField <EventBus, int>();
            ClockEventQueueField            = GetFastField <Clock, IEventQueue>();
            EventDispatcherFrameworkField   = GetFastField <EventDispatcher, Framework>();
            ProviderManagerFrameworkField   = GetFastField <ProviderManager, Framework>();
            InstrumentManagerFrameworkField = GetFastField <InstrumentManager, Framework>();
            DataManagerFrameworkField       = GetFastField <DataManager, Framework>();
            PortfolioFrameworkField         = GetFastField <Portfolio, Framework>();
            ProviderFrameworkField          = GetFastField <Provider, Framework>();
            StrategyFrameworkField          = GetFastField <Strategy, Framework>();
            InstrumentFrameworkField        = GetFastField <Instrument, Framework>();

            ClockModeFiled     = GetFastField <Clock, ClockMode>();
            ReminderClockFiled = GetFastField <Reminder, Clock>();
            foreach (var item in typeof(EventManager).GetFields(BindingFlags.Instance | BindingFlags.NonPublic))
            {
                if (item.FieldType == typeof(bool) && item.GetRequiredCustomModifiers().Any(x => x == typeof(IsVolatile)))
                {
                    ThreadExitField = new FastFieldInfo <EventManager, bool>(item);
                }
                else if (item.FieldType == typeof(Thread))
                {
                    EventManagerThreadField = item;
                }
            }
        }
 static ExecutionReportSerializer()
 {
     foreach (var field in typeof(ExecutionReport).GetFields(BindingFlags.Instance | BindingFlags.NonPublic))
     {
         var attr = field.GetCustomAttribute <DataMemberAttribute>();
         if (attr != null && attr.Name != "order")
         {
             Fields[attr.Name] = field;
         }
     }
     account         = new FastFieldInfo <ExecutionReport, string>(Fields["account"]);
     algoId          = new FastFieldInfo <ExecutionReport, int>(Fields["algoId"]);
     avgPx           = new FastFieldInfo <ExecutionReport, double>(Fields["avgPx"]);
     clId            = new FastFieldInfo <ExecutionReport, int>(Fields["clId"]);
     clientId        = new FastFieldInfo <ExecutionReport, int>(Fields["clientId"]);
     clientID        = new FastFieldInfo <ExecutionReport, string>(Fields["clientID"]);
     clOrderId       = new FastFieldInfo <ExecutionReport, string>(Fields["clOrderId"]);
     commission      = new FastFieldInfo <ExecutionReport, double>(Fields["commission"]);
     cumQty          = new FastFieldInfo <ExecutionReport, double>(Fields["cumQty"]);
     currencyId      = new FastFieldInfo <ExecutionReport, byte>(Fields["currencyId"]);
     dateTime        = new FastFieldInfo <ExecutionReport, DateTime>(Fields["dateTime"]);
     execId          = new FastFieldInfo <ExecutionReport, string>(Fields["execId"]);
     execInst        = new FastFieldInfo <ExecutionReport, string>(Fields["execInst"]);
     execType        = new FastFieldInfo <ExecutionReport, ExecType>(Fields["execType"]);
     expireTime      = new FastFieldInfo <ExecutionReport, DateTime>(Fields["expireTime"]);
     id              = new FastFieldInfo <ExecutionReport, int>(Fields["id"]);
     instrumentId    = new FastFieldInfo <ExecutionReport, int>(Fields["instrumentId"]);
     isLoaded        = new FastFieldInfo <ExecutionReport, bool>(Fields["isLoaded"]);
     lastPx          = new FastFieldInfo <ExecutionReport, double>(Fields["lastPx"]);
     lastQty         = new FastFieldInfo <ExecutionReport, double>(Fields["lastQty"]);
     leavesQty       = new FastFieldInfo <ExecutionReport, double>(Fields["leavesQty"]);
     minQty          = new FastFieldInfo <ExecutionReport, double>(Fields["minQty"]);
     oCA             = new FastFieldInfo <ExecutionReport, string>(Fields["oCA"]);
     orderId         = new FastFieldInfo <ExecutionReport, int>(Fields["orderId"]);
     ordQty          = new FastFieldInfo <ExecutionReport, double>(Fields["ordQty"]);
     ordStatus       = new FastFieldInfo <ExecutionReport, OrderStatus>(Fields["ordStatus"]);
     ordType         = new FastFieldInfo <ExecutionReport, OrderType>(Fields["ordType"]);
     pegDifference   = new FastFieldInfo <ExecutionReport, double>(Fields["pegDifference"]);
     portfolioId     = new FastFieldInfo <ExecutionReport, int>(Fields["portfolioId"]);
     price           = new FastFieldInfo <ExecutionReport, double>(Fields["price"]);
     providerId      = new FastFieldInfo <ExecutionReport, byte>(Fields["providerId"]);
     providerOrderId = new FastFieldInfo <ExecutionReport, string>(Fields["providerOrderId"]);
     routeId         = new FastFieldInfo <ExecutionReport, byte>(Fields["routeId"]);
     side            = new FastFieldInfo <ExecutionReport, OrderSide>(Fields["side"]);
     stopPx          = new FastFieldInfo <ExecutionReport, double>(Fields["stopPx"]);
     strategyId      = new FastFieldInfo <ExecutionReport, int>(Fields["strategyId"]);
     subSide         = new FastFieldInfo <ExecutionReport, SubSide>(Fields["subSide"]);
     text            = new FastFieldInfo <ExecutionReport, string>(Fields["text"]);
     timeInForce     = new FastFieldInfo <ExecutionReport, TimeInForce>(Fields["timeInForce"]);
     transactTime    = new FastFieldInfo <ExecutionReport, DateTime>(Fields["transactTime"]);
     typeId          = new FastFieldInfo <ExecutionReport, byte>(Fields["typeId"]);
 }
        static PortfolioSerializer()
        {
            var fields = new Dictionary <string, FieldInfo>();

            foreach (var field in typeof(Portfolio).GetFields(BindingFlags.Instance | BindingFlags.NonPublic))
            {
                var attr = field.GetCustomAttribute <DataMemberAttribute>();
                if (attr != null)
                {
                    fields[attr.Name] = field;
                }
            }
            id       = new FastFieldInfo <Portfolio, int>(fields["id"]);
            isLoaded = new FastFieldInfo <Portfolio, bool>(fields["isLoaded"]);
            parentId = new FastFieldInfo <Portfolio, int>(fields["parentId"]);
        }
 static OrderExtensions()
 {
     foreach (var field in typeof(Order).GetFields(BindingFlags.Instance | BindingFlags.NonPublic))
     {
         if (field.FieldType == typeof(SubSide))
         {
             SubSideField = new FastFieldInfo <Order, SubSide>(field);
             continue;
         }
         if (field.FieldType == typeof(SmartQuant.OrderType))
         {
             TypeField = new FastFieldInfo <Order, SmartQuant.OrderType>(field);
             continue;
         }
         if (field.FieldType == typeof(SmartQuant.OrderStatus))
         {
             StatusField = new FastFieldInfo <Order, SmartQuant.OrderStatus>(field);
             continue;
         }
     }
 }
Exemple #5
0
        static StopExtensions()
        {
            var creationTimeField = typeof(Stop).GetField("creationTime", BindingFlags.Instance | BindingFlags.NonPublic);

            if (creationTimeField != null)
            {
                CreationTimeField = new FastFieldInfo <Stop, DateTime>(creationTimeField);
            }
            var strategyField = typeof(Stop).GetField("strategy", BindingFlags.Instance | BindingFlags.NonPublic);

            if (strategyField != null)
            {
                StrategyField = new FastFieldInfo <Stop, Strategy>(strategyField);
            }
            var qtyField = typeof(Stop).GetField("qty", BindingFlags.Instance | BindingFlags.NonPublic);

            if (qtyField != null)
            {
                QtyField = new FastFieldInfo <Stop, double>(qtyField);
            }
        }
Exemple #6
0
        static StrategyExtensions()
        {
            foreach (var field in typeof(StrategyManager_).GetFields(BindingFlags.Instance | BindingFlags.NonPublic))
            {
                if (field.FieldType == typeof(SmartQuant.IdArray <Strategy_>))
                {
                    if (StrategiesField1 == null)
                    {
                        StrategiesField1 = new FastFieldInfo <StrategyManager_, SmartQuant.IdArray <Strategy_> >(field);
                    }
                    else
                    {
                        StrategiesField2 = new FastFieldInfo <StrategyManager_, SmartQuant.IdArray <Strategy_> >(field);
                    }
                }
            }

            foreach (var field in typeof(Strategy).GetFields(BindingFlags.Instance | BindingFlags.NonPublic))
            {
                if (field.FieldType == typeof(SmartQuant.IdArray <Strategy>))
                {
                    StrategyByIdField = new FastFieldInfo <Strategy, SmartQuant.IdArray <Strategy> >(field);
                }
                else if (field.FieldType == typeof(IExecutionProvider))
                {
                    ExecutionProviderField = new FastFieldInfo <Strategy, IExecutionProvider>(field);
                }
                else if (field.FieldType == typeof(IDataProvider))
                {
                    DataProviderField = new FastFieldInfo <Strategy, IDataProvider>(field);
                }
            }

            StrategyOnStopStatusChangedMethod = typeof(Strategy).GetMethod("OnStopStatusChanged_", BindingFlags.Instance | BindingFlags.NonPublic);
            OnStopStatusChangedAction         = (Action <Strategy, Stop>)StrategyOnStopStatusChangedMethod.CreateDelegate(typeof(Action <Strategy, Stop>));
        }