fix ticker info keys

This commit is contained in:
Diogo Sousa
2023-02-06 14:48:38 +00:00
parent ee34a1f278
commit bb983c19f4
2 changed files with 37 additions and 4 deletions

View File

@@ -289,6 +289,7 @@ def get_property_weights(
value = get_kwarg("value", kwargs)
s_property = get_kwarg("s_property", kwargs, default="marketCap")
s_property = yahoo_finance_model.fast_info_map.get(s_property, s_property)
stock_prices = yahoo_finance_model.process_stocks(
symbols, interval, start_date, end_date
@@ -305,14 +306,22 @@ def get_property_weights(
prop = {}
prop_sum = 0
for stock in symbols:
stock_prop = yf.Ticker(stock).info[s_property]
info = yf.Ticker(stock).info
fast_info = yf.Ticker(stock).fast_info
info_dict = {}
if info:
info_dict.update(dict(info))
if fast_info:
info_dict.update(dict(fast_info))
stock_prop = info_dict.get(s_property, None)
if stock_prop is None:
stock_prop = 0
prop[stock] = stock_prop
prop_sum += stock_prop
if prop_sum == 0:
console.print(f"No {s_property} was found on list of tickers provided", "\n")
console.print(f"No '{s_property}' was found on list of tickers provided", "\n")
return None, None
weights = {k: value * v / prop_sum for k, v in prop.items()}
@@ -1368,6 +1377,9 @@ def get_black_litterman_portfolio(
value=value,
)
if benchmark is None:
return None, stock_returns
factor = time_factor[freq.upper()]
risk_free_rate = risk_free_rate / factor

View File

@@ -19,6 +19,27 @@ logger = logging.getLogger(__name__)
# pylint: disable=R0912, E1101
fast_info_map = {
"previousClose": "previous_close",
"twoHundredDayAverage": "two_hundred_day_average",
"regularMarketDayHigh": "day_high",
"averageDailyVolume10Day": "ten_day_average_volume",
"regularMarketPreviousClose": "regular_market_previous_close",
"fiftyDayAverage": "fifty_day_average",
"open": "open",
"averageVolume10days": "ten_day_average_volume",
"regularMarketDayLow": "day_low",
"currency": "currency",
"marketCap": "market_cap",
"averageVolume": "three_month_average_volume",
"dayLow": "day_low",
"volume": "last_volume",
"fiftyTwoWeekHigh": "year_high",
"fiftyTwoWeekLow": "year_low",
"dayHigh": "day_high",
"regularMarketPrice": "last_price",
}
yf_info_choices = [
"previousClose",
"regularMarketOpen",
@@ -30,7 +51,7 @@ yf_info_choices = [
"navPrice",
"averageDailyVolume10Day",
"totalAssets",
"regularMarketPreviousClose",
"regular_market_previous_close",
"fiftyDayAverage",
"trailingAnnualDividendRate",
"open",
@@ -51,7 +72,7 @@ yf_info_choices = [
"lastMarket",
"maxSupply",
"openInterest",
"marketCap",
"market_cap",
"volumeAllCurrencies",
"strikePrice",
"averageVolume",