Skip to content

Instantly share code, notes, and snippets.

@gpsarkar
Created July 16, 2017 21:28
Show Gist options
  • Save gpsarkar/e9de78a3e152a12a7235c83039db6d3b to your computer and use it in GitHub Desktop.
Save gpsarkar/e9de78a3e152a12a7235c83039db6d3b to your computer and use it in GitHub Desktop.
Simple scripts to bulk download historical data from Yahoo! Finance
A
AA
AACC
AAME
AAN
AAON
AAP
AAPL
AAT
AAU
AAV
AAWW
AAXJ
AB
ABAX
ABB
ABC
ABCB
ABCD
ABFS
ABG
ABIO
ABM
ABMD
ABR
ABT
ABTL
ABV
ABVA
ABX
ACAD
ACAS
ACAT
ACC
ACCL
ACCO
ACE
ACET
ACFC
ACFN
ACG
ACGL
ACH
ACHC
ACHN
ACI
ACIW
ACLS
ACM
ACMP
ACN
ACNB
ACO
ACOM
ACOR
ACP
ACPW
ACRX
ACTG
ACTS
ACTV
ACU
ACUR
ACW
ACWI
ACWX
ACXM
ACY
ADAT
ADBE
ADC
ADEP
ADES
ADGE
ADI
ADK
ADM
ADP
ADS
ADSK
ADTN
ADUS
ADVS
ADX
ADY
AE
AEB
AEC
AED
AEE
AEF
AEG
AEGN
AEGR
AEH
AEHR
AEIS
AEL
AEM
AEO
AEP
AEPI
AER
AERL
AES
AET
AETI
AEV
AEY
AEZS
AF
AFAM
AFB
AFC
AFCB
AFCE
AFF
AFFX
AFFY
AFG
AFL
AFOP
AFQ
AFSI
AFT
AG
AGC
AGCO
AGD
AGEN
AGM
AGN
AGNC
AGO
AGP
AGRO
AGU
AGX
AGYS
AH
AHC
AHGP
AHL
AHPI
AHS
AHT
AI
AIG
AIM
AIMC
AIN
AINV
AIQ
AIR
AIRM
AIRT
AIT
AIV
AIXG
AIZ
AJG
AKAM
AKP
AKR
AKRX
AKS
AL
ALB
ALC
ALCO
ALCS
ALE
ALEX
ALG
ALGN
ALGT
ALIM
ALJ
ALK
ALKS
ALL
ALLB
ALLT
ALN
ALNC
ALNY
ALOG
ALOT
ALR
ALRN
ALSK
ALTE
ALTI
ALTR
ALU
ALV
ALVR
ALX
ALXA
ALXN
AM
AMAG
AMAP
AMAT
AMBO
AMBT
AMCC
AMCF
AMCN
AMCX
AMD
AME
AMED
AMG
AMGN
AMIC
AMID
AMKR
AMNB
AMOT
AMOV
AMP
AMPE
AMPL
AMRB
AMRC
AMRI
AMRN
AMRS
AMS
AMSC
AMSF
AMSG
AMSWA
AMT
AMTD
AMTG
AMWD
AMX
AMZN
AN
ANAC
ANAD
ANAT
ANCB
ANCI
ANCX
ANEN
ANF
ANGI
ANGO
ANH
ANIK
ANLY
ANN
ANNB
ANR
ANSS
ANTH
ANV
ANW
ANX
AOD
AOI
AOL
AON
AONE
AOS
AOSL
AP
APA
APAGF
APB
APC
APD
APEI
APF
APFC
APH
API
APKT
APL
APO
APOG
APOL
APP
APPY
APRI
APSA
APT
APTS
APU
APWC
AQQ
ARAY
ARB
ARC
ARCC
ARCI
ARCO
ARCP
ARCW
ARDNA
ARE
AREX
ARG
ARI
ARIA
ARII
ARK
ARKR
ARL
ARLP
ARMH
ARNA
ARO
AROW
ARQL
ARR
ARRS
ARRY
ARSD
ART
ARTC
ARTNA
ARTW
ARTX
ARUN
ARW
ARWR
ARX
ARY
ASA
ASBB
ASBC
ASBI
ASCA
ASCMA
ASEI
ASFI
ASG
ASGN
ASH
ASI
ASIA
ASM
ASMI
ASML
ASNA
ASP
ASPS
ASR
ASRV
ASRVP
ASTC
ASTE
ASTI
ASTM
ASTX
ASUR
ASX
ASYS
AT
ATAI
ATAX
ATC
ATE
ATEA
ATEC
ATHN
ATHX
ATI
ATK
ATL
ATLO
ATLS
ATMI
ATML
ATNI
ATNY
ATO
ATR
ATRC
ATRI
ATRM
ATRO
ATRS
ATSG
ATTU
ATU
ATV
ATVI
ATW
ATX
AU
AUBN
AUDC
AUMN
AUO
AUQ
AUXL
AUY
AV
AVA
AVAV
AVB
AVCA
AVD
AVEO
AVF
AVGO
AVHI
AVID
AVK
AVL
AVNR
AVNW
AVP
AVT
AVV
AVX
AVY
AWAY
AWC
AWF
AWH
AWI
AWK
AWP
AWR
AWRE
AWX
AXAS
AXE
AXFN
AXK
AXL
AXN
AXP
AXR
AXS
AXTI
AXU
AXX
AYI
AYN
AYR
AZC
AZK
AZN
AZO
AZPN
AZZ
B
BA
BAA
BABY
BAC
BAF
BAGL
BAH
BAK
BALT
BAM
BAMM
BANC
BANF
BANFP
BANR
BAP
BAS
BASI
BAX
BBBY
BBCN
BBD
BBEP
BBF
BBG
BBGI
BBK
BBL
BBN
BBNK
BBOX
BBRG
BBSI
BBT
BBVA
BBW
BBX
BBY
BC
BCA
BCBP
BCDS
BCE
BCEI
BCF
BCH
BCO
BCOM
BCOR
BCPC
BCR
BCRX
BCS
BCSB
BCV
BCX
BDC
BDE
BDGE
BDJ
BDL
BDMS
BDN
BDR
BDSI
BDX
BEAM
BEAT
BEAV
BEBE
BECN
BEE
BELFA
BELFB
BEN
BERK
BFIN
BFK
BFLY
BFO
BFR
BFS
BFY
BFZ
BG
BGC
BGCP
BGFV
BGG
BGMD
BGR
BGS
BGT
BGX
BGY
BH
BHB
BHD
BHE
BHI
BHK
BHL
BHLB
BHP
BHV
BHY
BICK
BID
BIDU
BIDZ
BIE
BIF
BIG
BIIB
BIN
BIO
BIOC
BIOD
BIOF
BIOL
BIOS
BIP
BIRT
BITA
BJRI
BJZ
BK
BKCC
BKD
BKE
BKEP
BKH
BKI
BKJ
BKK
BKMU
BKN
BKOR
BKR
BKS
BKSC
BKT
BKU
BLC
BLDP
BLDR
BLE
BLH
BLIN
BLJ
BLK
BLKB
BLL
BLMT
BLRX
BLT
BLW
BLX
BMA
BMC
BME
BMI
BMJ
BMO
BMR
BMRC
BMRN
BMS
BMTC
BMTI
BMY
BNA
BNCL
BNCN
BNJ
BNS
BNSO
BNY
BOBE
BOCH
BODY
BOE
BOFI
BOH
BOKF
BOLT
BONA
BONE
BOOM
BORN
BOSC
BOTJ
BOVA
BOX
BP
BPAX
BPFH
BPHX
BPI
BPK
BPL
BPO
BPP
BPS
BPT
BPZ
BQH
BQR
BQY
BR
BRC
BRCD
BRCM
BRD
BRE
BREW
BRFS
BRID
BRKL
BRKR
BRKS
BRLI
BRN
BRO
BRP
BRS
BRT
BRY
BSAC
BSBR
BSD
BSDM
BSE
BSET
BSFT
BSI
BSL
BSP
BSPM
BSQR
BSTC
BSX
BT
BTA
BTC
BTE
BTF
BTFG
BTH
BTI
BTN
BTO
BTU
BTUI
BTX
BTZ
BUD
BUI
BUR
BUSE
BVN
BVSN
BVX
BWA
BWC
BWEN
BWF
BWINA
BWINB
BWLD
BWP
BWS
BX
BXC
BXE
BXG
BXP
BXS
BYD
BYFC
BYI
BYM
BZ
BZC
BZH
BZM
BZMD
BZU
C
CA
CAAS
CAB
CAC
CACB
CACC
CACH
CACI
CADC
CADX
CAE
CAF
CAFI
CAG
CAH
CAJ
CAK
CALD
CALI
CALL
CALM
CALX
CAM
CAMP
CAMT
CAP
CAR
CARB
CART
CARV
CARZ
CAS
CASC
CASH
CASM
CASS
CASY
CAT
CATM
CATO
CATY
CAVM
CAW
CB
CBAK
CBAN
CBB
CBD
CBE
CBEY
CBG
CBI
CBIN
CBK
CBL
CBLI
CBM
CBMX
CBNJ
CBNK
CBOE
CBOU
CBP
CBPO
CBR
CBRL
CBRX
CBS
CBSH
CBST
CBT
CBU
CBZ
CCA
CCBG
CCC
CCCL
CCE
CCF
CCG
CCH
CCI
CCIH
CCIX
CCJ
CCK
CCL
CCM
CCMP
CCNE
CCO
CCOI
CCRN
CCRT
CCSC
CCU
CCUR
CCZ
CDE
CDI
CDNS
CDR
CDTI
CDXS
CDY
CDZI
CE
CEA
CEB
CEBK
CEC
CECE
CECO
CEDC
CEDU
CEE
CEF
CEL
CELG
CEM
CENT
CENTA
CENX
CEO
CEP
CERN
CERP
CERS
CET
CETV
CEV
CEVA
CF
CFBK
CFD
CFFC
CFFI
CFFN
CFI
CFN
CFNB
CFNL
CFP
CFR
CFX
CGA
CGEN
CGI
CGNX
CGO
CGR
CGV
CGX
CH
CHA
CHC
CHCI
CHCO
CHD
CHDN
CHDX
CHE
CHEV
CHFC
CHFN
CHG
CHGS
CHH
CHI
CHK
CHKE
CHKP
CHKR
CHL
CHLN
CHMT
CHN
CHNR
CHOP
CHRM
CHRW
CHS
CHSCP
CHSP
CHT
CHTP
CHTR
CHU
CHW
CHY
CHYR
CI
CIA
CIB
CIDM
CIE
CIEN
CIF
CIG
CII
CIK
CIM
CIMT
CINF
CIR
CIS
CISG
CIT
CITZ
CIX
CIZN
CJES
CJJD
CKEC
CKH
CKP
CKSW
CKX
CL
CLB
CLBH
CLC
CLCT
CLD
CLDT
CLDX
CLF
CLFD
CLGX
CLH
CLI
CLM
CLMS
CLMT
CLNE
CLNY
CLP
CLR
CLRO
CLRX
CLS
CLSN
CLVS
CLW
CLWR
CLWT
CLX
CM
CMA
CMC
CMCO
CMCSA
CMCSK
CME
CMFO
CMG
CMI
CMK
CMLP
CMLS
CMN
CMO
CMP
CMRE
CMRG
CMS
CMSB
CMT
CMTL
CMU
CMVT
CNA
CNAM
CNBC
CNBKA
CNC
CNDO
CNET
CNH
CNI
CNIT
CNK
CNL
CNMD
CNO
CNP
CNQ
CNQR
CNR
CNS
CNSL
CNTF
CNTY
CNW
CNX
CNYD
CO
COBK
COBR
COBZ
COCO
CODE
CODI
COF
COG
COGO
COH
COHR
COHU
COKE
COL
COLB
COLM
CONN
COO
COOL
COP
COR
CORE
CORT
COSI
COST
COT
COV
COVR
COWN
COY
CP
CPA
CPAH
CPB
CPBC
CPE
CPF
CPGI
CPHC
CPHD
CPHI
CPIX
CPK
CPL
CPLA
CPLP
CPN
CPNO
CPP
CPRT
CPRX
CPSI
CPSL
CPSS
CPST
CPT
CPTS
CPWR
CQB
CQP
CR
CRAI
CRAY
CRBC
CRC
CRDC
CRDN
CRDS
CREE
CRESY
CRF
CRFN
CRH
CRI
CRIS
CRK
CRL
CRM
CRMB
CRMD
CRME
CRMT
CRNT
CROX
CRP
CRR
CRRB
CRRC
CRS
CRT
CRTX
CRUS
CRV
CRVL
CRVP
CRWN
CRWS
CRY
CRZO
CS
CSBK
CSC
CSCD
CSCO
CSE
CSFL
CSFS
CSGP
CSGS
CSH
CSI
CSII
CSIQ
CSL
CSOD
CSP
CSPI
CSQ
CSRE
CSS
CSTR
CSU
CSUN
CSV
CSWC
CSX
CT
CTAS
CTB
CTBI
CTC
CTCH
CTCM
CTCT
CTDC
CTEL
CTFO
CTGX
CTHR
CTIB
CTIC
CTL
CTO
CTP
CTQ
CTRN
CTRP
CTRX
CTS
CTSH
CTWS
CTXS
CU
CUB
CUBE
CUK
CUNB
CUO
CUR
CUTR
CUZ
CVA
CVB
CVBF
CVC
CVCO
CVCY
CVD
CVE
CVG
CVGI
CVGW
CVH
CVI
CVLT
CVLY
CVM
CVO
CVR
CVS
CVTI
CVU
CVV
CVX
CW
CWBC
CWCO
CWEI
CWH
CWHN
CWST
CWT
CWTR
CWZ
CX
CXDC
CXE
CXH
CXM
CXO
CXPO
CXS
CXW
CXZ
CY
CYAN
CYBE
CYBI
CYBX
CYCC
CYCCP
CYD
CYE
CYH
CYMI
CYN
CYNO
CYOU
CYS
CYT
CYTK
CYTR
CYTX
CZFC
CZNC
CZWI
CZZ
D
DAC
DAEG
DAIO
DAKT
DAL
DAN
DANG
DAR
DARA
DATE
DAVE
DB
DBD
DBLE
DBLEP
DCA
DCE
DCI
DCIX
DCM
DCO
DCOM
DCT
DCTH
DD
DDD
DDE
DDF
DDR
DDS
DDT
DE
DECK
DEER
DEG
DEI
DEJ
DEL
DELL
DENN
DEO
DEPO
DEST
DEX
DEXO
DF
DFR
DFS
DFT
DG
DGAS
DGI
DGICA
DGICB
DGII
DGIT
DGLY
DGSE
DGX
DHF
DHFT
DHG
DHI
DHIL
DHR
DHRM
DHT
DHX
DHY
DIAL
DIN
DIOD
DIS
DISCA
DISCB
DISCK
DISH
DIT
DITC
DJCO
DK
DKS
DKT
DL
DLA
DLB
DLGC
DLHC
DLIA
DLLR
DLPH
DLR
DLTR
DLX
DM
DMD
DMF
DMLP
DMND
DMO
DMRC
DNB
DNBF
DNDN
DNI
DNKN
DNN
DNP
DNR
DNY
DO
DOLE
DOM
DORM
DOV
DOVR
DOW
DOX
DPD
DPG
DPM
DPO
DPS
DPW
DPZ
DQ
DRAD
DRAM
DRC
DRCO
DRD
DRE
DRH
DRI
DRIV
DRL
DRQ
DRRX
DRU
DRWI
DRYS
DSCI
DSCO
DSM
DSPG
DSS
DST
DSTI
DSU
DSW
DSWL
DSX
DTE
DTF
DTG
DTK
DTLK
DTSI
DTT
DTV
DTZ
DUA
DUC
DUF
DUK
DUSA
DV
DVA
DVAX
DVD
DVM
DVN
DVOX
DVR
DW
DWA
DWCH
DWSN
DX
DXB
DXCM
DXPE
DXR
DY
DYAX
DYNT
DYSL
E
EA
EAA
EAD
EAGLU
EAT
EBAY
EBF
EBIX
EBMT
EBR
EBS
EBSB
EBTC
EC
ECA
ECBE
ECF
ECHO
ECL
ECPG
ECT
ECTE
ECTY
ECYT
ED
EDAC
EDAP
EDD
EDE
EDF
EDGW
EDMC
EDN
EDR
EDS
EDT
EDU
EDUC
EE
EEA
EEFT
EEI
EEP
EEQ
EFC
EFII
EFM
EFR
EFSC
EFT
EFUT
EFX
EGAN
EGAS
EGBN
EGF
EGHT
EGI
EGLE
EGN
EGO
EGOV
EGP
EGT
EGY
EHI
EHTH
EIA
EIG
EIHI
EIM
EIO
EIP
EIV
EIX
EJ
EL
ELA
ELB
ELGX
ELLI
ELLO
ELMD
ELN
ELNK
ELON
ELP
ELRC
ELS
ELSE
ELTK
ELX
ELY
EMAN
EMC
EMCF
EMCI
EMD
EME
EMF
EMFN
EMI
EMIF
EMITF
EMJ
EMKR
EML
EMMS
EMMSP
EMMT
EMN
EMO
EMQ
EMR
EMXX
EMZ
ENA
ENB
END
ENDP
ENG
ENH
ENI
ENL
ENMD
ENOC
ENR
ENS
ENTG
ENTR
ENV
ENX
ENZ
ENZN
EOC
EOD
EOG
EOI
EONC
EOS
EOT
EOX
EPAX
EPAY
EPB
EPD
EPHC
EPIQ
EPL
EPM
EPOC
EPR
EQIX
EQR
EQS
EQT
EQU
EQY
ERB
ERC
ERF
ERH
ERIC
ERIE
ERII
ERJ
EROC
ES
ESA
ESBF
ESBK
ESC
ESCA
ESD
ESE
ESEA
ESGR
ESI
ESIO
ESL
ESLT
ESMC
ESP
ESRX
ESS
ESSA
ESSX
ESTE
ESV
ESYS
ETB
ETE
ETF
ETFC
ETG
ETH
ETJ
ETM
ETN
ETO
ETP
ETR
ETRM
ETV
ETW
ETY
EUFN
EV
EVBN
EVBS
EVC
EVEP
EVF
EVG
EVI
EVJ
EVK
EVM
EVN
EVO
EVOL
EVP
EVR
EVT
EVV
EVY
EW
EWBC
EXAC
EXAM
EXAR
EXAS
EXC
EXD
EXE
EXEL
EXFO
EXG
EXH
EXK
EXL
EXLP
EXLS
EXM
EXP
EXPD
EXPE
EXPO
EXPR
EXR
EXTR
EXXI
EZCH
EZPW
F
FABK
FAC
FAF
FALC
FAM
FARM
FARO
FAST
FAV
FAX
FBC
FBHS
FBIZ
FBMI
FBN
FBNC
FBNK
FBP
FBR
FBRC
FBSS
FC
FCAL
FCAP
FCBC
FCCO
FCCY
FCEL
FCF
FCFC
FCFS
FCH
FCHI
FCLF
FCN
FCNCA
FCO
FCS
FCT
FCTY
FCVA
FCX
FCY
FCZA
FDEF
FDI
FDML
FDO
FDP
FDS
FDUS
FDX
FE
FEFN
FEIC
FEIM
FELE
FEN
FENG
FEO
FES
FF
FFA
FFBC
FFBH
FFC
FFCH
FFCO
FFEX
FFG
FFHL
FFI
FFIC
FFIN
FFIV
FFKT
FFKY
FFN
FFNM
FFNW
FGB
FGC
FGP
FHCO
FHN
FHY
FIBK
FICO
FIF
FIG
FII
FIO
FIS
FISI
FISV
FITB
FITBP
FIX
FIZZ
FJA
FL
FLC
FLDM
FLEX
FLIR
FLL
FLML
FLO
FLOW
FLR
FLS
FLT
FLWS
FLXS
FLY
FMBI
FMC
FMCN
FMD
FMER
FMFC
FMN
FMNB
FMO
FMS
FMX
FMY
FN
FNB
FNBN
FNF
FNFG
FNGN
FNHC
FNLC
FNP
FNSR
FNV
FOE
FOF
FOH
FOLD
FONE
FONR
FOR
FORD
FORM
FORR
FORTY
FOSL
FPO
FPP
FPT
FR
FRA
FRAN
FRC
FRD
FRED
FREE
FRF
FRM
FRME
FRNK
FRO
FRP
FRS
FRT
FRX
FSBI
FSBK
FSC
FSCI
FSD
FSFG
FSGI
FSI
FSIN
FSL
FSLR
FSM
FSP
FSR
FSRV
FSS
FST
FSTR
FSYS
FT
FTE
FTEK
FTF
FTI
FTK
FTNT
FTR
FTT
FU
FUBC
FUL
FULL
FULT
FUN
FUNC
FUR
FURX
FVE
FWLT
FWRD
FWV
FXCB
FXCM
FXEN
G
GA
GAB
GABC
GAGA
GAI
GAIA
GAIN
GALE
GALT
GAM
GAS
GAT
GB
GBAB
GBCI
GBDC
GBG
GBL
GBLI
GBNK
GBR
GBX
GCA
GCAP
GCBC
GCF
GCFB
GCH
GCI
GCO
GCOM
GCV
GD
GDF
GDI
GDL
GDO
GDOT
GDP
GDV
GE
GEA
GEC
GED
GEF
GEG
GEJ
GEL
GEN
GENC
GENE
GENT
GEO
GEOS
GEOY
GEP
GEQ
GER
GERN
GES
GEVO
GF
GFA
GFED
GFF
GFI
GFIG
GFN
GFY
GG
GGAL
GGB
GGC
GGE
GGG
GGN
GGP
GGR
GGS
GGT
GHDX
GHI
GHL
GHM
GIB
GIFI
GIG
GIGA
GIGM
GIII
GIL
GILD
GILT
GIM
GIS
GIVN
GJD
GJH
GJI
GJJ
GJK
GJM
GJO
GJP
GJR
GJS
GJT
GJV
GKK
GKM
GKNT
GKSR
GLAD
GLBS
GLBZ
GLCH
GLDC
GLDD
GLF
GLNG
GLO
GLOW
GLP
GLPW
GLQ
GLRE
GLT
GLU
GLUU
GLV
GLW
GM
GMA
GMAN
GMCR
GME
GMETP
GMK
GMLP
GMO
GMT
GMXR
GNC
GNCMA
GNE
GNI
GNK
GNMK
GNOM
GNRC
GNT
GNTX
GNVC
GNW
GOF
GOK
GOL
GOM
GOOD
GOODO
GOODP
GOOG
GORO
GOV
GPC
GPI
GPIC
GPK
GPL
GPM
GPN
GPOR
GPR
GPRC
GPRE
GPS
GPX
GRA
GRC
GRF
GRFS
GRH
GRID
GRIF
GRMH
GRMN
GRO
GRP
GRPN
GRR
GRT
GRVY
GRX
GRZ
GS
GSAT
GSB
GSBC
GSF
GSH
GSI
GSIG
GSIT
GSJK
GSK
GSL
GSM
GSOL
GSS
GST
GSVC
GSX
GT
GTAT
GTE
GTI
GTIM
GTIV
GTLS
GTN
GTS
GTU
GTWN
GTXI
GTY
GUA
GUID
GUL
GURE
GUT
GV
GVA
GVP
GWF
GWR
GWW
GXP
GY
GYA
GYB
GYC
GYRO
GZT
H
HA
HAE
HAFC
HAL
HALL
HALO
HAR
HARL
HAS
HAST
HAUP
HAV
HAVNP
HAYN
HBAN
HBANP
HBC
HBCP
HBHC
HBI
HBIO
HBM
HBMD
HBNC
HBNK
HBOS
HCA
HCBK
HCC
HCCI
HCII
HCIIP
HCN
HCOM
HCP
HCS
HCSG
HD
HDB
HDNG
HDSN
HDY
HE
HEB
HEES
HEI
HEK
HELE
HEOP
HEP
HEQ
HERO
HES
HF
HFBC
HFBL
HFC
HFFC
HFWA
HGG
HGR
HGSH
HGT
HH
HHC
HHS
HHY
HI
HIBB
HIF
HIFS
HIG
HIH
HIHO
HII
HIL
HILL
HIMX
HIO
HIS
HITK
HITT
HIW
HIX
HJJ
HJL
HJN
HJO
HJR
HJT
HJV
HK
HKN
HL
HLF
HLIT
HLS
HLX
HLYS
HMA
HMC
HME
HMG
HMH
HMIN
HMN
HMNF
HMNY
HMPR
HMSY
HMY
HNH
HNI
HNP
HNR
HNRG
HNSN
HNT
HNW
HNZ
HOFT
HOG
HOLI
HOLL
HOLX
HOMB
HOME
HON
HOS
HOT
HOTR
HOTT
HOV
HOVNP
HOVU
HP
HPCCP
HPF
HPI
HPJ
HPOL
HPP
HPQ
HPS
HPT
HPY
HQH
HQL
HR
HRB
HRC
HRG
HRL
HRS
HRT
HRZN
HSA
HSC
HSFT
HSH
HSIC
HSII
HSKA
HSNI
HSOL
HSON
HSP
HST
HSTM
HSY
HT
HTBK
HTCH
HTCO
HTD
HTGC
HTH
HTHT
HTLD
HTLF
HTM
HTR
HTS
HTSI
HTWR
HTY
HTZ
HUBG
HUM
HUN
HURC
HURN
HUSA
HVB
HVT
HW
HWAY
HWBK
HWCC
HWD
HWG
HWKN
HXL
HXM
HYB
HYF
HYGS
HYI
HYK
HYL
HYT
HYV
HZNP
HZO
IACI
IAE
IAF
IAG
IART
IBA
IBB
IBCA
IBCP
IBCPO
IBIO
IBKC
IBKR
IBM
IBN
IBOC
ICA
ICAD
ICB
ICCC
ICE
ICFI
ICGE
ICH
ICLN
ICLR
ICON
ICUI
IDA
IDCC
IDE
IDG
IDI
IDIX
IDN
IDRA
IDSA
IDSY
IDT
IDTI
IDXX
IEC
IEP
IEX
IF
IFAS
IFEU
IFF
IFGL
IFMI
IFN
IFNA
IFON
IFSIA
IFSM
IFT
IG
IGA
IGC
IGD
IGI
IGK
IGLD
IGOI
IGOV
IGR
IGT
IGTE
IHC
IHD
IHS
IHT
IID
IIF
III
IIIN
IIJI
IILG
IIM
IIN
IIT
IIVI
IKAN
IKNX
IL
ILMN
IM
IMAX
IMF
IMGN
IMH
IMI
IMKTA
IMMR
IMMU
IMN
IMO
IMOS
IMPV
IMRS
IMUC
IN
INAP
INB
INCY
IND
INDB
INDY
INF
INFA
INFI
INFN
INFU
INFY
ING
INGR
ININ
INN
INO
INOC
INOD
INPH
INS
INSM
INT
INTC
INTL
INTT
INTU
INTX
INUV
INV
INVE
INVN
INWK
INXN
INZ
IO
IOC
IOSP
IOT
IP
IPAR
IPAS
IPB
IPCC
IPCI
IPCM
IPG
IPGP
IPHI
IPHS
IPI
IPT
IPXL
IQI
IQNT
IR
IRBT
IRC
IRDM
IRDMZ
IRE
IRET
IRETP
IRF
IRIS
IRIX
IRL
IRM
IROQ
IRR
IRS
IRWD
ISBC
ISCA
ISF
ISG
ISH
ISHG
ISIG
ISIL
ISIS
ISL
ISLE
ISNS
ISP
ISR
ISRG
ISRL
ISS
ISSC
ISSI
IT
ITC
ITG
ITI
ITIC
ITMN
ITRI
ITRN
ITT
ITUB
ITW
IVAC
IVAN
IVC
IVR
IVZ
IX
IXYS
JACK
JADE
JAG
JAH
JAKK
JASO
JAX
JAXB
JAZZ
JBHT
JBI
JBJ
JBK
JBL
JBLU
JBN
JBO
JBR
JBSS
JBT
JCE
JCI
JCOM
JCP
JCS
JCTCF
JDAS
JDD
JDSU
JE
JEC
JEF
JEQ
JFBI
JFC
JFR
JGG
JGT
JGV
JHI
JHP
JHS
JHX
JIVE
JJSF
JKHY
JKS
JLA
JLL
JLS
JMBA
JMF
JMP
JMT
JNJ
JNPR
JNS
JNY
JOB
JOBS
JOE
JOEZ
JOF
JOSB
JOUT
JOY
JPC
JPG
JPM
JPS
JPZ
JQC
JRCC
JRJC
JRN
JRO
JRS
JSD
JSN
JST
JTA
JTD
JTP
JVA
JWF
JWN
JXSB
JZC
JZJ
JZK
JZL
JZS
JZT
JZV
K
KAI
KALU
KAMN
KAR
KB
KBALB
KBH
KBR
KBW
KBX
KCAP
KCC
KCG
KCLI
KDN
KED
KEF
KEG
KELYA
KELYB
KEM
KEP
KEQU
KERX
KEX
KEY
KEYN
KF
KFFB
KFFG
KFH
KFN
KFRC
KFS
KFY
KGC
KGJI
KGN
KH
KHI
KID
KIM
KINS
KIOR
KIPO
KIPS
KIRK
KITD
KKD
KKR
KLAC
KLIC
KMB
KMF
KMG
KMI
KMM
KMP
KMPR
KMR
KMT
KMX
KND
KNDI
KNL
KNM
KNR
KNX
KNXA
KO
KOF
KOG
KONA
KONE
KONG
KOP
KOPN
KORS
KOS
KOSS
KR
KRA
KRC
KRG
KRJ
KRNY
KRO
KS
KSA
KSM
KSS
KST
KSU
KSWS
KT
KTCC
KTEC
KTF
KTH
KTN
KTOS
KTP
KUB
KUTV
KVHI
KW
KWK
KWR
KXM
KYE
KYN
KYO
L
LABC
LABL
LACO
LAD
LAKE
LAMR
LANC
LAQ
LARK
LAS
LAWS
LAYN
LAZ
LBAI
LBF
LBIX
LBTYA
LBTYB
LBTYK
LBY
LCAV
LCC
LCI
LCM
LCNB
LCUT
LDF
LDK
LDL
LDR
LEA
LEAP
LECO
LEDR
LEE
LEG
LEI
LEN
LEO
LF
LFC
LFL
LFUS
LG
LGCY
LGF
LGI
LGL
LGND
LH
LHCG
LHO
LIFE
LII
LIME
LINC
LINE
LINTA
LINTB
LION
LIOX
LIVE
LIWA
LKFN
LKQ
LL
LLEN
LLL
LLNW
LLTC
LLY
LM
LMAT
LMCA
LMCB
LMIA
LMLP
LMNR
LMNX
LMOS
LMT
LNBB
LNC
LNDC
LNET
LNG
LNKD
LNN
LNT
LO
LOAN
LOCM
LODE
LOGI
LOGM
LOJN
LON
LONG
LOOK
LOPE
LOR
LORL
LOV
LOW
LPH
LPHI
LPI
LPL
LPLA
LPNT
LPR
LPS
LPSBD
LPSN
LPTH
LPTN
LPX
LQDT
LRAD
LRCX
LRE
LRN
LRY
LSBI
LSBK
LSCC
LSE
LSG
LSI
LSTR
LTC
LTD
LTM
LTON
LTRE
LTRX
LTS
LTXC
LUB
LUFK
LUK
LULU
LUNA
LUV
LUX
LVB
LVLT
LVS
LWAY
LXK
LXP
LXRX
LXU
LYB
LYG
LYTS
LYV
LZB
M
MA
MAA
MAB
MAC
MAG
MAGS
MAIN
MAKO
MALL
MAN
MANH
MANT
MAPP
MAR
MARPS
MAS
MASC
MASI
MAT
MATR
MATW
MAV
MAXY
MAYS
MBA
MBFI
MBI
MBLX
MBND
MBRG
MBT
MBTF
MBVT
MBWM
MCA
MCBC
MCBI
MCC
MCD
MCEP
MCF
MCGC
MCHP
MCHX
MCI
MCK
MCN
MCO
MCOX
MCP
MCR
MCRI
MCRL
MCRS
MCS
MCY
MCZ
MD
MDAS
MDC
MDCA
MDCI
MDF
MDGN
MDH
MDLZ
MDM
MDP
MDR
MDRX
MDSO
MDT
MDU
MDVN
MDW
MEA
MEAD
MEAS
MED
MEDW
MEET
MEG
MEI
MEIP
MELA
MELI
MEMP
MEMS
MEN
MENT
MEOH
MERC
MERU
MET
METR
MFA
MFB
MFC
MFD
MFG
MFI
MFL
MFLR
MFLX
MFM
MFNC
MFRI
MFRM
MFSF
MFT
MFV
MG
MGA
MGAM
MGCD
MGEE
MGF
MGH
MGI
MGIC
MGLN
MGM
MGN
MGPI
MGRC
MGT
MGU
MGYR
MHD
MHE
MHF
MHGC
MHH
MHI
MHK
MHLD
MHN
MHNA
MHO
MHP
MHR
MHY
MIC
MIG
MIL
MILL
MIN
MIND
MINI
MIPS
MITK
MITL
MITT
MIW
MIY
MJI
MJN
MKC
MKL
MKS
MKSI
MKTAY
MKTX
MLAB
MLG
MLHR
MLI
MLM
MLNK
MLNX
MLP
MLR
MLU
MLVFD
MMC
MMLP
MMM
MMP
MMR
MMS
MMSI
MMT
MMU
MMUS
MMV
MMYT
MN
MNDO
MNE
MNGA
MNGL
MNGLU
MNI
MNKD
MNOV
MNP
MNR
MNRK
MNRKP
MNRO
MNST
MNTA
MNTG
MNTX
MO
MOC
MOCO
MOD
MOFG
MOH
MOLX
MOLXA
MON
MORN
MOS
MOSY
MOTR
MOV
MOVE
MPA
MPAA
MPAC
MPB
MPC
MPEL
MPET
MPG
MPR
MPV
MPW
MPWR
MPX
MQT
MQY
MR
MRCY
MRF
MRGE
MRH
MRK
MRLN
MRO
MRTN
MRVL
MRX
MS
MSA
MSB
MSBF
MSCC
MSCI
MSD
MSEX
MSF
MSFG
MSFT
MSI
MSJ
MSK
MSL
MSLI
MSM
MSN
MSO
MSON
MSP
MSPD
MSTR
MSW
MSZ
MT
MTB
MTD
MTE
MTEX
MTG
MTGE
MTH
MTL
MTN
MTOR
MTR
MTRN
MTRX
MTS
MTSC
MTSL
MTSN
MTT
MTU
MTW
MTX
MTZ
MU
MUA
MUC
MUE
MUH
MUI
MUJ
MUR
MUS
MUSA
MUX
MVC
MVF
MVG
MVIS
MVO
MVT
MW
MWA
MWE
MWG
MWIV
MWO
MWR
MWV
MWW
MX
MXA
MXC
MXE
MXF
MXIM
MXL
MXN
MXT
MXWL
MY
MYC
MYD
MYE
MYF
MYGN
MYI
MYJ
MYL
MYM
MYN
MYRG
MYRX
MZA
MZF
N
NABI
NAC
NAD
NAFC
NAI
NAII
NAK
NAN
NANO
NASB
NAT
NATH
NATI
NATL
NATR
NAUH
NAV
NAVB
NAVR
NAZ
NBB
NBBC
NBD
NBG
NBH
NBIX
NBJ
NBL
NBN
NBO
NBR
NBS
NBTB
NBTF
NBW
NBY
NC
NCA
NCB
NCBC
NCI
NCIT
NCMI
NCO
NCP
NCR
NCS
NCT
NCU
NCV
NCZ
NDRO
NDSN
NDZ
NE
NEA
NEBS
NECB
NED
NEE
NEM
NEN
NEOG
NEON
NEPT
NETC
NETE
NEU
NEV
NEWL
NEWN
NEWP
NEWS
NEWT
NEXS
NFBK
NFEC
NFG
NFJ
NFLX
NFP
NFSB
NFX
NFZ
NG
NGD
NGG
NGL
NGLS
NGPC
NGS
NGT
NGX
NGZ
NHC
NHF
NHI
NHS
NHTB
NI
NICE
NICK
NIE
NIF
NIHD
NILE
NIM
NINE
NIO
NJ
NJR
NJV
NKA
NKBP
NKE
NKG
NKO
NKR
NKSH
NKTR
NKX
NL
NLNK
NLP
NLS
NLSN
NLST
NLY
NM
NMA
NMAR
NMB
NMD
NMFC
NMI
NMM
NMO
NMP
NMR
NMRX
NMT
NMY
NMZ
NNA
NNBR
NNC
NNF
NNI
NNJ
NNN
NNP
NNY
NOA
NOAH
NOC
NOG
NOK
NOM
NOOF
NOR
NOV
NOVB
NP
NPBC
NPBCO
NPD
NPF
NPI
NPK
NPM
NPN
NPO
NPP
NPSP
NPT
NPTN
NPV
NPX
NPY
NQ
NQC
NQI
NQJ
NQM
NQN
NQP
NQS
NQU
NR
NRC
NRCI
NRF
NRG
NRGM
NRGY
NRIM
NRK
NRO
NRP
NRT
NRU
NS
NSC
NSEC
NSH
NSIT
NSL
NSP
NSPH
NSR
NSSC
NSU
NSYS
NTAP
NTC
NTCT
NTE
NTES
NTG
NTGR
NTIC
NTK
NTL
NTLS
NTN
NTRI
NTRS
NTSC
NTSP
NTT
NTWK
NTX
NTZ
NU
NUAN
NUC
NUCL
NUE
NUJ
NUM
NUN
NUO
NURO
NUS
NUTR
NUV
NUVA
NUW
NVAX
NVC
NVDA
NVE
NVEC
NVG
NVGN
NVJ
NVMI
NVN
NVO
NVR
NVS
NVSL
NVTL
NVX
NVY
NWBI
NWE
NWFL
NWL
NWLI
NWN
NWPX
NWS
NWSA
NWY
NX
NXC
NXE
NXI
NXJ
NXK
NXM
NXN
NXP
NXPI
NXQ
NXR
NXST
NXTM
NXY
NXZ
NYB
NYH
NYMT
NYMX
NYNY
NYT
NYV
NYX
NZF
NZH
NZW
O
OABC
OAS
OB
OBAF
OBAS
OBCI
OBT
OC
OCC
OCFC
OCLR
OCLS
OCN
OCR
OCZ
ODC
ODFL
ODP
OEH
OESX
OFC
OFED
OFG
OFI
OFIX
OFLX
OGE
OGXI
OHI
OI
OIA
OIBR
OII
OIIM
OILT
OIS
OKE
OKS
OLBK
OLN
OLP
OMAB
OMC
OMCL
OME
OMER
OMEX
OMG
OMI
OMN
OMPI
OMX
ONB
ONCY
ONE
ONEQ
ONFC
ONNN
ONP
ONTY
ONVI
ONXX
OPAY
OPEN
OPHC
OPK
OPLK
OPNT
OPOF
OPTR
OPTT
OPXA
OPY
ORA
ORB
ORBC
ORBK
ORBT
ORCC
ORCL
OREX
ORI
ORIG
ORIT
ORLY
ORN
ORRF
OSBC
OSBCP
OSG
OSHC
OSIR
OSIS
OSK
OSN
OSTK
OSUR
OTEX
OTIV
OTT
OTTR
OUTD
OVBC
OVLY
OVRL
OVTI
OWW
OXF
OXGN
OXLC
OXM
OXY
OZM
OZRK
P
PAA
PAAS
PAC
PACB
PACD
PACR
PACW
PAG
PAI
PAL
PAM
PAMT
PAR
PATH
PATK
PATR
PAY
PAYX
PB
PBA
PBCT
PBH
PBHC
PBI
PBM
PBNY
PBR
PBT
PBTH
PBY
PC
PCAR
PCBC
PCBK
PCC
PCCC
PCF
PCG
PCK
PCL
PCM
PCN
PCO
PCP
PCQ
PCRX
PCS
PCTI
PDCE
PDCO
PDFS
PDII
PDLI
PDM
PDO
PDS
PDT
PEB
PEBK
PEBO
PEET
PEG
PEGA
PEI
PEIX
PENN
PENX
PEO
PEOP
PEP
PER
PES
PFBX
PFD
PFE
PFG
PFH
PFIN
PFK
PFL
PFLT
PFN
PFO
PFS
PFX
PG
PGC
PGH
PGI
PGP
PGR
PH
PHA
PHD
PHF
PHG
PHH
PHI
PHK
PHM
PHR
PHT
PHX
PII
PIKE
PIM
PIP
PIR
PIS
PIY
PJA
PJC
PJI
PJL
PJS
PKBK
PKD
PKE
PKG
PKH
PKI
PKJ
PKK
PKO
PKOH
PKX
PKY
PL
PLCC
PLD
PLG
PLL
PLM
PLMT
PLOW
PLP
PLT
PLTM
PLUS
PLX
PM
PMBC
PMC
PMF
PML
PMM
PMO
PMT
PMTC
PMTI
PMX
PNBK
PNC
PNF
PNG
PNI
PNK
PNM
PNNT
PNR
PNRA
PNW
PNX
PNY
PODD
POL
POM
POR
POT
PPBI
PPC
PPG
PPHM
PPL
PPO
PPP
PPR
PPS
PQ
PR
PRA
PRCP
PRE
PRGN
PRI
PRIS
PRK
PRKR
PRLS
PRO
PRU
PRXL
PSA
PSB
PSE
PSF
PSO
PSOF
PSTB
PSUN
PSW
PSY
PT
PTEN
PTGI
PTIE
PTN
PTNR
PTNT
PTP
PTR
PTSI
PTX
PTY
PUK
PULS
PVA
PVD
PVG
PVH
PVR
PW
PWE
PWOD
PWR
PWRD
PX
PXD
PXP
PYA
PYB
PYC
PYG
PYK
PYL
PYN
PYS
PYT
PYV
PYY
PZB
PZC
PZE
PZG
PZN
PZZA
QABA
QBC
QCLN
QEP
QIHU
QMM
QQEW
QQQC
QQQX
QQXT
QRE
QRM
QTEC
QTM
QUAD
R
RAD
RAH
RAI
RAIL
RAS
RATE
RAX
RBA
RBC
RBN
RBS
RBY
RC
RCG
RCI
RCL
RCS
RDC
RDEN
RDN
RDY
RE
REE
REG
RENN
RES
REV
REX
RF
RFI
RFP
RGA
RGC
RGP
RGR
RGS
RHI
RHP
RHT
RIC
RIF
RIG
RIO
RIT
RJF
RKT
RL
RLD
RLGT
RLH
RLI
RLJ
RMD
RMT
RNE
RNF
RNN
RNO
RNP
RNR
ROC
ROCK
ROG
ROK
ROL
ROP
ROX
RPI
RPM
RPT
RQI
RRC
RRMS
RRTS
RS
RSE
RSG
RSH
RSO
RST
RT
RTI
RTK
RTN
RUK
RVM
RVP
RVR
RVT
RWC
RWT
RY
RYL
RYN
S
SA
SAAS
SAB
SAH
SAI
SAL
SAM
SAN
SAND
SAP
SAR
SARA
SATS
SB
SBH
SBI
SBR
SBS
SBW
SBX
SCCO
SCD
SCG
SCHW
SCI
SCL
SCMFO
SCOR
SCR
SCS
SCU
SCX
SD
SDRL
SDT
SE
SEB
SED
SEE
SEED
SEH
SEM
SEMG
SEP
SF
SFD
SFE
SFG
SFI
SFL
SFUN
SFY
SGA
SGB
SGF
SGK
SGL
SGU
SGY
SGZ
SHAW
SHF
SHG
SHI
SHLM
SHO
SHP
SHS
SHW
SHZ
SI
SID
SIF
SIG
SILU
SIM
SIX
SJI
SJM
SJR
SJT
SJW
SKH
SKM
SKS
SKT
SKX
SKY
SKYY
SLA
SLB
SLF
SLG
SLH
SLI
SLT
SLW
SM
SMA
SMF
SMFG
SMG
SMI
SMP
SMS
SN
SNA
SNAK
SNE
SNH
SNI
SNN
SNP
SNT
SNV
SNX
SNY
SO
SOCL
SOL
SON
SOQ
SOR
SOXX
SPA
SPB
SPE
SPF
SPG
SPH
SPN
SPP
SPR
SPW
SQM
SQNS
SR
SRCE
SRE
SRI
SRT
SRV
SRZ
SSD
SSE
SSI
SSL
SSN
SSP
SSRX
SSS
SSW
SSY
ST
STAG
STC
STE
STI
STJ
STK
STL
STM
STN
STNG
STO
STON
STP
STR
STRI
STS
STT
STV
STWD
STZ
SU
SUI
SUP
SVBL
SVM
SVN
SVT
SVU
SVVC
SWC
SWFT
SWI
SWK
SWM
SWN
SWS
SWU
SWX
SWY
SWZ
SXC
SXI
SXL
SXT
SYA
SYK
SYN
SYRG
SYSW
SYT
SYX
SYY
T
TA
TAC
TAHO
TAI
TAL
TAOM
TAP
TARO
TAS
TAST
TAT
TAXI
TBI
TC
TCAP
TCB
TCI
TCK
TCL
TCO
TCP
TCX
TD
TDC
TDE
TDF
TDG
TDI
TDJ
TDS
TDW
TDY
TE
TEA
TEF
TEG
TEI
TEL
TEN
TEO
TER
TEU
TEVA
TEX
TF
TFG
TFX
TG
TGB
TGC
TGD
TGH
TGI
TGP
TGS
TGT
TGX
THC
THFF
THG
THI
THM
THO
THR
THRM
THS
TI
TIE
TIF
TIK
TINY
TIS
TISI
TJX
TK
TKC
TKF
TKR
TLI
TLK
TLLP
TLM
TLP
TLR
TM
TMH
TMK
TMO
TMP
TMS
TNC
TNH
TNK
TNP
TNS
TOF
TOL
TOO
TOT
TOWR
TPC
TPI
TPL
TPLM
TPX
TPZ
TR
TRAK
TRC
TREX
TRF
TRGP
TRI
TRK
TRN
TRNO
TRP
TRQ
TRR
TRT
TRU
TRV
TRW
TRX
TS
TSH
TSI
TSL
TSM
TSN
TSO
TSS
TSU
TTC
TTF
TTI
TTM
TTO
TTP
TTTM
TU
TUC
TUP
TV
TVC
TVE
TVL
TW
TWC
TWI
TWN
TWO
TWX
TX
TXI
TXT
TY
TYC
TYG
TYL
TYN
TYPE
TYY
TZF
UA
UAL
UAM
UAMY
UAN
UBA
UBP
UBS
UDR
UEC
UEPS
UFI
UFS
UGI
UGP
UHAL
UHS
UHT
UIL
UIS
UL
UMC
UMH
UN
UNF
UNH
UNM
UNP
UNS
UNT
UPG
UPL
UPS
UQM
URG
URI
URS
URZ
USA
USB
USG
USM
USNA
USPH
USU
UTF
UTG
UTI
UTL
UTX
UUU
UVE
UVV
UWN
UZA
V
VAC
VAL
VALE
VAR
VBF
VC
VCF
VCI
VCO
VCV
VE
VFC
VFL
VG
VGM
VGR
VGZ
VHC
VHI
VHS
VIFL
VII
VIP
VIT
VIV
VIVO
VKI
VKQ
VLCCF
VLO
VLT
VLY
VMC
VMI
VMM
VMO
VMW
VNET
VNOD
VNR
VOC
VPG
VPV
VR
VRNG
VRS
VRX
VSH
VSI
VSR
VTA
VTG
VTN
VTR
VVC
VVI
VVR
VZ
WAB
WAC
WAG
WAIR
WAL
WAT
WBC
WBK
WBS
WCC
WCG
WCN
WD
WDR
WEA
WEC
WES
WEX
WF
WFC
WFR
WFT
WG
WGA
WGL
WGO
WH
WHG
WHR
WHX
WIA
WIFI
WILC
WIRE
WIT
WIW
WLK
WLL
WLP
WLT
WM
WMB
WMCO
WMK
WMS
WMT
WNC
WNR
WNS
WOOD
WOR
WPC
WPI
WPK
WPO
WPP
WPX
WPZ
WR
WRB
WRC
WRD
WRE
WRI
WRN
WSH
WSM
WSO
WSR
WST
WTI
WTM
WTR
WTS
WTT
WTW
WU
WWE
WWW
WX
WXS
WY
WYN
WYY
X
XAA
XCJ
XCO
XEC
XEL
XFD
XFH
XFP
XFR
XIDE
XIN
XKE
XKO
XL
XLS
XNY
XOM
XOXO
XPL
XPO
XRA
XRAY
XRM
XRS
XRX
XTEX
XTXI
XUE
XVG
XXIA
XYL
Y
YGE
YMI
YOKU
YPF
YUM
YZC
ZA
ZBB
ZEP
ZEUS
ZF
ZINC
ZLC
ZMH
ZNH
ZQK
ZTR
ZX
ZZ
ZZC
#!/usr/bin/env python
import csv
import Queue
import threading
import ystockquote as ys
def gen_info_list(tickers, start, end):
'''
Given a list of ticker symbols, a start date, and an end date, return a
list of dictionaries containing the information.
'''
return [{'symbol': ticker, \
'start': start, \
'end': end} \
for ticker in tickers]
class FetcherThread(threading.Thread):
def __init__(self, in_queue, out_queue):
threading.Thread.__init__(self)
self.in_queue = in_queue
self.out_queue = out_queue
def run(self):
while True:
spec = self.in_queue.get()
data = ys.get_historical_prices(spec['symbol'], spec['start'], spec['end'])
spec.update({'data': data})
# Emit a new dictionary equivalent to spec but with a new key 'data'
# containing the price data.
self.out_queue.put(spec)
self.in_queue.task_done()
class WriterThread(threading.Thread):
'''
A class to perform concurrent writes to the file system.
'''
def __init__(self, queue):
threading.Thread.__init__(self)
self.queue = queue
def __decorate(self, symbol, start, end):
return '_'.join([symbol, start, end]) + '.csv'
def run(self):
while True:
spec = self.queue.get()
filename = self.__decorate(spec['symbol'], spec['start'], spec['end'])
with open(filename, 'wb') as csvfile:
writer = csv.writer(csvfile, delimiter=',', quotechar='"',
quoting=csv.QUOTE_MINIMAL)
writer.writerows(spec['data'])
self.queue.task_done()
def main():
tickers = ['AAPL', 'GOOG', 'IBM', 'MSFT']
start_date = '20110101'
end_date = '20111231'
in_queue = Queue.Queue()
out_queue = Queue.Queue()
# Populate the in_queue with data
for symbol in tickers:
packet = {'symbol': symbol, 'start': start_date, 'end': end_date}
in_queue.put(packet)
# Spawn a pool of fetcher threads
for i in range(4):
t = FetcherThread(in_queue, out_queue)
t.setDaemon(True)
t.start()
for i in range(4):
w = WriterThread(out_queue)
w.setDaemon(True)
w.start()
# Wait on the queues until everything has been processed
in_queue.join()
out_queue.join()
if __name__ == '__main__':
main()
#!/usr/bin/env python
#
# Copyright (c) 2007-2008, Corey Goldberg (corey@goldb.org)
#
# license: GNU LGPL
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
import urllib
"""
This is the "ystockquote" module.
This module provides a Python API for retrieving stock data from Yahoo Finance.
sample usage:
>>> import ystockquote
>>> print ystockquote.get_price('GOOG')
529.46
"""
def __request(symbol, stat):
url = 'http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s' % (symbol, stat)
return urllib.urlopen(url).read().strip().strip('"')
def get_all(symbol):
"""
Get all available quote data for the given ticker symbol.
Returns a dictionary.
"""
values = __request(symbol, 'l1c1va2xj1b4j4dyekjm3m4rr5p5p6s7').split(',')
data = {}
data['price'] = values[0]
data['change'] = values[1]
data['volume'] = values[2]
data['avg_daily_volume'] = values[3]
data['stock_exchange'] = values[4]
data['market_cap'] = values[5]
data['book_value'] = values[6]
data['ebitda'] = values[7]
data['dividend_per_share'] = values[8]
data['dividend_yield'] = values[9]
data['earnings_per_share'] = values[10]
data['52_week_high'] = values[11]
data['52_week_low'] = values[12]
data['50day_moving_avg'] = values[13]
data['200day_moving_avg'] = values[14]
data['price_earnings_ratio'] = values[15]
data['price_earnings_growth_ratio'] = values[16]
data['price_sales_ratio'] = values[17]
data['price_book_ratio'] = values[18]
data['short_ratio'] = values[19]
return data
def get_price(symbol):
return __request(symbol, 'l1')
def get_change(symbol):
return __request(symbol, 'c1')
def get_volume(symbol):
return __request(symbol, 'v')
def get_avg_daily_volume(symbol):
return __request(symbol, 'a2')
def get_stock_exchange(symbol):
return __request(symbol, 'x')
def get_market_cap(symbol):
return __request(symbol, 'j1')
def get_book_value(symbol):
return __request(symbol, 'b4')
def get_ebitda(symbol):
return __request(symbol, 'j4')
def get_dividend_per_share(symbol):
return __request(symbol, 'd')
def get_dividend_yield(symbol):
return __request(symbol, 'y')
def get_earnings_per_share(symbol):
return __request(symbol, 'e')
def get_52_week_high(symbol):
return __request(symbol, 'k')
def get_52_week_low(symbol):
return __request(symbol, 'j')
def get_50day_moving_avg(symbol):
return __request(symbol, 'm3')
def get_200day_moving_avg(symbol):
return __request(symbol, 'm4')
def get_price_earnings_ratio(symbol):
return __request(symbol, 'r')
def get_price_earnings_growth_ratio(symbol):
return __request(symbol, 'r5')
def get_price_sales_ratio(symbol):
return __request(symbol, 'p5')
def get_price_book_ratio(symbol):
return __request(symbol, 'p6')
def get_short_ratio(symbol):
return __request(symbol, 's7')
def get_historical_prices(symbol, start_date, end_date):
"""
Get historical prices for the given ticker symbol.
Date format is 'YYYYMMDD'
Returns a nested list.
"""
url = 'http://ichart.yahoo.com/table.csv?s=%s&' % symbol + \
'd=%s&' % str(int(end_date[4:6]) - 1) + \
'e=%s&' % str(int(end_date[6:8])) + \
'f=%s&' % str(int(end_date[0:4])) + \
'g=d&' + \
'a=%s&' % str(int(start_date[4:6]) - 1) + \
'b=%s&' % str(int(start_date[6:8])) + \
'c=%s&' % str(int(start_date[0:4])) + \
'ignore=.csv'
days = urllib.urlopen(url).readlines()
data = [day[:-2].split(',') for day in days]
# Change the data so that it is in time-descending order
data = [data[0]] + data[-1:0:-1]
return data
def write_to_file(symbol, start_date, end_date, filename=None):
import csv
if filename == None:
filename = '_'.join([symbol.upper(), start_date, end_date]) + '.csv'
data = get_historical_prices(symbol, start_date, end_date)
data = [data[0]] + data[-1:0:-1] # Reverse the order of the entries
with open(filename, 'wb') as f:
writer = csv.writer(f, delimiter=',', quotechar='"',
quoting=csv.QUOTE_MINIMAL)
writer.writerows(data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment