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;
}
/// <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; } }