mirror of
https://github.com/aclindsa/moneygo.git
synced 2025-07-01 20:08:39 -04:00
Add scripts to generate lists of securities
This commit is contained in:
38
scripts/gen_cusip_csv.sh
Executable file
38
scripts/gen_cusip_csv.sh
Executable file
@ -0,0 +1,38 @@
|
||||
#!/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
|
Reference in New Issue
Block a user