Thanks everyone for the suggestions.

I've found that the problem lay not with the account leverage, but with the OptimalF values assigned to the various assets during training. I made the mistake of training the strategy with capital reinvestment enabled, and this gave OptimalF values that were far to high (approximately one order of magnitude greater in most cases). When I trained the strategy with no re-investment, I got more sensible OptimalF values.

I get a sense of why this is the case, but if someone can offer a succinct explanation I'd be most appreciative!

This leads me to another potential problem:

If I have a strategy that I am trading, but want to re-train at regular intervals, how could I exclude capital reinvestment from the re-training process so as not to distort the OptimalF values? I'm thinking something like

if (not(Retrain))
Margin = OptF * Capital * sqrt(1 + ProfitClosed/Capital);

Sound correct?