Quandlex 0.1 released: Quandle API client for Elixir/Erlang
I'm releasing Quandlex, a new Elixir/Erlang library for Quandl API. Quandl provides unified access to multiple sources for financial, economic, and alternative datasets .
Links
Installation
The package can be installed by adding quandlex to your list of dependencies in mix.exs:
def deps do
[
{:quandlex, "~> 0.1.0"}
]
end
Quandlex.Timeseries
Quandlex.Timeseries includes several functions that match API endpoints:
get_data: returns both data and dataset metadataget_dataset_metadata: returns only dataset metadataget_database_metadata: returns database metadata
iex> {:ok, %{data: data, type: type}} = Quandlex.Timeseries.get_data("CHRIS", "MGEX_IH1")
iex> is_list(hd(data)) and is_list(data) and type == "Time Series"
true
iex> {:ok, %{name: name, id: id}} = Quandlex.Timeseries.get_database_metadata("CHRIS")
iex> name == "Wiki Continuous Futures" and id == 596
true
Response example
{:ok,
%{
collapse: nil,
column_index: nil,
column_names: ["Date", "Open", "High", "Low", "Last", "Volume",
"Open Interest"],
data: [
[~D[2019-04-30], nil, 486.0, 486.0, 486.0, 0.0, 0.0],
[~D[2018-04-30], nil, 486.0, 486.0, 486.0, 0.0, 0.0],
[~D[2018-04-27], nil, 474.0, 474.0, 474.0, 0.0, 0.0],
[...],
...
],
database_code: "CHRIS",
database_id: 596,
dataset_code: "MGEX_IH1",
description: "Historical Futures Prices: Minneapolis HRWI Hard Red Wheat Futures, Continuous Contract #1. Non-adjusted price based on spot-month continuous contract calculations. Raw data from MGEX.",
end_date: "2019-04-30",
frequency: "daily",
id: 9774107,
limit: nil,
name: "Minneapolis HRWI Hard Red Wheat Futures, Continuous Contract #1 (IH1) (Front Month)",
newest_available_date: "2019-04-30",
oldest_available_date: "2005-01-03",
order: nil,
premium: false,
refreshed_at: "2018-05-08T18:27:06.846Z",
start_date: "2005-01-03",
transform: nil,
type: "Time Series"
}}
Quandlex.Forex
Quandlex.Forex is a utility module that makes fetching historical data of foreign exchange rates simpler and easier.
Quandl provides free (albeit limited for non-registered users) data of forex rates sourced from Bank of England, Federal Reserve and European Central Bank.
You can use get_rates/2 or get_rates/3 function without wasting time on searching for special currency codes for every bank database.
For example, instead of using Quandlex.Timeseries.get_data("BOE", "XUDLJYD") you can call Quandlex.Forex.get_rates("USD", "JPY", source: "BOE")
Examples
iex> {:ok, %{data: data, type: type, database_code: database_code}} = Quandlex.Forex.get_rates("HKD", "USD")
iex> database_code === "FRED" and is_list(data) and type == "Time Series"
true
iex> {:ok, %{data: data, type: type, database_code: database_code}} = Quandlex.Forex.get_rates("HKD", "USD", source: "BOE")
iex> database_code === "BOE" and is_list(data) and type == "Time Series"
true
iex> {:ok, %{data: data, type: type, database_code: database_code}} = Quandlex.Forex.get_rates("THB", "EUR", source: "ECB")
iex> database_code === "ECB" and is_list(data) and type == "Time Series"
true
Response example
{:ok,
%{
collapse: nil,
column_index: nil,
column_names: ["Date", "Value"],
data: [
[~D[2018-05-18], 7.8498],
[~D[2018-05-17], 7.8496],
[~D[2018-05-16], 7.8499],
[...],
...
],
database_code: "FRED",
database_id: 118,
dataset_code: "DEXHKUS",
description: "Hong Kong Dollars to One U.S. Dollar Not Seasonally Adjusted, Noon buying rates in New York City for cable transfers payable in foreign currencies. ",
end_date: "2018-05-18",
frequency: "daily",
id: 121063,
limit: nil,
name: "Hong Kong / U.S. Foreign Exchange Rate",
newest_available_date: "2018-05-18",
oldest_available_date: "1981-01-02",
order: nil,
premium: false,
refreshed_at: "2018-05-27T03:10:46.002Z",
start_date: "1981-01-02",
transform: nil,
type: "Time Series"
}}
"""
Roadmap
- [ ] Add datatables module
- [ ] Add structs for return values
- [ ] Investigate developer experience improvements using rate limiting utilities and caching
(*`□)<炎炎炎炎
Leave Quandlex 0.1 released: Quandle API client for Elixir/Erlang to:
Read more #utopian-io posts
Best Posts From ontofractal
We have not curated any of ontofractal's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From ontofractal
- Introducing Decentralized Commons initiative and DC BY 0.1, a fork of Creative Commons attribution license
- Ccxtex 0.3 released: call ccxt library from Elixir/Erlang
- Waveschainex 0.2 release: Elixir/Erlang client for WAVES REST API
- Sagres-waves v0.1 release: open source vesting smart contracts generator for WAVES blockchain
- Waveschainex 0.1 release: Elixir/Erlang client for WAVES REST API
- EctoPgJson 0.1 release: Elixir/Ecto extension for Posgres JSON/JSONB operators
- ExGolos v0.11 released: 0.18 HF support [open source Elixir library for Golos]
- Cryptocomparex 0.1 release: Elixir/Erlang client for CryptoCompare API
- Ccxtex 0.2 released: Elixir/Erlang interop with Ccxt library
- Quandlex 0.1 released: Quandle API client for Elixir/Erlang