NASDAQ makes this information available via FTP and they update it every night. Log into
ftp.nasdaqtrader.com anonymously. Look in the directory
SymbolDirectory. You'll notice two files:
otherlisted.txt. These two files will give you the entire list of tradeable symbols, where they are listed, their name/description, and an indicator as to whether they are an ETF.
Given this list, which you can pull each night, you can then query Yahoo to obtain the necessary data to calculate your statistics.
UPDATE: More information about these files and their fields can be found here.