private void DrawResult(string strategyname) { chart1.Series.Add(strategyname); chart1.Series[strategyname].ChartArea = "Result"; // 设置Series绘制区域 chart1.Series[strategyname].ChartType = SeriesChartType.Point; chart1.Series[strategyname].XValueType = ChartValueType.DateTime; chart1.Series[strategyname]["PointWidth"] = "1.5"; IStockValues values = StrategyResults_.GetResult(strategyname); if (values == null) { return; } ICollection <DateTime> dates = values.GetAllDate(); foreach (DateTime dt in dates) { double val = values.GetTotalValue(dt); Debug.Assert(val > 0); int curPos = chart1.Series[strategyname].Points.AddXY(dt, val); if (values.GetOperationSignal(dt) == OperType.Buy) { chart1.Series[strategyname].Points[curPos].MarkerImage = ApplicationHelper.GetAppPath() + "\\image\\buysignal.bmp"; } else if (values.GetOperationSignal(dt) == OperType.Sell) { chart1.Series[strategyname].Points[curPos].MarkerImage = ApplicationHelper.GetAppPath() + "\\image\\sellsignal.bmp"; } } }
private void JudgeStrategy(string strategyName, IStockValues values) { SignalValidationCalc calc = new SignalValidationCalc(); calc.HoldValues = _HoldValues; DateTime curDate = _MinDate; while (curDate < _MaxDate) { OperType tp = values.GetOperationSignal(curDate); calc.AddSignal(curDate, tp); curDate = DateFunc.GetNextWorkday(curDate); } _Scores.SetScore(strategyName, calc.TotalScore); _BuyScores.SetScore(strategyName, calc.BuyScore); _SellScores.SetScore(strategyName, calc.SellScore); }
private void JudgeStrategy(string strategyName, IStockValues values) { SignalValidationCalc calc = new SignalValidationCalc(); calc.HoldValues = _HoldValues; DateTime curDate = _MinDate; while (curDate < _MaxDate) { OperType tp = values.GetOperationSignal(curDate); calc.AddSignal(curDate, tp); curDate = DateFunc.GetNextWorkday(curDate); } _Scores.SetScore(strategyName, calc.TotalScore); _BuyScores.SetScore(strategyName, calc.BuyScore); _SellScores.SetScore(strategyName, calc.SellScore); }