/// <summary> /// Pastes a strategy from clipboard. /// </summary> protected override void MenuStrategyPaste_OnClick(object sender, EventArgs e) { DialogResult dialogResult = WhetherSaveChangedStrategy(); if (dialogResult == DialogResult.Yes) { SaveStrategy(); } else if (dialogResult == DialogResult.Cancel) { return; } var xmlDoc = new XmlDocument(); var strategyXml = new StrategyXml(); Strategy tempStrategy; try { xmlDoc.InnerXml = Clipboard.GetText(); tempStrategy = strategyXml.ParseXmlStrategy(xmlDoc); Strategy.CheckStrategyCompatibility(tempStrategy); } catch (MissingIndicatorException exception) { string message = string.Format( "{2}{1}{0}{1}Please find this indicator in Repository or in Custom Indicators forum.", exception.Message, Environment.NewLine, "Cannot load the strategy."); MessageBox.Show(message, "Load strategy", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } catch (Exception exception) { MessageBox.Show(exception.Message); return; } OnStrategyChange(); Data.Strategy = tempStrategy; Data.StrategyName = tempStrategy.StrategyName; Data.Strategy.StrategyName = tempStrategy.StrategyName; Data.SetStrategyIndicators(); RebuildStrategyLayout(); SetSrategyOverview(); SetFormText(); Data.IsStrategyChanged = false; Data.LoadedSavedStrategy = Data.StrategyPath; Data.StackStrategy.Clear(); CalculateStrategy(true); AfterStrategyOpening(); }
/// <summary> /// Saves the strategy in XML format. /// </summary> public void Save(string fileName) { StrategyName = Path.GetFileNameWithoutExtension(fileName); Symbol = Data.Symbol; DataPeriod = Data.Period; XmlDocument xmlDocStrategy = StrategyXml.CreateStrategyXmlDoc(this); try { xmlDocStrategy.Save(fileName); // Save the document to a file. } catch (Exception e) { MessageBox.Show(e.Message); } }
/// <summary> /// Loads the strategy from a file in XML format. /// </summary> public static bool Load(string filename) { var xmlDocStrategy = new XmlDocument(); try { xmlDocStrategy.Load(filename); } catch (Exception e) { MessageBox.Show(e.Message, Language.T("Strategy Loading")); return(false); } var strategyXml = new StrategyXml(); try { Strategy strategy = strategyXml.ParseXmlStrategy(xmlDocStrategy); CheckStrategyCompatibility(strategy); Data.Strategy = strategy; } catch (MissingIndicatorException exception) { string message = string.Format( "Cannot load \"{2}\" strategy. {1} {0} {1} Please find this indicator in Repository or in Custom Indicators forum.", exception.Message, Environment.NewLine, Path.GetFileNameWithoutExtension(filename)); MessageBox.Show(message, "Load strategy", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(false); } catch (Exception exception) { MessageBox.Show(exception.Message); return(false); } return(true); }
/// <summary> /// Copies the strategy to clipboard. /// </summary> protected override void MenuStrategyCopy_OnClick(object sender, EventArgs e) { XmlDocument xmlDoc = StrategyXml.CreateStrategyXmlDoc(Data.Strategy); Clipboard.SetText(xmlDoc.InnerXml); }
/// <summary> /// Loads the strategy from a file in XML format. /// </summary> public static bool Load(string filename) { var xmlDocStrategy = new XmlDocument(); try { xmlDocStrategy.Load(filename); } catch (Exception e) { MessageBox.Show(e.Message, Language.T("Strategy Loading")); return false; } var strategyXml = new StrategyXml(); try { Strategy strategy = strategyXml.ParseXmlStrategy(xmlDocStrategy); CheckStrategyCompatibility(strategy); Data.Strategy = strategy; } catch (MissingIndicatorException exception) { string message = string.Format( "Cannot load \"{2}\" strategy. {1} {0} {1} Please find this indicator in Repository or in Custom Indicators forum.", exception.Message, Environment.NewLine, Path.GetFileNameWithoutExtension(filename)); MessageBox.Show(message, "Load strategy", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } catch (Exception exception) { MessageBox.Show(exception.Message); return false; } return true; }
/// <summary> /// Pastes a strategy from clipboard. /// </summary> protected override void MenuStrategyPaste_OnClick(object sender, EventArgs e) { DialogResult dialogResult = WhetherSaveChangedStrategy(); if (dialogResult == DialogResult.Yes) SaveStrategy(); else if (dialogResult == DialogResult.Cancel) return; var xmlDoc = new XmlDocument(); var strategyXml = new StrategyXml(); Strategy tempStrategy; try { xmlDoc.InnerXml = Clipboard.GetText(); tempStrategy = strategyXml.ParseXmlStrategy(xmlDoc); Strategy.CheckStrategyCompatibility(tempStrategy); } catch (MissingIndicatorException exception) { string message = string.Format( "{2}{1}{0}{1}Please find this indicator in Repository or in Custom Indicators forum.", exception.Message, Environment.NewLine, "Cannot load the strategy."); MessageBox.Show(message, "Load strategy", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } catch (Exception exception) { MessageBox.Show(exception.Message); return; } OnStrategyChange(); Data.Strategy = tempStrategy; Data.StrategyName = tempStrategy.StrategyName; Data.Strategy.StrategyName = tempStrategy.StrategyName; Data.SetStrategyIndicators(); RebuildStrategyLayout(); SetSrategyOverview(); SetFormText(); Data.IsStrategyChanged = false; Data.LoadedSavedStrategy = Data.StrategyPath; Data.StackStrategy.Clear(); CalculateStrategy(true); AfterStrategyOpening(); }