Beispiel #1
0
        public void CacheFillGapTest()
        {
            var client       = new BitFlyerClient();
            var cacheFactory = new SqlServerCacheFactory(@"server=(local);Initial Catalog=bitflyer;Integrated Security=True");
            var cache        = cacheFactory.GetExecutionCache(BfProductCode.FXBTCJPY);
            var completed    = new ManualResetEvent(false);
            var recentTime   = DateTime.UtcNow;

            cache.FillGaps(client).Subscribe(exec =>
            {
                if (exec.ExecutedTime.Day != recentTime.Day)
                {
                    recentTime = exec.ExecutedTime;
                    Console.WriteLine("{0} Completed", recentTime.ToLocalTime().Date);
                }
            },
                                             () =>
            {
                completed.Set();
            });
            completed.WaitOne();
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            var productCode = BfProductCode.FXBTCJPY;
            var client      = new BitFlyerClient();

#if SQLSERVER
            var connStr      = @"server=(local);Initial Catalog=bitflyer;Integrated Security=True";
            var cacheFactory = new SqlServerCacheFactory(connStr);
#elif SQLITE
            var folderPath = Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
                Path.GetFileNameWithoutExtension(Process.GetCurrentProcess().ProcessName)
                );
            var cacheFactory = new SqliteCacheFactory(folderPath);
#endif
            Console.WriteLine("BitFlyerDotNet cache management utilities");
            Console.WriteLine("Copyright (C) 2017-2018 Fiats Inc.");

            try
            {
                while (true)
                {
                    Console.WriteLine();
                    Console.WriteLine("S)elect product");
                    Console.WriteLine("U)pdate recent historical executions in cache");
                    Console.WriteLine("F)ill fragmentations");
                    Console.WriteLine("A)dd specified count");
                    Console.WriteLine("R)ange updates");
                    Console.WriteLine("O)ptimize manage table");
                    //Console.WriteLine("I)mport SQLite cache");
                    Console.WriteLine();
                    Console.WriteLine("Hit Q key to exit.");

                    switch (GetCh())
                    {
                    case 'Q':
                        return;

                    case 'S':
                        productCode = SelectProduct();
                        break;

                    case 'U':
                        UpdateRecent(client, cacheFactory, productCode);
                        Console.WriteLine("Completed.");
                        break;

                    case 'F':
                        FillGaps(client, cacheFactory, productCode);
                        Console.WriteLine("Completed.");
                        break;

                    case 'A':
                    {
                        Console.Write("Count : "); var count = int.Parse(Console.ReadLine());
                        Console.Write("Are you sure to start? (y/n)");
                        if (GetCh() == 'Y')
                        {
                            StackExecutions(client, cacheFactory, productCode, count);
                            Console.WriteLine("Completed.");
                        }
                    }
                    break;

                    case 'R':
                    {
                        Console.Write("Before : "); var before = int.Parse(Console.ReadLine());
                        Console.Write("After  : "); var after  = int.Parse(Console.ReadLine());
                        Console.Write("Are you sure to start? (y/n)");
                        if (GetCh() == 'Y')
                        {
                            GetExecutionsRange(client, cacheFactory, productCode, before, after);
                            Console.WriteLine("Completed.");
                        }
                    }
                    break;

                    case 'O':
                        OptimizaManageTable(cacheFactory, productCode);
                        break;

                    case 'I':
                        //ImportCache(sqliteCacheFactory, sqlserverCacheFactory, productCode);
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("Hit Q key to exit.");
                while (GetCh() != 'Q')
                {
                    ;
                }
            }
            finally
            {
            }
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            var productCode = BfProductCode.FXBTCJPY;
            var client      = new BitFlyerClient();
            var config      = new ConfigurationBuilder()
                              .SetBasePath(Directory.GetCurrentDirectory())
                              .AddJsonFile("appsettings.json", true, true)
                              .Build();
            var connStr      = config.GetConnectionString("bitflyer");
            var cacheFactory = new SqlServerCacheFactory(connStr);

            if (args.Length > 0)
            {
                productCode = Enum.Parse <BfProductCode>(args[0]);
                UpdateRecent(client, cacheFactory, productCode);
                FillGaps(client, cacheFactory, productCode);
                GenerateOhlc(cacheFactory, productCode);
                return;
            }

            Console.WriteLine("BitFlyerDotNet cache management utilities");
            Console.WriteLine("Copyright (C) 2017-2021 Fiats Inc.");

            try
            {
                while (true)
                {
                    Console.WriteLine();
                    Console.WriteLine("S)elect product");
                    Console.WriteLine("U)pdate recent historical executions in cache");
                    Console.WriteLine("F)ill fragmentations");
                    Console.WriteLine("O)ptimize manage table");
                    Console.WriteLine("G)enerate OHLC");
                    Console.WriteLine();
                    Console.WriteLine("Hit Q key to exit.");

                    switch (GetCh())
                    {
                    case 'Q':
                        return;

                    case 'S':
                        productCode = SelectProduct();
                        break;

                    case 'U':
                        UpdateRecent(client, cacheFactory, productCode);
                        Console.WriteLine("Completed.");
                        break;

                    case 'F':
                        FillGaps(client, cacheFactory, productCode);
                        Console.WriteLine("Completed.");
                        break;

                    case 'O':
                        OptimizaManageTable(cacheFactory, productCode);
                        break;

                    case 'G':
                        GenerateOhlc(cacheFactory, productCode);
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                Console.WriteLine("Hit Q key to exit.");
                while (GetCh() != 'Q')
                {
                    ;
                }
            }
            finally
            {
            }
        }