Beispiel #1
0
        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++;
                }
            }
        }
Beispiel #2
0
        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++;
                }
            }
        }