Made fa/pt more accurate (#4503)

* Got things working

* Got things working

* Got things working
This commit is contained in:
Colin Delahunty
2023-03-17 09:34:47 -04:00
committed by GitHub
parent 3aec94cdde
commit 09f53dd14b
4 changed files with 7253 additions and 2878 deletions

View File

@@ -5,8 +5,10 @@ import logging
import os
import textwrap
from datetime import datetime, timedelta
from functools import partial
from typing import Optional, Union
import pandas as pd
from pandas.core.frame import DataFrame
from openbb_terminal import OpenBBFigure, theme
@@ -17,7 +19,10 @@ from openbb_terminal.helper_funcs import (
print_rich_table,
)
from openbb_terminal.rich_config import console
from openbb_terminal.stocks.fundamental_analysis import business_insider_model
from openbb_terminal.stocks.fundamental_analysis import (
business_insider_model,
yahoo_finance_model,
)
from openbb_terminal.stocks.stocks_helper import load
logger = logging.getLogger(__name__)
@@ -61,6 +66,7 @@ def display_management(symbol: str, export: str = "", sheet_name: Optional[str]
logger.error("Data not available")
# pylint: disable=R0913
@log_start_end(log=logger)
def price_target_from_analysts(
symbol: str,
@@ -71,6 +77,7 @@ def price_target_from_analysts(
export: str = "",
sheet_name: Optional[str] = None,
external_axes: bool = False,
adjust_for_splits: bool = True,
) -> Union[OpenBBFigure, None]:
"""Display analysts' price targets for a given stock. [Source: Business Insider]
@@ -92,6 +99,8 @@ def price_target_from_analysts(
Export dataframe data to csv,json,xlsx file
external_axes: bool, optional
Whether to return the figure object or not, by default False
adjust_for_splits: bool
Whether to adjust analyst price targets for stock splits, by default True
Examples
--------
@@ -99,6 +108,13 @@ def price_target_from_analysts(
>>> openbb.stocks.fa.pt_chart(symbol="AAPL")
"""
def adjust_splits(row, splits: pd.DataFrame):
original_value = row["Price Target"]
for index, sub_row in splits.iterrows():
if row.name < index:
original_value = original_value / sub_row["Stock Splits"]
return round(original_value, 2)
if start_date is None:
start_date = (datetime.now() - timedelta(days=1100)).strftime("%Y-%m-%d")
@@ -108,6 +124,11 @@ def price_target_from_analysts(
df_analyst_data = business_insider_model.get_price_target_from_analysts(symbol)
if df_analyst_data.empty:
return console.print("[red]Could not get data for ticker.[/red]\n")
if adjust_for_splits:
df_splits = yahoo_finance_model.get_splits(symbol)
df_splits.index = df_splits.index.tz_convert(None)
adjusted_splits = partial(adjust_splits, splits=df_splits)
df_analyst_data["Price Target"] = df_analyst_data.apply(adjusted_splits, axis=1)
fig = OpenBBFigure(yaxis_title="Share Price").set_title(
f"{symbol} (Time Series) and Price Target"

View File

@@ -1,98 +1,96 @@
Loading Daily data for TSLA with starting period 2020-02-10.
Loading Daily data for TSLA with starting period 2020-03-12.
Company Rating Price Target
Date
2023-02-06 Wedbush Morgan Securities Inc. BUY 225.000000
2023-01-30 Berenberg BUY 200.000000
2023-01-26 Bank of America Merrill Lynch HOLD 155.000000
2023-01-26 Wolfe Research BUY 185.000000
2023-01-26 Wells Fargo & Co HOLD 150.000000
2023-01-26 Cowen and Company, LLC HOLD 140.000000
2023-01-26 Wedbush Morgan Securities Inc. BUY 200.000000
2023-01-26 Citigroup Corp. HOLD 146.000000
2023-01-25 Morgan Stanley BUY 220.000000
2023-01-25 J.P. Morgan SELL 120.000000
2023-01-19 Piper Sandler BUY 300.000000
2023-01-17 Bank of America Merrill Lynch HOLD 130.000000
2023-01-13 Citigroup Corp. HOLD 140.000000
2023-01-13 Wells Fargo & Co HOLD 130.000000
2023-01-05 Mizuho BUY 250.000000
2023-01-03 Goldman Sachs BUY 205.000000
2022-12-29 Morgan Stanley BUY 250.000000
2022-12-28 Baird Patrick & Co BUY 252.000000
2022-12-23 Wedbush Morgan Securities Inc. BUY 175.000000
2022-12-22 Capital Depesche BUY 275.000000
2022-12-21 Deutsche Bank BUY 270.000000
2022-12-20 Evercore HOLD 200.000000
2022-12-20 Daiwa Securities BUY 177.000000
2022-12-20 Mizuho BUY 285.000000
2022-12-14 Goldman Sachs BUY 235.000000
2022-11-23 Citigroup Corp. HOLD 176.000000
2022-10-25 Morgan Stanley BUY 330.000000
2022-10-20 Mizuho BUY 330.000000
2022-10-20 RBC Capital Markets BUY 325.000000
2022-10-20 Wedbush Morgan Securities Inc. BUY 300.000000
2022-10-20 Deutsche Bank BUY 355.000000
2022-10-14 Wells Fargo & Co HOLD 230.000000
2022-10-10 Morgan Stanley BUY 350.000000
2022-10-06 Mizuho BUY 370.000000
2022-10-04 Goldman Sachs BUY 333.000000
2022-09-29 Piper Sandler BUY 340.000000
2022-09-16 Deutsche Bank BUY 400.000000
2022-09-06 Wolfe Research BUY 360.000000
2022-08-29 Deutsche Bank BUY 375.000000
2022-08-25 Berenberg HOLD 290.000000
2022-08-25 Morgan Stanley BUY 383.329987
2022-08-25 Wedbush Morgan Securities Inc. BUY 360.000000
2022-08-02 Citigroup Corp. SELL 424.000000
2022-07-21 Berenberg HOLD 850.000000
2022-07-21 Wells Fargo & Co HOLD 830.000000
2022-07-21 Mizuho BUY 1175.000000
2022-07-21 Bank of America Merrill Lynch HOLD 950.000000
2022-07-21 Capital Depesche BUY 815.000000
2022-07-21 Cowen and Company, LLC HOLD 733.000000
2022-07-19 Credit Suisse BUY 1000.000000
2022-07-18 Barclays Capital SELL 380.000000
2022-07-14 Morgan Stanley BUY 1150.000000
2022-07-13 Capital Depesche BUY 801.000000
2022-07-11 Wells Fargo & Co HOLD 820.000000
2022-07-05 J.P. Morgan SELL 385.000000
2022-06-28 Deutsche Bank BUY 1125.000000
2022-06-27 Mizuho BUY 1150.000000
2022-06-24 Credit Suisse BUY 1000.000000
2022-06-09 UBS BUY 1100.000000
2022-06-03 Cowen and Company, LLC HOLD 700.000000
2022-06-01 Goldman Sachs BUY 1000.000000
2022-05-24 Daiwa Securities BUY 800.000000
2022-05-19 Wedbush Morgan Securities Inc. BUY 1000.000000
2022-05-18 Piper Sandler BUY 1035.000000
2022-05-12 Wells Fargo & Co HOLD 900.000000
2022-05-10 Berenberg HOLD 900.000000
2022-04-22 Deutsche Bank BUY 1250.000000
2022-04-21 Citigroup Corp. SELL 375.000000
2022-04-21 Oppenheimer & Co. Inc. BUY 1291.000000
2022-04-21 Wells Fargo & Co HOLD 960.000000
2022-04-21 J.P. Morgan SELL 395.000000
2022-04-19 Credit Suisse BUY 1125.000000
2022-04-18 Piper Sandler BUY 1260.000000
2022-04-04 UBS HOLD 1100.000000
2022-04-04 Cowen and Company, LLC HOLD 790.000000
2022-04-04 J.P. Morgan SELL 335.000000
2022-02-25 Daiwa Securities BUY 900.000000
2022-02-14 Piper Sandler BUY 1350.000000
2022-01-31 Credit Suisse BUY 1025.000000
2022-01-27 Wells Fargo & Co HOLD 910.000000
2022-01-27 Citigroup Corp. SELL 313.000000
2022-01-27 J.P. Morgan SELL 325.000000
2022-01-18 Credit Suisse HOLD 1025.000000
2022-01-05 Mizuho BUY 1300.000000
2022-01-03 J.P. Morgan SELL 295.000000
2022-01-03 Deutsche Bank BUY 1200.000000
2021-12-31 Deutsche Bank BUY 1200.000000
2021-12-28 Argus Research Company BUY 1313.000000
2021-12-08 New Street Research BUY 1580.000000
2021-12-07 UBS HOLD 1000.000000
2021-11-19 Wedbush Morgan Securities Inc. BUY 1400.000000
2021-10-28 Piper Sandler BUY 1300.000000
2021-10-27 Goldman Sachs BUY 1125.000000
2021-10-21 ROTH Capital Partners, LLC HOLD 250.000000
2021-10-21 Capital Depesche BUY 1040.000000
2023-03-08 Berenberg HOLD 210.00
2023-03-03 Daiwa Securities BUY 218.00
2023-03-02 Wedbush Morgan Securities Inc. BUY 225.00
2023-02-24 Wells Fargo & Co HOLD 190.00
2023-02-15 Barclays Capital BUY 275.00
2023-02-06 Wedbush Morgan Securities Inc. BUY 225.00
2023-01-30 Berenberg BUY 200.00
2023-01-26 Wells Fargo & Co HOLD 150.00
2023-01-26 Citigroup Corp. HOLD 146.00
2023-01-26 Wedbush Morgan Securities Inc. BUY 200.00
2023-01-26 Cowen and Company, LLC HOLD 140.00
2023-01-26 Wolfe Research BUY 185.00
2023-01-26 Bank of America Merrill Lynch HOLD 155.00
2023-01-25 J.P. Morgan SELL 120.00
2023-01-25 Morgan Stanley BUY 220.00
2023-01-19 Piper Sandler BUY 300.00
2023-01-17 Bank of America Merrill Lynch HOLD 130.00
2023-01-13 Citigroup Corp. HOLD 140.00
2023-01-13 Wells Fargo & Co HOLD 130.00
2023-01-05 Mizuho BUY 250.00
2023-01-03 Goldman Sachs BUY 205.00
2022-12-29 Morgan Stanley BUY 250.00
2022-12-28 Baird Patrick & Co BUY 252.00
2022-12-23 Wedbush Morgan Securities Inc. BUY 175.00
2022-12-22 Capital Depesche BUY 275.00
2022-12-21 Deutsche Bank BUY 270.00
2022-12-20 Mizuho BUY 285.00
2022-12-20 Daiwa Securities BUY 177.00
2022-12-20 Evercore HOLD 200.00
2022-12-14 Goldman Sachs BUY 235.00
2022-11-23 Citigroup Corp. HOLD 176.00
2022-10-25 Morgan Stanley BUY 330.00
2022-10-20 RBC Capital Markets BUY 325.00
2022-10-20 Wedbush Morgan Securities Inc. BUY 300.00
2022-10-20 Deutsche Bank BUY 355.00
2022-10-20 Mizuho BUY 330.00
2022-10-14 Wells Fargo & Co HOLD 230.00
2022-10-10 Morgan Stanley BUY 350.00
2022-10-06 Mizuho BUY 370.00
2022-10-04 Goldman Sachs BUY 333.00
2022-09-29 Piper Sandler BUY 340.00
2022-09-16 Deutsche Bank BUY 400.00
2022-09-06 Wolfe Research BUY 360.00
2022-08-29 Deutsche Bank BUY 375.00
2022-08-25 Morgan Stanley BUY 127.78
2022-08-25 Berenberg HOLD 96.67
2022-08-25 Wedbush Morgan Securities Inc. BUY 120.00
2022-08-02 Citigroup Corp. SELL 141.33
2022-07-21 Mizuho BUY 391.67
2022-07-21 Berenberg HOLD 283.33
2022-07-21 Bank of America Merrill Lynch HOLD 316.67
2022-07-21 Wells Fargo & Co HOLD 276.67
2022-07-21 Capital Depesche BUY 271.67
2022-07-21 Cowen and Company, LLC HOLD 244.33
2022-07-19 Credit Suisse BUY 333.33
2022-07-18 Barclays Capital SELL 126.67
2022-07-14 Morgan Stanley BUY 383.33
2022-07-13 Capital Depesche BUY 267.00
2022-07-11 Wells Fargo & Co HOLD 273.33
2022-07-05 J.P. Morgan SELL 128.33
2022-06-28 Deutsche Bank BUY 375.00
2022-06-27 Mizuho BUY 383.33
2022-06-24 Credit Suisse BUY 333.33
2022-06-09 UBS BUY 366.67
2022-06-03 Cowen and Company, LLC HOLD 233.33
2022-06-01 Goldman Sachs BUY 333.33
2022-05-24 Daiwa Securities BUY 266.67
2022-05-19 Wedbush Morgan Securities Inc. BUY 333.33
2022-05-18 Piper Sandler BUY 345.00
2022-05-12 Wells Fargo & Co HOLD 300.00
2022-05-10 Berenberg HOLD 300.00
2022-04-22 Deutsche Bank BUY 416.67
2022-04-21 J.P. Morgan SELL 131.67
2022-04-21 Citigroup Corp. SELL 125.00
2022-04-21 Wells Fargo & Co HOLD 320.00
2022-04-21 Oppenheimer & Co. Inc. BUY 430.33
2022-04-19 Credit Suisse BUY 375.00
2022-04-18 Piper Sandler BUY 420.00
2022-04-04 Cowen and Company, LLC HOLD 263.33
2022-04-04 J.P. Morgan SELL 111.67
2022-04-04 UBS HOLD 366.67
2022-02-25 Daiwa Securities BUY 300.00
2022-02-14 Piper Sandler BUY 450.00
2022-01-31 Credit Suisse BUY 341.67
2022-01-27 J.P. Morgan SELL 108.33
2022-01-27 Wells Fargo & Co HOLD 303.33
2022-01-27 Citigroup Corp. SELL 104.33
2022-01-18 Credit Suisse HOLD 341.67
2022-01-05 Mizuho BUY 433.33
2022-01-03 Deutsche Bank BUY 400.00
2022-01-03 J.P. Morgan SELL 98.33
2021-12-31 Deutsche Bank BUY 400.00
2021-12-28 Argus Research Company BUY 437.67