//Called by AlgoTraderManager public override void RunTurn() { //Grab all the trades since last turn string s = "SELECT Price FROM Trades WHERE Time > '" + LastTurn.ToString("yyyy-MM-dd HH:mm:ss") + "' AND StockName = '" + TargetStock + "'"; MySqlDataReader reader = threadDataBaseHandler.GetData(s); List <double> Trades = new List <double>(); while (reader.Read()) { Trades.Add((double)reader["Price"]); } threadDataBaseHandler.CloseCon(); if (Trades.Count == 0) { return; } //Turn the trades into a stock turn and it into the list StockTurns.Add(new StockTurn(Trades)); //Create a short term stance CreateNewStance(true); if (StockTurns.Count >= 150) { StockTurns.RemoveAt(0); } foreach (MarketStance MS in stances) { MS.RunTurn(); } stances.RemoveAll((MarketStance ms) => ms.isCompleted); LastTurn = DateTime.Now; threadDataBaseHandler.CloseCon(); }
public void RunTurn(List <Trade> Trades) { if (Trades.Count == 0) { return; } StockTurns.Add(new StockTurn(Trades)); CreateNewStance(true); if (StockTurns.Count >= 150) { StockTurns.RemoveAt(0); } foreach (MarketStance MS in stances) { MS.RunTurn(); } stances.RemoveAll((MarketStance ms) => ms.isCompleted); }