import%20marimo%0A%0A__generated_with%20%3D%20%220.15.2%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%23%20Guide%20to%20Using%20YFinance%20with%20Python%20for%20Effective%20Stock%20Analysis%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22YFinance%20(%5B%60yfinance%60%5D(https%3A%2F%2Fgithub.com%2Franaroussi%2Fyfinance))%20remains%20one%20of%20the%20most%20accessible%20and%20versatile%20libraries%20in%20Python%20for%20gathering%20stock%20market%20data.%20It%20allows%20users%20to%20retrieve%20extensive%20financial%20data%2C%20including%20historical%20prices%2C%20financial%20statements%2C%20dividends%2C%20splits%2C%20and%20more%20%E2%80%94%20essential%20for%20crafting%20actionable%20insights.%20This%20guide%20explores%20how%20to%20use%20yfinance%20effectively%20for%20stock%20analysis%2C%20covering%20everything%20from%20basic%20setups%20to%20advanced%20data%20manipulations.%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%201.%20Setting%20Up%20%60yfinance%60%20for%20Python%0A%20%20%20%20Before%20you%20can%20start%20analyzing%20data%20with%20yfinance%2C%20you%20need%20to%20set%20it%20up%20within%20your%20Python%20environment.%0A%0A%20%20%20%20%23%23%23%20Installation%0A%0A%20%20%20%20Install%20yfinance%20using%20pip%20to%20ensure%20the%20latest%20version%20with%20updated%20features%20and%20fixes%3A%0A%0A%20%20%20%20%60%60%60python%0A%20%20%20%20pip%20install%20yfinance%20--upgrade%20--no-cache-dir%0A%20%20%20%20%60%60%60%0A%0A%20%20%20%20%23%23%23%20Import%20Libraries%0A%0A%20%20%20%20In%20addition%20to%20%60yfinance%60%2C%20we%E2%80%99ll%20use%20some%20other%20essential%20libraries%20like%20%60pandas%60%20and%20%60matplotlib%60%20for%20data%20manipulation%20and%20visualization%3A%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20yfinance%20as%20yf%0A%20%20%20%20import%20pandas%20as%20pd%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%20%20%20%20return%20plt%2C%20yf%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%202.%20Retrieving%20Basic%20Stock%20Information%0A%20%20%20%20To%20begin%2C%20let%E2%80%99s%20pull%20some%20basic%20information%20about%20a%20stock.%20YFinance%20uses%20ticker%20symbols%20(e.g.%2C%20%E2%80%9CAAPL%E2%80%9D%20for%20Apple%2C%20%E2%80%9CMSFT%E2%80%9D%20for%20Microsoft)%20to%20identify%20stocks.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(yf)%3A%0A%20%20%20%20%23%20Define%20the%20ticker%20and%20create%20a%20Ticker%20object%0A%20%20%20%20ticker%20%3D%20%22AAPL%22%0A%20%20%20%20stock%20%3D%20yf.Ticker(ticker)%0A%20%20%20%20return%20(stock%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20The%20%60info%60%20attribute%20retrieves%20essential%20information%20like%3A%20%0A%0A%20%20%20%20-%20Company%20name%2C%20industry%2C%20and%20sector%0A%20%20%20%20-%20Market%20cap%0A%20%20%20%20-%20PE%20Ratio%2C%20beta%2C%20dividend%20yield%0A%20%20%20%20-%20Current%20trading%20volume%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(stock)%3A%0A%20%20%20%20%23%20Fetch%20basic%20stock%20information%0A%20%20%20%20stock_info%20%3D%20stock.info%0A%20%20%20%20print(stock_info)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%203.%20Fetching%20Historical%20Price%20Data%0A%20%20%20%20Historical%20price%20data%20is%20essential%20for%20analyzing%20stock%20performance%20over%20time.%20You%20can%20retrieve%20it%20with%20the%20%60history()%60%20method%3A%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(stock)%3A%0A%20%20%20%20%23%20Fetch%20historical%20data%20for%20a%20specific%20period%0A%20%20%20%20historical_data%20%3D%20stock.history(period%3D%225y%22)%0A%20%20%20%20print(historical_data.tail())%0A%20%20%20%20return%20(historical_data%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%23%20Customizing%20Historical%20Data%0A%20%20%20%20The%20history()%20function%20allows%20for%20customized%20data%20retrieval.%20You%20can%20specify%3A%0A%0A%20%20%20%20-%20**Period**%3A%20%221mo%22%2C%20%221y%22%2C%20%225y%22%2C%20or%20%22max%22%0A%20%20%20%20-%20**Interval**%3A%20%221d%22%2C%20%221wk%22%2C%20%221mo%22%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(stock)%3A%0A%20%20%20%20%23%20Fetch%20historical%20data%20with%20a%20custom%20range%20and%20interval%0A%20%20%20%20custom_data%20%3D%20stock.history(start%3D%222020-01-01%22%2C%20end%3D%222023-12-31%22%2C%20interval%3D%221wk%22)%0A%20%20%20%20print(custom_data.tail())%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%204.%20Analyzing%20Daily%20Stock%20Price%20Movements%0A%20%20%20%20Analyzing%20daily%20price%20movements%20helps%20in%20understanding%20short-term%20trends.%20With%20yfinance%2C%20you%20can%20retrieve%20intraday%20data%20with%20minute-level%20intervals.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(stock)%3A%0A%20%20%20%20%23%20Fetch%20intraday%20data%20with%20minute%20intervals%20for%20the%20current%20day%0A%20%20%20%20intraday_data%20%3D%20stock.history(period%3D%221d%22%2C%20interval%3D%221m%22)%0A%20%20%20%20print(intraday_data.tail())%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%205.%20Retrieving%20Bulk%20Data%20for%20Multiple%20Tickers%0A%20%20%20%20Analyzing%20a%20portfolio%20or%20comparing%20stocks%3F%20YFinance%20lets%20you%20pull%20data%20for%20multiple%20tickers%20simultaneously.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(yf)%3A%0A%20%20%20%20%23%20Define%20multiple%20tickers%0A%20%20%20%20tickers%20%3D%20%5B%22AAPL%22%2C%20%22MSFT%22%2C%20%22GOOGL%22%5D%0A%0A%20%20%20%20%23%20Fetch%20data%20for%20all%20tickers%20over%20the%20last%20year%0A%20%20%20%20multi_data%20%3D%20yf.download(tickers%2C%20period%3D%221y%22%2C%20interval%3D%221d%22%2C%20auto_adjust%3DTrue)%0A%20%20%20%20print(multi_data.head())%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%206.%20Calculating%20Returns%20and%20Volatility%0A%20%20%20%20Historical%20data%20is%20essential%20for%20calculating%20metrics%20like%20daily%20returns%20and%20volatility.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(historical_data)%3A%0A%20%20%20%20%23%20Calculate%20daily%20returns%0A%20%20%20%20historical_data%5B'Daily%20Return'%5D%20%3D%20historical_data%5B'Close'%5D.pct_change()%0A%0A%20%20%20%20%23%20Calculate%20rolling%20volatility%20(30-day)%0A%20%20%20%20historical_data%5B'Volatility'%5D%20%3D%20historical_data%5B'Daily%20Return'%5D.rolling(window%3D30).std()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22Visualize%20the%20data%20to%20understand%20the%20stock%E2%80%99s%20historical%20volatility%20and%20returns%20over%20time%3A%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(historical_data%2C%20plt)%3A%0A%20%20%20%20%23%20Plot%20daily%20return%20and%20volatility%0A%20%20%20%20historical_data%5B%5B'Daily%20Return'%2C%20'Volatility'%5D%5D.plot(subplots%3DTrue%2C%20title%3D%22Daily%20Returns%20and%20Volatility%22)%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%207.%20Dividend%20Data%20Analysis%0A%20%20%20%20Dividends%20are%20a%20key%20component%20of%20total%20returns%20for%20many%20investors.%20YFinance%20provides%20historical%20dividend%20information.%0A%0A%20%20%20%20Using%20this%20data%2C%20you%20can%20calculate%20the%20**dividend%20yield**%20or%20plot%20the%20**dividend%20growth%20rate**%20over%20time%20to%20assess%20whether%20the%20stock%20is%20a%20reliable%20income%20generator.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(stock)%3A%0A%20%20%20%20%23%20Fetch%20dividend%20history%0A%20%20%20%20dividends%20%3D%20stock.dividends%0A%20%20%20%20print(dividends.head())%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%208.%20Retrieving%20Stock%20Split%20Data%0A%20%20%20%20Stock%20splits%20increase%20liquidity%20and%20may%20influence%20stock%20price%20trends.%20YFinance%20provides%20the%20split%20history%20for%20a%20given%20ticker.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(stock)%3A%0A%20%20%20%20%23%20Fetch%20stock%20split%20history%0A%20%20%20%20splits%20%3D%20stock.splits%0A%20%20%20%20print(splits)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%209.%20Analyzing%20Institutional%20and%20Insider%20Holding%0A%20%20%20%20YFinance%20includes%20information%20on%20major%20holders%2C%20such%20as%20institutional%20and%20insider%20holdings.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(stock)%3A%0A%20%20%20%20%23%20Retrieve%20institutional%20holders%20and%20major%20holders%0A%20%20%20%20institutional_holders%20%3D%20stock.institutional_holders%0A%20%20%20%20major_holders%20%3D%20stock.major_holders%0A%0A%20%20%20%20print(%22Institutional%20Holders%3A%5Cn%22%2C%20institutional_holders)%0A%20%20%20%20print(%22%3D%22*50)%0A%20%20%20%20print(%22Major%20Holders%3A%5Cn%22%2C%20major_holders)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%2010.%20Accessing%20Financial%20Statements%0A%20%20%20%20Financial%20statements%20are%20the%20backbone%20of%20fundamental%20analysis.%20YFinance%20provides%20income%20statements%2C%20balance%20sheets%2C%20and%20cash%20flow%20data.%0A%0A%20%20%20%20With%20this%20data%2C%20you%20can%20calculate%20financial%20ratios%20like%20**return%20on%20assets**%2C%20**current%20ratio**%2C%20and%20**operating%20margin**%20to%20assess%20the%20company%E2%80%99s%20financial%20health.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(stock)%3A%0A%20%20%20%20%23%20Fetch%20financial%20statements%0A%20%20%20%20income_statement%20%3D%20stock.financials%0A%20%20%20%20balance_sheet%20%3D%20stock.balance_sheet%0A%20%20%20%20cash_flow%20%3D%20stock.cashflow%0A%0A%20%20%20%20print(%22Income%20Statement%3A%5Cn%22%2C%20income_statement)%0A%20%20%20%20print(%22%3D%22*50)%0A%20%20%20%20print(%22Balance%20Sheet%3A%5Cn%22%2C%20balance_sheet)%0A%20%20%20%20print(%22%3D%22*50)%0A%20%20%20%20print(%22Cash%20Flow%3A%5Cn%22%2C%20cash_flow)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%2011.%20Environmental%2C%20Social%2C%20and%20Governance%20(ESG)%20Data%0A%20%20%20%20Many%20investors%20prioritize%20sustainable%20and%20ethical%20investments.%20YFinance%20offers%20ESG%20data%20for%20companies%20that%20report%20these%20metrics.%0A%0A%20%20%20%20ESG%20data%20is%20increasingly%20used%20by%20socially%20responsible%20investors%20to%20screen%20stocks%20based%20on%20environmental%20impact%2C%20social%20responsibility%2C%20and%20governance%20practices.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(stock)%3A%0A%20%20%20%20%23%20Fetch%20ESG%20scores%0A%20%20%20%20esg_data%20%3D%20stock.sustainability%0A%20%20%20%20print(esg_data)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%2012.%20Accessing%20Analyst%20Recommendations%0A%20%20%20%20Analyst%20ratings%20offer%20insight%20into%20market%20sentiment%20and%20valuation%20perspectives.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(stock)%3A%0A%20%20%20%20%23%20Fetch%20analyst%20recommendations%0A%20%20%20%20analyst_recommendations%20%3D%20stock.recommendations%0A%20%20%20%20print(analyst_recommendations)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%2013.%20Options%20Data%0A%20%20%20%20For%20options%20traders%2C%20yfinance%20provides%20options%20chains%20with%20expiration%20dates%20and%20the%20associated%20call%20and%20put%20options.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(stock)%3A%0A%20%20%20%20%23%20Get%20available%20options%20expiration%20dates%0A%20%20%20%20expiration_dates%20%3D%20stock.options%0A%20%20%20%20print(%22Expiration%20Dates%3A%5Cn%22%2C%20expiration_dates)%0A%0A%20%20%20%20%23%20Retrieve%20option%20chain%20for%20a%20specific%20expiration%20date%0A%20%20%20%20option_chain%20%3D%20stock.option_chain(expiration_dates%5B0%5D)%0A%20%20%20%20print(%22Calls%3A%5Cn%22%2C%20option_chain.calls)%0A%20%20%20%20print(%22Puts%3A%5Cn%22%2C%20option_chain.puts)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%2014.%20Visualizing%20Stock%20Data%20with%20%60yfinance%60%0A%20%20%20%20Visualizations%20make%20it%20easier%20to%20interpret%20stock%20data%20trends.%20%60yfinance%60%20integrates%20well%20with%20visualization%20libraries%20like%20%60matplotlib%60.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(historical_data%2C%20plt)%3A%0A%20%20%20%20%23%20Plot%20stock%20price%20history%0A%20%20%20%20historical_data%5B%22Close%22%5D.plot(title%3D%22AAPL%20Stock%20Price%20Over%20Time%22%2C%20figsize%3D(12%2C%206))%0A%20%20%20%20plt.xlabel(%22Date%22)%0A%20%20%20%20plt.ylabel(%22Close%20Price%22)%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
64cc9b23b73b4aeef2878e46825b90e8b69cd999d3dce5e04070440277e304ad