/// <summary> /// Show the formula manager /// </summary> /// <param name="Formulas">The default formulas</param> /// <returns>Dialog result</returns> public DialogResult ShowForm(FormulaArea fa, FormulaBase SelectedFormula) { if (fa != null) { string[] Formulas = fa.FormulaToStrings(); if (Formulas != null) { this.CurrentFormulas = string.Join("#", Formulas); string s = ""; if (SelectedFormula != null) { s = SelectedFormula.CreateName; } this.SelectedFormula = s; ArrayList al = new ArrayList(); al.AddRange(Formulas); if (fa.IsMain()) { al.AddRange(OverlayFormulas); } else { al.AddRange(ListedFormulas); } AddFavorite((string[])al.ToArray(typeof(string))); } } return(ShowDialog()); }
// private void miChangeFormulaParameter_Click(object sender, System.EventArgs e) // { // // if (ChartControl.Chart.Areas.Count>0) // { // //Get first area // FormulaArea fa = ChartControl.Chart.Areas[0]; // if (fa.Formulas.Count>2) // //Get third formula and set N parameter to 20 // fa.Formulas[2].SetParam("N","20"); // } // ChartControl.SaveChartProperties(); // ChartControl.NeedRebind(); // } /// <summary> /// Add RSI(10) to fa if not exist /// </summary> /// <param name="fa"></param> private void AddFormula(FormulaArea fa) { if (fa != null) { string Indicator = "RSI(10)"; ArrayList al = new ArrayList(); al.AddRange(fa.FormulaToStrings()); if (al.IndexOf(Indicator) < 0) { al.Add(Indicator); fa.Formulas.Clear(); fa.StringsToFormula((string[])al.ToArray(typeof(string))); ChartControl.NeedRebind(); } } }
// private void miAddFormula1_Click(object sender, System.EventArgs e) // { // if (ChartControl.Chart.Areas.Count>2) // AddFormula(ChartControl.Chart.Areas[2]); // } // // private void miAddFormula2_Click(object sender, System.EventArgs e) // { // AddFormula(ChartControl.Chart.SelectedArea); // } // // private void miAddFormula3_Click(object sender, System.EventArgs e) // { // if (ChartControl.Chart.Areas.Count<8) // ChartControl.DefaultFormulas +=";RSI(10)"; // } private void MoveFormula(FormulaArea fa1, FormulaArea fa2, int Index) { if (fa1 != null && fa2 != null) { ArrayList al = new ArrayList(); al.AddRange(fa1.FormulaToStrings()); if (al.Count > Index) { string s = (string)al[Index]; al.RemoveAt(Index); fa1.Formulas.Clear(); fa1.StringsToFormula((string[])al.ToArray(typeof(string))); s = fa2.FormulaToString('#') + '#' + s; fa2.Formulas.Clear(); fa2.StringToFormula(s, '#'); ChartControl.NeedRebind(); } } }