public IEnumerable <Order> GetExecuted(string token) //not implemented in angular { //Returns all pending (Open or new) orders for this PM. string pmid = t.Decode(token); PortfolioManager P = new PortfolioManager(db); return(P.ViewExecutedOrders(pmid)); }
// GET: api/PortfolioManager public IEnumerable <Order> GetPending(string token) //done { //Returns all pending (Open or new) orders for this PM. string pmid = t.Decode(token); PortfolioManager P = new PortfolioManager(db); return(P.ViewPendingOrders(pmid)); }
public IEnumerable <Portfolio> GetPortfolios(string token)//done { string pmid = t.Decode(token); PortfolioManager P = new PortfolioManager(db); return(P.GetPortfolios(pmid)); }
public RepositoryManager( IMonitor monitor, ManagingBaskets.BasketManager basketManager, ManagingTargetingTypes.TargetingTypeManager targetingTypeManager, CountryManager countryManager, ManagingTaxonomies.TaxonomyManager taxonomyManager, SecurityManager securityManager, PortfolioManager portfolioManager, ManagingBenchmarks.BenchmarkManager benchmarkManager, ManagingPst.RepositoryManager portfolioSecurityTargerManager, ManagingBpst.BasketSecurityPortfolioTargetRepositoryManager bpstManager, ManagingBpst.TargetingTypeGroupBasketSecurityBaseValueRepositoryManager ttgbsbvrManager, IssuerManager issuerManager ) : base(monitor, countryManager, securityManager, portfolioManager, issuerManager) { this.monitor = monitor; this.taxonomyManager = taxonomyManager; this.targetingTypeManager = targetingTypeManager; this.basketManager = basketManager; this.benchmarkManager = benchmarkManager; this.portfolioSecurityTargerManager = portfolioSecurityTargerManager; this.bpstManager = bpstManager; this.ttgbsbvrManager = ttgbsbvrManager; }
/// <summary> /// Tests an indicator by going through the values of the indicator and checking these values from a static file /// </summary> /// <param name="indicator"></param> /// <param name="filename"></param> /// <param name="targetColumns"></param> /// <param name="valuecheck"></param> public static BacktestResults BacktestStrategy(PortfolioManager portfolio, string filename, Action <BacktestResults, BacktestResults> valuecheck) { //Toreturn BacktestResults actualresults = new BacktestResults(); BacktestResults expectedresults = new BacktestResults(); //Run backtest SimpleBacktester backtester = new SimpleBacktester(portfolio, @"", 0); //Set values actualresults.Result = backtester.Results; actualresults.Orders = backtester.Orders; actualresults.Trades = backtester.Trades; //Check and get file FileInfo file = new FileInfo(Directory.GetCurrentDirectory() + @"\Backtests\ResultFiles\" + filename + ".csv"); bool first = true; if (file.Exists) { expectedresults = JsonConvert.DeserializeObject <BacktestResults>(""); } else { throw new Exception("Could not get results file, file does not exist"); } //Check for realized and expected results valuecheck.Invoke(actualresults, expectedresults); return(null); }
public void processAlertResponse(string alertID, responseCodes alertResponseCode, string alertResponse) { ILog log = Logger; log.DebugFormat("Alert generated: {0} {1}", alertID, alertResponse); TraderContext db = DbContext; Guid alertGuid = Guid.Parse(alertID); Alert alert = db.Alerts.Where(x => x.AlertId == alertGuid).FirstOrDefault(); if (alert == null) { log.WarnFormat("Alert not found: {0}", alertID); return; } alert.ResponseCode = alertResponseCode; alert.Response = alertResponse; db.SaveChanges(); if (alert.ResponseCode == responseCodes.Accept) { PortfolioManager pm = new PortfolioManager(); pm.LoadSettings(); if (alert.Type == tradeTypes.Buy) { pm.buy(alert.Symbol.name, alert.Quantity); } else { pm.sell(alert.Symbol.name, alert.Quantity); } } db.Dispose(); }
public List <Portfolio> GetPortfolio([FromBody] Portfolio.GetRequest request) { PortfolioManager portfolioManager = new PortfolioManager(); List <Portfolio> portfolios = portfolioManager.GetPortfolios(request); return(portfolios); }
public void CalculateReturns() { var portfolio = new Portfolio(); portfolio.Entries.Add(new Portfolio.Stock { Symbol = "S1", Qty = 5, BuyingPrice = 2.0m, CurrentPrice = 4.0m }); portfolio.Entries.Add(new Portfolio.Stock { Symbol = "S2", Qty = 10, BuyingPrice = 11.0m, CurrentPrice = 16.0m }); var result = PortfolioManager.CalculateReturns(portfolio); Assert.Equal(10.0m, result.Returns["S1"].Return); Assert.Equal(1.0m, result.Returns["S1"].RateOfReturn); Assert.Equal(50.0m, result.Returns["S2"].Return); Assert.Equal(0.45m, result.Returns["S2"].RateOfReturn, 2); Assert.Equal(60.0m, result.TotalReturn); Assert.Equal(0.5m, result.TotalRateOfReturn); }
public List <TradeRecommendation> GetDefaultDashboard() { PortfolioManager portfolioManager = new PortfolioManager(); List <TradeRecommendation> recommendations = portfolioManager.GetDefaultDashboard().Result; return(recommendations); }
public virtual void Initialize() { PreValidate(); InstrumentManager.InstrumentKeys = InstrumentKeys; InstrumentManager.Initialize(); PortfolioManager.Initialize(); Strategy.Context = this; Strategy.Initialize(); EventSources = EventSources.Union(new[] { TradingEngine }).ToArray(); foreach (var eventSource in EventSources) { eventSource.InstrumentKeys = InstrumentKeys; eventSource.FromTime = FromTime; eventSource.ToTime = ToTime; eventSource.Initialize(); eventSource.NewEvent += (sender, e) => Strategy.EventEngine.SendEvent(e.Event); } TradingEngine.Initialize(); PostValidate(); }
public void BuyAlert(string symbolName, int quantity, double price) { PortfolioManager pm = new PortfolioManager(); IUserAgent ua = new UserAgent(); ua.generateAlert(symbolName, tradeTypes.Buy, pm.DefaultBuySize(price), price); }
private Message GetMessage() { var errorMessage = ""; Portfolio portfolio = null; if (!Password.Equals(ConfirmPassword)) { errorMessage = "Passwords do not match"; } else if (PortfolioManager.Portfolios.Any(p => p.Value.Username.Equals(Username))) { errorMessage = "A portfolio with that name already exists."; } else if (!PortfolioManager.TryToCreate(Username, Password, out portfolio)) { errorMessage = "Broker could not create portfolio."; } if (!string.IsNullOrEmpty(errorMessage)) { var errormessage = MessageFactory.GetMessage <ErrorMessage>(Config.GetInt(Config.BROKER_PROCESS_NUM), 0) as ErrorMessage; errormessage.ErrorText = errorMessage; errormessage.ConversationID = Conversation.Id; errormessage.ReferenceMessageID = this.MessageId; return(errormessage); } var message = MessageFactory.GetMessage <PortfolioUpdateMessage>(Config.GetInt(Config.BROKER_PROCESS_NUM), 0) as PortfolioUpdateMessage; message.ConversationID = Conversation.Id; message.PortfolioID = portfolio.PortfolioID; message.Assets = portfolio.CloneAssets(); return(message); }
public PortfolioQueryResult Handle(PortfolioQuery query) { var portfolio = _repo.Load(); var portfolioReturns = PortfolioManager.CalculateReturns(portfolio); return(Result()); PortfolioQueryResult Result() { return(new PortfolioQueryResult { PortfolioValue = portfolio.Entries.Sum(e => e.Qty * e.CurrentPrice), PortfolioRateOfReturn = portfolioReturns.TotalRateOfReturn, Stocks = portfolio.Entries.Select(Map).ToArray() }); PortfolioQueryResult.StockInfo Map(Portfolio.Stock e) => new PortfolioQueryResult.StockInfo { Name = e.Name, Symbol = e.Symbol, Currency = e.Currency, Qty = e.Qty, BuyingPrice = e.BuyingPrice, CurrentPrice = e.CurrentPrice, BuyingValue = e.Qty * e.BuyingPrice, CurrentValue = e.Qty * e.CurrentPrice, Return = portfolioReturns.Returns[e.Symbol].Return, RateOfReturn = portfolioReturns.Returns[e.Symbol].RateOfReturn }; } }
public void Setup() { _instrumentDictionary = new SpotInstrumentDictionaryMock(); _instrumentDictionary.Data.Add("BTCUSD", new SpotInstrument() { Symbol = "BTCUSD", BaseAsset = "BTC", QuoteAsset = "USD", BrokerId = "broker" }); _repository = new PortfolioRepositoryMock(); _portfolioReport = new PortfolioReportMock(); _loggerFactory = LoggerFactory.Create(builder => builder.AddSimpleConsole(options => { options.IncludeScopes = true; options.SingleLine = true; options.TimestampFormat = "hh:mm:ss "; })); _manager = new PortfolioManager( _loggerFactory.CreateLogger <PortfolioManager>(), _repository, _instrumentDictionary, _portfolioReport ); }
public List <TradeRecommendation> GetTradeRecommendation(Guid portfolioGuid, [FromBody] TradeRecommendation.GetRequest request) { PortfolioManager portfolioManager = new PortfolioManager(); List <TradeRecommendation> recommendations = portfolioManager.GetTradeRecommendation(portfolioGuid, request); return(recommendations); }
public Guid CreatePortfolio([FromBody] Portfolio.CreateRequest request) { PortfolioManager portfolioManager = new PortfolioManager(); Guid portfolioGuid = portfolioManager.CreatePortfolio(request); return(portfolioGuid); }
public void SellAlert(string symbolName, double price) { IPortfolioManager pm = new PortfolioManager(); PositionMessage pos = pm.GetPosition(symbolName); UserAgent ua = new UserAgent(); ua.generateAlert(symbolName, tradeTypes.Sell, pos.Quantity, price); }
private void btnClearPortfolioDB_Click(object sender, EventArgs e) { if (MessageBox.Show("警告!是否确定要清空投资组合数据库?", "警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) { PortfolioManager manager = new PortfolioManager(); int count = manager.DeleteAll(); MessageBox.Show(string.Format("Done! Deteled {0} lines.", count)); } }
public void AddPortfolioFailTest() { PortfolioManager.TryToCreate(DataGenerator.GetRandomString(3), DataGenerator.GetRandomString(6), out Portfolio portfolio); Assert.IsFalse(PortfolioManager.TryToCreate(portfolio.Username, DataGenerator.GetRandomString(6), out Portfolio newPortfolio)); Assert.IsNull(newPortfolio); PortfolioManager.TryToRemove(portfolio.PortfolioID); }
public void RemovePortfolioSuccessTest() { PortfolioManager.TryToCreate(DataGenerator.GetRandomString(3), DataGenerator.GetRandomString(6), out Portfolio portfolio); var count = PortfolioManager.Portfolios.Count; var id = portfolio.PortfolioID; Assert.IsTrue(PortfolioManager.TryToRemove(id)); Assert.AreEqual(count - 1, PortfolioManager.Portfolios.Count); }
/// <summary> /// Tests an indicator by going through the values of the indicator and checking these values from a static file /// </summary> /// <param name="indicator"></param> /// <param name="filename"></param> /// <param name="targetColumns"></param> /// <param name="valuecheck"></param> public static Result BacktestStrategy(PortfolioManager portfolio, string filename) { //Run backtest //LocalBacktester backtester = new LocalBacktester(portfolio, @"", 0); //Check and get file FileInfo file = new FileInfo(Directory.GetCurrentDirectory() + @"\Backtests\ResultFiles\" + filename + ".csv"); return(null); }
public void RemovePortfolioFailTest() { PortfolioManager.TryToCreate(DataGenerator.GetRandomString(3), DataGenerator.GetRandomString(6), out Portfolio portfolio); var count = PortfolioManager.Portfolios.Count; Assert.IsFalse(PortfolioManager.TryToRemove(portfolio.PortfolioID + 123)); Assert.AreEqual(count, PortfolioManager.Portfolios.Count); PortfolioManager.TryToRemove(portfolio.PortfolioID); }
public void TestCleanup() { ConversationManager.Stop(); ComService.RemoveClient(Config.DEFAULT_UDP_CLIENT); foreach (Portfolio p in PortfolioManager.Portfolios.Values) { PortfolioManager.TryToRemove(p.PortfolioID); } Assert.IsTrue(PortfolioManager.Portfolios.Count == 0); }
public void SendOrder(IEnumerable <int> list = null) { if (list != null) { PortfolioManager P = new PortfolioManager(db); P.SendToTrader(list); } else { throw new ProcessException("Null List passed"); } }
public IEnumerable <Order> GetExecuted(string id = null) {//Returns all pending (Open or new) orders for this PM. if (id != null) { PortfolioManager P = new PortfolioManager(db); return(P.ViewExecutedOrders(id)); } else { throw new ProcessException("ID is null"); } }
public void SetPortfolio(PortfolioManager portfolio) { LocalLog(LogLevel.Debug, "Setting agent portfolio to portfolio with id {0}", portfolio.Id); if (_portfolio == null) { _portfolio = portfolio; } else { LocalLog(LogLevel.Warn, "Could not set new portfolio (with id {0}) to agent, portfolio was already set to {1}", portfolio.Id, Portfolio.Id); } }
public IEnumerable <Portfolio> GetPortfolios(string pmid = null) { if (pmid != null) { PortfolioManager P = new PortfolioManager(db); return(P.GetPortfolios(pmid)); } else { throw new ProcessException("ID is null"); } }
public void CreateOrder([FromBody] Order O = null) { if (O != null) { PortfolioManager P = new PortfolioManager(db); P.Add(O); } else { throw new ProcessException("Order contains null attribute"); } }
public void LoadSettingsFromDb() { PortfolioManager pm = new PortfolioManager(); pm.LoadSettings(); PortfolioRule r = pm.Rules.FirstOrDefault <PortfolioRule>(x => typeof(AllocationRule).IsInstanceOfType(x)); Assert.IsNotNull(r); AllocationRule a = (AllocationRule)r; Assert.AreEqual(0.9, a.MaxAllocation); }
public void DeleteOrders(IEnumerable <int> list = null) { if (list != null) { PortfolioManager P = new PortfolioManager(db); P.DeleteOrders(list); } else { throw new ProcessException("Null List passed"); } }