Ejemplo n.º 1
0
        public void DoCreatePricePrediction(ref Resolver resolver, DateTime localDateTime, string fileName)
        {
            Utils.FileAppendThreadSafe(fileName, string.Format("1. DoCreateSystemPricePrediction--OpenBettingTime is {0}: {1}{2}", localDateTime, DateTime.Now, Environment.NewLine));

            var newPricePredictionRecord = new PricePrediction
            {
                Coinbase                  = EnumCurrencyPair.BTCUSDT.ToString(),
                OpenBettingTime           = localDateTime,
                CloseBettingTime          = localDateTime.AddHours(PricePredictionGameIntervalInHour - PricePredictionHoldingIntervalInHour).AddMinutes(-PricePredictionCompareIntervalInMinute),
                ToBeComparedTime          = localDateTime.AddHours(PricePredictionGameIntervalInHour).AddMinutes(-PricePredictionCompareIntervalInMinute),
                ResultTime                = localDateTime.AddHours(PricePredictionGameIntervalInHour),
                PricePredictionCategoryId = (int)EnumPricePredictionCategory.SYSTEM,
                DividendRate              = int.Parse(resolver.SettingService.Queryable().FirstOrDefault(x => x.Name == CPLConstant.PricePredictionTotalAwardPercentage).Value)
            };

            resolver.PricePredictionService.Insert(newPricePredictionRecord);

            // udpate DB
            resolver.UnitOfWork.SaveChanges();

            var langIds = resolver.LangService.Queryable().Select(x => x.Id).ToList();
            var title   = newPricePredictionRecord.CloseBettingTime.ToString("HH:mm") == "00:00" ? "24:00" : newPricePredictionRecord.CloseBettingTime.ToString("HH:mm");

            foreach (var id in langIds)
            {
                resolver.PricePredictionDetailService.Insert(new PricePredictionDetail
                {
                    LangId            = id,
                    Title             = title, // title will be shown as tab name in priceprediction screen
                    PricePredictionId = newPricePredictionRecord.Id,
                });
            }

            // udpate DB
            resolver.UnitOfWork.SaveChanges();
        }
Ejemplo n.º 2
0
        public void DoCreatePricePrediction(ref Resolver resolver, DateTime localDateTime, string logFileName)
        {
            Utils.FileAppendThreadSafe(logFileName, string.Format("1. DoCreateAdminPricePrediction: {0}{1}", DateTime.Now, Environment.NewLine));

            var activePricePredictionSettings = resolver.PricePredictionSettingService.Queryable().Where(x => x.Status == (int)EnumPricePredictionSettingStatus.ACTIVE && !x.IsDeleted).ToList();

            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler().Result;

            foreach (var activePricePredictionSetting in activePricePredictionSettings)
            {
                var openBettingTime  = new DateTime(localDateTime.Year, localDateTime.Month, localDateTime.Day) + activePricePredictionSetting.OpenBettingTime;
                var closeBettingTime = new DateTime(localDateTime.Year, localDateTime.Month, localDateTime.Day) + activePricePredictionSetting.CloseBettingTime;
                var toBeComparedTime = closeBettingTime.AddHours((double)activePricePredictionSetting.HoldingTimeInterval);
                var resultTime       = toBeComparedTime.AddMinutes((double)activePricePredictionSetting.ResultTimeInterval);

                var newPricePredictionRecord = new PricePrediction
                {
                    Coinbase                  = EnumCurrencyPair.BTCUSDT.ToString(),
                    OpenBettingTime           = openBettingTime,
                    CloseBettingTime          = closeBettingTime,
                    ToBeComparedTime          = toBeComparedTime,
                    ResultTime                = resultTime,
                    PricePredictionCategoryId = activePricePredictionSetting.PricePredictionCategoryId,
                    DividendRate              = activePricePredictionSetting.DividendRate
                };

                resolver.PricePredictionService.Insert(newPricePredictionRecord);
                resolver.UnitOfWork.SaveChanges();

                var LangIds = resolver.LangService.Queryable().Select(x => x.Id).ToList();
                //var title = newPricePredictionRecord.CloseBettingTime.ToString("HH:mm") == "00:00" ? "24:00" : newPricePredictionRecord.CloseBettingTime.ToString("HH:mm");
                var title = resolver.PricePredictionSettingDetailService.Queryable().FirstOrDefault(x => x.PricePredictionSettingId == activePricePredictionSetting.Id).Title;
                foreach (var id in LangIds)
                {
                    resolver.PricePredictionDetailService.Insert(new PricePredictionDetail
                    {
                        LangId            = id,
                        Title             = title, // title will be shown as named of tab in priceprediction screen
                        PricePredictionId = newPricePredictionRecord.Id,
                    });
                }

                // udpate DB
                resolver.UnitOfWork.SaveChanges();

                var jobData = new JobDataMap
                {
                    ["Resolver"]          = resolver,
                    ["PricePredictionId"] = newPricePredictionRecord.Id
                };

                IJobDetail job = JobBuilder.Create <AdminPricePredictionCheckResultJob>()
                                 .UsingJobData(jobData)
                                 .WithIdentity(new JobKey(string.Format("AdminPricePrediction{0}CheckResultJob", newPricePredictionRecord.Id.ToString()), "QuartzGroup"))
                                 .WithDescription("Job to check admin's PricePredictions result")
                                 .Build();

                ITrigger trigger = TriggerBuilder.Create()
                                   .WithIdentity(new TriggerKey(string.Format("AdminPricePrediction{0}CheckResultJob", newPricePredictionRecord.Id.ToString()), "QuartzGroup"))
                                   .WithDescription("Job to check admin's PricePredictions result")
                                   .WithDailyTimeIntervalSchedule(x => x.WithIntervalInHours(PredictionGameServiceConstant.DailyIntervalInHours)
                                                                  .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(resultTime.Hour, resultTime.Minute))
                                                                  .WithRepeatCount(0))
                                   .Build();

                scheduler.ScheduleJob(job, trigger);
            }
        }
Ejemplo n.º 3
0
        // For more info on consuming ML.NET models, visit https://aka.ms/mlnet-consume
        // Method for consuming model in your app
        public static PricePrediction Predict(PriceData input)
        {
            PricePrediction result = PredictionEngine.Value.Predict(input);

            return(result);
        }