Skip to content

Commit

Permalink
remove: not used Downloader (use general Lean) (#24)
Browse files Browse the repository at this point in the history
  • Loading branch information
Romazes authored Aug 22, 2024
1 parent 7c2b562 commit cf6731c
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 176 deletions.
101 changes: 0 additions & 101 deletions QuantConnect.CoinbaseBrokerage.ToolBox/CoinbaseDownloader.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -12,79 +12,18 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.Linq;
using System.Threading;
using QuantConnect.Data;
using QuantConnect.Util;
using QuantConnect.Logging;
using System.Globalization;
using QuantConnect.ToolBox;
using System.Collections.Generic;

namespace QuantConnect.Brokerages.Coinbase.ToolBox
{
public static class CoinbaseDownloaderProgram
{
/// <summary>
/// Coinbase Downloader Toolbox Project For LEAN Algorithmic Trading Engine.
/// </summary>
public static void CoinbaseDownloader(IList<string> tickers, string resolution, DateTime fromDate, DateTime toDate)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

if (resolution.IsNullOrEmpty() || tickers.IsNullOrEmpty())
{
Console.WriteLine($"{nameof(CoinbaseDownloader)}: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 = Globals.DataFolder;
//todo: will download any exchange but always save as coinbase
// Create an instance of the downloader
const string market = Market.Coinbase;
var downloader = new CoinbaseDownloader();
foreach (var ticker in tickers)
{
// Download the data
var symbolObject = Symbol.Create(ticker, SecurityType.Crypto, market);
var data = downloader.Get(new DataDownloaderGetParameters(symbolObject, castResolution, fromDate, toDate));
if (data == null)
{
continue;
}

// 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();
}

/// <summary>
/// Endpoint for downloading exchange info
/// </summary>
public static void ExchangeInfoDownloader()
{
new ExchangeInfoUpdater(new CoinbaseExchangeInfoDownloader())
.Run();
new ExchangeInfoUpdater(new CoinbaseExchangeInfoDownloader()).Run();
}
}
}
15 changes: 2 additions & 13 deletions QuantConnect.CoinbaseBrokerage.ToolBox/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
* limitations under the License.
*/

using System;
using QuantConnect.Configuration;
using static QuantConnect.Configuration.ApplicationParser;

Expand All @@ -34,23 +33,13 @@ private static void Main(string[] args)
PrintMessageAndExit(1, "ERROR: --app value is required");
}

if(string.IsNullOrEmpty(Config.GetValue<string>("coinbase-api-name")) || string.IsNullOrEmpty(Config.GetValue<string>("coinbase-api-private-key")))
if (string.IsNullOrEmpty(Config.GetValue<string>("coinbase-api-name")) || string.IsNullOrEmpty(Config.GetValue<string>("coinbase-api-private-key")))
{
PrintMessageAndExit(1, "ERROR: check configs: 'coinbase-api-key' or 'coinbase-api-secret'");
}

var targetAppName = targetApp.ToString();
if (targetAppName.Contains("download") || targetAppName.Contains("dl"))
{
var fromDate = Parse.DateTimeExact(GetParameterOrExit(optionsObject, "from-date"), "yyyyMMdd-HH:mm:ss");
var resolution = optionsObject.ContainsKey("resolution") ? optionsObject["resolution"].ToString() : "";
var tickers = ToolboxArgumentParser.GetTickers(optionsObject);
var toDate = optionsObject.ContainsKey("to-date")
? Parse.DateTimeExact(optionsObject["to-date"].ToString(), "yyyyMMdd-HH:mm:ss")
: DateTime.UtcNow;
CoinbaseDownloaderProgram.CoinbaseDownloader(tickers, resolution, fromDate, toDate);
}
else if (targetAppName.Contains("updater") || targetAppName.EndsWith("spu"))
if (targetAppName.Contains("updater") || targetAppName.EndsWith("spu"))
{
CoinbaseDownloaderProgram.ExchangeInfoDownloader();
}
Expand Down

0 comments on commit cf6731c

Please sign in to comment.