コード例 #1
0
ファイル: AppManager.cs プロジェクト: avneraz/RoboTrader
        private void BuildManagers()
        {
            AccountManager = new AccountManager(APIWrapper);

            ManagedSecuritiesManager = new ManagedSecuritiesManager(APIWrapper);
            List <ManagedSecurity> activeUNLList;

            UNLManagerDic = new Dictionary <string, SimpleBaseLogic>();
            using (var session = DBSessionFactory.Instance.OpenSession())
            {
                activeUNLList = session.Query <ManagedSecurity>()
                                .Where(contract => contract.IsActive && contract.OptionChain).ToList();
            }
            foreach (var managedSecurity in activeUNLList)
            {
                var unlManager = new UNLManager(managedSecurity, APIWrapper, Distributer);
                UNLManagerDic.Add(managedSecurity.Symbol, unlManager);
                unlManager.PositionNeedToOptimized += UNLManagerOnPositionNeedToOptimized;
            }
            MarginManager = new MarginManager();

            DbWriter = new DBWriter(Configurations.Application.DBWritePeriod);
            Distributer.SetManagers(UNLManagerDic, AccountManager, ManagedSecuritiesManager, DbWriter, MarginManager);
            //UIDataManager = new UIDataManager();
        }
コード例 #2
0
        public void CloseAllUnlPositions(UNLManager unlManager)
        {
            var positionList = unlManager.PositionsDataBuilder.PositionDataDic.Values;

            foreach (OptionsPositionData positionData in positionList)
            {
                unlManager.OrdersManager.BuyOption(positionData.OptionData, positionData.Position);
            }
        }
コード例 #3
0
ファイル: AppManager.cs プロジェクト: avneraz/RoboTrader
        /// <summary>
        /// Called when the application ready for connect to the broker.<para></para>
        /// The broker server must be up (TWS or other.)
        /// </summary>
        public void ConnectToBroker()
        {
            BuildManagers();
            StartManagers();
            APIWrapper.ConnectToBroker();
            UNLManager unlM = UNLManagerDic.Values.FirstOrDefault() as UNLManager;

            Debug.Assert(unlM != null, "UNLManager is null");
            unlM.SendTradingTimeEvent += TradingManager_SendTradingTimeEvent;
            Logger.InfoFormat("AppManager up! ");
        }
コード例 #4
0
ファイル: AppManager.cs プロジェクト: avneraz/RoboTrader
 private void UNLManagerOnPositionNeedToOptimized(UNLManager manager)
 {
     OnPositionNeedToOptimized($"UNL {manager.Symbol} ==> Position need to be optimimized");
 }