//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);
 }