UNPKG

yahoo-stock-client

Version:

Module to fetch stock information via yahoo's stock api. Returns data in csv format.

135 lines (127 loc) 3.62 kB
formats = Pricing: a: 'Ask' b: 'Bid' b2: 'Ask (Realtime)' b3: 'Bid (Realtime)' p: 'Previous Close' o: 'Open' Dividends: y: 'Dividend Yield' d: 'Dividend per Share' r1: 'Dividend Pay Date' q: 'Ex-Dividend Date' 'Date': c1: 'Change' d1: 'Last Trade Date' c: 'Change & Percent Change' d2: 'Trade Date' c6: 'Change (Realtime)' t1: 'Last Trade Time' k2: 'Change Percent (Realtime)' p2: 'Change in Percent' Averages: c8: 'After Hours Change (Realtime)' m5: 'Change From 200 Day Moving Average' c3: 'Commission' m6: 'Percent Change From 200 Day Moving Average' g: 'Day’s Low' m7: 'Change From 50 Day Moving Average' h: 'Day’s High' m8: 'Percent Change From 50 Day Moving Average' k1: 'Last Trade (Realtime) With Time' m3: '50 Day Moving Average' l: 'Last Trade (With Time)' m4: '200 Day Moving Average' l1: 'Last Trade (Price Only)' t8: '1 yr Target Price' Misc: w1: 'Day’s Value Change' g1: 'Holdings Gain Percent' w4: 'Day’s Value Change (Realtime)' g3: 'Annualized Gain' p1: 'Price Paid' g4: 'Holdings Gain' m: 'Day’s Range' g5: 'Holdings Gain Percent (Realtime)' m2: 'Day’s Range (Realtime)' g6: 'Holdings Gain (Realtime)' t7: 'Ticker Trend' t6: 'Trade Links' i5: 'Order Book (Realtime)' l2: 'High Limit' l3: 'Low Limit' v1: 'Holdings Value' v7: 'Holdings Value (Realtime)' s6: 'Revenue' '52 Week Pricing': k: '52 Week High' j: '52 week Low' j5: 'Change From 52 Week Low' k4: 'Change From 52 week High' j6: 'Percent Change From 52 week Low' k5: 'Percent Change From 52 week High' w: '52 week Range' 'Symbol Info': v: 'More Info' j1: 'Market Capitalization' j3: 'Market Cap (Realtime)' f6: 'Float Shares' n: 'Name' n4: 'Notes' s: 'Symbol' s1: 'Shares Owned' x: 'Stock Exchange' j2: 'Shares Outstanding' Volume: v: 'Volume' a5: 'Ask Size' b6: 'Bid Size' k3: 'Last Trade Size' a2: 'Average Daily Volume' Ratios: e: 'Earnings per Share' e7: 'EPS Estimate Current Year' e8: 'EPS Estimate Next Year' e9: 'EPS Estimate Next Quarter' b4: 'Book Value' j4: 'EBITDA' p5: 'Price / Sales' p6: 'Price / Book' r: 'P/E Ratio' r2: 'P/E Ratio (Realtime)' r5: 'PEG Ratio' r6: 'Price / EPS Estimate Current Year' r7: 'Price / EPS Estimate Next Year' s7: 'Short Ratio' flatten = (arr) -> newArr = [] newArr.push(innerVal) for innerVal in val for val in arr newArr ### Inversion of the Key Value Map of Formats Discards the categories ### invFormats = {} for cat, category of formats invFormats[format] = formatSymbol for formatSymbol, format of category exports.formatsToFormatSymbols = (formats) -> (invFormats[format] for format in formats) ### Array of format options supported by Yahoo API ### exports.Formats = (format for formatSymbol, format of category for categoryIdx, category of formats) exports.Formats = flatten(exports.Formats) ### Categories of format options ### exports.Categories = {'All': exports.Formats} for categoryKey, category of formats exports.Categories[categoryKey] = (format for formatSym, format of category) ### Added category can be used with new client ### exports.addCategory = (name, formatOptions) -> throw Error('Name must be a string') if typeof(name) is not 'string' throw Error('formatOptions must be an Array') if formatOptions not instanceof Array exports.Categories[name] = formatOptions