[Python]アメリカ株式プロジェクトコード
Outline
NYSE、NASDAQ上場株の項目コードを取得します.
Reference
ftp://ftp.nasdaqtrader.com/symboldirectory/
http://www.nasdaqtrader.com/trader.aspx?id=symboldirdefs
Code
# Import
from ftplib import FTP
import csv
# Connect FTP Server with user anonymous, passwd anonymous@
ftp = FTP('ftp.nasdaqtrader.com')
ftp.login()
# Move directory
ftp.cwd('symboldirectory')
# Check file list
ftp.retrlines('LIST')
[ファイル](File)リストでは、受信するファイルを表示できます.04-19-21 09:17AM 5061 bondslist.txt
04-19-21 09:17AM 44645839 bxoptions.txt
04-16-21 09:34PM 109554 bxo_lmm.csv
04-19-21 09:17AM 842609 bxtraded.txt
04-19-21 08:20AM 5747858 gmniListedStrikesWithOptionIds.zip
04-19-21 08:18AM 6124861 iseListedStrikesWithOptionIds.zip
04-19-21 08:21AM 5767167 mcryListedStrikesWithOptionIds.zip
04-19-21 09:17AM 3729290 mfundslist.txt
04-19-21 09:17AM 212519 mpidlist.txt
04-19-21 09:17AM 287844 nasdaqlisted.txt
04-19-21 09:19AM 842617 nasdaqtraded.txt
04-19-21 09:17AM 56373587 options.txt
07-07-15 03:41PM 35264 otclist.txt
04-19-21 09:17AM 467744 otherlisted.txt
06-15-13 04:00AM 251 pbot.csv
04-19-21 08:17AM 6396544 phlxListedStrikesWithOptionIds.zip
04-16-21 09:33PM 306973 phlxoptions.csv
03-12-21 10:32PM 3588617 phlxStrikesOld.zip
04-19-21 09:17AM 842612 psxtraded.txt
04-19-21 03:00AM <DIR> regnms
04-16-21 11:00PM <DIR> regsho
02-14-19 09:17PM <DIR> regshopilot
02-14-19 09:17PM <DIR> regshopilotlist
04-19-21 04:15AM <DIR> shorthalts
03-03-21 11:41AM 6 test.txt
04-19-21 09:17AM 3256 TradingSystemAddsDeletes.txt
必要な2つのファイルをインポートし、PCに保存します.# Get Nasdaq Symbols
nasdaq_file = 'nasdaqlisted.txt'
with open(nasdaq_file, 'wb') as fp:
ftp.retrbinary('RETR ' + nasdaq_file, fp.write)
# Get Other Market Symbols
other_file = 'otherlisted.txt'
with open(other_file, 'wb') as fp:
ftp.retrbinary('RETR ' + other_file, fp.write)
各ファイルに必要なアイテムのコードのみをリストとして保存します.# Get Symbol from Nasdaq File
result_nasdaq = []
with open(nasdaq_file, 'r') as nasdaq_list:
nasdaq_reader = csv.reader(nasdaq_list, delimiter='|')
# Skip Header
next(nasdaq_reader)
for row in nasdaq_reader:
if row[3] == 'Y': # Skip Test Symbol
continue
if row[4] != 'N': # Skip if Financial Status isn't normal
continue
# Add Symbol to list
result_nasdaq.append(row[0])
# Get Symbol from Other Market File
result_nyse = []
with open(other_file, 'r') as other_list:
other_reader = csv.reader(other_list, delimiter='|')
# Skip Header
next(other_reader)
for row in other_reader:
if row[2] != 'N': # Skip if symbol isn't in NYSE
continue
if row[4] == 'Y': # Skip if symbol is ETF
continue
if row[6] == 'Y': # Skip if symbol is Test Security
continue
# Add Symbol to list
result_nyse.append(row[0])
リストをチェックして、コードが正しいかどうか、コードがどれだけあるかを確認します.print(str(len(result_nasdaq)) + " " + str(result_nasdaq[0:10]) + " " + str(result_nasdaq[-10:-1]))
# Result
4466 ['AACG', 'AACQ', 'AACQU', 'AACQW', 'AAL', 'AAME', 'AAOI', 'AAON', 'AAPL', 'AAWW'] ['ZNTL', 'ZS', 'ZSAN', 'ZUMZ', 'ZVO', 'ZWRK', 'ZWRKU', 'ZWRKW', 'ZYNE']
print(str(len(result_nyse)) + " " + str(result_nyse[0:10]) + " " + str(result_nyse[-10:-1]))
# Result
3497 ['A', 'AA', 'AAC', 'AAC.U', 'AAC.W', 'AAIC', 'AAIC$B', 'AAIC$C', 'AAN', 'AAP'] ['ZEN', 'ZEPP', 'ZH', 'ZIM', 'ZNH', 'ZTO', 'ZTR', 'ZTS', 'ZUO']
Reference
この問題について([Python]アメリカ株式プロジェクトコード), 我々は、より多くの情報をここで見つけました https://velog.io/@24331/Python-미국-주식-종목코드テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol