Thanks for this info about "degrees of freedom" jcl. I never looked at it that way before but it makes sense and gives a good rule-of-thumb I think.
Another way to increase # of trades is to reduce the BarPeriod/TimeFrame. That is one reason I've chosen to focus on smaller timeframes, even though I know they may be overall less profitable. I think it is also a balance of risk, because while higher timeframes may equate to better profit and accuracy, it may also increase risk by holding positions open longer. I would prefer to take profit off the table in smaller increments, repeatedly.
@ibra here is a code snippet that I use that warns you when your script produces less than the desired # of trades, and will stop training your script in that case:
function checkTradesPerCycle()
{
//require minimum 30 trades per WFO cycle or stop training
static int LastWFOCycle = 0, LastNumTrades = 0;
if(Train && (WFOCycle != LastWFOCycle) )
{
if(LastNumTrades > 0 and LastNumTrades < 30)
{
char tradecount[100];
sprintf(tradecount,"Not enough trades per cycle: %d",LastNumTrades);
quit(tradecount);
}
LastWFOCycle = WFOCycle;
}
LastNumTrades = NumWinTotal+NumLossTotal;
}