protected override void Init(string data) { _absoluteAlert = new AbsoluteAlert(ref data); _length = int.Parse(Utility.GetSubstring(data, ';', 0)); _source = (Source)int.Parse(Utility.GetSubstring(data, ';', 1)); _type = int.Parse(Utility.GetSubstring(data, ';', 2)); }
protected override void Init(string data) { _absoluteAlert = new AbsoluteAlert(ref data); _lengthK = int.Parse(Utility.GetSubstring(data, ';', 0)); _lengthD = int.Parse(Utility.GetSubstring(data, ';', 1)); _lengthSmooth = int.Parse(Utility.GetSubstring(data, ';', 2)); _isDTrigger = Convert.ToBoolean(int.Parse(Utility.GetSubstring(data, ';', 3))); _type = int.Parse(Utility.GetSubstring(data, ';', 4)); }
public override MetroPanel GetFilledUI() { MetroPanel panel = BaseGetOptions(true); panel.Controls["txtValue"].Text = _absoluteAlert.Trigger.ToString(); ((MetroComboBox)(panel.Controls["cBoxCondition"])).SelectedItem = AbsoluteAlert.ConditionToString(_absoluteAlert.Type); return(panel); }
/// <summary> /// Returns true if values cross. /// </summary> public bool Test(AbsoluteAlert absoluteAlert) { if (_previous < absoluteAlert._previous && Current > absoluteAlert.Current || _previous > absoluteAlert._previous && Current < absoluteAlert.Current) { return(true); } return(false); }
// creates alert from line (the one that is in file) protected override void Init(string data) { _absoluteAlert1 = new AbsoluteAlert(ref data); _absoluteAlert2 = new AbsoluteAlert(ref data); _slowLength = int.Parse(Utility.GetSubstring(data, ';', 0)); _fastLength = int.Parse(Utility.GetSubstring(data, ';', 1)); _onType = (OnType)int.Parse(Utility.GetSubstring(data, ';', 2)); _type = int.Parse(Utility.GetSubstring(data, ';', 3)); }
protected override bool Create(MetroPanel panel) { _absoluteAlert = new AbsoluteAlert(); // custom alert if (panel.Controls["cBoxType"].Text == Types[2]) { if (!float.TryParse(panel.Controls["txtValue"].Text.Replace(',', '.'), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out _absoluteAlert.Trigger)) { System.Windows.Forms.MessageBox.Show("Something is wrong in price section."); return(false); } if (_absoluteAlert.Trigger > 100 || _absoluteAlert.Trigger < 0) { System.Windows.Forms.MessageBox.Show("RSI value must be between 0 and 100"); return(false); } if (!int.TryParse(panel.Controls["txtLength"].Text.Replace(',', '.'), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out _length)) { System.Windows.Forms.MessageBox.Show("Something is wrong in length section."); return(false); } if (_length <= 0) { System.Windows.Forms.MessageBox.Show("Length cannot be less than 1."); return(false); } _type = 2; _absoluteAlert.Type = AbsoluteAlert.StringToCondition(panel.Controls["cBoxCondition"].Text); _source = StringToSource(panel.Controls["cBoxSource"].Text); } else if (panel.Controls["cBoxType"].Text == Types[0]) // overbought { _absoluteAlert.Trigger = 70; _absoluteAlert.Type = TriggerType.higherOrEqual; _type = 0; } else if (panel.Controls["cBoxType"].Text == Types[1]) // oversold { _absoluteAlert.Trigger = 30; _absoluteAlert.Type = TriggerType.lowerOrEqual; _type = 1; } else { // combobox has different text other than expected throw new ArgumentException(); } if (((MetroComboBox)panel.Controls["cBoxTimeframe"]).SelectedIndex == -1) { System.Windows.Forms.MessageBox.Show("Please select timeframe."); return(false); } timeframe = AbstractAPI.StringToTimeframe(panel.Controls["cBoxTimeframe"].Text); return(true); }
protected override bool Create(MetroPanel panel) { _absoluteAlert = new AbsoluteAlert(); // when editing alert last price is saved from previous one if (!float.TryParse(panel.Controls["txtValue"].Text.Replace(',', '.'), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out _absoluteAlert.Trigger)) { System.Windows.Forms.MessageBox.Show("Something is wrong in value section."); return(false); } _absoluteAlert.Type = AbsoluteAlert.StringToCondition(panel.Controls["cBoxCondition"].Text); return(true); }
/// <summary> /// Creates panel. /// </summary> /// <param name="addAbsoluteAlert">Include default controls?</param> /// <returns></returns> protected MetroPanel BaseGetOptions(bool addAbsoluteAlert = false) { var panel = new MetroPanel { Location = new System.Drawing.Point(278, 7), Name = "Panel", Size = new System.Drawing.Size(433, 146), }; if (addAbsoluteAlert) { object[] controls = AbsoluteAlert.GetOptions(); panel.Controls.Add(((MetroTextBox)controls[0])); panel.Controls.Add(((MetroComboBox)controls[1])); panel.Controls.Add(((MetroLabel)controls[2])); panel.Controls.Add(((MetroLabel)controls[3])); } return(panel); }
protected override bool Create(MetroPanel panel) { _absoluteAlert = new AbsoluteAlert(); // custom alert if (panel.Controls["cBoxType"].Text == _types[2]) { if (!float.TryParse(panel.Controls["txtValue"].Text.Replace(',', '.'), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out _absoluteAlert.Trigger)) { System.Windows.Forms.MessageBox.Show("Something is wrong in price section."); return(false); } if (_absoluteAlert.Trigger > 100 || _absoluteAlert.Trigger < 0) { System.Windows.Forms.MessageBox.Show("Stoch value must be between 0 and 100"); return(false); } if (!int.TryParse(panel.Controls["txtK"].Text.Replace(',', '.'), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out _lengthK)) { System.Windows.Forms.MessageBox.Show("Something is wrong in length section."); return(false); } if (!int.TryParse(panel.Controls["txtD"].Text.Replace(',', '.'), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out _lengthD)) { System.Windows.Forms.MessageBox.Show("Something is wrong in length section."); return(false); } //if (!int.TryParse(panel.Controls["txtSmooth"].Text.Replace(',', '.'), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out _lengthSmooth)) //{ // System.Windows.Forms.MessageBox.Show("Something is wrong in length section."); // return false; //} if (_lengthD < 1 || _lengthK < 1 || _lengthSmooth < 1) { System.Windows.Forms.MessageBox.Show("Custom values must be positive."); return(false); } _absoluteAlert.Type = AbsoluteAlert.StringToCondition(panel.Controls["cBoxCondition"].Text); _type = 2; _isDTrigger = ((MetroCheckBox)(panel.Controls["chcBoxTriggerType"])).Checked; } else if (panel.Controls["cBoxType"].Text == _types[0]) // overbought { _absoluteAlert.Trigger = 80; _absoluteAlert.Type = TriggerType.higherOrEqual; _type = 0; } else if (panel.Controls["cBoxType"].Text == _types[1]) // oversold { _absoluteAlert.Trigger = 20; _absoluteAlert.Type = TriggerType.lowerOrEqual; _type = 1; } else { // combobox has different text other than expected throw new ArgumentException(); } if (((MetroComboBox)panel.Controls["cBoxTimeframe"]).SelectedIndex == -1) { System.Windows.Forms.MessageBox.Show("Please select timeframe."); return(false); } _isDTrigger = ((MetroCheckBox)panel.Controls["chcBoxTriggerType"]).Checked; timeframe = AbstractAPI.StringToTimeframe(panel.Controls["cBoxTimeframe"].Text); return(true); }
public StochAlert() { _absoluteAlert = new AbsoluteAlert(); }
// creates alert from line (the one that is in file) protected override void Init(string data) { _absoluteAlert = new AbsoluteAlert(ref data); }
public PriceAlert() { _absoluteAlert = new AbsoluteAlert(); }
public MACDAlert() : base() { _absoluteAlert1 = new AbsoluteAlert(); _absoluteAlert2 = new AbsoluteAlert(); }
protected override bool Create(MetroPanel panel) { _absoluteAlert1 = new AbsoluteAlert(); _absoluteAlert2 = new AbsoluteAlert(); if (panel.Controls["cBoxType"].Text == _types[4]) { if (!int.TryParse(panel.Controls["txtSlowLength"].Text, out _slowLength)) { System.Windows.Forms.MessageBox.Show("Something is wrong in slow length section."); return(false); } if (!int.TryParse(panel.Controls["txtFastLength"].Text, out _fastLength)) { System.Windows.Forms.MessageBox.Show("Something is wrong in fast length section."); return(false); } if (_slowLength < 1 || _fastLength < 1) { System.Windows.Forms.MessageBox.Show("Length cannot be less than 1."); return(false); } _absoluteAlert1.Type = AbsoluteAlert.StringToCondition(panel.Controls["cBoxCondition"].Text); _absoluteAlert2.Type = AbsoluteAlert.StringToCondition(panel.Controls["cBoxCondition"].Text); if (((MetroComboBox)(panel.Controls["cBoxOn"])).SelectedIndex == -1) { System.Windows.Forms.MessageBox.Show("Please select on what to trigger."); return(false); } _onType = StringToOnType(panel.Controls["cBoxOn"].Text); if (!float.TryParse(panel.Controls["txtValue"].Text.Replace(',', '.'), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out _absoluteAlert1.Trigger)) { if (_absoluteAlert1.Type != TriggerType.crossing && (int)_onType > 2) { System.Windows.Forms.MessageBox.Show("Something is wrong in value section."); return(false); } _absoluteAlert1.Trigger = float.MinValue; } _type = 4; _absoluteAlert2.Trigger = _absoluteAlert1.Trigger; } else if (panel.Controls["cBoxType"].Text == "Buy signal") { _absoluteAlert1.Type = TriggerType.crossing; _absoluteAlert1.Trigger = float.MinValue; _onType = OnType.MACD_Signal; _type = 0; } else if (panel.Controls["cBoxType"].Text == "Sell signal") { _absoluteAlert1.Type = TriggerType.crossing; _absoluteAlert1.Trigger = float.MinValue; _onType = OnType.MACD_Signal; _type = 1; } else if (panel.Controls["cBoxType"].Text == "Positive") { _absoluteAlert1.Type = TriggerType.higher; _absoluteAlert1.Trigger = 0; _onType = OnType.MACD; _type = 2; } else if (panel.Controls["cBoxType"].Text == "Negative") { _absoluteAlert1.Type = TriggerType.lower; _absoluteAlert1.Trigger = 0; _onType = OnType.MACD; _type = 3; } else { // combobox has different text other than expected throw new ArgumentException(); } if (((MetroComboBox)panel.Controls["cBoxTimeframe"]).SelectedIndex == -1) { System.Windows.Forms.MessageBox.Show("Please select timeframe."); return(false); } _slowLength = int.Parse(panel.Controls["txtSlowLength"].Text); _fastLength = int.Parse(panel.Controls["txtFastLength"].Text); timeframe = AbstractAPI.StringToTimeframe(panel.Controls["cBoxTimeframe"].Text); return(true); }
public RSIAlert() { _absoluteAlert = new AbsoluteAlert(); }