Forex_Strategy_Builder.Dialogs.Generator.Generator.PerformInitialOptimization C# (CSharp) Method

PerformInitialOptimization() private method

Initial Optimization
private PerformInitialOptimization ( BackgroundWorker worker, bool isBetter ) : void
worker System.ComponentModel.BackgroundWorker
isBetter bool
return void
        void PerformInitialOptimization(BackgroundWorker worker, bool isBetter)
        {
            bool secondChance = (random.Next(100) < 10 && Backtester.NetBalance > 500);
            int maxCycles = isBetter ? 3 : 1;

            if (isBetter || secondChance)
            {
                for (int cycle = 0; cycle < maxCycles; cycle++)
                {
                    // Change parameters
                    ChangeNumericParameters(worker);

                    // Change Permanent Stop Loss
                    ChangePermanentSL(worker);

                    // Change Permanent Take Profit
                    ChangePermanentTP(worker);

                }

                // Remove needless filters
                RemoveNeedlessFilters(worker);

                // Tries to clear the Same / Opposite Signals
                NormalizeSameOppositeSignalBehaviour(worker);

                // Remove Permanent Stop Loss
                if (!chbPreservPermSL.Checked && strategyBest.PropertiesStatus == StrategySlotStatus.Open && Data.Strategy.UsePermanentSL && !worker.CancellationPending)
                    RemovePermanentSL();

                // Remove Permanent Take Profit
                if (!chbPreservPermTP.Checked && strategyBest.PropertiesStatus == StrategySlotStatus.Open && Data.Strategy.UsePermanentTP && !worker.CancellationPending)
                    RemovePermanentTP(worker);

                // Reduce the value of numeric parameters
                if (!chbUseDefaultIndicatorValues.Checked)
                    ReduceTheValuesOfNumericParams(worker);
               }
        }