예제 #1
0
 public UIDataBroker()
 {
     UnlTradingDataList     = new List <UnlTradingData>();
     PositionDataList       = new List <OptionsPositionData>();
     OrderStatusDataList    = new List <OrderStatusData>();
     OptionsDataList        = new List <OptionData>();
     AccountSummaryDataList = new List <AccountSummaryData>()
     {
         new AccountSummaryData()
     };
     SecurityDataList    = new List <SecurityData>();
     _lastNetLiquidation = SavedPatametersManager.GetLastNetLiquiditionParameter();
 }
예제 #2
0
        private void DoWorkAfterTradingEnding()
        {
            try
            {
                DBDiluter dbDiluter = new DBDiluter();
                dbDiluter.DiluteFromAllUnLs();
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
            }

            //Save the parameter in one minute from now, and then 'Net Liquidition' will be stable!
            GeneralTimer.GeneralTimerInstance.AddTask(TimeSpan.FromMinutes(1), () =>
            {
                SavedPatametersManager.SaveLastNetLiquiditionParameter(AccountManager.NetLiquidation);
            }, false);

            //Save UNL data
            using (var session = DBSessionFactory.Instance.OpenSession())
            {
                foreach (var simpleBaseLogic in UNLManagerDic.Values)
                {
                    var unlManager = (UNLManager)simpleBaseLogic;

                    var managedSecurity =
                        session.Query <ManagedSecurity>().FirstOrDefault(ms => ms.Symbol == unlManager.Symbol);
                    if (managedSecurity == null)
                    {
                        continue;
                    }

                    managedSecurity.LastDayPnL = unlManager.UnlTradingData.PnLTotal;
                    session.SaveOrUpdate(managedSecurity);
                }
                session.Flush();
            }
        }