好的,所以我做了一个解决方法。
我从以下位置下载股票数据:https://www.nasdaq.com/market-activity/stocks/screener
csv的负责人:
Symbol, Name, Last Sale, Net Change, % Change, Market Cap, Country, IPO Year, Volume, Sector, Industry
或者,我可以使用 yfinance 获取此信息,但我仍然需要一份 NASADQ、NYSE(可能还有其他)上市股票的清单。
import pandas as pd
def similar_stocks(ticker):
# Static data
nasdaq_data = pd.read_csv("nasdaq_screener.csv")
ticker_row = nasdaq_data.loc[nasdaq_data['Symbol'] == ticker] # ticker_row: {DataFrame } Symbol, Name ... Industry
# Filter by sector
ticker_sector = ticker_row['Sector'].values[0] # Finance
filter_condition = nasdaq_data['Sector'] == ticker_sector
filtered_data = nasdaq_data[filter_condition] # By Finance
market_cap = ticker_row['Market Cap'].values[0]
treshold = 0.15 * market_cap # 15% of the company value
min_limit = str(market_cap - treshold)
max_limit = str(market_cap + treshold)
# Filter by market cap
filtered_data = filtered_data[filtered_data['Symbol'] != ticker]
filtered_data = filtered_data.query(min_limit + ' < `Market Cap` < ' + max_limit)
return filtered_data.Symbol.tolist() # ['ABCB', 'APAM', ... 'UTF', 'WSFS']
我按行业和可比市值过滤了原始数据。