Beispiel #1
0
        /// <summary>
        /// GDAX Downloader Toolbox Project For LEAN Algorithmic Trading Engine.
        /// </summary>
        static void Main(string[] args)
        {
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

            if (args.Length < 3)
            {
                Console.WriteLine("Usage: GDAX Downloader SYMBOL RESOLUTION FROMDATE TODATE");
                Console.WriteLine("SYMBOL   = ETHUSD, ETHBTC, BTCUSD etc.");
                Console.WriteLine("RESOLUTION   = Second/Minute/Hour/Daily");
                Console.WriteLine("FROMDATE = yyyyMMdd HH:mm:ss");
                Console.WriteLine("TODATE = yyyyMMdd HH:mm:ss");
                Environment.Exit(1);
            }

            try
            {
                var resolution = (Resolution)Enum.Parse(typeof(Resolution), args[1]);
                // Load settings from command line
                var startDate = DateTime.ParseExact(args[2], "yyyyMMdd HH:mm:ss", CultureInfo.InvariantCulture);
                var endDate   = DateTime.UtcNow;
                if (args[3] != null)
                {
                    endDate = DateTime.ParseExact(args[3], "yyyyMMdd HH:mm:ss", CultureInfo.InvariantCulture);
                }

                // Load settings from config.json
                var dataDirectory = Config.Get("data-directory", "../../../Data");
                //todo: will download any exchange but always save as gdax
                // Create an instance of the downloader
                const string market     = Market.GDAX;
                var          downloader = new GDAXDownloader();

                // Download the data
                var symbolObject = Symbol.Create(args[0], SecurityType.Crypto, market);
                var data         = downloader.Get(symbolObject, resolution, startDate, endDate);

                // Save the data

                var writer       = new LeanDataWriter(resolution, symbolObject, dataDirectory, TickType.Trade);
                var distinctData = data.GroupBy(i => i.Time, (key, group) => group.First()).ToArray();

                writer.Write(distinctData);

                Log.Trace("Finish data download. Press any key to continue..");
            }
            catch (Exception err)
            {
                Log.Error(err);
                Log.Trace(err.Message);
                Log.Trace(err.StackTrace);
            }
            // Console.ReadLine();
        }
Beispiel #2
0
        /// <summary>
        /// GDAX Downloader Toolbox Project For LEAN Algorithmic Trading Engine.
        /// </summary>
        static void Main(string[] args)
        {
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

            if (args.Length == 2)
            {
                args = new [] { args[0], DateTime.UtcNow.ToString("yyyyMMdd"), args[1] };
            }
            else if (args.Length < 3)
            {
                Console.WriteLine("Usage: GDAX Downloader SYMBOL FROMDATE TODATE");
                Console.WriteLine("FROMDATE = yyyymmdd");
                Console.WriteLine("TODATE = yyyymmdd");
                Environment.Exit(1);
            }

            try
            {
                // Load settings from command line
                var startDate = DateTime.ParseExact(args[1], "yyyyMMdd", CultureInfo.InvariantCulture);
                var endDate   = DateTime.ParseExact(args[2], "yyyyMMdd", CultureInfo.InvariantCulture);

                // Load settings from config.json
                var dataDirectory = Config.Get("data-directory", "../../../Data");
                //todo: will download any exchange but always save as gdax
                // Create an instance of the downloader
                const string market     = Market.GDAX;
                var          downloader = new GDAXDownloader();

                // Download the data
                var symbolObject = Symbol.Create(args[0], SecurityType.Crypto, market);
                var data         = downloader.Get(symbolObject, Resolution.Hour, startDate, endDate);

                // Save the data

                var writer       = new LeanDataWriter(Resolution.Hour, symbolObject, dataDirectory, TickType.Trade);
                var distinctData = data.GroupBy(i => i.Time, (key, group) => group.First()).ToArray();

                writer.Write(distinctData);

                Log.Trace("Finish data download");
            }
            catch (Exception err)
            {
                Log.Error(err);
                Log.Trace(err.Message);
                Log.Trace(err.StackTrace);
            }
            Console.ReadLine();
        }
Beispiel #3
0
        /// <summary>
        /// GDAX Downloader Toolbox Project For LEAN Algorithmic Trading Engine.
        /// </summary>
        public static void GDAXDownloader(IList <string> tickers, string resolution, DateTime fromDate, DateTime toDate)
        {
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

            if (resolution.IsNullOrEmpty() || tickers.IsNullOrEmpty())
            {
                Console.WriteLine("GDAXDownloader ERROR: '--tickers=' or '--resolution=' parameter is missing");
                Console.WriteLine("--tickers=ETHUSD,ETHBTC,BTCUSD,etc.");
                Console.WriteLine("--resolution=Second/Minute/Hour/Daily");
                Environment.Exit(1);
            }
            var castResolution = (Resolution)Enum.Parse(typeof(Resolution), resolution);

            try
            {
                // Load settings from config.json
                var dataDirectory = Config.Get("data-directory", "../../../Data");
                //todo: will download any exchange but always save as gdax
                // Create an instance of the downloader
                const string market     = Market.GDAX;
                var          downloader = new GDAXDownloader();
                foreach (var ticker in tickers)
                {
                    // Download the data
                    var symbolObject = Symbol.Create(ticker, SecurityType.Crypto, market);
                    var data         = downloader.Get(symbolObject, castResolution, fromDate, toDate);

                    // Save the data
                    var writer       = new LeanDataWriter(castResolution, symbolObject, dataDirectory, TickType.Trade);
                    var distinctData = data.GroupBy(i => i.Time, (key, group) => group.First()).ToArray();

                    writer.Write(distinctData);
                }

                Log.Trace("Finish data download. Press any key to continue..");
            }
            catch (Exception err)
            {
                Log.Error(err);
                Log.Trace(err.Message);
                Log.Trace(err.StackTrace);
            }
            Console.ReadLine();
        }