OK - by a process of elimination, I have located the problem to the parameter definition:
[Parameter("Minutes between trades", DefaultValue = 0, MinValue = 1, Step = 1, Group = "Cycle Settings")]
public int MinutesBetweenTrades { get; set; }
If I comment out the attribute specification, it works fine, but with it, the run button greys out.