/// <summary> /// The default constructor /// </summary> public Actions() { StartPosition = FormStartPosition.CenterScreen; Size = new Size(790, 590); MinimumSize = new Size(500, 375); Icon = Data.Icon; Text = Data.ProgramName; FormClosing += new FormClosingEventHandler(Actions_FormClosing); Application.Idle += new EventHandler(Application_Idle); // Load a data file UpdateStatusLabel("Loading historical data..."); if (LoadInstrument(false) != 0) { LoadInstrument(true); string messageText = Language.T("Forex Strategy Builder cannot load a historical data file and is going to use integrated data!"); MessageBox.Show(messageText, Language.T("Data File Loading"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } // Prepare custom indicators if (Configs.LoadCustomIndicators) { UpdateStatusLabel("Loading custom indicators..."); Custom_Indicators.LoadCustomIndicators(); } else { Indicator_Store.CombineAllIndicators(); } // Load a strategy UpdateStatusLabel("Loading strategy..."); string sStrategyPath = Data.StrategyPath; if (Configs.RememberLastStr && Configs.LastStrategy != "") { string sLastStrategy = Path.GetDirectoryName(Configs.LastStrategy); if (sLastStrategy != "") { sLastStrategy = Configs.LastStrategy; } else { string sPath = Path.Combine(Data.ProgramDir, Data.DefaultStrategyDir); sLastStrategy = Path.Combine(sPath, Configs.LastStrategy); } if (File.Exists(sLastStrategy)) { sStrategyPath = sLastStrategy; } } if (OpenStrategy(sStrategyPath) == 0) { AfterStrategyOpening(false); } Calculate(false); Check_Update liveContent = new Check_Update(Data.SystemDir, miLiveContent, miForex); Registrar registrar = new Registrar(); registrar.Register(); // Starting tips if (Configs.ShowStartingTip) { Starting_Tips startingTips = new Starting_Tips(); startingTips.Show(); } UpdateStatusLabel("Loading user interface..."); return; }
/// <summary> /// Load Source Files /// </summary> public static void LoadCustomIndicators() { _indicatorManager = new Indicator_Compilation_Manager(); if (!Directory.Exists(Data.SourceFolder)) { System.Windows.Forms.MessageBox.Show("Custom indicators folder does not exist!", Language.T("Custom Indicators")); Indicator_Store.ResetCustomIndicators(null); Indicator_Store.CombineAllIndicators(); return; } string[] pathInputFiles = Directory.GetFiles(Data.SourceFolder, "*.cs"); if (pathInputFiles.Length == 0) { System.Windows.Forms.MessageBox.Show("No custom indicator files found out!", Language.T("Custom Indicators")); Indicator_Store.ResetCustomIndicators(null); Indicator_Store.CombineAllIndicators(); return; } StringBuilder errorReport = new StringBuilder(); errorReport.AppendLine("<h1>" + Language.T("Custom Indicators") + "</h1>"); bool isError = false; foreach (string filePath in pathInputFiles) { string errorMessages; _indicatorManager.LoadCompileSourceFile(filePath, out errorMessages); if (!string.IsNullOrEmpty(errorMessages)) { isError = true; errorReport.AppendLine("<h2>File name: " + Path.GetFileName(filePath) + "</h2>"); string error = errorMessages.Replace(Environment.NewLine, "</br>"); error = error.Replace("\t", " "); errorReport.AppendLine("<p>" + error + "</p>"); } } // Adds the custom indicators Indicator_Store.ResetCustomIndicators(_indicatorManager.CustomIndicatorsList); Indicator_Store.CombineAllIndicators(); if (isError) { Fancy_Message_Box msgBox = new Fancy_Message_Box(errorReport.ToString(), Language.T("Custom Indicators")); msgBox.BoxWidth = 550; msgBox.BoxHeight = 340; msgBox.TopMost = true; msgBox.Show(); } if (Configs.ShowCustomIndicators) { ShowLoadedCustomIndicators(); } return; }