Well, I've solved this with a bit of a hack, by editing the objective() function in default.c and calling in the value from there. For some reason it seems that Zorro wasn't using the value returned from the objective() function in my run() file.

I'd still like to get this working properly if possible, so I'd appreciate any suggestions you can offer.


Code:
var objective()
{
	if(IS_BINARY_TEST == 1)
	{
		return getPL();
	}
	else
	{
		if(!NumWinTotal && !NumLossTotal) return 0.;
		var wFac = 1./sqrt(1.+NumWinTotal); 
		var lFac = 1./sqrt(1.+NumLossTotal);
		var win = WinTotal, loss = LossTotal;
		// remove single outliers
		if(NumWinTotal > 2) win -= (NumWinTotal-2)*WinMaxTotal/NumWinTotal;
		if(NumLossTotal > 2) loss -= (NumLossTotal-2)*LossMaxTotal/NumLossTotal;
		// return PRR
		return (1.-wFac)/(1.+lFac)*(1.+win)/(1.+loss);
	}
}