private void StopTrading() { Strategy?.Stop(); Strategy = null; MarketTerminal?.Close(); MarketTerminal = null; MarketListBox.IsEnabled = true; }
public void AddDaily(StockEntity daily) { if (daily.Percent < -11) { return; } _percent = _percent * (1 + daily.Percent.GetValueOrDefault() / 100); var vector = TradeStrategy.AddDaily(daily); Trader.Trade(this, daily, vector); }
private void StartTrading() { // Setup Market API OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.DefaultExt = ".txt"; fileDialog.Filter = "Text documents (.txt)|*.txt"; var result = fileDialog.ShowDialog(); if (result == true) { MarketKeyFile = fileDialog.FileName; } else { StartButton.IsChecked = false; return; } MarketTerminal = CreateMarketAPI(); if (MarketTerminal == null) { StartButton.IsChecked = false; return; } StartButton.IsEnabled = false; new Thread(new ThreadStart(delegate { while (!MarketTerminal.IsReady()) { ; } // Setup Trade Strategy Strategy = new ModifiedMR(MarketTerminal, TimeSpan.FromMinutes(15), TimePeriod.ONE_HOUR, 48, StrategyStatistics); Strategy.Start(true); App.Current.Dispatcher.Invoke(delegate { StartButton.IsEnabled = true; }); })).Start(); MarketListBox.IsEnabled = false; }
public TradeStrategyCreatedDomainEvent(TradeStrategy tradeStrategy) { TradeStrategy = tradeStrategy; }
public async Task <IEnumerable <TradeAccount> > GetTradeAccounts(int pId) { try { using (MySqlConnection connection = Connection) { string sQuery = "SELECT ta.Id, ta.Title, ta.Description, ta.Amount, ta.Profit, ta.Loss, ta.Net, ta.NumTrades, ta.NumSTrades, ta.NumFTrades, ta.Invested, ta.Cash, ta.DateCreated, ta.DateModified FROM TradeAccount ta, Portfolio p WHERE p.Id = ta.Portfolio and p.Id = @id"; var @param = new { id = pId }; connection.Open(); var tas = await connection.QueryAsync <TradeAccount>(sQuery, @param); // Assign prefferences for each trade account foreach (TradeAccount t in tas) { // get preference Id var prefIdQ = "SELECT Preference FROM TradeAccount WHERE Id = @id"; var @prefIdParam = new { id = t.Id }; int prefID = await connection.QueryFirstOrDefaultAsync <int>(prefIdQ, @prefIdParam); // get risk level id var riskIdQ = "SELECT RiskLevel FROM Preference WHERE Id = @pId"; var @riskIdParam = new { pId = prefID }; int riskId = await connection.QueryFirstOrDefaultAsync <int>(riskIdQ, @riskIdParam); // get risk level var riskQ = "SELECT Id, Risk, DateAdded FROM RiskLevels WHERE Id = @rId"; var @riskParam = new { rId = riskId }; RiskLevel riskLevel = await connection.QueryFirstOrDefaultAsync <RiskLevel>(riskQ, @riskParam); // get strat id var stratIdQ = "SELECT TradeStrategy FROM Preference WHERE Id = @pId"; var @stratIdParam = new { pId = prefID }; int stratId = await connection.QueryFirstOrDefaultAsync <int>(stratIdQ, @stratIdParam); // get trade strat var stratQ = "SELECT Id, BlueChip, LongTerm, Swing, Scalp, Day FROM TradeStrategies WHERE Id = @sId"; var @stratParam = new { sId = stratId }; TradeStrategy strategy = await connection.QueryFirstOrDefaultAsync <TradeStrategy>(stratQ, @stratParam); // get sector id var secIdQ = "SELECT Sector FROM Preference WHERE Id = @pId"; var @secIdParam = new { pId = prefID }; int secId = await connection.QueryFirstOrDefaultAsync <int>(secIdQ, @secIdParam); // get sector var secQ = "SELECT Id, InformationTechnology, HealthCare, Financials, ConsumerDiscretionary, Communication, Industrials, ConsumerStaples, Energy, Utilities, RealEstate, Materials FROM Sectors WHERE Id = @secId"; var @secParam = new { secId = secId }; Sector sector = await connection.QueryFirstOrDefaultAsync <Sector>(secQ, @secParam); // get preference var prefQ = "SELECT Id, CapitalToRisk FROM Preference WHERE Id = @pId"; var @prefParam = new { pId = prefID }; t.Preference = await connection.QueryFirstOrDefaultAsync <Preference>(prefQ, @prefParam); t.Preference.RiskLevel = riskLevel; t.Preference.TradeStrategy = strategy; t.Preference.Sector = sector; } return(tas.ToList()); } } catch (Exception err) { Console.WriteLine(TAG + err); return(null); } }
public async Task <TradeAccount> GetTradeAccount(int?tId) { try { using (MySqlConnection connection = Connection) { string sQuery = "SELECT Id, Title, Description, Amount, Profit, Loss, Net, NumTrades, NumSTrades, NumFTrades, Invested, Cash, DateCreated, DateModified FROM TradeAccount ta WHERE ta.Id = @id"; var @param = new { id = tId }; connection.Open(); TradeAccount ta = await connection.QueryFirstOrDefaultAsync <TradeAccount>(sQuery, @param); // get preference Id var prefIdQ = "SELECT Preference FROM TradeAccount WHERE Id = @id"; var @prefIdParam = new { id = tId }; int prefID = await connection.QueryFirstOrDefaultAsync <int>(prefIdQ, @prefIdParam); // get risk level id var riskIdQ = "SELECT RiskLevel FROM Preference WHERE Id = @pId"; var @riskIdParam = new { pId = prefID }; int riskId = await connection.QueryFirstOrDefaultAsync <int>(riskIdQ, @riskIdParam); // get risk level var riskQ = "SELECT Id, Risk, DateAdded FROM RiskLevels WHERE Id = @rId"; var @riskParam = new { rId = riskId }; RiskLevel riskLevel = await connection.QueryFirstOrDefaultAsync <RiskLevel>(riskQ, @riskParam); // get strat id var stratIdQ = "SELECT TradeStrategy FROM Preference WHERE Id = @pId"; var @stratIdParam = new { pId = prefID }; int stratId = await connection.QueryFirstOrDefaultAsync <int>(stratIdQ, @stratIdParam); // get trade strat var stratQ = "SELECT Id, BlueChip, LongTerm, Swing, Scalp, Day FROM TradeStrategies WHERE Id = @sId"; var @stratParam = new { sId = stratId }; TradeStrategy strategy = await connection.QueryFirstOrDefaultAsync <TradeStrategy>(stratQ, @stratParam); // get sector id var secIdQ = "SELECT Sector FROM Preference WHERE Id = @pId"; var @secIdParam = new { pId = prefID }; int secId = await connection.QueryFirstOrDefaultAsync <int>(secIdQ, @secIdParam); // get sector var secQ = "SELECT Id, InformationTechnology, HealthCare, Financials, ConsumerDiscretionary, Communication, Industrials, ConsumerStaples, Energy, Utilities, RealEstate, Materials FROM Sectors WHERE Id = @secId"; var @secParam = new { secId = secId }; Sector sector = await connection.QueryFirstOrDefaultAsync <Sector>(secQ, @secParam); // get preference var prefQ = "SELECT Id, CapitalToRisk FROM Preference WHERE Id = @pId"; var @prefParam = new { pId = prefID }; ta.Preference = await connection.QueryFirstOrDefaultAsync <Preference>(prefQ, @prefParam); ta.Preference.RiskLevel = riskLevel; ta.Preference.TradeStrategy = strategy; ta.Preference.Sector = sector; // get portfolio id var portIdQ = "SELECT Portfolio FROM TradeAccount WHERE Id = @tId"; var @portIdParam = new { tId = ta.Id }; int _portId = await connection.QueryFirstOrDefaultAsync <int>(portIdQ, @portIdParam); // get portfolio var portQ = "SELECT Id, Amount, Profit, Loss, Net, Invested, Cash FROM Portfolio WHERE Id = @portId"; var @portParam = new { portId = _portId }; Portfolio port = await connection.QueryFirstOrDefaultAsync <Portfolio>(portQ, @portParam); ta.Portfolio = port; return(ta); } } catch (Exception err) { Console.WriteLine(TAG + err); return(null); } }