public StrategyServer Init()
        {
            if (Interlocked.CompareExchange(ref _initialized, 1, 0) > 0)
            {
                return(this);
            }
            InstTradingRules.Init(_framework);
            ClosePortfolioServer();
            CloseOrderServer();
            var db = CreateDatabase();

            _framework.PortfolioServer             = new DatabasePortfolioServer(_framework, db);
            _framework.OrderServer                 = new DatabaseOrderServer(_framework, db, _instanceName);
            _framework.StrategyManager.Persistence = StrategyPersistence.Full;
            return(this);

            void ClosePortfolioServer()
            {
                if (_framework.PortfolioServer is DatabasePortfolioServer server)
                {
                    server.Close();
                }
            }

            void CloseOrderServer()
            {
                if (_framework.OrderServer is DatabaseOrderServer server)
                {
                    server.Close();
                }
            }
        }
Пример #2
0
 public static void SetTradingRules(this Instrument inst, InstTradingRules field)
 {
     inst.Fields[QuantBoxConst.InstrumentTradingRulesOffset] = field;
 }