/// <summary> /// Kraken Downloader Toolbox Project For LEAN Algorithmic Trading Engine. /// By @matthewsedam /// </summary> public static void KrakenDownloader(IList <string> tickers, string resolution, DateTime startDate, DateTime endDate) { if (resolution.IsNullOrEmpty() || tickers.IsNullOrEmpty()) { Console.WriteLine("KrakenDownloader ERROR: '--tickers=' or '--resolution=' parameter is missing"); Console.WriteLine("--tickers=eg XXBTZUSD,XETHZUSD"); Console.WriteLine("--resolution=Minute/Hour/Daily/Tick"); Environment.Exit(1); } try { var castResolution = (Resolution)Enum.Parse(typeof(Resolution), resolution); // Load settings from config.json and create downloader var dataDirectory = Config.Get("data-directory", "../../../Data"); var downloader = new KrakenDataDownloader(); foreach (var pair in tickers) { // Download data var pairObject = Symbol.Create(pair, SecurityType.Crypto, Market.Kraken); var data = downloader.Get(pairObject, castResolution, startDate, endDate); // Write data var writer = new LeanDataWriter(castResolution, pairObject, dataDirectory); writer.Write(data); } } catch (Exception err) { Log.Error(err); } }
/// <summary> /// Kraken Downloader Toolbox Project For LEAN Algorithmic Trading Engine. /// By @matthewsedam /// </summary> static void Main(string[] args) { if (args.Length != 4) { Console.WriteLine("Usage: KrakenDownloader PAIRS RESOLUTION FROMDATE TODATE"); Console.WriteLine("SYMBOLS = eg XXBTZUSD,XETHZUSD"); Console.WriteLine("RESOLUTION = Minute/Hour/Daily/Tick"); Console.WriteLine("FROMDATE = yyyymmdd"); Console.WriteLine("TODATE = yyyymmdd"); Environment.Exit(1); } try { var pairs = args[0].Split(','); var resolution = (Resolution)Enum.Parse(typeof(Resolution), args[1]); var startDate = DateTime.ParseExact(args[2], "yyyyMMdd", CultureInfo.InvariantCulture); var endDate = DateTime.ParseExact(args[3], "yyyyMMdd", CultureInfo.InvariantCulture); // Load settings from config.json and create downloader var dataDirectory = Config.Get("data-directory", "../../../Data"); var downloader = new KrakenDataDownloader(); foreach (var pair in pairs) { // Download data var pairObject = Symbol.Create(pair, SecurityType.Crypto, Market.Kraken); var data = downloader.Get(pairObject, resolution, startDate, endDate); // Write data var writer = new LeanDataWriter(resolution, pairObject, dataDirectory); writer.Write(data); } } catch (Exception err) { Log.Error(err); } }