Ok, I've worked it out. You don't get the optimisation charts if you are training more than one instrument.

Here is the script with all parameters optimised. This is probably over optimised but it comes out with 162% 15757 pips/yr.

Code:
function run() 
{
	set(PARAMETERS);
	BarPeriod = 1440;
	LookBack = 500;
	
	while(asset(loop("AUD/USD","EUR/USD","GBP/USD","GER30","NAS100","SPX500","UK100","UKOil","US30","USD/CAD","USD/CHF","USD/JPY","USDOLLAR","USOil","XAG/USD","XAU/USD")))
	
	{
	var *ClosePrice = series(priceClose());
	var ccilength = optimize(20,5,200,5,0);
	var cciextreme = optimize(100,50,250,25,0);
	var cciextremen = (cciextreme*-1);
	var profatr = optimize(3,1,5,0.5,0);
	var *cci = series(CCI(ccilength));
	var stopatr = optimize(1,0.5,5,0.5,0);	
	
	Stop = stopatr*ATR(20);
	Profit = profatr*ATR(20);
	
	if(cci[1] > cciextreme && cci[0] < cciextreme)
	    enterShort();
	if(cci[1] < cciextremen && cci[0] > cciextremen)   
	    enterLong();
   }
}



Does this optimise all parameters for each instrument seperately? I think it would be best to run the optimisation on one pair and then use the optimal settings for all pairs. This would be more robust and less curve fitted.