private boolean formulaOK(Stock stock, ArrayList<EconomicIndicator> indicatorsTest,
			ArrayList<Double> formula) {
		
		 //Will all indicators very high result in an unusable price?
        double calcPrice = 0;
        for (int i = 0; i < indicators.size(); i++){
                calcPrice += indicatorsMin.get(i) * formula.get(i);
        }
        if(calcPrice > STOCK_MAX_PRICE || calcPrice < STOCK_MIN_PRICE) return false;
        
        //Will all indicators very low result in an unusable price?
        calcPrice = 0;
        for (int i = 0; i < indicators.size(); i++){
                calcPrice += indicatorsMax.get(i) * formula.get(i);
        }
        if(calcPrice > STOCK_MAX_PRICE || calcPrice < STOCK_MIN_PRICE) return false;
        
		//run through the formula and see if at any point the price goes outside the limits
		ArrayList <EconomicIndicator> testindicators = copyIndicaotrs(indicators);
		for (int i = 1; i < MAX_ROUNDS*2; i++){
			updateIndicatorsTrend(i, testindicators);
			stock.updatePrice(i, calculateBasicStockPrice(stock, testindicators, formula));
			if(stock.currentPrice() >= STOCK_MAX_PRICE || stock.currentPrice() <= (STOCK_MIN_PRICE)){
				return false;
			}
		}	
		return true;
	}