private static void SimulateMt(WekaEA2 ea, DateTime startDate, DateTime endDate, Feng.Data.DbHelper dbHelper) { long minTime = WekaUtils.GetTimeFromDate(startDate); long maxTime = WekaUtils.GetTimeFromDate(endDate); var dtD1 = dbHelper.ExecuteDataTable(string.Format("SELECT * FROM {0}_{3} WHERE TIME >= {1} AND TIME < {2} ORDER BY TIME", ea.m_symbol, minTime, maxTime, TestParameters2.CandidateParameter.MainPeriod)); var dtM1 = dbHelper.ExecuteDataTable(string.Format("SELECT * FROM {0}_M1 WHERE TIME >= {1} AND TIME < {2} ORDER BY TIME", ea.m_symbol, minTime, maxTime)); int idxD1 = 0; double[] pp = new double[TestParameters.CandidateParameter4Db.AllIndNames.Count + 6 + 5]; for (int i = 0; i < dtM1.Rows.Count; ++i) { long nowTime = (long)dtM1.Rows[i]["Time"]; FillPp(pp, dtM1.Rows[i]); ea.OnNewBar(nowTime, 60, pp); if (idxD1 >= dtD1.Rows.Count) { break; } long nowD1Time = (long)dtD1.Rows[idxD1]["Time"]; if (nowTime >= nowD1Time) { FillPp(pp, dtD1.Rows[idxD1]); ea.OnNewBar(nowD1Time, (int)(TestParameters2.MainPeriodOfHour * 60 * 60), pp); idxD1++; } } }
private static void SimulateMt(WekaEA2 ea, DateTime startDate, DateTime endDate, Feng.Data.DbHelper dbHelper) { long minTime = WekaUtils.GetTimeFromDate(startDate); long maxTime = WekaUtils.GetTimeFromDate(endDate); var dtD1 = dbHelper.ExecuteDataTable(string.Format("SELECT * FROM {0}_{3} WHERE TIME >= {1} AND TIME < {2} ORDER BY TIME", ea.m_symbol, minTime, maxTime, TestParameters2.CandidateParameter.MainPeriod)); var dtM1 = dbHelper.ExecuteDataTable(string.Format("SELECT * FROM {0}_M1 WHERE TIME >= {1} AND TIME < {2} ORDER BY TIME", ea.m_symbol, minTime, maxTime)); int idxD1 = 0; double[] pp = new double[TestParameters.CandidateParameter4Db.AllIndNames.Count + 6 + 5]; for (int i = 0; i < dtM1.Rows.Count; ++i) { long nowTime = (long)dtM1.Rows[i]["Time"]; FillPp(pp, dtM1.Rows[i]); ea.OnNewBar(nowTime, 60, pp); if (idxD1 >= dtD1.Rows.Count) break; long nowD1Time = (long)dtD1.Rows[idxD1]["Time"]; if (nowTime >= nowD1Time) { FillPp(pp, dtD1.Rows[idxD1]); ea.OnNewBar(nowD1Time, (int)(TestParameters2.MainPeriodOfHour * 60 * 60), pp); idxD1++; } } }