mirror of
https://github.com/aclindsa/moneygo.git
synced 2024-10-30 15:50:04 -04:00
39 lines
1.8 KiB
Bash
39 lines
1.8 KiB
Bash
|
#!/bin/bash
|
||
|
QUARTER=2016q3
|
||
|
|
||
|
function get_ticker() {
|
||
|
local cusip=$1
|
||
|
|
||
|
local tmpfile=$tmpdir/curl_tmpfile
|
||
|
curl -s -d "sopt=cusip&tickersymbol=${cusip}" http://quantumonline.com/search.cfm > $tmpfile
|
||
|
local quantum_name=$(sed -rn 's@<font size="\+1"><center><b>(.+)</b><br></center></font>\s*$@\1@p' $tmpfile | head -n1)
|
||
|
local quantum_ticker=$(sed -rn 's@^.*Ticker Symbol: ([A-Z\.0-9\-]+) CUSIP.*$@\1@p' $tmpfile | head -n1)
|
||
|
|
||
|
if [[ -z $quantum_ticker ]] || [[ -z $quantum_name ]]; then
|
||
|
curl -s -d "reqforlookup=REQUESTFORLOOKUP&productid=mmnet&isLoggedIn=mmnet&rows=50&for=stock&by=cusip&criteria=${cusip}&submit=Search" http://quotes.fidelity.com/mmnet/SymLookup.phtml > $tmpfile
|
||
|
fidelity_name=$(sed -rn 's@<tr><td height="20" nowrap><font class="smallfont">(.+)</font></td>\s*@\1@p' $tmpfile | sed -r 's/\&/\&/')
|
||
|
fidelity_ticker=$(sed -rn 's@\s+<td align="center" width="20%"><font><a href="/webxpress/get_quote\?QUOTE_TYPE=\&SID_VALUE_ID=(.+)">(.+)</a></td>\s*@\1@p' $tmpfile | head -n1)
|
||
|
if [[ -z $fidelity_ticker ]] || [[ -z $fidelity_name ]]; then
|
||
|
echo $cusip >> $tmpdir/${QUARTER}_bad_cusips.csv
|
||
|
else
|
||
|
echo "$cusip,$fidelity_ticker,$fidelity_name"
|
||
|
fi
|
||
|
else
|
||
|
echo "$cusip,$quantum_ticker,$quantum_name"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
tmpdir=$(mktemp -d -p $PWD)
|
||
|
|
||
|
# Get the list of CUSIPs from the SEC and generate a nicer format of it
|
||
|
wget -q http://www.sec.gov/divisions/investment/13f/13flist${QUARTER}.pdf -O $tmpdir/13flist${QUARTER}.pdf
|
||
|
pdftotext -layout $tmpdir/13flist${QUARTER}.pdf - > $tmpdir/13flist${QUARTER}.txt
|
||
|
sed -rn 's/^([A-Z0-9]{6}) ([A-Z0-9]{2}) ([A-Z0-9]) .*$/\1\2\3/p' $tmpdir/13flist${QUARTER}.txt > $tmpdir/${QUARTER}_cusips
|
||
|
|
||
|
# Find tickers and names for all the CUSIPs we can and print them out
|
||
|
for cusip in $(cat $tmpdir/${QUARTER}_cusips); do
|
||
|
get_ticker $cusip
|
||
|
done
|
||
|
|
||
|
rm -rf $tmpdir
|