/// <summary>
        ///     Initializes main controls of optimizer.
        /// </summary>
        private void InitializeControls()
        {
            pnlParamsBase    = new Panel();
            pnlParamsBase2   = new Panel();
            pnlCaptions      = new Panel();
            pnlParams        = new Panel();
            pnlCriteriaBase  = new FancyPanel(Language.T("Acceptance Criteria"));
            criteriaPanel    = new ScrollFlowPanel();
            criteriaControls = new CriteriaControls();
            pnlSettings      = new FancyPanel(Language.T("Settings"));
            scrollBar        = new VScrollBar();
            balanceChart     = new SmallBalanceChart();
            progressBar      = new ProgressBar();
            btnOptimize      = new Button();
            btnAccept        = new Button();
            btnCancel        = new Button();

            lblNoParams = new Label();

            fontIndicator = new Font(Font.FontFamily, 11);
            colorText     = LayoutColors.ColorControlText;

            // Panel Parameters Base
            pnlParamsBase.Parent    = this;
            pnlParamsBase.BackColor = LayoutColors.ColorControlBack;
            pnlParamsBase.Paint    += PnlParamsBasePaint;

            // Panel Captions
            pnlCaptions.Parent    = pnlParamsBase;
            pnlCaptions.Dock      = DockStyle.Top;
            pnlCaptions.BackColor = LayoutColors.ColorCaptionBack;
            pnlCaptions.ForeColor = LayoutColors.ColorCaptionText;
            pnlCaptions.Paint    += PnlCaptionsPaint;

            // Panel Parameters Base 2
            pnlParamsBase2.Parent    = pnlParamsBase;
            pnlParamsBase2.BackColor = LayoutColors.ColorControlBack;
            pnlParamsBase2.Resize   += PnlParamsBase2Resize;

            // ScrollBar
            scrollBar.Parent        = pnlParamsBase2;
            scrollBar.Dock          = DockStyle.Right;
            scrollBar.TabStop       = true;
            scrollBar.ValueChanged += ScrollBarValueChanged;
            scrollBar.MouseWheel   += ScrollBarMouseWheel;

            // Panel Parameters
            pnlParams.Parent    = pnlParamsBase2;
            pnlParams.BackColor = LayoutColors.ColorControlBack;

            // Label No Parameters
            lblNoParams.Parent   = pnlParams;
            lblNoParams.Text     = Language.T("There are no parameters suitable for optimization.");
            lblNoParams.AutoSize = true;
            lblNoParams.Visible  = false;

            // Panel Limitations
            pnlCriteriaBase.Parent  = this;
            pnlCriteriaBase.Visible = false;

            // Panel Settings
            pnlSettings.Parent  = this;
            pnlSettings.Visible = false;

            // Small Balance Chart
            balanceChart.Parent    = this;
            balanceChart.BackColor = LayoutColors.ColorControlBack;
            balanceChart.SetChartData();

            // ProgressBar
            progressBar.Parent  = this;
            progressBar.Minimum = 1;
            progressBar.Maximum = 100;
            progressBar.Step    = 1;

            // Button Optimize
            btnOptimize.Parent   = this;
            btnOptimize.Name     = "btnOptimize";
            btnOptimize.Text     = Language.T("Optimize");
            btnOptimize.TabIndex = 0;
            btnOptimize.Click   += BtnOptimizeClick;
            btnOptimize.UseVisualStyleBackColor = true;

            // Button Accept
            btnAccept.Parent                  = this;
            btnAccept.Name                    = "btnAccept";
            btnAccept.Text                    = Language.T("Accept");
            btnAccept.TabIndex                = 1;
            btnAccept.Enabled                 = false;
            btnAccept.DialogResult            = DialogResult.OK;
            btnAccept.UseVisualStyleBackColor = true;

            // Button Cancel
            btnCancel.Parent                  = this;
            btnCancel.Text                    = Language.T("Cancel");
            btnCancel.TabIndex                = 2;
            btnCancel.DialogResult            = DialogResult.Cancel;
            btnCancel.UseVisualStyleBackColor = true;

            // BackGroundWorker
            bgWorker = new BackgroundWorker {
                WorkerReportsProgress = true, WorkerSupportsCancellation = true
            };
            bgWorker.DoWork             += BgWorkerDoWork;
            bgWorker.ProgressChanged    += BgWorkerProgressChanged;
            bgWorker.RunWorkerCompleted += BgWorkerRunWorkerCompleted;
        }
        /// <summary>
        /// Constructor
        /// </summary>
        public JForexImport()
        {
            LblIntro = new Label();
            TxbDataDirectory = new TextBox();
            BtnBrowse = new Button();
            PnlSettings = new FancyPanel();
            PnlInfoBase = new FancyPanel(Language.T("Imported Files"));
            TbxInfo = new TextBox();
            BtnHelp = new Button();
            BtnClose = new Button();
            BtnImport = new Button();
            ProgressBar = new ProgressBar();

            LblMarketClose = new Label();
            LblMarketOpen = new Label();
            NUDMarketClose = new NumericUpDown();
            NUDMarketOpen = new NumericUpDown();

            _colorText = LayoutColors.ColorControlText;

            MaximizeBox = false;
            MinimizeBox = false;
            ShowInTaskbar = false;
            Icon = Data.Icon;
            FormBorderStyle = FormBorderStyle.FixedDialog;
            AcceptButton = BtnImport;
            CancelButton = BtnClose;
            Text = Language.T("JForex Import");

            // Label Intro
            LblIntro.Parent = PnlSettings;
            LblIntro.ForeColor = _colorText;
            LblIntro.BackColor = Color.Transparent;
            LblIntro.AutoSize = true;
            LblIntro.Text = Language.T("Directory containing JForex data files:");

            // Data Directory
            TxbDataDirectory.Parent = PnlSettings;
            TxbDataDirectory.BackColor = LayoutColors.ColorControlBack;
            TxbDataDirectory.ForeColor = _colorText;
            TxbDataDirectory.Text = Configs.JForexDataPath;

            // Button Browse
            BtnBrowse.Parent = PnlSettings;
            BtnBrowse.Name = "Browse";
            BtnBrowse.Text = Language.T("Browse");
            BtnBrowse.Click += BtnBrowseClick;
            BtnBrowse.UseVisualStyleBackColor = true;

            // Label Market Close
            LblMarketClose.Parent = PnlSettings;
            LblMarketClose.ForeColor = _colorText;
            LblMarketClose.BackColor = Color.Transparent;
            LblMarketClose.AutoSize = true;
            LblMarketClose.Text = Language.T("Market closing hour on Friday:");

            // Label Market Open
            LblMarketOpen.Parent = PnlSettings;
            LblMarketOpen.ForeColor = _colorText;
            LblMarketOpen.BackColor = Color.Transparent;
            LblMarketOpen.AutoSize = true;
            LblMarketOpen.Text = Language.T("Market opening hour on Sunday:");

            // NUDMarketClose
            NUDMarketClose.BeginInit();
            NUDMarketClose.Parent = PnlSettings;
            NUDMarketClose.TextAlign = HorizontalAlignment.Center;
            NUDMarketClose.Minimum = 0;
            NUDMarketClose.Maximum = 24;
            NUDMarketClose.Increment = 1;
            NUDMarketClose.Value = Configs.MarketClosingHour;
            NUDMarketClose.EndInit();

            // NUDMarketOpen
            NUDMarketOpen.BeginInit();
            NUDMarketOpen.Parent = PnlSettings;
            NUDMarketOpen.TextAlign = HorizontalAlignment.Center;
            NUDMarketOpen.Minimum = 0;
            NUDMarketOpen.Maximum = 24;
            NUDMarketOpen.Increment = 1;
            NUDMarketOpen.Value = Configs.MarketOpeningHour;
            NUDMarketOpen.EndInit();

            // pnlSettings
            PnlSettings.Parent = this;

            // PnlInfoBase
            PnlInfoBase.Parent = this;
            PnlInfoBase.Padding = new Padding(4, (int) PnlInfoBase.CaptionHeight, 2, 2);

            // TbxInfo
            TbxInfo.Parent = PnlInfoBase;
            TbxInfo.BorderStyle = BorderStyle.None;
            TbxInfo.Dock = DockStyle.Fill;
            TbxInfo.BackColor = LayoutColors.ColorControlBack;
            TbxInfo.ForeColor = LayoutColors.ColorControlText;
            TbxInfo.Multiline = true;
            TbxInfo.AcceptsReturn = true;
            TbxInfo.AcceptsTab = true;
            TbxInfo.ScrollBars = ScrollBars.Vertical;

            // ProgressBar
            ProgressBar.Parent = this;

            // Button Help
            BtnHelp.Parent = this;
            BtnHelp.Name = "Help";
            BtnHelp.Text = Language.T("Help");
            BtnHelp.Click += BtnHelpClick;
            BtnHelp.UseVisualStyleBackColor = true;

            // Button Close
            BtnClose.Parent = this;
            BtnClose.Text = Language.T("Close");
            BtnClose.DialogResult = DialogResult.Cancel;
            BtnClose.UseVisualStyleBackColor = true;

            // Button Import
            BtnImport.Parent = this;
            BtnImport.Name = "Import";
            BtnImport.Text = Language.T("Import");
            BtnImport.Click += BtnImportClick;
            BtnImport.UseVisualStyleBackColor = true;

            // BackGroundWorker
            _bgWorker = new BackgroundWorker {WorkerReportsProgress = true, WorkerSupportsCancellation = true};
            _bgWorker.DoWork += BgWorkerDoWork;
            _bgWorker.RunWorkerCompleted += BgWorkerRunWorkerCompleted;
        }
        /// <summary>
        ///     Constructor.
        /// </summary>
        public TrueForexTickDataImport()
        {
            outFolder = Configs.TrueFxImportDestFolder;

            LblIntro = new Label();
            TxbFileName = new TextBox();
            BtnBrowse = new Button();
            LblMinBars = new Label();
            NudMinBars = new NumericUpDown();
            PnlSettings = new FancyPanel();
            PnlImportInfo = new FancyPanel(Language.T("Imported Data"));
            TbxInfo = new TextBox();
            LblDestFolder = new Label();
            TxbDestFolder = new TextBox();
            BtnDestFolder = new Button();
            BtnHelp = new Button();
            BtnClose = new Button();
            BtnImport = new Button();
            ProgressBar = new ProgressBar();

            MaximizeBox = false;
            MinimizeBox = false;
            ShowInTaskbar = false;
            Icon = Data.Icon;
            FormBorderStyle = FormBorderStyle.FixedDialog;
            AcceptButton = BtnImport;
            CancelButton = BtnClose;
            Text = Language.T("TrueFX Import");

            // Label Intro
            LblIntro.Parent = PnlSettings;
            LblIntro.ForeColor = LayoutColors.ColorControlText;
            LblIntro.BackColor = Color.Transparent;
            LblIntro.AutoSize = true;
            LblIntro.Text = Language.T("Select TrueFX source folder") + ":";

            // File Name
            TxbFileName.Parent = PnlSettings;
            TxbFileName.BackColor = LayoutColors.ColorControlBack;
            TxbFileName.ForeColor = LayoutColors.ColorControlText;
            TxbFileName.Text = string.Empty;


            // Button Browse
            BtnBrowse.Parent = PnlSettings;
            BtnBrowse.Name = "Browse";
            BtnBrowse.Text = Language.T("Browse");
            BtnBrowse.Click += BtnBrowseClick;
            BtnBrowse.UseVisualStyleBackColor = true;

            LblMinBars.Parent = PnlSettings;
            LblMinBars.ForeColor = LayoutColors.ColorControlText;
            LblMinBars.BackColor = Color.Transparent;
            LblMinBars.AutoSize = true;
            LblMinBars.Text = Language.T("Minimum bars in bar files") + ":";

            // Minimum Bars
            NudMinBars.Parent = PnlSettings;
            NudMinBars.BeginInit();
            NudMinBars.Minimum = 0;
            NudMinBars.Maximum = int.MaxValue;
            NudMinBars.Value = Configs.MinBarsInBarFile;
            NudMinBars.EndInit();

            // LblDestFolder
            LblDestFolder.Parent = PnlSettings;
            LblDestFolder.ForeColor = LayoutColors.ColorControlText;
            LblDestFolder.BackColor = Color.Transparent;
            LblDestFolder.AutoSize = true;
            LblDestFolder.Text = Language.T("Select a destination folder") + ":";

            // TxbDestFolder
            TxbDestFolder.Parent = PnlSettings;
            TxbDestFolder.BackColor = LayoutColors.ColorControlBack;
            TxbDestFolder.ForeColor = LayoutColors.ColorControlText;
            TxbDestFolder.Text = String.IsNullOrEmpty(Configs.TrueFxImportDestFolder)
                                     ? Data.OfflineDataDir
                                     : Configs.TrueFxImportDestFolder;

            // BtnDestFolder
            BtnDestFolder.Parent = PnlSettings;
            BtnDestFolder.Name = "BtnDestFolder";
            BtnDestFolder.Text = Language.T("Browse");
            BtnDestFolder.Click += BtnDestFolderClick;
            BtnDestFolder.UseVisualStyleBackColor = true;

            // PnlSettings
            PnlSettings.Parent = this;

            // PnlInfoBase
            PnlImportInfo.Parent = this;
            PnlImportInfo.Padding = new Padding(4, (int) PnlImportInfo.CaptionHeight, 2, 2);

            // TbxInfo
            TbxInfo.Parent = PnlImportInfo;
            TbxInfo.BorderStyle = BorderStyle.None;
            TbxInfo.Dock = DockStyle.Fill;
            TbxInfo.BackColor = LayoutColors.ColorControlBack;
            TbxInfo.ForeColor = LayoutColors.ColorControlText;
            TbxInfo.Multiline = true;
            TbxInfo.AcceptsReturn = true;
            TbxInfo.AcceptsTab = true;
            TbxInfo.ScrollBars = ScrollBars.Vertical;

            // ProgressBar
            ProgressBar.Parent = this;

            // Button Help
            BtnHelp.Parent = this;
            BtnHelp.Name = "Help";
            BtnHelp.Text = Language.T("Help");
            BtnHelp.Click += BtnHelpClick;
            BtnHelp.UseVisualStyleBackColor = true;

            // Button Close
            BtnClose.Parent = this;
            BtnClose.Text = Language.T("Close");
            BtnClose.DialogResult = DialogResult.Cancel;
            BtnClose.UseVisualStyleBackColor = true;

            // Button Import
            BtnImport.Parent = this;
            BtnImport.Name = "Import";
            BtnImport.Text = Language.T("Import");
            BtnImport.Click += BtnImportClick;
            BtnImport.UseVisualStyleBackColor = true;

            // BackGroundWorker
            bgWorker = new BackgroundWorker {WorkerReportsProgress = true, WorkerSupportsCancellation = true};
            bgWorker.DoWork += BgWorkerDoWork;
            bgWorker.RunWorkerCompleted += BgWorkerRunWorkerCompleted;
        }
        /// <summary>
        ///     Constructor
        /// </summary>
        public Generator()
        {
            GeneratedDescription = string.Empty;
            strategyBest = Data.Strategy.Clone();
            bestValue = isOOS ? Backtester.Balance(barOOS) : Backtester.NetBalance;
            isGenerating = false;
            isStartegyChanged = false;
            indicatorBlackList = new List<string>();

            colorText = LayoutColors.ColorControlText;

            toolStrip = new ToolStrip();
            strategyField = new StrategyLayout(strategyBest);
            pnlCommon = new FancyPanel(Language.T("Common"));
            pnlCriteriaBase = new FancyPanel(Language.T("Acceptance Criteria"));
            criteriaPanel = new ScrollFlowPanel();
            criteriaControls = new CriteriaControls();
            pnlSettings = new FancyPanel(Language.T("Settings"));
            pnlSorting = new FancyPanel(Language.T("Custom Sorting"));
            pnlTop10 = new FancyPanel(Language.T("Top 10"));
            pnlIndicators = new FancyPanel(Language.T("Indicators"));
            balanceChart = new SmallBalanceChart();
            infpnlAccountStatistics = new InfoPanel();
            progressBar = new ProgressBar();
            lblCalcStrInfo = new Label();
            lblCalcStrNumb = new Label();
            lblBenchmarkInfo = new Label();
            lblBenchmarkNumb = new Label();
            btnAccept = new Button();
            btnGenerate = new Button();
            btnCancel = new Button();
            chbGenerateNewStrategy = new CheckBox();
            chbPreserveSameDirAction = new CheckBox();
            chbPreserveOppDirAction = new CheckBox();
            chbPreservePermSL = new CheckBox();
            chbPreservePermTP = new CheckBox();
            chbPreserveBreakEven = new CheckBox();
            chbInitialOptimization = new CheckBox();
            nudWorkingMinutes = new NumericUpDown();
            chbWorkingMinutes = new CheckBox();

            MaximizeBox = false;
            Icon = Data.Icon;
            FormBorderStyle = FormBorderStyle.FixedDialog;
            BackColor = LayoutColors.ColorFormBack;
            AcceptButton = btnGenerate;
            Text = Language.T("Strategy Generator") + " - " + Data.Symbol + " " + Data.PeriodString + ", " +
                   Data.Bars + " " + Language.T("bars");
            FormClosing += GeneratorFormClosing;

            // Tool Strip
            toolStrip.Parent = this;
            toolStrip.Dock = DockStyle.Top;
            toolStrip.AutoSize = true;

            // Creates a Strategy Layout
            strategyField.Parent = this;
            strategyField.ShowAddSlotButtons = false;
            strategyField.ShowRemoveSlotButtons = false;
            strategyField.ShowPadlockImg = true;
            strategyField.SlotPropertiesTipText = Language.T("Lock or unlock the slot.");
            strategyField.SlotToolTipText = Language.T("Lock, link, or unlock the slot.");

            pnlCommon.Parent = this;
            pnlCriteriaBase.Parent = this;
            pnlSettings.Parent = this;
            pnlSorting.Parent = this;
            pnlTop10.Parent = this;
            pnlIndicators.Parent = this;

            // Small Balance Chart
            balanceChart.Parent = this;
            balanceChart.BackColor = LayoutColors.ColorControlBack;
            balanceChart.Visible = true;
            balanceChart.Cursor = Cursors.Hand;
            balanceChart.IsContextButtonVisible = true;
            balanceChart.PopUpContextMenu.Items.AddRange(GetBalanceChartContextMenuItems());
            balanceChart.Click += AccountOutputClick;
            balanceChart.DoubleClick += AccountOutputClick;
            toolTip.SetToolTip(balanceChart, Language.T("Show account statistics."));
            balanceChart.SetChartData();

            // Info Panel Account Statistics
            infpnlAccountStatistics.Parent = this;
            infpnlAccountStatistics.Visible = false;
            infpnlAccountStatistics.Cursor = Cursors.Hand;
            infpnlAccountStatistics.IsContextButtonVisible = true;
            infpnlAccountStatistics.PopUpContextMenu.Items.AddRange(GetInfoPanelContextMenuItems());
            infpnlAccountStatistics.Click += AccountOutputClick;
            infpnlAccountStatistics.DoubleClick += AccountOutputClick;
            toolTip.SetToolTip(infpnlAccountStatistics, Language.T("Show account chart."));

            // ProgressBar
            progressBar.Parent = this;
            progressBar.Minimum = 1;
            progressBar.Maximum = 100;
            progressBar.Step = 1;

            //Button Generate
            btnGenerate.Parent = this;
            btnGenerate.Name = "Generate";
            btnGenerate.Text = Language.T("Generate");
            btnGenerate.Click += BtnGenerateClick;
            btnGenerate.UseVisualStyleBackColor = true;

            //Button Accept
            btnAccept.Parent = this;
            btnAccept.Name = "Accept";
            btnAccept.Text = Language.T("Accept");
            btnAccept.Enabled = false;
            btnAccept.DialogResult = DialogResult.OK;
            btnAccept.UseVisualStyleBackColor = true;

            //Button Cancel
            btnCancel.Parent = this;
            btnCancel.Text = Language.T("Cancel");
            btnCancel.DialogResult = DialogResult.Cancel;
            btnCancel.UseVisualStyleBackColor = true;

            // BackgroundWorker
            bgWorker = new BackgroundWorker {WorkerReportsProgress = true, WorkerSupportsCancellation = true};
            bgWorker.DoWork += BgWorkerDoWork;
            bgWorker.ProgressChanged += BgWorkerProgressChanged;
            bgWorker.RunWorkerCompleted += BgWorkerRunWorkerCompleted;

            // Apply a Cryptographic Random Seed
            var rng = new RNGCryptoServiceProvider();
            var rndBytes = new byte[4];
            rng.GetBytes(rndBytes);
            int rand = BitConverter.ToInt32(rndBytes, 0);
            random = new Random(rand);

            SetButtonsStrategy();
            SetButtonsGenerator();
            SetPanelCommon();
            SetCriteriaPanel();
            SetPanelSettings();
            SetPanelSorting();
            SetPanelTop10();
            SetPanelIndicators();
            LoadOptions();
            SetCustomSortingUI();
            SetStrategyDescriptionButton();

            chbHideFsb.CheckedChanged += HideFSBClick;

            if (Data.AutostartGenerator)
                BtnGenerateClick(this, new EventArgs());
        }
Example #5
0
        /// <summary>
        /// Constructor
        /// </summary>
        public JForexImport()
        {
            LblIntro         = new Label();
            TxbDataDirectory = new TextBox();
            BtnBrowse        = new Button();
            PnlSettings      = new FancyPanel();
            PnlInfoBase      = new FancyPanel(Language.T("Imported Files"));
            TbxInfo          = new TextBox();
            BtnHelp          = new Button();
            BtnClose         = new Button();
            BtnImport        = new Button();
            ProgressBar      = new ProgressBar();

            LblMarketClose = new Label();
            LblMarketOpen  = new Label();
            NUDMarketClose = new NumericUpDown();
            NUDMarketOpen  = new NumericUpDown();
            LblDestFolder  = new Label();
            TxbDestFolder  = new TextBox();
            BtnDestFolder  = new Button();

            _colorText = LayoutColors.ColorControlText;

            MaximizeBox     = false;
            MinimizeBox     = false;
            ShowInTaskbar   = false;
            Icon            = Data.Icon;
            FormBorderStyle = FormBorderStyle.FixedDialog;
            AcceptButton    = BtnImport;
            CancelButton    = BtnClose;
            Text            = Language.T("JForex Import");

            // Label Intro
            LblIntro.Parent    = PnlSettings;
            LblIntro.ForeColor = _colorText;
            LblIntro.BackColor = Color.Transparent;
            LblIntro.AutoSize  = true;
            LblIntro.Text      = Language.T("Directory containing JForex data files:");

            // Data Directory
            TxbDataDirectory.Parent    = PnlSettings;
            TxbDataDirectory.BackColor = LayoutColors.ColorControlBack;
            TxbDataDirectory.ForeColor = _colorText;
            TxbDataDirectory.Text      = Configs.JForexDataPath;

            // Button Browse
            BtnBrowse.Parent = PnlSettings;
            BtnBrowse.Name   = "Browse";
            BtnBrowse.Text   = Language.T("Browse");
            BtnBrowse.Click += BtnBrowseClick;
            BtnBrowse.UseVisualStyleBackColor = true;

            // Label Market Close
            LblMarketClose.Parent    = PnlSettings;
            LblMarketClose.ForeColor = _colorText;
            LblMarketClose.BackColor = Color.Transparent;
            LblMarketClose.AutoSize  = true;
            LblMarketClose.Text      = Language.T("Market closing hour on Friday:");

            // Label Market Open
            LblMarketOpen.Parent    = PnlSettings;
            LblMarketOpen.ForeColor = _colorText;
            LblMarketOpen.BackColor = Color.Transparent;
            LblMarketOpen.AutoSize  = true;
            LblMarketOpen.Text      = Language.T("Market opening hour on Sunday:");

            // NUDMarketClose
            NUDMarketClose.BeginInit();
            NUDMarketClose.Parent    = PnlSettings;
            NUDMarketClose.TextAlign = HorizontalAlignment.Center;
            NUDMarketClose.Minimum   = 0;
            NUDMarketClose.Maximum   = 24;
            NUDMarketClose.Increment = 1;
            NUDMarketClose.Value     = Configs.MarketClosingHour;
            NUDMarketClose.EndInit();

            // NUDMarketOpen
            NUDMarketOpen.BeginInit();
            NUDMarketOpen.Parent    = PnlSettings;
            NUDMarketOpen.TextAlign = HorizontalAlignment.Center;
            NUDMarketOpen.Minimum   = 0;
            NUDMarketOpen.Maximum   = 24;
            NUDMarketOpen.Increment = 1;
            NUDMarketOpen.Value     = Configs.MarketOpeningHour;
            NUDMarketOpen.EndInit();

            // LblDestFolder
            LblDestFolder.Parent    = PnlSettings;
            LblDestFolder.ForeColor = LayoutColors.ColorControlText;
            LblDestFolder.BackColor = Color.Transparent;
            LblDestFolder.AutoSize  = true;
            LblDestFolder.Text      = Language.T("Select a destination folder") + ":";

            // TxbDestFolder
            TxbDestFolder.Parent    = PnlSettings;
            TxbDestFolder.BackColor = LayoutColors.ColorControlBack;
            TxbDestFolder.ForeColor = LayoutColors.ColorControlText;
            TxbDestFolder.Text      = String.IsNullOrEmpty(Configs.JForexImportDestFolder) ? Data.OfflineDataDir : Configs.JForexImportDestFolder;

            // BtnDestFolder
            BtnDestFolder.Parent = PnlSettings;
            BtnDestFolder.Name   = "BtnDestFolder";
            BtnDestFolder.Text   = Language.T("Browse");
            BtnDestFolder.Click += BtnDestFolderClick;
            BtnDestFolder.UseVisualStyleBackColor = true;

            // pnlSettings
            PnlSettings.Parent = this;

            // PnlInfoBase
            PnlInfoBase.Parent  = this;
            PnlInfoBase.Padding = new Padding(4, (int)PnlInfoBase.CaptionHeight, 2, 2);

            // TbxInfo
            TbxInfo.Parent        = PnlInfoBase;
            TbxInfo.BorderStyle   = BorderStyle.None;
            TbxInfo.Dock          = DockStyle.Fill;
            TbxInfo.BackColor     = LayoutColors.ColorControlBack;
            TbxInfo.ForeColor     = LayoutColors.ColorControlText;
            TbxInfo.Multiline     = true;
            TbxInfo.AcceptsReturn = true;
            TbxInfo.AcceptsTab    = true;
            TbxInfo.ScrollBars    = ScrollBars.Vertical;

            // ProgressBar
            ProgressBar.Parent = this;

            // Button Help
            BtnHelp.Parent = this;
            BtnHelp.Name   = "Help";
            BtnHelp.Text   = Language.T("Help");
            BtnHelp.Click += BtnHelpClick;
            BtnHelp.UseVisualStyleBackColor = true;

            // Button Close
            BtnClose.Parent                  = this;
            BtnClose.Text                    = Language.T("Close");
            BtnClose.DialogResult            = DialogResult.Cancel;
            BtnClose.UseVisualStyleBackColor = true;

            // Button Import
            BtnImport.Parent = this;
            BtnImport.Name   = "Import";
            BtnImport.Text   = Language.T("Import");
            BtnImport.Click += BtnImportClick;
            BtnImport.UseVisualStyleBackColor = true;

            // BackGroundWorker
            _bgWorker = new BackgroundWorker {
                WorkerReportsProgress = true, WorkerSupportsCancellation = true
            };
            _bgWorker.DoWork             += BgWorkerDoWork;
            _bgWorker.RunWorkerCompleted += BgWorkerRunWorkerCompleted;
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        public OandaTickDataImport()
        {
            LblIntro      = new Label();
            TxbFileName   = new TextBox();
            BtnBrowse     = new Button();
            LblSymbol     = new Label();
            TxbSymbol     = new TextBox();
            LblMinBars    = new Label();
            NudMinBars    = new NumericUpDown();
            PnlSettings   = new FancyPanel();
            PnlImportInfo = new FancyPanel(Language.T("Imported Data"));
            TbxInfo       = new TextBox();
            LblDestFolder = new Label();
            TxbDestFolder = new TextBox();
            BtnDestFolder = new Button();
            BtnHelp       = new Button();
            BtnClose      = new Button();
            BtnImport     = new Button();
            ProgressBar   = new ProgressBar();

            MaximizeBox     = false;
            MinimizeBox     = false;
            ShowInTaskbar   = false;
            Icon            = Data.Icon;
            FormBorderStyle = FormBorderStyle.FixedDialog;
            AcceptButton    = BtnImport;
            CancelButton    = BtnClose;
            Text            = Language.T("Oanda Import");

            // Label Intro
            LblIntro.Parent    = PnlSettings;
            LblIntro.ForeColor = LayoutColors.ColorControlText;
            LblIntro.BackColor = Color.Transparent;
            LblIntro.AutoSize  = true;
            LblIntro.Text      = Language.T("Select an Oanda file for import") + ":";

            // File Name
            TxbFileName.Parent    = PnlSettings;
            TxbFileName.BackColor = LayoutColors.ColorControlBack;
            TxbFileName.ForeColor = LayoutColors.ColorControlText;
            TxbFileName.Text      = string.Empty;

            // Button Browse
            BtnBrowse.Parent = PnlSettings;
            BtnBrowse.Name   = "Browse";
            BtnBrowse.Text   = Language.T("Browse");
            BtnBrowse.Click += BtnBrowseClick;
            BtnBrowse.UseVisualStyleBackColor = true;

            // Label Symbol
            LblSymbol.Parent    = PnlSettings;
            LblSymbol.ForeColor = LayoutColors.ColorControlText;
            LblSymbol.BackColor = Color.Transparent;
            LblSymbol.AutoSize  = true;
            LblSymbol.Text      = Language.T("Enter Symbol") + ":";

            // Symbol
            TxbSymbol.Parent    = PnlSettings;
            TxbSymbol.BackColor = LayoutColors.ColorControlBack;
            TxbSymbol.ForeColor = LayoutColors.ColorControlText;
            TxbSymbol.Text      = string.Empty;

            // Label Symbol
            LblMinBars.Parent    = PnlSettings;
            LblMinBars.ForeColor = LayoutColors.ColorControlText;
            LblMinBars.BackColor = Color.Transparent;
            LblMinBars.AutoSize  = true;
            LblMinBars.Text      = Language.T("Minimum bars in bar files") + ":";

            // Minimum Bars
            NudMinBars.Parent = PnlSettings;
            NudMinBars.BeginInit();
            NudMinBars.Minimum = 0;
            NudMinBars.Maximum = int.MaxValue;
            NudMinBars.Value   = Configs.MinBarsInBarFile;
            NudMinBars.EndInit();

            // LblDestFolder
            LblDestFolder.Parent    = PnlSettings;
            LblDestFolder.ForeColor = LayoutColors.ColorControlText;
            LblDestFolder.BackColor = Color.Transparent;
            LblDestFolder.AutoSize  = true;
            LblDestFolder.Text      = Language.T("Select a destination folder") + ":";

            // TxbDestFolder
            TxbDestFolder.Parent    = PnlSettings;
            TxbDestFolder.BackColor = LayoutColors.ColorControlBack;
            TxbDestFolder.ForeColor = LayoutColors.ColorControlText;
            TxbDestFolder.Text      = String.IsNullOrEmpty(Configs.OandaImportDestFolder) ? Data.OfflineDataDir : Configs.OandaImportDestFolder;

            // BtnDestFolder
            BtnDestFolder.Parent = PnlSettings;
            BtnDestFolder.Name   = "BtnDestFolder";
            BtnDestFolder.Text   = Language.T("Browse");
            BtnDestFolder.Click += BtnDestFolderClick;
            BtnDestFolder.UseVisualStyleBackColor = true;

            // PnlSettings
            PnlSettings.Parent = this;

            // PnlInfoBase
            PnlImportInfo.Parent  = this;
            PnlImportInfo.Padding = new Padding(4, (int)PnlImportInfo.CaptionHeight, 2, 2);

            // TbxInfo
            TbxInfo.Parent        = PnlImportInfo;
            TbxInfo.BorderStyle   = BorderStyle.None;
            TbxInfo.Dock          = DockStyle.Fill;
            TbxInfo.BackColor     = LayoutColors.ColorControlBack;
            TbxInfo.ForeColor     = LayoutColors.ColorControlText;
            TbxInfo.Multiline     = true;
            TbxInfo.AcceptsReturn = true;
            TbxInfo.AcceptsTab    = true;
            TbxInfo.ScrollBars    = ScrollBars.Vertical;

            // ProgressBar
            ProgressBar.Parent = this;

            // Button Help
            BtnHelp.Parent = this;
            BtnHelp.Name   = "Help";
            BtnHelp.Text   = Language.T("Help");
            BtnHelp.Click += BtnHelpClick;
            BtnHelp.UseVisualStyleBackColor = true;

            // Button Close
            BtnClose.Parent                  = this;
            BtnClose.Text                    = Language.T("Close");
            BtnClose.DialogResult            = DialogResult.Cancel;
            BtnClose.UseVisualStyleBackColor = true;

            // Button Import
            BtnImport.Parent = this;
            BtnImport.Name   = "Import";
            BtnImport.Text   = Language.T("Import");
            BtnImport.Click += BtnImportClick;
            BtnImport.UseVisualStyleBackColor = true;

            // BackGroundWorker
            _bgWorker = new BackgroundWorker {
                WorkerReportsProgress = true, WorkerSupportsCancellation = true
            };
            _bgWorker.DoWork             += BgWorkerDoWork;
            _bgWorker.RunWorkerCompleted += BgWorkerRunWorkerCompleted;
        }
        /// <summary>
        /// Initializes main controls of optimizer.
        /// </summary>
        private void InitializeControls()
        {
            PnlParamsBase = new Panel();
            PnlParamsBase2 = new Panel();
            PnlCaptions = new Panel();
            PnlParams = new Panel();
            PnlLimitations = new FancyPanel(Language.T("Limitations"));
            PnlSettings = new FancyPanel(Language.T("Settings"));
            ScrollBar = new VScrollBar();
            BalanceChart = new SmallBalanceChart();
            ProgressBar = new ProgressBar();
            BtnOptimize = new Button();
            BtnAccept = new Button();
            BtnCancel = new Button();

            LblNoParams = new Label();

            _fontIndicator = new Font(Font.FontFamily, 11);
            _colorText = LayoutColors.ColorControlText;

            // Panel Parameters Base
            PnlParamsBase.Parent = this;
            PnlParamsBase.BackColor = LayoutColors.ColorControlBack;
            PnlParamsBase.Paint += PnlParamsBasePaint;

            // Panel Captions
            PnlCaptions.Parent = PnlParamsBase;
            PnlCaptions.Dock = DockStyle.Top;
            PnlCaptions.BackColor = LayoutColors.ColorCaptionBack;
            PnlCaptions.ForeColor = LayoutColors.ColorCaptionText;
            PnlCaptions.Paint += PnlCaptionsPaint;

            // Panel Parameters Base 2
            PnlParamsBase2.Parent = PnlParamsBase;
            PnlParamsBase2.BackColor = LayoutColors.ColorControlBack;
            PnlParamsBase2.Resize += PnlParamsBase2Resize;

            // ScrollBar
            ScrollBar.Parent = PnlParamsBase2;
            ScrollBar.Dock = DockStyle.Right;
            ScrollBar.TabStop = true;
            ScrollBar.ValueChanged += ScrollBarValueChanged;
            ScrollBar.MouseWheel += ScrollBarMouseWheel;

            // Panel Parameters
            PnlParams.Parent = PnlParamsBase2;
            PnlParams.BackColor = LayoutColors.ColorControlBack;

            // Label No Parameters
            LblNoParams.Parent = PnlParams;
            LblNoParams.Text = Language.T("There are no parameters suitable for optimization.");
            LblNoParams.AutoSize = true;
            LblNoParams.Visible = false;

            // Panel Limitations
            PnlLimitations.Parent = this;
            PnlLimitations.Visible = false;

            // Panel Settings
            PnlSettings.Parent = this;
            PnlSettings.Visible = false;

            // Small Balance Chart
            BalanceChart.Parent = this;
            BalanceChart.BackColor = LayoutColors.ColorControlBack;
            BalanceChart.SetChartData();

            // ProgressBar
            ProgressBar.Parent = this;
            ProgressBar.Minimum = 1;
            ProgressBar.Maximum = 100;
            ProgressBar.Step = 1;

            // Button Optimize
            BtnOptimize.Parent = this;
            BtnOptimize.Name = "btnOptimize";
            BtnOptimize.Text = Language.T("Optimize");
            BtnOptimize.TabIndex = 0;
            BtnOptimize.Click += BtnOptimizeClick;
            BtnOptimize.UseVisualStyleBackColor = true;

            // Button Accept
            BtnAccept.Parent = this;
            BtnAccept.Name = "btnAccept";
            BtnAccept.Text = Language.T("Accept");
            BtnAccept.TabIndex = 1;
            BtnAccept.Enabled = false;
            BtnAccept.DialogResult = DialogResult.OK;
            BtnAccept.UseVisualStyleBackColor = true;

            // Button Cancel
            BtnCancel.Parent = this;
            BtnCancel.Text = Language.T("Cancel");
            BtnCancel.TabIndex = 2;
            BtnCancel.DialogResult = DialogResult.Cancel;
            BtnCancel.UseVisualStyleBackColor = true;

            // BackGroundWorker
            BgWorker = new BackgroundWorker {WorkerReportsProgress = true, WorkerSupportsCancellation = true};
            BgWorker.DoWork += BgWorkerDoWork;
            BgWorker.ProgressChanged += BgWorkerProgressChanged;
            BgWorker.RunWorkerCompleted += BgWorkerRunWorkerCompleted;
        }
Example #8
0
        /// <summary>
        /// Initializes main controls of optimizer.
        /// </summary>
        private void InitializeControls()
        {
            PnlParamsBase  = new Panel();
            PnlParamsBase2 = new Panel();
            PnlCaptions    = new Panel();
            PnlParams      = new Panel();
            PnlLimitations = new FancyPanel(Language.T("Limitations"));
            PnlSettings    = new FancyPanel(Language.T("Settings"));
            ScrollBar      = new VScrollBar();
            BalanceChart   = new SmallBalanceChart();
            ProgressBar    = new ProgressBar();
            BtnOptimize    = new Button();
            BtnAccept      = new Button();
            BtnCancel      = new Button();

            LblNoParams = new Label();

            _fontIndicator = new Font(Font.FontFamily, 11);
            _colorText     = LayoutColors.ColorControlText;

            // Panel Parameters Base
            PnlParamsBase.Parent    = this;
            PnlParamsBase.BackColor = LayoutColors.ColorControlBack;
            PnlParamsBase.Paint    += PnlParamsBasePaint;

            // Panel Captions
            PnlCaptions.Parent    = PnlParamsBase;
            PnlCaptions.Dock      = DockStyle.Top;
            PnlCaptions.BackColor = LayoutColors.ColorCaptionBack;
            PnlCaptions.ForeColor = LayoutColors.ColorCaptionText;
            PnlCaptions.Paint    += PnlCaptionsPaint;

            // Panel Parameters Base 2
            PnlParamsBase2.Parent    = PnlParamsBase;
            PnlParamsBase2.BackColor = LayoutColors.ColorControlBack;
            PnlParamsBase2.Resize   += PnlParamsBase2Resize;

            // ScrollBar
            ScrollBar.Parent        = PnlParamsBase2;
            ScrollBar.Dock          = DockStyle.Right;
            ScrollBar.TabStop       = true;
            ScrollBar.ValueChanged += ScrollBarValueChanged;
            ScrollBar.MouseWheel   += ScrollBarMouseWheel;

            // Panel Parameters
            PnlParams.Parent    = PnlParamsBase2;
            PnlParams.BackColor = LayoutColors.ColorControlBack;

            // Label No Parameters
            LblNoParams.Parent   = PnlParams;
            LblNoParams.Text     = Language.T("There are no parameters suitable for optimization.");
            LblNoParams.AutoSize = true;
            LblNoParams.Visible  = false;

            // Panel Limitations
            PnlLimitations.Parent  = this;
            PnlLimitations.Visible = false;

            // Panel Settings
            PnlSettings.Parent  = this;
            PnlSettings.Visible = false;

            // Small Balance Chart
            BalanceChart.Parent    = this;
            BalanceChart.BackColor = LayoutColors.ColorControlBack;
            BalanceChart.SetChartData();

            // ProgressBar
            ProgressBar.Parent  = this;
            ProgressBar.Minimum = 1;
            ProgressBar.Maximum = 100;
            ProgressBar.Step    = 1;

            // Button Optimize
            BtnOptimize.Parent   = this;
            BtnOptimize.Name     = "btnOptimize";
            BtnOptimize.Text     = Language.T("Optimize");
            BtnOptimize.TabIndex = 0;
            BtnOptimize.Click   += BtnOptimizeClick;
            BtnOptimize.UseVisualStyleBackColor = true;

            // Button Accept
            BtnAccept.Parent                  = this;
            BtnAccept.Name                    = "btnAccept";
            BtnAccept.Text                    = Language.T("Accept");
            BtnAccept.TabIndex                = 1;
            BtnAccept.Enabled                 = false;
            BtnAccept.DialogResult            = DialogResult.OK;
            BtnAccept.UseVisualStyleBackColor = true;

            // Button Cancel
            BtnCancel.Parent                  = this;
            BtnCancel.Text                    = Language.T("Cancel");
            BtnCancel.TabIndex                = 2;
            BtnCancel.DialogResult            = DialogResult.Cancel;
            BtnCancel.UseVisualStyleBackColor = true;

            // BackGroundWorker
            BgWorker = new BackgroundWorker {
                WorkerReportsProgress = true, WorkerSupportsCancellation = true
            };
            BgWorker.DoWork             += BgWorkerDoWork;
            BgWorker.ProgressChanged    += BgWorkerProgressChanged;
            BgWorker.RunWorkerCompleted += BgWorkerRunWorkerCompleted;
        }
        /// <summary>
        ///     Initializes main controls of optimizer.
        /// </summary>
        private void InitializeControls()
        {
            pnlParamsBase = new Panel();
            pnlParamsBase2 = new Panel();
            pnlCaptions = new Panel();
            pnlParams = new Panel();
            pnlCriteriaBase = new FancyPanel(Language.T("Acceptance Criteria"));
            criteriaPanel = new ScrollFlowPanel();
            criteriaControls = new CriteriaControls();
            pnlSettings = new FancyPanel(Language.T("Settings"));
            scrollBar = new VScrollBar();
            balanceChart = new SmallBalanceChart();
            progressBar = new ProgressBar();
            btnOptimize = new Button();
            btnAccept = new Button();
            btnCancel = new Button();

            lblNoParams = new Label();

            fontIndicator = new Font(Font.FontFamily, 11);
            colorText = LayoutColors.ColorControlText;

            // Panel Parameters Base
            pnlParamsBase.Parent = this;
            pnlParamsBase.BackColor = LayoutColors.ColorControlBack;
            pnlParamsBase.Paint += PnlParamsBasePaint;

            // Panel Captions
            pnlCaptions.Parent = pnlParamsBase;
            pnlCaptions.Dock = DockStyle.Top;
            pnlCaptions.BackColor = LayoutColors.ColorCaptionBack;
            pnlCaptions.ForeColor = LayoutColors.ColorCaptionText;
            pnlCaptions.Paint += PnlCaptionsPaint;

            // Panel Parameters Base 2
            pnlParamsBase2.Parent = pnlParamsBase;
            pnlParamsBase2.BackColor = LayoutColors.ColorControlBack;
            pnlParamsBase2.Resize += PnlParamsBase2Resize;

            // ScrollBar
            scrollBar.Parent = pnlParamsBase2;
            scrollBar.Dock = DockStyle.Right;
            scrollBar.TabStop = true;
            scrollBar.ValueChanged += ScrollBarValueChanged;
            scrollBar.MouseWheel += ScrollBarMouseWheel;

            // Panel Parameters
            pnlParams.Parent = pnlParamsBase2;
            pnlParams.BackColor = LayoutColors.ColorControlBack;

            // Label No Parameters
            lblNoParams.Parent = pnlParams;
            lblNoParams.Text = Language.T("There are no parameters suitable for optimization.");
            lblNoParams.AutoSize = true;
            lblNoParams.Visible = false;

            // Panel Limitations
            pnlCriteriaBase.Parent = this;
            pnlCriteriaBase.Visible = false;

            // Panel Settings
            pnlSettings.Parent = this;
            pnlSettings.Visible = false;

            // Small Balance Chart
            balanceChart.Parent = this;
            balanceChart.BackColor = LayoutColors.ColorControlBack;
            balanceChart.SetChartData();

            // ProgressBar
            progressBar.Parent = this;
            progressBar.Minimum = 1;
            progressBar.Maximum = 100;
            progressBar.Step = 1;

            // Button Optimize
            btnOptimize.Parent = this;
            btnOptimize.Name = "btnOptimize";
            btnOptimize.Text = Language.T("Optimize");
            btnOptimize.TabIndex = 0;
            btnOptimize.Click += BtnOptimizeClick;
            btnOptimize.UseVisualStyleBackColor = true;

            // Button Accept
            btnAccept.Parent = this;
            btnAccept.Name = "btnAccept";
            btnAccept.Text = Language.T("Accept");
            btnAccept.TabIndex = 1;
            btnAccept.Enabled = false;
            btnAccept.DialogResult = DialogResult.OK;
            btnAccept.UseVisualStyleBackColor = true;

            // Button Cancel
            btnCancel.Parent = this;
            btnCancel.Text = Language.T("Cancel");
            btnCancel.TabIndex = 2;
            btnCancel.DialogResult = DialogResult.Cancel;
            btnCancel.UseVisualStyleBackColor = true;

            // BackGroundWorker
            bgWorker = new BackgroundWorker {WorkerReportsProgress = true, WorkerSupportsCancellation = true};
            bgWorker.DoWork += BgWorkerDoWork;
            bgWorker.ProgressChanged += BgWorkerProgressChanged;
            bgWorker.RunWorkerCompleted += BgWorkerRunWorkerCompleted;
        }
Example #10
0
        /// <summary>
        /// Constructor
        /// </summary>
        public Generator()
        {
            GeneratedDescription = string.Empty;
            _strategyBest = Data.Strategy.Clone();
            _bestBalance = _isOOS ? Backtester.Balance(_barOOS) : Backtester.NetBalance;
            _isGenerating = false;
            _isStartegyChanged = false;
            _indicatorBlackList = new List<string>();

            ColorText = LayoutColors.ColorControlText;

            TsStrategy = new ToolStrip();
            TsGenerator = new ToolStrip();
            StrategyField = new StrategyLayout(_strategyBest);
            PnlCommon = new FancyPanel(Language.T("Common"));
            PnlLimitations = new FancyPanel(Language.T("Limitations"));
            PnlSettings = new FancyPanel(Language.T("Settings"));
            PnlTop10 = new FancyPanel(Language.T("Top 10"));
            PnlIndicators = new FancyPanel(Language.T("Indicators"));
            BalanceChart = new SmallBalanceChart();
            InfpnlAccountStatistics = new InfoPanel();
            ProgressBar = new ProgressBar();
            LblCalcStrInfo = new Label();
            LblCalcStrNumb = new Label();
            BtnAccept = new Button();
            BtnGenerate = new Button();
            BtnCancel = new Button();
            ChbGenerateNewStrategy = new CheckBox();
            ChbPreservePermSL = new CheckBox();
            ChbPreservePermTP = new CheckBox();
            ChbPreserveBreakEven = new CheckBox();
            ChbInitialOptimization = new CheckBox();
            NudWorkingMinutes = new NumericUpDown();
            LblWorkingMinutes = new Label();

            MaximizeBox = false;
            Icon = Data.Icon;
            FormBorderStyle = FormBorderStyle.FixedDialog;
            BackColor = LayoutColors.ColorFormBack;
            AcceptButton = BtnGenerate;
            Text = Language.T("Strategy Generator") + " - " + Data.Symbol + " " + Data.PeriodString + ", " +
                   Data.Bars + " " + Language.T("bars");
            FormClosing += GeneratorFormClosing;

            // Tool Strip Strategy
            TsStrategy.Parent = this;
            TsStrategy.Dock = DockStyle.None;
            TsStrategy.AutoSize = false;

            // Tool Strip Generator
            TsGenerator.Parent = this;
            TsGenerator.Dock = DockStyle.None;
            TsGenerator.AutoSize = false;

            // Creates a Strategy Layout
            StrategyField.Parent = this;
            StrategyField.ShowAddSlotButtons = false;
            StrategyField.ShowRemoveSlotButtons = false;
            StrategyField.ShowPadlockImg = true;
            StrategyField.SlotPropertiesTipText = Language.T("Lock or unlock the slot.");
            StrategyField.SlotToolTipText = Language.T("Lock, link, or unlock the slot.");

            PnlCommon.Parent = this;
            PnlLimitations.Parent = this;
            PnlSettings.Parent = this;
            PnlTop10.Parent = this;
            PnlIndicators.Parent = this;

            // Small Balance Chart
            BalanceChart.Parent = this;
            BalanceChart.BackColor = LayoutColors.ColorControlBack;
            BalanceChart.Visible = true;
            BalanceChart.Cursor = Cursors.Hand;
            BalanceChart.IsContextButtonVisible = true;
            BalanceChart.PopUpContextMenu.Items.AddRange(GetBalanceChartContextMenuItems());
            BalanceChart.Click += AccountAutputClick;
            BalanceChart.DoubleClick += AccountAutputClick;
            toolTip.SetToolTip(BalanceChart, Language.T("Show account statistics."));
            BalanceChart.SetChartData();

            // Info Panel Account Statistics
            InfpnlAccountStatistics.Parent = this;
            InfpnlAccountStatistics.Visible = false;
            InfpnlAccountStatistics.Cursor = Cursors.Hand;
            InfpnlAccountStatistics.IsContextButtonVisible = true;
            InfpnlAccountStatistics.PopUpContextMenu.Items.AddRange(GetInfoPanelContextMenuItems());
            InfpnlAccountStatistics.Click += AccountAutputClick;
            InfpnlAccountStatistics.DoubleClick += AccountAutputClick;
            toolTip.SetToolTip(InfpnlAccountStatistics, Language.T("Show account chart."));

            // ProgressBar
            ProgressBar.Parent = this;
            ProgressBar.Minimum = 1;
            ProgressBar.Maximum = 100;
            ProgressBar.Step = 1;

            //Button Generate
            BtnGenerate.Parent = this;
            BtnGenerate.Name = "Generate";
            BtnGenerate.Text = Language.T("Generate");
            BtnGenerate.Click += BtnGenerateClick;
            BtnGenerate.UseVisualStyleBackColor = true;

            //Button Accept
            BtnAccept.Parent = this;
            BtnAccept.Name = "Accept";
            BtnAccept.Text = Language.T("Accept");
            BtnAccept.Enabled = false;
            BtnAccept.DialogResult = DialogResult.OK;
            BtnAccept.UseVisualStyleBackColor = true;

            //Button Cancel
            BtnCancel.Parent = this;
            BtnCancel.Text = Language.T("Cancel");
            BtnCancel.DialogResult = DialogResult.Cancel;
            BtnCancel.UseVisualStyleBackColor = true;

            // BackgroundWorker
            BgWorker = new BackgroundWorker {WorkerReportsProgress = true, WorkerSupportsCancellation = true};
            BgWorker.DoWork += BgWorkerDoWork;
            BgWorker.ProgressChanged += BgWorkerProgressChanged;
            BgWorker.RunWorkerCompleted += BgWorkerRunWorkerCompleted;

            SetButtonsStrategy();
            SetButtonsGenerator();
            SetPanelCommon();
            SetPanelLimitations();
            SetPanelSettings();
            SetPanelTop10();
            SetPanelIndicators();
            LoadOptions();
            SetStrategyDescriptionButton();

            ChbHideFsb.CheckedChanged += HideFSBClick;
        }
        /// <summary>
        ///     Constructor
        /// </summary>
        public JForexImport()
        {
            lblIntro = new Label();
            tbxDataDirectory = new TextBox();
            btnBrowse = new Button();
            pnlSettings = new FancyPanel();
            pnlInfoBase = new FancyPanel(Language.T("Imported Files"));
            tbxInfo = new TextBox();
            btnHelp = new Button();
            btnClose = new Button();
            btnImport = new Button();
            progressBar = new ProgressBar();

            lblMarketClose = new Label();
            lblMarketOpen = new Label();
            nudMarketClose = new NumericUpDown();
            nudMarketOpen = new NumericUpDown();
            lblDestFolder = new Label();
            tbxDestFolder = new TextBox();
            btnDestFolder = new Button();

            colorText = LayoutColors.ColorControlText;

            MaximizeBox = false;
            MinimizeBox = false;
            ShowInTaskbar = false;
            Icon = Data.Icon;
            FormBorderStyle = FormBorderStyle.FixedDialog;
            AcceptButton = btnImport;
            CancelButton = btnClose;
            Text = Language.T("JForex Import");

            // Label Intro
            lblIntro.Parent = pnlSettings;
            lblIntro.ForeColor = colorText;
            lblIntro.BackColor = Color.Transparent;
            lblIntro.AutoSize = true;
            lblIntro.Text = Language.T("Directory containing JForex data files:");

            // Data Directory
            tbxDataDirectory.Parent = pnlSettings;
            tbxDataDirectory.BackColor = LayoutColors.ColorControlBack;
            tbxDataDirectory.ForeColor = colorText;
            tbxDataDirectory.Text = Configs.JForexDataPath;

            // Button Browse
            btnBrowse.Parent = pnlSettings;
            btnBrowse.Name = "Browse";
            btnBrowse.Text = Language.T("Browse");
            btnBrowse.Click += BtnBrowseClick;
            btnBrowse.UseVisualStyleBackColor = true;

            // Label Market Close
            lblMarketClose.Parent = pnlSettings;
            lblMarketClose.ForeColor = colorText;
            lblMarketClose.BackColor = Color.Transparent;
            lblMarketClose.AutoSize = true;
            lblMarketClose.Text = Language.T("Market closing hour on Friday:");

            // Label Market Open
            lblMarketOpen.Parent = pnlSettings;
            lblMarketOpen.ForeColor = colorText;
            lblMarketOpen.BackColor = Color.Transparent;
            lblMarketOpen.AutoSize = true;
            lblMarketOpen.Text = Language.T("Market opening hour on Sunday:");

            // NUDMarketClose
            nudMarketClose.BeginInit();
            nudMarketClose.Parent = pnlSettings;
            nudMarketClose.TextAlign = HorizontalAlignment.Center;
            nudMarketClose.Minimum = 0;
            nudMarketClose.Maximum = 24;
            nudMarketClose.Increment = 1;
            nudMarketClose.Value = Configs.MarketClosingHour;
            nudMarketClose.EndInit();

            // NUDMarketOpen
            nudMarketOpen.BeginInit();
            nudMarketOpen.Parent = pnlSettings;
            nudMarketOpen.TextAlign = HorizontalAlignment.Center;
            nudMarketOpen.Minimum = 0;
            nudMarketOpen.Maximum = 24;
            nudMarketOpen.Increment = 1;
            nudMarketOpen.Value = Configs.MarketOpeningHour;
            nudMarketOpen.EndInit();

            // lblDestFolder
            lblDestFolder.Parent = pnlSettings;
            lblDestFolder.ForeColor = LayoutColors.ColorControlText;
            lblDestFolder.BackColor = Color.Transparent;
            lblDestFolder.AutoSize = true;
            lblDestFolder.Text = Language.T("Select a destination folder") + ":";

            // tbxDestFolder
            tbxDestFolder.Parent = pnlSettings;
            tbxDestFolder.BackColor = LayoutColors.ColorControlBack;
            tbxDestFolder.ForeColor = LayoutColors.ColorControlText;
            tbxDestFolder.Text = String.IsNullOrEmpty(Configs.JForexImportDestFolder)
                                     ? Data.OfflineDataDir
                                     : Configs.JForexImportDestFolder;

            // btnDestFolder
            btnDestFolder.Parent = pnlSettings;
            btnDestFolder.Name = "btnDestFolder";
            btnDestFolder.Text = Language.T("Browse");
            btnDestFolder.Click += BtnDestFolderClick;
            btnDestFolder.UseVisualStyleBackColor = true;

            // pnlSettings
            pnlSettings.Parent = this;

            // pnlInfoBase
            pnlInfoBase.Parent = this;
            pnlInfoBase.Padding = new Padding(4, (int) pnlInfoBase.CaptionHeight, 2, 2);

            // TbxInfo
            tbxInfo.Parent = pnlInfoBase;
            tbxInfo.BorderStyle = BorderStyle.None;
            tbxInfo.Dock = DockStyle.Fill;
            tbxInfo.BackColor = LayoutColors.ColorControlBack;
            tbxInfo.ForeColor = LayoutColors.ColorControlText;
            tbxInfo.Multiline = true;
            tbxInfo.AcceptsReturn = true;
            tbxInfo.AcceptsTab = true;
            tbxInfo.ScrollBars = ScrollBars.Vertical;

            // ProgressBar
            progressBar.Parent = this;

            // Button Help
            btnHelp.Parent = this;
            btnHelp.Name = "Help";
            btnHelp.Text = Language.T("Help");
            btnHelp.Click += btnHelpClick;
            btnHelp.UseVisualStyleBackColor = true;

            // Button Close
            btnClose.Parent = this;
            btnClose.Text = Language.T("Close");
            btnClose.DialogResult = DialogResult.Cancel;
            btnClose.UseVisualStyleBackColor = true;

            // Button Import
            btnImport.Parent = this;
            btnImport.Name = "Import";
            btnImport.Text = Language.T("Import");
            btnImport.Click += BtnImportClick;
            btnImport.UseVisualStyleBackColor = true;

            // BackGroundWorker
            bgWorker = new BackgroundWorker {WorkerReportsProgress = true, WorkerSupportsCancellation = true};
            bgWorker.DoWork += BgWorkerDoWork;
            bgWorker.RunWorkerCompleted += BgWorkerRunWorkerCompleted;
        }