CryptoMarketData.jl

A library for saving and loading OHLCV candle data from cryptocurrency exchanges
Author g-gundam
Popularity
0 Stars
Updated Last
1 Month Ago
Started In
February 2024

CryptoMarketData

Stable Dev Build Status Coverage

A library for saving and loading OHLCV candle data from cryptocurrency exchanges

Goals

  1. Be able to save 1 minute candle data from a variety of cryptocurrency exchanges.
    • I only want 1 minute candles, because I can derive higher timeframes myself.
    • Implement extremely minimal exchange drivers for this purpose.
      • Don't try to do everything.
      • Focus on fetching 1 minute and 1 day candles well.
    • Save all the candle data the exchange gives us.
      • Save even the non-OHLCV data.
      • I don't care about it, but maybe someone else does.
      • Each day worth of 1 minute candles should be saved in its own date-stamped CSV file.
  2. After saving, be able to load that data into a DataFrame.
    • 1m candles are the default.
    • Other arbitrary timeframes should be supported.

Exchanges

Name Status
Binance Work in Progress
Bitget Slightly Broken
Bitmex Done
Bitstamp Done
Bybit Done
PancakeSwap Done

Examples

Save and Load Candles

This is the most basic thing you can do with this library.

julia> using CryptoMarketData

julia> bitstamp = Bitstamp()
Bitstamp("https://www.bitstamp.net")

julia> markets = get_markets(bitstamp); markets[1:5]
5-element Vector{String}:
 "BTC/USD"
 "BTC/EUR"
 "BTC/GBP"
 "BTC/PAX"
 "GBP/USD"

julia> save!(bitstamp, "BTC/USD"; endday=Date("2011-08-25"))
┌ Info: 2011-08-18
└   length(cs) = 683
┌ Info: 2011-08-19
└   length(cs) = 1440
┌ Info: 2011-08-20
└   length(cs) = 1440
┌ Info: 2011-08-21
└   length(cs) = 1440
┌ Info: 2011-08-22
└   length(cs) = 1440
┌ Info: 2011-08-23
└   length(cs) = 1440
┌ Info: 2011-08-24
└   length(cs) = 1440
┌ Info: 2011-08-25
└   length(cs) = 1440

julia> btcusd = load(bitstamp, "BTC/USD")