User:Bpeller
Appearance
Central Stock Price Information
- Always-on Backend:
- The backend handles all quote retrieval/storage, and provides a public interface for client applications to query for whatever information they need. The backend also serves as a centralized place for client applications to use price-manipulation maths common to their needs.
- Central/Master UI: Some form of plasmoid/application/part...
- It should, at the very least, support the following:
- Viewing/browsing watchlists (and their respective symbols' intraday quotes).
- Managing which symbols and watchlists the backend permanently stores data for.
- Configuring the backend's default data source. (And maybe resource/performance settings.)
- Exporting (certain) stored backend data to CSV.
- It should, at the very least, support the following:
Backend Functionality/Public DBus Interfaces:
- Management of stored symbols and watchlists
- Clients can add/request-to-remove symbols to/from the database.
- Clients can add/retrieve/request-to-modify global watchlists and use them locally.
- Intraday Quotes / most recent close (if after market hours)
- Inputs: Symbol
- Outputs: SingleBarStruct: KDateTime, Open, High, Low, Close, Volume [and Open Interest, if applicable. Optional & Time Permitting: Beta]
- Previous Close (convenience function)
- Inputs: Symbol
- Outputs: SingleBarStruct: KDateTime, Open, High, Low, Close, Volume [and Open Interest, if applicable. Optional & Time Permitting: Beta]
- Company Information, Key Statistics and Fundamentals
- Inputs:
- Symbol
- Parameters (keys)
- Initially only parameters easily available from Yahoo will be supported. Time permitting, more information sources can be added (such as parsing parameter values from Yahoo's Key Statistics webpage).
- Inputs:
- Ideally, there should probably be a way to query what keys are available, as well as key-lookup by human-readable names.
- Outputs:
- A container object holding the requested parameters' key-value pairs.
- Outputs:
- Historical Quotes
- Inputs:
- Symbol
- Time Period: Specify by providing:
- A major time unit. (Minutely, Daily, Weekly, Monthly)
- Optional: A multiplier. Default = 1.
- Length of historical data:
- Optional: Specify an end date. Defaults to the most recent close.
- Specify a duration (relative to the end date) by providing one of the following:
- A start date.
- A length of elapsed time units, independent of the requested time period.
- Or directly as a number of bars.
- Optional: Type of historical data:
- Adjusted: (Default) Prices adjusted for splits and dividends.
- Absolute: Raw price data. (Provided by default if the requested symbol has no splits or dividends.)
- Optional: A maximum lookback. Default = 0.
- The number of "hidden" bars (older than the start date) to return. Used by technical analysis indicators so their results will be complete for the requested length of "shown" price data.
- Inputs:
- Outputs:
- A container object holding the input parameters used to produce the data, as well as the data itself, stored as a list of SingleBarStructs. (Or however, containing the same outputs - What would be easiest for MVC-based clients?)
- Outputs:
Dreams for the Future: (time permitting)
- Support for calculating relative price/performance between multiple data sets.
- Support for calculating custom "Market Indexes" from watchlists.
- Support for browsing/querying sectors and industries, as well as tracking their performance using (1) and (2).
- [Maybe] Technical Analysis Indicators: Essentially this would be providing a Qt-like API wrapped around TA-Lib's Abstract runtime interface. TA-Lib requires data to be stored in STD c++ arrays, as well as requiring the frequent reuse of non-cheaply-calculated data, so from a convenience/performance standpoint it probably makes the most sense to try to centralize indicator support inside Alkimia. However, TA-Lib isn't exactly available for most (all?) distributions, let alone included by default, so that's definitely a big reason to avoid said integration. [Then again, aside from Qtstalker, I don't know of any even remotely-active *Linux* projects using it so... what incentive have they had?]
- [Depends on TA-Lib] Manual calculation of Beta with controllable inputs. This ability is probably most important for bigger private investors (AKA "the sharks" with >$100k(?) ), portfolio analysts, and institutions/banks, and is especially important for those involved in international markets who do not want to base their calculations off American markets, as Yahoo's provided Beta (is assumed to) do.
- [Maybe] Store symbols/statistics using Nepomuk relationships. For example, symbols could be associated with a Sector, an Industry, and Market Capitalization.