@Override
	public void run() {
		try{
			while(true){
				Thread.sleep(waitTime);
				int newScore = 0;
				if(MarketUtils.IsMarketOpen){
					for(Stock stock : watched){
						stock.update();
						newScore = 0;
						for(Strategy strategy : strategyProfile){
							newScore += strategy.evaluate(stock);
						}
						//If we ever make 15% on a stock, take it. --> 
						//we can never make more then 15k at a time -- this is OK for now
						if(stock.price > account.getPurchaseValue(stock) * 1.15){
							account.sellAllStock(stock);
							scores.put(stock, 0);
						}
						//NOT SURE WE WANT OT DO THIS, currently it just owns score*100000 dollars
						//worth of stock, if score < 0, then it sells everything.
						if(newScore < 0 ){
							account.sellAllStock(stock);
							scores.put(stock, newScore);
						}
						else if(newScore > scores.get(stock)){
							account.buyStock(stock, (10000 * (newScore - scores.get(stock)) / stock.price));
							scores.put(stock, newScore);
						}
						else if(newScore < scores.get(stock)) {
							account.sellStock(stock, (5000 * (0-newScore + scores.get(stock)) / stock.price));
						}

						System.out.print(stock.ticker + ": " + stock.price + " : " + newScore + " | ");
					}
					System.out.println();
				}
				
			}
		} catch (Exception e ){
			LoggingUtils.LogToFile(name, "Shit went down, lost a trader :(");
		}
		
	}