The current way of listing companies is restricted to companies listed on NASDAQ, AMEX, and NYSE. Specifically, the data format is fixed. It should be possible to list companies on foreign exchanges provided in a different format. Specifically, it would be nice to be able to do the following:
(defvar asx
{:name "Australian Stock Exchange" :symbol "ASX"
"A map describing the Australian Stock Exchange (ASX)")
(get-companies :asx)
This won't work because the data format provided by asx.com.au is different to the one used by Nasdaq. A simple API change would make this possible
(defvar asx
{:name "Australian Stock Exchange" :symbol "ASX"
:source-url "http://www.asx.com.au/asx/research/ASXListedCompanies.csv"
:record-keys [:name :stock-symbol :sector]}
"A map describing the Australian Stock Exchange (ASX)")
(parse-companies :asx (get-companies-request :asx))
Note the separation of concerns of the parsing and retrieving functions. Furthermore, the source-url is now configurable for every exchange and the record keys in the returned csv can be specified.
The current way of listing companies is restricted to companies listed on NASDAQ, AMEX, and NYSE. Specifically, the data format is fixed. It should be possible to list companies on foreign exchanges provided in a different format. Specifically, it would be nice to be able to do the following:
This won't work because the data format provided by asx.com.au is different to the one used by Nasdaq. A simple API change would make this possible
Note the separation of concerns of the parsing and retrieving functions. Furthermore, the source-url is now configurable for every exchange and the record keys in the returned csv can be specified.