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(); }
public void CloseAllUnlPositions(UNLManager unlManager) { var positionList = unlManager.PositionsDataBuilder.PositionDataDic.Values; foreach (OptionsPositionData positionData in positionList) { unlManager.OrdersManager.BuyOption(positionData.OptionData, positionData.Position); } }
/// <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! "); }
private void UNLManagerOnPositionNeedToOptimized(UNLManager manager) { OnPositionNeedToOptimized($"UNL {manager.Symbol} ==> Position need to be optimimized"); }