void ChangeNumericParameters(BackgroundWorker worker)
{
bool isDoAgain;
int repeats = 0;
do
{
isDoAgain = repeats < 4;
repeats++;
for (int slot = 0; slot < Data.Strategy.Slots; slot++)
{
if (Data.Strategy.Slot[slot].SlotStatus == StrategySlotStatus.Locked) continue;
if (worker.CancellationPending) break;
GenerateIndicatorParameters(slot);
RecalculateSlots();
isDoAgain = CalculateTheResult(false);
if (!isDoAgain)
RestoreFromBest();
}
} while (isDoAgain);
}