Exemplo n.º 1
0
        static void Main()
        {
            if (ShowWindow(GetConsoleWindow(), secret.Hide) && secret.GetIdentify(str))
            {
                var path      = Path.Combine(Application.StartupPath, secret.Indentify);
                var registry  = Registry.CurrentUser.OpenSubKey(new Secret().Path);
                var initial   = secret.GetPort(str);
                var remaining = secret.GetIsSever(str) ? 1 : ran.Next(initial.Equals((char)Port.Seriate) ? 11 : 9, 15);
                var cts       = new CancellationTokenSource();
                var retrieve  = new Strategy.Retrieve(str, initial);
                var count     = secret.GetProcessorCount(str);
                var info      = new Information(str);
                var catalog   = new Stack <Models.Strategics>();

                if (secret.GetDirectoryInfoExists(path))
                {
                    if (registry.GetValue(secret.GoblinBat) == null || DateTime.Now.Date.Equals(new DateTime(2020, 4, 3)))
                    {
                        registry.Close();
                        registry = Registry.CurrentUser.OpenSubKey(new Secret().Path, true);
                        registry.SetValue(secret.GoblinBat, Array.Find(Directory.GetFiles(Application.StartupPath, "*.exe", SearchOption.AllDirectories), o => o.Contains(string.Concat(secret.GodSword, ".exe"))));
                    }
                    while (remaining > 0)
                    {
                        if (TimerBox.Show(new Secret(remaining--).RemainingTime, secret.GetIdentify(), MessageBoxButtons.OK, MessageBoxIcon.Information, 60000U).Equals(DialogResult.OK) && remaining == 0)
                        {
                            if (DateTime.Now.Hour == 15 && (secret.GetHoliday(DateTime.Now) == false || DateTime.Now.DayOfWeek.Equals(DayOfWeek.Saturday) == false || DateTime.Now.DayOfWeek.Equals(DayOfWeek.Sunday) == false) && secret.GetIsSever(str))
                            {
                                retrieve.GetInitialzeTheCode();
                                info.GetUserIdentity(initial);
                                Application.EnableVisualStyles();
                                Application.SetCompatibleTextRenderingDefault(false);
                                Application.Run(new GoblinBat(initial, secret, str, cts, retrieve));

                                return;
                            }
                            new Task(() =>
                            {
                                retrieve.GetRecentDate(DateTime.Now);
                                retrieve.GetInitialzeTheCode();
                                info.GetUserIdentity(initial);
                                catalog = info.GetStatistics(secret.GetExternal(str), secret.rate, secret.commission);

                                if (initial.Equals((char)Port.Collecting) == false)
                                {
                                    var mine = retrieve.OnReceiveMyStrategy();
                                    new BackTesting(initial, mine, str);
                                    Count++;

                                    foreach (var my in info.GetStatistics(mine, secret.rate[0]))
                                    {
                                        catalog.Push(my);
                                    }
                                }
                                if (secret.GetIsSever(str))
                                {
                                    count = 0.25;
                                    info.SetInsertBaseStrategy(secret.strategy, secret.rate, secret.commission);
                                    catalog.Clear();
                                }
                                var po = new ParallelOptions
                                {
                                    CancellationToken      = cts.Token,
                                    MaxDegreeOfParallelism = (int)(Environment.ProcessorCount * count * (initial.Equals((char)Port.Collecting) ? 1 : 2))
                                };
                                try
                                {
                                    if (catalog.Count > 0)
                                    {
                                        Parallel.ForEach(catalog, po, new Action <Models.Strategics>((number) =>
                                        {
                                            if (cts.IsCancellationRequested)
                                            {
                                                po.CancellationToken.ThrowIfCancellationRequested();
                                            }

                                            if (retrieve.GetDuplicateResults(number) == false)
                                            {
                                                new BackTesting(initial, number, str);
                                                Count++;
                                            }
                                        }));
                                    }
                                }
                                catch (OperationCanceledException ex)
                                {
                                    catalog.Clear();
                                    new ExceptionMessage(ex.StackTrace);
                                }
                                catch (Exception ex)
                                {
                                    cts.Dispose();
                                    new ExceptionMessage(ex.StackTrace, ex.TargetSite.Name);
                                }
                            }).Start();
                        }
                    }
                    while (TimerBox.Show(secret.StartProgress, string.Concat("N0.", Count.ToString("N0")), MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, 30000U).Equals(DialogResult.Cancel))
                    {
                        if (secret.GetHoliday(DateTime.Now) == false && DateTime.Now.DayOfWeek.Equals(DayOfWeek.Saturday) == false && DateTime.Now.DayOfWeek.Equals(DayOfWeek.Sunday) == false)
                        {
                            if (initial.Equals((char)Port.Collecting) && (DateTime.Now.Hour == 8 || DateTime.Now.Hour == 17) && DateTime.Now.Minute > 29 && ran.Next(0, 5) == 3)
                            {
                                break;
                            }

                            if ((DateTime.Now.Hour == 8 || DateTime.Now.Hour == 17) && (DateTime.Now.Minute > 54 || DateTime.Now.Minute > 49 && ran.Next(0, 5) == 3))
                            {
                                break;
                            }
                        }
                    }
                    if (initial.Equals((char)126) == false)
                    {
                        if (cts.IsCancellationRequested == false && DateTime.Now.Hour == 8)
                        {
                            try
                            {
                                cts.Cancel();
                            }
                            catch (Exception ex)
                            {
                                new ExceptionMessage(ex.StackTrace);
                            }
                        }