It is your responsibility to ensure that any associated tax requirements or obligations are satisfied.The list of DRIP eligible securities is subject to change at any time without prior notice.They offer free JSON APIs for realtime and historical stock quotes. Redistribution is only allowed if you are using the badges the team has created: finance.yahoo.com/badges. All that is required is that you have an account with them and to my knowledge you don't have to carry a balance ... Any online stock broker will ask for the same information... If you are still looking to use Google Finance for your data you can check this out.

Though he's enjoying the viral success of the video, Holmes is still haunted by his dog's behavior and is considering getting another dog to keep Guinness company."I treat him like my kid.

And as a human being, how do you feel when you hear that stuff? About the star of the video Guinness is a Golden Doodle (half Golden Retriever, half Poodle).

Update Star Free and Update Star Premium come with the same installer.

Update Star includes support for many languages such as English, German, French, Italian, Hungarian, Russian and many more.

That's what Springfield radio host, Mike Holmes (better known as Mike the Intern from 104.7 The Cave), assumed his beloved dog Guinness did while he was at work. Holmes said he thinks (hopes) Guinness doesn't react that way every time he is left alone.

But then one day he put a Go Pro camera around Guinness' neck and walked out the front door. But on this particular day, Holmes' friend Aaron was there.I haven't come up with variable names for all the fields yahoo offers yet, so you can fill those in if you need them. " s = s "s=" tickers "&" s = s "f=" url Parameters return URI(s) end def load Stock Info(tickers, parameters Raw) parameters = prepare Parameters(parameters Raw) url = prepare URL(tickers, parameters) data = Net:: HTTP.get(url) data = replace Commas(data) h = CSVto Object(data, parameters) log Stock Objects(h, true) end #parse csv def print Codes(substring, length) a = data.index(substring) b = data.byteslice(a, 10) puts "printing codes of string: " puts b puts b.split('').map(&:ord).to_s end def CSVto Object(data, parameters) raw Data = [] line Breaks = data.split(10.chr) line Breaks.each_index do |i| raw Data.push(line Breaks[i].split("#")) end #puts "Found " raw Data.length.to_s " Stocks" #puts " w/ " raw Data[0].length.to_s " Fields" h = Hash.new("Main Hash") raw Data.each_index do |i| o = Hash.new("Stock Object" i.to_s) #puts "parsing object" raw Data[i][0] raw Data[i].each_index do |n| #puts "parsing parameter" n.to_s " " parameters[n][0] o[ parameters[n][0] ] = raw Data[i][n].gsub! $/, '') end h[o["symbol" = o; end return h end def log Stock Objects(h, concise) each do |i| if concise puts "(" h[i]["symbol"] ")\t\t" h[i]["name"] else puts "" puts h[i]["name"] h[i]each do |p| puts " " $parameters Data[p][1] " : " h[i][p].to_s end end end end this is really useful, I wish I could give you more votes.Here's the usage TICKERS_SP500 = "GICS, CIK, MMM, ABT, ABBV, ACN, ACE, ACT, ADBE, ADT, AES, AET, AFL, AMG, A, GAS, APD, ARG, AKAM, AA, ALXN, ATI, ALLE, ADS, ALL, ALTR, MO, AMZN, AEE, AAL, AEP, AXP, AIG, AMT, AMP, ABC, AME, AMGN, APH, APC, ADI, AON, APA, AIV, AAPL, AMAT, ADM, AIZ, T, ADSK, ADP, AN, AZO, AVGO, AVB, AVY, BHI, BLL, BAC, BK, BCR, BAX, BBT, BDX, BBBY, BBY, BIIB, BLK, HRB, BA, BWA, BXP, BSX, BMY, BRCM, BFB, CHRW, CA, CVC, COG, CAM, CPB, COF, CAH, HSIC, KMX, CCL, CAT, CBG, CBS, CELG, CNP, CTL, CERN, CF, SCHW, CHK, CVX, CMG, CB, CI, XEC, CINF, CTAS, CSCO, C, CTXS, CLX, CME, CMS, COH, KO, CCE, CTSH, CL, CMA, CSC, CAG, COP, CNX, ED, STZ, GLW, COST, CCI, CSX, CMI, CVS, DHI, DHR, DRI, DVA, DE, DLPH, DAL, XRAY, DVN, DO, DTV, DFS, DG, DLTR, D, DOV, DOW, DPS, DTE, DD, DUK, DNB, ETFC, EMN, ETN, EBAY, ECL, EIX, EW, EA, EMC, EMR, ENDP, ESV, ETR, EOG, EQT, EFX, EQIX, EQR, ESS, EL, ES, EXC, EXPE, EXPD, ESRX, XOM, FFIV, FB, FDO, FAST, FDX, FIS, FITB, FSLR, FE, FISV, FLIR, FLS, FLR, FMC, FTI, F, FOSL, BEN, FCX, FTR, GME, GCI, GPS, GRMN, GD, GE, GGP, GIS, GM, GPC, GNW, GILD, GS, GT, GOOG, GWW, HAL, HBI, HOG, HAR, HRS, HIG, HAS, HCA, HCP, HCN, HP, HES, HPQ, HD, HON, HRL, HSP, HST, HCBK, HUM, HBAN, ITW, IR, TEG, INTC, ICE, IBM, IP, IPG, IFF, INTU, ISRG, IVZ, IRM, JEC, JNJ, JCI, JOY, JPM, JNPR, KSU, K, KEY, GMCR, KMB, KIM, KMI, KLAC, KSS, KRFT, KR, LB, LLL, LH, LRCX, LM, LEG, LEN, LVLT, LUK, LLY, LNC, LLTC, LMT, L, LO, LOW, LYB, MTB, MAC, M, MNK, MRO, MPC, MAR, MMC, MLM, MAS, MA, MAT, MKC, MCD, MHFI, MCK, MJN, MWV, MDT, MRK, MET, KORS, MCHP, MU, MSFT, MHK, TAP, MDLZ, MON, MNST, MCO, MS, MOS, MSI, MUR, MYL, NDAQ, NOV, NAVI, NTAP, NFLX, NWL, NFX, NEM, NWSA, NEE, NLSN, NKE, NI, NE, NBL, JWN, NSC, NTRS, NOC, NRG, NUE, NVDA, ORLY, OXY, OMC, OKE, ORCL, OI, PCAR, PLL, PH, PDCO, PAYX, PNR, PBCT, POM, PEP, PKI, PRGO, PFE, PCG, PM, PSX, PNW, PXD, PBI, PCL, PNC, RL, PPG, PPL, PX, PCP, PCLN, PFG, PG, PGR, PLD, PRU, PEG, PSA, PHM, PVH, QEP, PWR, QCOM, DGX, RRC, RTN, RHT, REGN, RF, RSG, RAI, RHI, ROK, COL, ROP, ROST, RCL, R, CRM, SNDK, SCG, SLB, SNI, STX, SEE, SRE, SHW, SIAL, SPG, SWKS, SLG, SJM, SNA, SO, LUV, SWN, SE, STJ, SWK, SPLS, SBUX, HOT, STT, SRCL, SYK, STI, SYMC, SYY, TROW, TGT, TEL, TE, THC, TDC, TSO, TXN, TXT, HSY, TRV, TMO, TIF, TWX, TWC, TJX, TMK, TSS, TSCO, RIG, TRIP, FOXA, TSN, TYC, USB, UA, UNP, UNH, UPS, URI, UTX, UHS, UNM, URBN, VFC, VLO, VAR, VTR, VRSN, VZ, VRTX, VIAB, V, VNO, VMC, WMT, WBA, DIS, WM, WAT, ANTM, WFC, WDC, WU, WY, WHR, WFM, WMB, WIN, WEC, WYN, WYNN, XEL, XRX, XLNX, XL, XYL, YHOO, YUM, ZMH, ZION, ZTS, SAIC, AP" All Data = load Stock Info(TICKERS_SP500, all Parameters()) Specific Data = load Stock Info("GOOG, CIK", "ask,dps") require 'net/http' # Jack Franzen & Garin Bedian # Based on $parameters Data = Hash ["symbol", ["s", "Symbol", ["ask", ["a", "Ask"]], ["div Yield", ["y", "Dividend Yield"]], ["bid", ["b", "Bid"]], ["dps", ["d", "Dividend per Share"]], #["noname", ["b2", "Ask (Realtime)"]], #["noname", ["r1", "Dividend Pay Date"]], #["noname", ["b3", "Bid (Realtime)"]], #["noname", ["q", "Ex-Dividend Date"]], #["noname", ["p", "Previous Close"]], #["noname", ["o", "Open"]], #["noname", ["c1", "Change"]], #["noname", ["d1", "Last Trade Date"]], #["noname", ["c", "Change & Percent Change"]], #["noname", ["d2", "Trade Date"]], #["noname", ["c6", "Change (Realtime)"]], #["noname", ["t1", "Last Trade Time"]], #["noname", ["k2", "Change Percent (Realtime)"]], #["noname", ["p2", "Change in Percent"]], #["noname", ["c8", "After Hours Change (Realtime)"]], #["noname", ["m5", "Change From 200 Day Moving Average"]], #["noname", ["c3", "Commission"]], #["noname", ["m6", "Percent Change From 200 Day Moving Average"]], #["noname", ["g", "Day’s Low"]], #["noname", ["m7", "Change From 50 Day Moving Average"]], #["noname", ["h", "Day’s High"]], #["noname", ["m8", "Percent Change From 50 Day Moving Average"]], #["noname", ["k1", "Last Trade (Realtime) With Time"]], #["noname", ["m3", "50 Day Moving Average"]], #["noname", ["l", "Last Trade (With Time)"]], #["noname", ["m4", "200 Day Moving Average"]], #["noname", ["l1", "Last Trade (Price Only)"]], #["noname", ["t8", "1 yr Target Price"]], #["noname", ["w1", "Day’s Value Change"]], #["noname", ["g1", "Holdings Gain Percent"]], #["noname", ["w4", "Day’s Value Change (Realtime)"]], #["noname", ["g3", "Annualized Gain"]], #["noname", ["p1", "Price Paid"]], #["noname", ["g4", "Holdings Gain"]], #["noname", ["m", "Day’s Range"]], #["noname", ["g5", "Holdings Gain Percent (Realtime)"]], #["noname", ["m2", "Day’s Range (Realtime)"]], #["noname", ["g6", "Holdings Gain (Realtime)"]], #["noname", ["k", "52 Week High"]], #["noname", ["v", "More Info"]], #["noname", ["j", "52 week Low"]], #["noname", ["j1", "Market Capitalization"]], #["noname", ["j5", "Change From 52 Week Low"]], #["noname", ["j3", "Market Cap (Realtime)"]], #["noname", ["k4", "Change From 52 week High"]], #["noname", ["f6", "Float Shares"]], #["noname", ["j6", "Percent Change From 52 week Low"]], ["name", ["n", "Company Name"]], #["noname", ["k5", "Percent Change From 52 week High"]], #["noname", ["n4", "Notes"]], #["noname", ["w", "52 week Range"]], #["noname", ["s1", "Shares Owned"]], #["noname", ["x", "Stock Exchange"]], #["noname", ["j2", "Shares Outstanding"]], #["noname", ["v", "Volume"]], #["noname", ["a5", "Ask Size"]], #["noname", ["b6", "Bid Size"]], #["noname", ["k3", "Last Trade Size"]], #["noname", ["t7", "Ticker Trend"]], #["noname", ["a2", "Average Daily Volume"]], #["noname", ["t6", "Trade Links"]], #["noname", ["i5", "Order Book (Realtime)"]], #["noname", ["l2", "High Limit"]], #["noname", ["e", "Earnings per Share"]], #["noname", ["l3", "Low Limit"]], #["noname", ["e7", "EPS Estimate Current Year"]], #["noname", ["v1", "Holdings Value"]], #["noname", ["e8", "EPS Estimate Next Year"]], #["noname", ["v7", "Holdings Value (Realtime)"]], #["noname", ["e9", "EPS Estimate Next Quarter"]], #["noname", ["s6", "evenue"]], #["noname", ["b4", "Book Value"]], #["noname", ["j4", "EBITDA"]], #["noname", ["p5", "Price / Sales"]], #["noname", ["p6", "Price / Book"]], #["noname", ["r", "P/E Ratio"]], #["noname", ["r2", "P/E Ratio (Realtime)"]], #["noname", ["r5", "PEG Ratio"]], #["noname", ["r6", "Price / EPS Estimate Current Year"]], #["noname", ["r7", "Price / EPS Estimate Next Year"]], #["noname", ["s7", "Short Ratio"] ]] def replace Commas(data) s = "" in Quote = false data.split("")do |a| if a=='"' in Quote = ! in Quote && a == "," s = "#" else s = a end end return s end def all Parameters() s = "" $parameters each do |i| s = s i "," end return s end def prepare Parameters(parameters Text) pt = parameters Text.split(",") if ! Quick question - have you found this API to be reliable, and are the quotes truly realtime?in the same companies on your behalf on the dividend payment date. Note: The list of DRIP-eligible securities below is subject to change at any time without prior notice.For details, please contact us at Dividends earned pursuant to DRIP may be subject to requirements imposed by the Income Tax Act (Canada).This grandson flew across the country to surprise his grandmother with the Nat King Cole classic she taught him as a child.

||

But then one day he put a Go Pro camera around Guinness' neck and walked out the front door. But on this particular day, Holmes' friend Aaron was there.

I haven't come up with variable names for all the fields yahoo offers yet, so you can fill those in if you need them. " s = s "s=" tickers "&" s = s "f=" url Parameters return URI(s) end def load Stock Info(tickers, parameters Raw) parameters = prepare Parameters(parameters Raw) url = prepare URL(tickers, parameters) data = Net:: HTTP.get(url) data = replace Commas(data) h = CSVto Object(data, parameters) log Stock Objects(h, true) end #parse csv def print Codes(substring, length) a = data.index(substring) b = data.byteslice(a, 10) puts "printing codes of string: " puts b puts b.split('').map(&:ord).to_s end def CSVto Object(data, parameters) raw Data = [] line Breaks = data.split(10.chr) line Breaks.each_index do |i| raw Data.push(line Breaks[i].split("#")) end #puts "Found " raw Data.length.to_s " Stocks" #puts " w/ " raw Data[0].length.to_s " Fields" h = Hash.new("Main Hash") raw Data.each_index do |i| o = Hash.new("Stock Object" i.to_s) #puts "parsing object" raw Data[i][0] raw Data[i].each_index do |n| #puts "parsing parameter" n.to_s " " parameters[n][0] o[ parameters[n][0] ] = raw Data[i][n].gsub! $/, '') end h[o["symbol"]] = o; end return h end def log Stock Objects(h, concise) each do |i| if concise puts "(" h[i]["symbol"] ")\t\t" h[i]["name"] else puts "" puts h[i]["name"] h[i]each do |p| puts " " $parameters Data[p][1] " : " h[i][p].to_s end end end end this is really useful, I wish I could give you more votes.

Here's the usage TICKERS_SP500 = "GICS, CIK, MMM, ABT, ABBV, ACN, ACE, ACT, ADBE, ADT, AES, AET, AFL, AMG, A, GAS, APD, ARG, AKAM, AA, ALXN, ATI, ALLE, ADS, ALL, ALTR, MO, AMZN, AEE, AAL, AEP, AXP, AIG, AMT, AMP, ABC, AME, AMGN, APH, APC, ADI, AON, APA, AIV, AAPL, AMAT, ADM, AIZ, T, ADSK, ADP, AN, AZO, AVGO, AVB, AVY, BHI, BLL, BAC, BK, BCR, BAX, BBT, BDX, BBBY, BBY, BIIB, BLK, HRB, BA, BWA, BXP, BSX, BMY, BRCM, BFB, CHRW, CA, CVC, COG, CAM, CPB, COF, CAH, HSIC, KMX, CCL, CAT, CBG, CBS, CELG, CNP, CTL, CERN, CF, SCHW, CHK, CVX, CMG, CB, CI, XEC, CINF, CTAS, CSCO, C, CTXS, CLX, CME, CMS, COH, KO, CCE, CTSH, CL, CMA, CSC, CAG, COP, CNX, ED, STZ, GLW, COST, CCI, CSX, CMI, CVS, DHI, DHR, DRI, DVA, DE, DLPH, DAL, XRAY, DVN, DO, DTV, DFS, DG, DLTR, D, DOV, DOW, DPS, DTE, DD, DUK, DNB, ETFC, EMN, ETN, EBAY, ECL, EIX, EW, EA, EMC, EMR, ENDP, ESV, ETR, EOG, EQT, EFX, EQIX, EQR, ESS, EL, ES, EXC, EXPE, EXPD, ESRX, XOM, FFIV, FB, FDO, FAST, FDX, FIS, FITB, FSLR, FE, FISV, FLIR, FLS, FLR, FMC, FTI, F, FOSL, BEN, FCX, FTR, GME, GCI, GPS, GRMN, GD, GE, GGP, GIS, GM, GPC, GNW, GILD, GS, GT, GOOG, GWW, HAL, HBI, HOG, HAR, HRS, HIG, HAS, HCA, HCP, HCN, HP, HES, HPQ, HD, HON, HRL, HSP, HST, HCBK, HUM, HBAN, ITW, IR, TEG, INTC, ICE, IBM, IP, IPG, IFF, INTU, ISRG, IVZ, IRM, JEC, JNJ, JCI, JOY, JPM, JNPR, KSU, K, KEY, GMCR, KMB, KIM, KMI, KLAC, KSS, KRFT, KR, LB, LLL, LH, LRCX, LM, LEG, LEN, LVLT, LUK, LLY, LNC, LLTC, LMT, L, LO, LOW, LYB, MTB, MAC, M, MNK, MRO, MPC, MAR, MMC, MLM, MAS, MA, MAT, MKC, MCD, MHFI, MCK, MJN, MWV, MDT, MRK, MET, KORS, MCHP, MU, MSFT, MHK, TAP, MDLZ, MON, MNST, MCO, MS, MOS, MSI, MUR, MYL, NDAQ, NOV, NAVI, NTAP, NFLX, NWL, NFX, NEM, NWSA, NEE, NLSN, NKE, NI, NE, NBL, JWN, NSC, NTRS, NOC, NRG, NUE, NVDA, ORLY, OXY, OMC, OKE, ORCL, OI, PCAR, PLL, PH, PDCO, PAYX, PNR, PBCT, POM, PEP, PKI, PRGO, PFE, PCG, PM, PSX, PNW, PXD, PBI, PCL, PNC, RL, PPG, PPL, PX, PCP, PCLN, PFG, PG, PGR, PLD, PRU, PEG, PSA, PHM, PVH, QEP, PWR, QCOM, DGX, RRC, RTN, RHT, REGN, RF, RSG, RAI, RHI, ROK, COL, ROP, ROST, RCL, R, CRM, SNDK, SCG, SLB, SNI, STX, SEE, SRE, SHW, SIAL, SPG, SWKS, SLG, SJM, SNA, SO, LUV, SWN, SE, STJ, SWK, SPLS, SBUX, HOT, STT, SRCL, SYK, STI, SYMC, SYY, TROW, TGT, TEL, TE, THC, TDC, TSO, TXN, TXT, HSY, TRV, TMO, TIF, TWX, TWC, TJX, TMK, TSS, TSCO, RIG, TRIP, FOXA, TSN, TYC, USB, UA, UNP, UNH, UPS, URI, UTX, UHS, UNM, URBN, VFC, VLO, VAR, VTR, VRSN, VZ, VRTX, VIAB, V, VNO, VMC, WMT, WBA, DIS, WM, WAT, ANTM, WFC, WDC, WU, WY, WHR, WFM, WMB, WIN, WEC, WYN, WYNN, XEL, XRX, XLNX, XL, XYL, YHOO, YUM, ZMH, ZION, ZTS, SAIC, AP" All Data = load Stock Info(TICKERS_SP500, all Parameters()) Specific Data = load Stock Info("GOOG, CIK", "ask,dps") require 'net/http' # Jack Franzen & Garin Bedian # Based on $parameters Data = Hash ["symbol", ["s", "Symbol", ["ask", ["a", "Ask"]], ["div Yield", ["y", "Dividend Yield"]], ["bid", ["b", "Bid"]], ["dps", ["d", "Dividend per Share"]], #["noname", ["b2", "Ask (Realtime)"]], #["noname", ["r1", "Dividend Pay Date"]], #["noname", ["b3", "Bid (Realtime)"]], #["noname", ["q", "Ex-Dividend Date"]], #["noname", ["p", "Previous Close"]], #["noname", ["o", "Open"]], #["noname", ["c1", "Change"]], #["noname", ["d1", "Last Trade Date"]], #["noname", ["c", "Change & Percent Change"]], #["noname", ["d2", "Trade Date"]], #["noname", ["c6", "Change (Realtime)"]], #["noname", ["t1", "Last Trade Time"]], #["noname", ["k2", "Change Percent (Realtime)"]], #["noname", ["p2", "Change in Percent"]], #["noname", ["c8", "After Hours Change (Realtime)"]], #["noname", ["m5", "Change From 200 Day Moving Average"]], #["noname", ["c3", "Commission"]], #["noname", ["m6", "Percent Change From 200 Day Moving Average"]], #["noname", ["g", "Day’s Low"]], #["noname", ["m7", "Change From 50 Day Moving Average"]], #["noname", ["h", "Day’s High"]], #["noname", ["m8", "Percent Change From 50 Day Moving Average"]], #["noname", ["k1", "Last Trade (Realtime) With Time"]], #["noname", ["m3", "50 Day Moving Average"]], #["noname", ["l", "Last Trade (With Time)"]], #["noname", ["m4", "200 Day Moving Average"]], #["noname", ["l1", "Last Trade (Price Only)"]], #["noname", ["t8", "1 yr Target Price"]], #["noname", ["w1", "Day’s Value Change"]], #["noname", ["g1", "Holdings Gain Percent"]], #["noname", ["w4", "Day’s Value Change (Realtime)"]], #["noname", ["g3", "Annualized Gain"]], #["noname", ["p1", "Price Paid"]], #["noname", ["g4", "Holdings Gain"]], #["noname", ["m", "Day’s Range"]], #["noname", ["g5", "Holdings Gain Percent (Realtime)"]], #["noname", ["m2", "Day’s Range (Realtime)"]], #["noname", ["g6", "Holdings Gain (Realtime)"]], #["noname", ["k", "52 Week High"]], #["noname", ["v", "More Info"]], #["noname", ["j", "52 week Low"]], #["noname", ["j1", "Market Capitalization"]], #["noname", ["j5", "Change From 52 Week Low"]], #["noname", ["j3", "Market Cap (Realtime)"]], #["noname", ["k4", "Change From 52 week High"]], #["noname", ["f6", "Float Shares"]], #["noname", ["j6", "Percent Change From 52 week Low"]], ["name", ["n", "Company Name"]], #["noname", ["k5", "Percent Change From 52 week High"]], #["noname", ["n4", "Notes"]], #["noname", ["w", "52 week Range"]], #["noname", ["s1", "Shares Owned"]], #["noname", ["x", "Stock Exchange"]], #["noname", ["j2", "Shares Outstanding"]], #["noname", ["v", "Volume"]], #["noname", ["a5", "Ask Size"]], #["noname", ["b6", "Bid Size"]], #["noname", ["k3", "Last Trade Size"]], #["noname", ["t7", "Ticker Trend"]], #["noname", ["a2", "Average Daily Volume"]], #["noname", ["t6", "Trade Links"]], #["noname", ["i5", "Order Book (Realtime)"]], #["noname", ["l2", "High Limit"]], #["noname", ["e", "Earnings per Share"]], #["noname", ["l3", "Low Limit"]], #["noname", ["e7", "EPS Estimate Current Year"]], #["noname", ["v1", "Holdings Value"]], #["noname", ["e8", "EPS Estimate Next Year"]], #["noname", ["v7", "Holdings Value (Realtime)"]], #["noname", ["e9", "EPS Estimate Next Quarter"]], #["noname", ["s6", "evenue"]], #["noname", ["b4", "Book Value"]], #["noname", ["j4", "EBITDA"]], #["noname", ["p5", "Price / Sales"]], #["noname", ["p6", "Price / Book"]], #["noname", ["r", "P/E Ratio"]], #["noname", ["r2", "P/E Ratio (Realtime)"]], #["noname", ["r5", "PEG Ratio"]], #["noname", ["r6", "Price / EPS Estimate Current Year"]], #["noname", ["r7", "Price / EPS Estimate Next Year"]], #["noname", ["s7", "Short Ratio"] ]] def replace Commas(data) s = "" in Quote = false data.split("")do |a| if a=='"' in Quote = ! in Quote && a == "," s = "#" else s = a end end return s end def all Parameters() s = "" $parameters each do |i| s = s i "," end return s end def prepare Parameters(parameters Text) pt = parameters Text.split(",") if ! Quick question - have you found this API to be reliable, and are the quotes truly realtime?

in the same companies on your behalf on the dividend payment date. Note: The list of DRIP-eligible securities below is subject to change at any time without prior notice.

For details, please contact us at Dividends earned pursuant to DRIP may be subject to requirements imposed by the Income Tax Act (Canada).

This grandson flew across the country to surprise his grandmother with the Nat King Cole classic she taught him as a child.

||

But then one day he put a Go Pro camera around Guinness' neck and walked out the front door. But on this particular day, Holmes' friend Aaron was there.

I haven't come up with variable names for all the fields yahoo offers yet, so you can fill those in if you need them. " s = s "s=" tickers "&" s = s "f=" url Parameters return URI(s) end def load Stock Info(tickers, parameters Raw) parameters = prepare Parameters(parameters Raw) url = prepare URL(tickers, parameters) data = Net:: HTTP.get(url) data = replace Commas(data) h = CSVto Object(data, parameters) log Stock Objects(h, true) end #parse csv def print Codes(substring, length) a = data.index(substring) b = data.byteslice(a, 10) puts "printing codes of string: " puts b puts b.split('').map(&:ord).to_s end def CSVto Object(data, parameters) raw Data = [] line Breaks = data.split(10.chr) line Breaks.each_index do |i| raw Data.push(line Breaks[i].split("#")) end #puts "Found " raw Data.length.to_s " Stocks" #puts " w/ " raw Data[0].length.to_s " Fields" h = Hash.new("Main Hash") raw Data.each_index do |i| o = Hash.new("Stock Object" i.to_s) #puts "parsing object" raw Data[i][0] raw Data[i].each_index do |n| #puts "parsing parameter" n.to_s " " parameters[n][0] o[ parameters[n][0] ] = raw Data[i][n].gsub! $/, '') end h[o["symbol"]] = o; end return h end def log Stock Objects(h, concise) each do |i| if concise puts "(" h[i]["symbol"] ")\t\t" h[i]["name"] else puts "" puts h[i]["name"] h[i]each do |p| puts " " $parameters Data[p][1] " : " h[i][p].to_s end end end end this is really useful, I wish I could give you more votes.

Here's the usage TICKERS_SP500 = "GICS, CIK, MMM, ABT, ABBV, ACN, ACE, ACT, ADBE, ADT, AES, AET, AFL, AMG, A, GAS, APD, ARG, AKAM, AA, ALXN, ATI, ALLE, ADS, ALL, ALTR, MO, AMZN, AEE, AAL, AEP, AXP, AIG, AMT, AMP, ABC, AME, AMGN, APH, APC, ADI, AON, APA, AIV, AAPL, AMAT, ADM, AIZ, T, ADSK, ADP, AN, AZO, AVGO, AVB, AVY, BHI, BLL, BAC, BK, BCR, BAX, BBT, BDX, BBBY, BBY, BIIB, BLK, HRB, BA, BWA, BXP, BSX, BMY, BRCM, BFB, CHRW, CA, CVC, COG, CAM, CPB, COF, CAH, HSIC, KMX, CCL, CAT, CBG, CBS, CELG, CNP, CTL, CERN, CF, SCHW, CHK, CVX, CMG, CB, CI, XEC, CINF, CTAS, CSCO, C, CTXS, CLX, CME, CMS, COH, KO, CCE, CTSH, CL, CMA, CSC, CAG, COP, CNX, ED, STZ, GLW, COST, CCI, CSX, CMI, CVS, DHI, DHR, DRI, DVA, DE, DLPH, DAL, XRAY, DVN, DO, DTV, DFS, DG, DLTR, D, DOV, DOW, DPS, DTE, DD, DUK, DNB, ETFC, EMN, ETN, EBAY, ECL, EIX, EW, EA, EMC, EMR, ENDP, ESV, ETR, EOG, EQT, EFX, EQIX, EQR, ESS, EL, ES, EXC, EXPE, EXPD, ESRX, XOM, FFIV, FB, FDO, FAST, FDX, FIS, FITB, FSLR, FE, FISV, FLIR, FLS, FLR, FMC, FTI, F, FOSL, BEN, FCX, FTR, GME, GCI, GPS, GRMN, GD, GE, GGP, GIS, GM, GPC, GNW, GILD, GS, GT, GOOG, GWW, HAL, HBI, HOG, HAR, HRS, HIG, HAS, HCA, HCP, HCN, HP, HES, HPQ, HD, HON, HRL, HSP, HST, HCBK, HUM, HBAN, ITW, IR, TEG, INTC, ICE, IBM, IP, IPG, IFF, INTU, ISRG, IVZ, IRM, JEC, JNJ, JCI, JOY, JPM, JNPR, KSU, K, KEY, GMCR, KMB, KIM, KMI, KLAC, KSS, KRFT, KR, LB, LLL, LH, LRCX, LM, LEG, LEN, LVLT, LUK, LLY, LNC, LLTC, LMT, L, LO, LOW, LYB, MTB, MAC, M, MNK, MRO, MPC, MAR, MMC, MLM, MAS, MA, MAT, MKC, MCD, MHFI, MCK, MJN, MWV, MDT, MRK, MET, KORS, MCHP, MU, MSFT, MHK, TAP, MDLZ, MON, MNST, MCO, MS, MOS, MSI, MUR, MYL, NDAQ, NOV, NAVI, NTAP, NFLX, NWL, NFX, NEM, NWSA, NEE, NLSN, NKE, NI, NE, NBL, JWN, NSC, NTRS, NOC, NRG, NUE, NVDA, ORLY, OXY, OMC, OKE, ORCL, OI, PCAR, PLL, PH, PDCO, PAYX, PNR, PBCT, POM, PEP, PKI, PRGO, PFE, PCG, PM, PSX, PNW, PXD, PBI, PCL, PNC, RL, PPG, PPL, PX, PCP, PCLN, PFG, PG, PGR, PLD, PRU, PEG, PSA, PHM, PVH, QEP, PWR, QCOM, DGX, RRC, RTN, RHT, REGN, RF, RSG, RAI, RHI, ROK, COL, ROP, ROST, RCL, R, CRM, SNDK, SCG, SLB, SNI, STX, SEE, SRE, SHW, SIAL, SPG, SWKS, SLG, SJM, SNA, SO, LUV, SWN, SE, STJ, SWK, SPLS, SBUX, HOT, STT, SRCL, SYK, STI, SYMC, SYY, TROW, TGT, TEL, TE, THC, TDC, TSO, TXN, TXT, HSY, TRV, TMO, TIF, TWX, TWC, TJX, TMK, TSS, TSCO, RIG, TRIP, FOXA, TSN, TYC, USB, UA, UNP, UNH, UPS, URI, UTX, UHS, UNM, URBN, VFC, VLO, VAR, VTR, VRSN, VZ, VRTX, VIAB, V, VNO, VMC, WMT, WBA, DIS, WM, WAT, ANTM, WFC, WDC, WU, WY, WHR, WFM, WMB, WIN, WEC, WYN, WYNN, XEL, XRX, XLNX, XL, XYL, YHOO, YUM, ZMH, ZION, ZTS, SAIC, AP" All Data = load Stock Info(TICKERS_SP500, all Parameters()) Specific Data = load Stock Info("GOOG, CIK", "ask,dps") require 'net/http' # Jack Franzen & Garin Bedian # Based on $parameters Data = Hash ["symbol", ["s", "Symbol", ["ask", ["a", "Ask"]], ["div Yield", ["y", "Dividend Yield"]], ["bid", ["b", "Bid"]], ["dps", ["d", "Dividend per Share"]], #["noname", ["b2", "Ask (Realtime)"]], #["noname", ["r1", "Dividend Pay Date"]], #["noname", ["b3", "Bid (Realtime)"]], #["noname", ["q", "Ex-Dividend Date"]], #["noname", ["p", "Previous Close"]], #["noname", ["o", "Open"]], #["noname", ["c1", "Change"]], #["noname", ["d1", "Last Trade Date"]], #["noname", ["c", "Change & Percent Change"]], #["noname", ["d2", "Trade Date"]], #["noname", ["c6", "Change (Realtime)"]], #["noname", ["t1", "Last Trade Time"]], #["noname", ["k2", "Change Percent (Realtime)"]], #["noname", ["p2", "Change in Percent"]], #["noname", ["c8", "After Hours Change (Realtime)"]], #["noname", ["m5", "Change From 200 Day Moving Average"]], #["noname", ["c3", "Commission"]], #["noname", ["m6", "Percent Change From 200 Day Moving Average"]], #["noname", ["g", "Day’s Low"]], #["noname", ["m7", "Change From 50 Day Moving Average"]], #["noname", ["h", "Day’s High"]], #["noname", ["m8", "Percent Change From 50 Day Moving Average"]], #["noname", ["k1", "Last Trade (Realtime) With Time"]], #["noname", ["m3", "50 Day Moving Average"]], #["noname", ["l", "Last Trade (With Time)"]], #["noname", ["m4", "200 Day Moving Average"]], #["noname", ["l1", "Last Trade (Price Only)"]], #["noname", ["t8", "1 yr Target Price"]], #["noname", ["w1", "Day’s Value Change"]], #["noname", ["g1", "Holdings Gain Percent"]], #["noname", ["w4", "Day’s Value Change (Realtime)"]], #["noname", ["g3", "Annualized Gain"]], #["noname", ["p1", "Price Paid"]], #["noname", ["g4", "Holdings Gain"]], #["noname", ["m", "Day’s Range"]], #["noname", ["g5", "Holdings Gain Percent (Realtime)"]], #["noname", ["m2", "Day’s Range (Realtime)"]], #["noname", ["g6", "Holdings Gain (Realtime)"]], #["noname", ["k", "52 Week High"]], #["noname", ["v", "More Info"]], #["noname", ["j", "52 week Low"]], #["noname", ["j1", "Market Capitalization"]], #["noname", ["j5", "Change From 52 Week Low"]], #["noname", ["j3", "Market Cap (Realtime)"]], #["noname", ["k4", "Change From 52 week High"]], #["noname", ["f6", "Float Shares"]], #["noname", ["j6", "Percent Change From 52 week Low"]], ["name", ["n", "Company Name"]], #["noname", ["k5", "Percent Change From 52 week High"]], #["noname", ["n4", "Notes"]], #["noname", ["w", "52 week Range"]], #["noname", ["s1", "Shares Owned"]], #["noname", ["x", "Stock Exchange"]], #["noname", ["j2", "Shares Outstanding"]], #["noname", ["v", "Volume"]], #["noname", ["a5", "Ask Size"]], #["noname", ["b6", "Bid Size"]], #["noname", ["k3", "Last Trade Size"]], #["noname", ["t7", "Ticker Trend"]], #["noname", ["a2", "Average Daily Volume"]], #["noname", ["t6", "Trade Links"]], #["noname", ["i5", "Order Book (Realtime)"]], #["noname", ["l2", "High Limit"]], #["noname", ["e", "Earnings per Share"]], #["noname", ["l3", "Low Limit"]], #["noname", ["e7", "EPS Estimate Current Year"]], #["noname", ["v1", "Holdings Value"]], #["noname", ["e8", "EPS Estimate Next Year"]], #["noname", ["v7", "Holdings Value (Realtime)"]], #["noname", ["e9", "EPS Estimate Next Quarter"]], #["noname", ["s6", "evenue"]], #["noname", ["b4", "Book Value"]], #["noname", ["j4", "EBITDA"]], #["noname", ["p5", "Price / Sales"]], #["noname", ["p6", "Price / Book"]], #["noname", ["r", "P/E Ratio"]], #["noname", ["r2", "P/E Ratio (Realtime)"]], #["noname", ["r5", "PEG Ratio"]], #["noname", ["r6", "Price / EPS Estimate Current Year"]], #["noname", ["r7", "Price / EPS Estimate Next Year"]], #["noname", ["s7", "Short Ratio"] ]] def replace Commas(data) s = "" in Quote = false data.split("")do |a| if a=='"' in Quote = ! in Quote && a == "," s = "#" else s = a end end return s end def all Parameters() s = "" $parameters each do |i| s = s i "," end return s end def prepare Parameters(parameters Text) pt = parameters Text.split(",") if ! Quick question - have you found this API to be reliable, and are the quotes truly realtime?

in the same companies on your behalf on the dividend payment date. Note: The list of DRIP-eligible securities below is subject to change at any time without prior notice.

]]