Holen Sie sich den Aktienkurs + α von Financial Modeling Prep
def get_df_stock_screener(exchange):
requests_cache.install_cache("stock-screener")
url = f"https://financialmodelingprep.com/api/v3/stock-screener?marketCapMoreThan=100000&volumeMoreThan=100÷ndLowerThan=10&betaLowerThan=10&betaMoreThan=-10&exchange={exchange}&apikey={apikey}"
response = requests.get(url)
content = response.content.decode()
json_content = json.load(StringIO(content))
return pd.DataFrame(json_content).set_index("symbol")
requests_cache Speichern im Cache mit Zugriff mit dem Cache beim Lesen von_json mit Pandas
Stock Screener Verwenden Sie stock-screener
[
{
"symbol" : "AAPL",
"companyName" : "Apple Inc.",
"marketCap" : 1382174560000,
"sector" : "Technology",
"beta" : 1.2284990000000000076596506914938800036907196044921875,
"price" : 318.8899999999999863575794734060764312744140625,
"lastAnnualDividend" : 3.0800000000000000710542735760100185871124267578125,
"volume" : 51500795,
"exchange" : "Nasdaq Global Select",
"exchangeShortName" : "NASDAQ"
},
{
"symbol" : "AMZN",
"companyName" : "Amazon.com Inc.",
"marketCap" : 1215457260000,
"sector" : "Technology",
"beta" : 1.5168630000000000723758830645238049328327178955078125,
"price" : 2436.8800000000001091393642127513885498046875,
"lastAnnualDividend" : 0,
"volume" : 6105985,
"exchange" : "Nasdaq Global Select",
"exchangeShortName" : "NASDAQ"
}
]
Wird in Form von zurückgegeben
$ r_a $ ist die Aktienrendite $ r_b $ ist die Rendite des Marktes (zB S & P 500) $ \ beta $ ist ein Faktor für die Marktrendite Wenn $ \ beta = 2 $, erhöht eine Erhöhung der Marktrenditen um 3% die Aktienrenditen um 6%. $ \ Alpha $ ist die Rendite irrelevanter Aktien von Marktrenditen
lastAnnualDividend Dividende je Aktie für das letzte Jahr
df_stock_screener_nasdaq = get_df_stock_screener("nasdaq")
df_stock_screener_nyse = get_df_stock_screener("nyse")
df_stock_screener = pd.concat([df_stock_screener_nasdaq, df_stock_screener_nyse])
df_stock_screener["sector"].replace("", np.nan, inplace=True)
df_stock_screener.dropna(subset=["sector"], inplace=True)
df_stock_screener_target = df_stock_screener[["price","beta","lastAnnualDividend","volume"]]
Sektor kann leer sein ETF scheint leer zu sein Es ist einfacher zu interpretieren, ob ETF vom Ziel entfernt wird. Lassen Sie es also fallen dropna löscht keine leeren Zeichen, also ersetzen Sie leere Zeichen durch nan
describe Sie können zusammenfassende Statistiken mit beschreiben erhalten
df_stock_screener_target.describe()
price beta lastAnnualDividend volume
count 6153.000000 6153.000000 6153.000000 6.153000e+03
mean 130.651825 0.940899 0.589505 1.701368e+06
std 5257.505324 0.874763 1.033488 5.608641e+06
min 0.010000 -8.439448 0.000000 1.000000e+02
25% 5.730000 0.301854 0.000000 8.373300e+04
50% 13.770000 0.881456 0.000000 3.761930e+05
75% 34.160000 1.392074 0.840000 1.274612e+06
max 291621.000000 8.949109 9.680000 1.566431e+08
price Der Durchschnitt liegt bei 130 USD, die Standardabweichung bei 5257 USD, das Maximum bei 291621 USD Aufgrund des Vorhandenseins von Ausreißern sind die Statistiken wenig sinnvoll Die Größe des Aktienkurses ist nicht sinnvoll, da der Aktiensplit beliebig erfolgen kann.
beta Der Durchschnitt liegt bei 0,94, die Standardabweichung bei 0,87, das Minimum bei -8,43 und das Maximum bei 8,94 Beta scheint in dem Sinne richtig zu sein, dass der Durchschnitt nahe 1 aus seiner Ableitungsmethode dem Markt entspricht
Solange die Anzahl der Aktien willkürlich ist, macht der Vergleich ihrer absoluten Werte wenig Sinn.