User:Bpeller: Difference between revisions
Appearance
Line 53: | Line 53: | ||
#Store symbols and watchlists using Nepomuk relationships. Symbols can be associated with a Sector, an Industry, and Market Capitalization. | #Store symbols and watchlists using Nepomuk relationships. Symbols can be associated with a Sector, an Industry, and Market Capitalization. | ||
#Support for browsing/querying sectors and industries. | #Support for browsing/querying sectors and industries. | ||
#Technical Analysis Indicators: [Maybe] Essentially this would be providing a Qt-like API wrapped around | #Technical Analysis Indicators: [Maybe] Essentially this would be providing a Qt-like API wrapped around TA-Lib's [http://ta-lib.svn.sourceforge.net/viewvc/ta-lib/trunk/ta-lib/c/include/ta_abstract.h?view=markup Abstract interface]. [http://ta-lib.org/d_api/d_api.html#Technical%20Analysis%20Functions TA-Lib] expects data to be stored in std c++ arrays, as well as requiring the constant reuse of calculated source data, so from a convenience/cache-efficiency/multithreading standpoint it probably makes the most sense 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 something to keep in mind. [Then again, aside from [http://qtstalker.sourceforge.net/ Qtstalker], I don't know of any even remotely-active *Linux* projects using it so... what incentive do they have?]'' | ||
Revision as of 20:28, 22 May 2010
Central Stock Price Information
Public Interfaces:
- Management of stored symbols and watchlists
- Clients can add/remove symbols to/from the database.
- Clients can add/retrieve/modify global watchlists and use them locally.
- Clients can configure backend settings.
- Intraday Quotes / most recent close (if after market hours)
- Input: Symbol
- Output: SingleBarStruct: KDateTime, Open, High, Low, Close, Volume [and Open Interest, if applicable. Optional: Beta]
- Previous Close (convenience function)
- Input: Symbol
- Output: SingleBarStruct: KDateTime, Open, High, Low, Close, Volume [and Open Interest, if applicable. Optional: Beta]
- Company Information, Key Statistics and Fundamentals
- Inputs:
- Symbol
- Parameters (keys)
- Ideally, there should probably be a way to query what keys are available, as well as key-lookup by human-readable names.
- Inputs:
- Outputs:
- A container object holding the requested parameter values.
- 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 stock has no splits/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.
- 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.
- Inputs:
Dreams for the Future (hopefully reasonable)
- Support for calculating relative price/performance between multiple data sets.
- Support for calculating custom indicies from watchlists.
- Store symbols and watchlists using Nepomuk relationships. Symbols can be associated with a Sector, an Industry, and Market Capitalization.
- Support for browsing/querying sectors and industries.
- Technical Analysis Indicators: [Maybe] Essentially this would be providing a Qt-like API wrapped around TA-Lib's Abstract interface. TA-Lib expects data to be stored in std c++ arrays, as well as requiring the constant reuse of calculated source data, so from a convenience/cache-efficiency/multithreading standpoint it probably makes the most sense 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 something to keep in mind. [Then again, aside from Qtstalker, I don't know of any even remotely-active *Linux* projects using it so... what incentive do they have?]
Crazy Day Dreaming
- Support for uploading/merging historical data stuffs to some form of P2P/cloud. Initially used for the sharing of non-freely (or at least easily) downloadable data such as minutely data, stock split dates/ratios, and daily/weekly/monthly data older than what Yahoo's servers provide.