Forex_Strategy_Builder.Strategy_to_Indicator.ExportStrategyToIndicator C# (CSharp) Method

ExportStrategyToIndicator() public static method

public static ExportStrategyToIndicator ( ) : void
return void
        public static void ExportStrategyToIndicator()
        {
            StringBuilder sbLong  = new StringBuilder();
            StringBuilder sbShort = new StringBuilder();

            for (int iBar = Data.FirstBar; iBar < Data.Bars; iBar++)
            for (int iPos = 0; iPos < Backtester.Positions(iBar); iPos++)
            {
                if (Backtester.PosDir(iBar, iPos) == PosDirection.Long)
                    sbLong.AppendLine("				\"" + Data.Time[iBar].ToString() + "\",");

                if (Backtester.PosDir(iBar, iPos) == PosDirection.Short)
                    sbShort.AppendLine("				\"" + Data.Time[iBar].ToString() + "\",");
            }

            string strategy = Properties.Resources.StrategyToIndicator;
            strategy = strategy.Replace("#MODIFIED#",   DateTime.Now.ToString());
            strategy = strategy.Replace("#INSTRUMENT#", Data.Symbol);
            strategy = strategy.Replace("#BASEPERIOD#", Data.DataPeriodToString(Data.Period));
            strategy = strategy.Replace("#STARTDATE#",  Data.Time[Data.FirstBar].ToString());
            strategy = strategy.Replace("#ENDDATE#",    Data.Time[Data.Bars - 1].ToString());

            strategy = strategy.Replace("#PERIODMINUTES#", ((int)Data.Period).ToString());
            strategy = strategy.Replace("#LISTLONG#",  sbLong.ToString());
            strategy = strategy.Replace("#LISTSHORT#", sbShort.ToString());

            SaveFileDialog savedlg = new SaveFileDialog();
            savedlg.InitialDirectory = Data.SourceFolder;
            savedlg.AddExtension     = true;
            savedlg.Title            = Language.T("Custom Indicators");
            savedlg.Filter           = Language.T("Custom Indicators") + " (*.cs)|*.cs";

            if (savedlg.ShowDialog() == DialogResult.OK)
            {
                strategy = strategy.Replace("#INDICATORNAME#", Path.GetFileNameWithoutExtension(savedlg.FileName));
                StreamWriter sw = new StreamWriter(savedlg.FileName);
                try
                {
                    sw.Write(strategy);
                }
                catch (Exception exc)
                {
                    MessageBox.Show(exc.Message, Language.T("Custom Indicators"));
                }
                finally
                {
                    sw.Close();
                }
            }

            return;
        }

Usage Example

        /// <summary>
        /// Tools menu
        /// </summary>
        protected override void MenuTools_OnClick(object sender, EventArgs e)
        {
            string name = ((ToolStripMenuItem)sender).Name;

            switch (name)
            {
            case "Comparator":
                ShowComparator();
                break;

            case "Scanner":
                ShowScanner();
                break;

            case "Generator":
                ShowGenerator();
                break;

            case "Optimizer":
                ShowOptimizer();
                break;

            case "Bar Explorer":
                ShowBarExplorer();
                break;

            case "ProfitCalculator":
                ShowProfitCalculator();
                break;

            case "PivotPoints":
                ShowPivotPoints();
                break;

            case "FibonacciLevels":
                ShowFibonacciLevels();
                break;

            case "Charges":
                EditTradingCharges();
                break;

            case "miInstrumentEditor":
                ShowInstrumentEditor();
                break;

            case "Reset settings":
                ResetSettings();
                break;

            case "miNewTranslation":
                MakeNewTranslation();
                break;

            case "miEditTranslation":
                EditTranslation();
                break;

            case "miShowEnglishPhrases":
                Language.ShowPhrases(1);
                break;

            case "miShowAltPhrases":
                Language.ShowPhrases(2);
                break;

            case "miShowAllPhrases":
                Language.ShowPhrases(3);
                break;

            case "miOpenIndFolder":
                try { System.Diagnostics.Process.Start(Data.SourceFolder); }
                catch (System.Exception ex) { MessageBox.Show(ex.Message); }
                break;

            case "miReloadInd":
                Cursor = Cursors.WaitCursor;
                ReloadCustomIndicators();
                Cursor = Cursors.Default;
                break;

            case "miExportAsCI":
                Cursor = Cursors.WaitCursor;
                Strategy_to_Indicator.ExportStrategyToIndicator();
                ReloadCustomIndicators();
                Cursor = Cursors.Default;
                break;

            case "miCheckInd":
                Custom_Indicators.TestCustomIndicators();
                break;

            case "Calculator":
                ShowCalculator();
                break;

            case "miPlaySounds":
                Configs.PlaySounds = !Configs.PlaySounds;
                break;

            case "CommandConsole":
                ShowCommandConsole();
                break;

            case "miJForexImport":
                JForexImport();
                break;

            case "tsmiOverOptimization":     // Analyzer
                ShowAnalyzer("tsmiOverOptimization");
                break;

            case "tsmiCumulativeStrategy":     // Analyzer
                ShowAnalyzer("tsmiCumulativeStrategy");
                break;

            default:
                break;
            }
        }
Strategy_to_Indicator