App-Chart
view release on metacpan or search on metacpan
unused/YahooOld.pm view on Meta::CPAN
# Copyright 2007, 2008, 2009, 2010, 2011, 2015, 2016, 2017, 2018, 2024 Kevin Ryde
# This file is part of Chart.
#
# Chart is free software; you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation; either version 3, or (at your option) any later version.
#
# Chart is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along
# with Chart. If not, see <http://www.gnu.org/licenses/>.
#------------------------------------------------------------------------------
# Quotes bits generally.
#
# This uses the csv format quotes like
#
# http://download.finance.yahoo.com/d/quotes.csv?f=snl&e=.csv&s=BHP.AX
#
# The "f" field keys can be found at the following (open an account to get
# to them).
#
# http://edit.my.yahoo.com/config/edit_pfview?.vk=v1
# http://edit.finance.yahoo.com/e9?.intl=au
#
# http://download.finance.yahoo.com/d?
# s= # symbol
# f= # format, concat of the following
# s # symbol
# n # company name
# l1 # last price
# d1 # last trade date (in home exchange's timezone)
# t1 # last trade time (in yahoo server timezone)
# c1 # change
# p2 # percent change
# v # volume
# a2 # average daily volume
# b # bid
# b6 # bid size
# a # ask
# a5 # ask size
# k1 # "time - last" (ECN), with <b> and <i> markup
# c6 # change (ECN)
# m2 # day's range (ECN)
# b3 # bid (ECN)
# b2 # ask (ECN)
# p # previous close
# o # today's open
# m # day's range, eg. "1.23 - 4.56"
# w # 52-week range, eg. "1.23 - 4.56"
# e # earnings per share
# r # p/e ratio
# d # div per share
# q # ex div date, eg. "Mar 31" or "N/A"
# r1 # div pay date
# y # div yield
# j1 # market cap
# x # stock exchange
# c4 # currency, eg. "AUD"
# i # more info links, letters
# # c=chart, n=news, p=profile, r=research, i=insider,
# # m=message board (yahoo)
# k # 52-week high
#
# Don't know what the distinction between b,a and b3,b2 quotes are actually
# meant to be.
# - For the Australian Stock Exchange, b,a are "N/A", and b3,b2 is the
# SEATS best quote.
# - For US stocks b,a seem to be "N/A", and b3,b2 an ECN quote. The
# latter has been seen a long way away from from recent trades though,
# eg. in BRK-A.
#
# d1,t1 are a bit odd, the time is the yahoo server's zone, but the date
# seems to be always GMT. The zone for the time can be seen easily by
# looking at a quote from the various international XX.finance.yahoo.com.
# For the zone for the date however you need to be watching at midnight
# GMT, where it ticks over (at all the international XX.finance.yahoo.com).
# quote_parse_div_date ($str) returns an iso YYYY-MM-DD date string for a
# dividend $str coming from quote.csv data, or undef if none. There are
# several different formats,
# "Jan 7" # finance.yahoo.com
# " 5 Jan" # au.finance, uk.finance
# "24-Sep-04" # ABB.AX on finance.yahoo.com
# "24 Sep, 2004" # ABB.AX on au.finance
# "Sep 24, 2004" # ABB.AX on ca.finance
#
# An error is thrown for an unrecognised string, don't want some new form to
# end up with dividends silently forgotten.
#
sub quote_parse_div_date {
my ($str) = @_;
if (DEBUG) { print "quote_parse_div_date() '$str'\n"; }
if (! defined $str || $str eq 'N/A' || $str eq '') {
( run in 2.591 seconds using v1.01-cache-2.11-cpan-5a3173703d6 )