/// <summary>
        /// 策略添加按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAddStrategy_Click(object sender, RoutedEventArgs e)
        {
            Type         strategyType = (Type)this.cbxStrategyName.SelectedItem;
            Strategy     strategy     = (Strategy)Activator.CreateInstance(strategyType);
            string       instrumentID = this.cbxStrategyInstrumentID.Text.ToString();
            IntervalType intervalType = (IntervalType)Enum.Parse(typeof(IntervalType), this.cbxStrategyIntervalType.Text.ToString());
            int          interval     = int.Parse(this.cbxStrategyInterval.Text);

            //调用参数Form
            using (FormParams fp = new FormParams())
            {
                ////从文本中做参数赋值
                //string ss = "(MaxLoss:1)";
                //foreach (var v in ss.Trim('(', ')').Split(','))
                //{
                //    strategy.SetParameterValue(v.Split(':')[0], v.Split(':')[1]);
                //}
                //策略参数配置
                fp.propertyGrid1.SelectedObject = strategy;
                fp.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
                if (fp.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }
                strategy.Notify("");
            }

            //将策略添加到DictStrategies
            string name = strategyType.Name + "_" + instrumentID + "_" + interval +
                          "_" + intervalType.ToString() + strategy.GetParams();

            this.AddStrategy(strategy, name, instrumentID, interval, intervalType);
        }
示例#2
0
        private void radioButtons_MouseClick(object sender, MouseEventArgs e)
        {
            RadioButton rd = (RadioButton)sender;

            if (intervalType.ToString().Contains(rd.Text))
            {
                return;
            }

            DialogResult result = MessageBox.Show(message, messageTitle, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);

            if (result == DialogResult.Yes)
            {
                changeIntervalType();
                resetValues();
            }
            else
            {
                if (rdBreak.Checked)
                {
                    rdWork.Checked = true;
                }
                else
                {
                    rdBreak.Checked = true;
                }
            }
        }
示例#3
0
        public IHttpActionResult Get([FromUri] string sdi, [FromUri] DateTime t1, [FromUri] DateTime t2, [FromUri] IntervalType interval = new IntervalType(), [FromUri] bool rbase = false, [FromUri] TableType table = new TableType(), [FromUri] int mrid = 0, [FromUri] string instantMinutes = "60")
        {
            IDbConnection db = HdbController.Connect(this.Request.Headers);
            var           seriesProcessor = new HdbApi.DataAccessLayer.SeriesRepository();
            var           result          = seriesProcessor.GetSeries(db, sdi, interval.ToString(), t1, t2, table.ToString(), mrid, rbase, instantMinutes);

            try
            {
                db.Close();
                db.Dispose();
            }
            catch
            {
            }

            return(Ok(result));
        }
示例#4
0
 public virtual string GetDetails()
 {
     return("Runs every " + CheckInterval + " " + IntervalType.ToString() + "; " +
            " Notify after " + NotifyIfHappensAfterTimes + " failures ; " +
            (NotifyByEmail ? " Notify by Email " : "Nofication disable ") + "; ");
 }