mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-28 13:01:38 +00:00
* test * ultima description (#5541) * Updating showcase page (#5543) * updating showcase page * use sdk instead * add new bot command autopost docs (#5530) add new bot command autopost docs to docs.openbb.co Co-authored-by: James Maslek <jmaslek11@gmail.com> * Hotfix/ultima improvements (#5553) * tweaks for monetization * fix linting issue * fix: Modify 'load' behavior to append data to existing sheet (#5503) * fix: Modify 'load' behavior to append data to existing sheet Details: - Added logic to detect existing sheet and append data if present. - There is no direct way to append on the sheet, so I am reading the sheet to get the last row number and then writing after that row number. Resolves: #5472 * Fixed 'worksheet not found' error during export to an existing sheet * Changes: * Now if the sheet exists in the xlsx file it will ask the user if he wants to replace/append/create new sheet --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * added platform API integration test to Nightly build (#5571) * Add columns to `stocks/search` (#5565) * Add columns to `stocks/search` isin, cusip, figi, composite_figi, shareclass_figi * Update test_search[False].txt * Update test_search[True].txt * Delete tests/openbb_terminal/stocks/cassettes/test_stocks_helper/test_search.yaml * Create test_search.yaml --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * updating ultima urls (#5587) * fix: A value is trying to be set on a copy of a slice from a DataFrame #5582 (#5591) * Update README.md (#5598) * Hotfix/econometrics export filename fix (#5508) * fix: Modify 'load' behavior to append data to existing sheet Details: - Added logic to detect existing sheet and append data if present. - There is no direct way to append on the sheet, so I am reading the sheet to get the last row number and then writing after that row number. Resolves: #5472 * Added --export option for exporting to a desired file in /econometrics menu * Added a -f/--file option to provide the filename for export. Made -t/--type and -f/--file mutually exclusive. If -f is not given, -t is required and the filename will be generated based on the time and module. * Revert `helper_funcs.py` to original state * Made some arguments not required. * Minor changes asked by @deeleeramone * No sheet name * black --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * FIX #5600 Updated the Twitter logo to X logo (#5601) * Change Ultima paragraph (#5624) * change ultima paragraph * remove old paragraph * Update CONTRIBUTING.md (#5623) * mobile line-brake fixed (#5604) In the mobile view (media max 400px ), the text line "Installation >>" appears broken into smaller segments. Co-authored-by: James Maslek <jmaslek11@gmail.com> * Docs/terminalpro and improvement (#5622) * add first iteration of content for Terminal Pro * Update index.md * Update dashboards.md * Update folders.md * Update grouping.md * Update report.md * Update templates.md * Update quick-start.md * Update index.md * Update index.md * Update home.md * Update news.md * Update index.md * Update index.md * Update index.md * Update data-provider.md * Update chat-with-widget.md * Update data-manipulation.md * Update forecasting.md * fix: images self closing tags * fix: only pro visitors can see pro * inter font * improve SEO content and restructuring * add new package for toggle on tutorials * move folder around * improve main page of each prod * small updates and improvements * fix logo above * small improvement in headtitle for portfolio funcs * fix typos from OpenAI's GPT-4 * fix _category_ json * remove generic SEO words * add script that generates SEO for documentation * add missing file * remove sdk warning message * fix links for andrew --------- Co-authored-by: jose-donato <zmcdonato@gmail.com> Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com> Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> * Add light blue banner, blue when clicking sidebar + fix link in docusaurus.config.js (#5627) * typo * pro docs tab coloring * sidebar selection blue * redirecting missing * fix docs (#5646) * Fix the redirect for intro to the correct url for docs (#5658) * fix the redirect for intro to the correct url for docs * fix code linting --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> * Improve Pro documentation further (#5641) * small improvement * Fix TutorialVideo for mobile view * main page terminal pro docs * jose whelp * placeholder index file that needs to be removed * fix: fixes sidebar, removes unused index.md * update link to api keys * update api keys link * fix hyperlinks in terminal helper * fix a few more links * fix some more links * linter * black linter * improve main docs page for each product * small refactor * header to take to main page of product * run OpenAI script to generate SEO for pro content --------- Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com> * Update folders.md * Update integrate-your-own-backend.md * Update index.md * Update settings.md (#5665) * fix front matter (#5667) * #5633 adding comma every 1000 (#5652) * #5633 adding comma every 1000 * pylint --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * Hotfix/reports model render report sanitize inputs (#5669) * Adding more robust special character handling to create_output_path().Addresses https://github.com/OpenBB-finance/OpenBBTerminal/issues/5299 * Running black linter on code to conform to OBB style guides. --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * hotfix/fix-gov-histcont: Fix #5650 - /stocks/gov/histcont (#5676) * fix histcont * some cleanup * remove sort line * 12-31 not 12-12 * columns_keep_types * remove space in regex (#5675) * Pin openai (#5685) * Clarified stocks/ta empty recom object message (#5468) * Clarified stocks/ta empty recom object message * black * lint --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> * improved market cap value extraction (#5169) * improved market cap value extraction * pylint --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> * Release/3.2.4 (#5704) * 3.2.3->3.2.4 * Changelogs * new changelog * OpenBB Platform v4 (#5225) * change location * check something * add cache * fixed auth w/@IgorWounds and @montezdesousa * fixes for econometrics * include Darren auth suggestions * some routers included if dev + chg hub backend var * coverage router should not be here * update docker readme * forgot to check auth here * Change extension imports * update docstrings and readme * headers function wasnt being called, just referenced * relative import * econometrics add headers everywhere * Fix QA * Fix TA * Fix test * Fix python interface QA and TA * Lint * Cleanup * Change path * make the changes and some etf models * tests for command_runner * ruff * solving naming issues on pytest * Update some docstrings, fix typos and lint * solving econometrics instantiating wrong openbb * chaging the way pytest runs * messing around with the imports * ruff * Change template to add platform considerations (#5533) * change template to add platform considerations * @the-praxs suggestions * solving __pycache__ issue * removing typo * ci yml * making linters happy (i guess) * Improve Omega Ratio and docstrings * chaging pro validation hash * ruff * Fix OLS Summary and lint * Add OECD Provider for economy extension (#5534) * Add record to docs * update a couple of cboe models * Fix econometrics bugs. Make tests pass. Lint. * black * ruff * pydantic v2: remove deprecated Extra * pydantic v2: self.dict -> self.model_dump * revert pydantic * revert the revert * try 1: pin urllib3 < 2 * Revert "try 1: pin urllib3 < 2" This reverts commit3736c311cb. * Revert dep * Fix * re-lock * Skip all tests when doing cspell in pre-commit * Resolve linter errors * Add OECD to install script * Add OECD * Resolve more linter errors * Exclude static files of v4 python from ruff * More linting * Another attempt to resolve even more linting errors * Change how Literal is used * ticker. symbol. consistent. @piiq * change ticker field in Stock Search to is_symbol * Update Cboe model for stocks_search -> is_symbol parameter. * Fix issue * Lint * Small QA to rename SDK to Platform (#5544) * SDK -> Platform in docs * renamed in core * renamed in openbb `init` * `sdk` variable renamed as `platform` --------- Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> * `validator` -> `field_validator` in standard models * Standard convention for multi-ticker symbols (#5549) * standardize symbol input param in forex and crypto historical data * static * linting * Fix stock_search integration test params * Update dependencies and linting on the CI (#5550) * Remove ruff and black from platform dependencies * Update codespell configuration * Lint python code * Add toml and tomli to root dev dependencies * Update requirements.txt files * Fix buggy docstring in python package methods (#5548) * fix buggy docstring for methods * remove space * fix typing * avoid name collision with validator * Revert "avoid name collision with validator" This reverts commit8a30a44555. * typing * rebuild * python 3.8, ParamSpec not available * lint * ruff noqa * Merge with develop (#5551) * Charting extension integration tests (#5547) * initial proposal for integration tests on the charting extension * int tests for charting generation * python generator * ruff * boilerplate templates * python tests * tests for the api * using body instead so data don't get redefined * unit tests for coverage * ruff * docstrings * unnecessary access to keys() * Add trading economics economic calendar * dev install * Data Models disposition on the website (#5538) * pydantic v4 * flat structure * md files * Revert "md files" This reverts commitbd2170e2ad. * improve command descriptions * nice title and description * human readble data model names on left panel * implementation details section * content markdown files * markdown versioned files * showcase page * updates --------- Co-authored-by: tehcoderer <me@tehcoderer.com> * everything except tests * fix `datetime.date` import in fetcher test * modified url to remove `api_key` placeholder * record test * api key is called c here * fixed fetcher test for api key * recorded tests * refactor * life is ruff * codespell * Make Intrinio options chains great again (#5540) * add multithreading * cleanup * linting * use dateutil.parser * removed `TICKER_EXCEPTIONS` * modified `date` and `type` fields in standard model * set alias for `date` and `type` to match standards * static * static * Hotfix/fix post tests (#5555) * Fix econometrics * Fix ta * Fix qa. Remove intrinio to not be rate limited * Lint * Fix typo * obbject tests (#5558) * obbject tests * ruff * fix dev_install * fix unittests * black on nox * black on nox * nox * fix fetcher test so it can compare dates * fix intrinio tests * ruff * change to model_dum() instead (#5561) * Passing tests (#5560) * Passing tests * fix options * Fix most tests and bugs * fix forex missing params * make symbol upper in polygon fx pairs * fix fixedincome integration tests (#5564) * Fixing charting api integration tests (#5562) * fixing charting api integration tests * black * fix stocks less five API fails * fix the 5 failing stocks integration tests * recapture fmp stock news unit test * fix fmp forex api test * couple more forex integration fixes * changing the request to always use the legacy session. @jmaslek this is was broken for 3.8 and 3.9; with this change apparently all versions work - lemme know if you see any issue with this change * ruff * fix ta * add missing param * fix testers for the api * fix globalnews to use images instead of image * remove unncessary pandas import * econcal int tests * update gitignore * fix get_querystring to support lists * add missing parameters --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt> * Stock Historical standardization and UX improvements (#5457) * polygon add interval standard param * attempt at standardization * Alpha Vantage params standardization * rename `get_intervals` and fixed bug for extracting wrong value * missed changing it in `extract_data` * linting * polygon cleanup * modified `start_date` & `end_date` type to `datetime` from `dateType` * standardized intrinio stock historical params * fixed yfinance * linting * revert start and end date to dateType from datetime * fix alpha vantage * changed param * fix intrinio infinite loop * `validator` is `field_validator` * revert time params and fixed intervals * `outputsize` alias set in `Field` * set interval description using in-build dict * yfinance stock param standardization * static * intrinio cleanup * Polygon add api params as `PrivateAttr` * modified yfinance params to `PrivateAttr` * intrinio remove overriding date params * fixed description for AV adjusted param * fix alpha vantage intraday not working * re-record and pass unit tests * pass integration tests * Update test --------- Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> * Fix econcal endpoint (#5567) * fix econcal for python interface * fix econcal tests * fix non supported json output * Fixes FMP index endpoint to get 1 day interval data (#5535) * fix FMP endpoint for getting index data for `1day` interval * fix `open` type to prevent validation error * modifed `validator` to `field_validator` * type of fields is `StrictFloat` * re-record and pass test * linting * `validator` -> `field_validator`, a3'd everything * Fix regression in tests. Lint * updating the integration test actions * Fix typo * Fix typo * Fix import * Publish versions `a3` to Pypi (#5568) * bump versions and script to publish * small improvements * uncomment exception * openbb * publishing guidelines * improve docs * add providers to economy api * make symbol required in stock_quote * Fix keys * Fix oecd * add comma * revert * Add quotes * Sleep * Improve tests * Improve * Feature/query transform (#5566) * inject query into transform_data * swap query and data * update missing fetchers * last test failing * sig test fetcher * black * av add `query` to `transform_data` call * transform_data: missing refactoring * fix uvicorn command in the doc * Automated examples (#5576) * Automated examples * Fix bug * Lint * static assets built on 3.8 * Revert "static assets built on 3.8" This reverts commitfb82ff7bd9. * remove assets * static assets on 3.8 * static assets on 3.8 * Wrap in quotes * Improve wrap * minor fix * rebuild 3.8 * Fix bug * Fix edge case * Lint * rebuild --------- Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Diogo Sousa <montezdesousa@gmail.com> * use SecretStr for sensitive fields (#5578) * use SecretStr for sensitive fields * fix * docstring * Add tests for provider (#5583) * Add tests for provider * Test standard models * Lint * Fix standard model issues. Co-authored-by: @the-praxs * linting * `symbol` -> `is_symbol` in `economy.index_search` * static --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * feature/v4-biztoc-provider: Adds Biztoc provider and GlobalNews (#5546) * add biztoc provider * duplicate field * black * request headers * recapture test * move stuff around * add integration tests * duplicate OECD entry in dev_install * duplicate entry for oecd in pyproject.toml * Add Biztoc to workflow * update readme: credentials * Add Preferences to README * improve tests * fix biztoc * obbject pylint * Bug fix: serializ SecretStr before dumping to json * export credentials as json (#5592) * Check for wrong, changed, or outdated params. (#5597) * Improving `economy.cpi` for the FRED data (#5602) * remove multiindex using coding magic * Update field descriptions --------- Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> * Improve error message. * Improve * Test tests (#5607) * Test tests * Add test * 4.0.0a4 PyPI publishing (#5608) * changes to publish * fix mini conflict * typo * cleaned `descriptions.py` * fix description in `cpi.py` * Add ETF extension to v4 (#5609) * Add etf extension with search data model * Add FMP ETF search * Add fetcher tests * Add ETF historical price from yfinance (#5610) * Add etf extension with search data model * Add FMP ETF search * Add fetcher tests * Add etf historical price standard model and route * Add etf historical data from yfinance * Add unit tests * Fix linter error. Organize imports * Update test data * Revert common descriptions erased by CPI PR * remove `symbol` from data for `stocks.ca.peers` * Test docstrings (#5613) * Test docstrings * fix minor bugs w/@IgorWounds * static only w/@IgorWounds * fix `importance` param in `economy.econcal` * right static only w/@IgorWounds * Fix econcal and add tests to noxfile * fix econcal static * re-record --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Clean up the newly created ETF extension (#5611) * Add ETF to dev_install bundle * Add integration tests for openbb-etf * Patch integration test generator scripts to produce lintable code * Add py.typed markers for extensions * user preferences descriptions (#5593) * user preferences descriptions * typo * Feature/v4-sec-provider: Add SEC provider to V4 (#5556) * coerce string type, add default=None * add sec provider and FTD function * update description * ruff * data model definitions in standard model already * duplicate oecd entries in dev_install and pyproject * actually commit * integration test * add stock search to SEC * add company filings for SEC provider * integration tests * remove duplicated line * ruff * **kwargs in Transform Data * some helper functions for later * black * add helper for mutual fund and etf lookup * add some SEC lookup helpers to a new regulators extension * black * ruff * fix test param * take institution filter out of sec stock_search * ruff * remove URL that codespell doesn't like * add cik-to-ticker map * add litigations rss feed * make openbb-regulators a dependency of openbb-sec * add SIC search * improve ftd and remove BeautifulSoup from SEC dependencies * fix parsing the zip files pre-2009 * ruff * update descriptions * recapture ftd test * tests params * typo * change limit param to 1 in test_sec_stock_ftd * Add didiers to_records method (#5588) * Add didiers to_records * unused import * Bring back polars + do what igor suggested * Make the output consistent with what it was. * Black ? * spelling. oops. almost like we have a pre commit or something * Feature/v4-price-performance: % returns for various horizons, comparable across multiple tickers. (#5618) * coerce string type, add default=None * add price_performance endpoint from FMP * black * extra period in docstring * ruff * forgot one file * Feature/ipo-calendar: V4 IPO Calendar (#5605) * coerce string type, add default=None * add intrinio ipo calendar * fix typo * sort __init__ * fix description * make requested changes * update test params * black * test updates * etf integration * Add disc router and WSJ provider * OBBject extensions (#5612) * changes to core * bug? * docstring * doc * Update credentials.py * fix model_dump * create extensions * fix docstring * doc * revert change query_exc * doc * fix container test * redirect obbject test patch * doc * rename method * move decorator to extension file * rename method extend_obbject * changes in creds model * avoid credential racing * doc * rename prop * doc * doc * remove comment * comment some code * free extension names * docstring * doc * docs * Hotfix/fix-v4-economic-calendar: Add FMP to Econ Calendar and fix some TE bugs (#5580) * coerce string type, add default=None * adds fmp to economic calendar and fixes some things with TE * ruff * etf integration test * missing provider for test * rename te cassette to economic_calendar * fix test * rename tests --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> * Add stocks disc endpoints (#5630) * Add stocks disc endpoints * Explicit * Lint * Add tests * Bump timeout * Feature/disc router (#5616) * Add disc router and WSJ provider * Lint * Lint * Move endpoints under ETF router * Update etf_performance.py * Add ETF info and sector exposure from FMP (#5620) * Add ETF info from FMP * Add integration tests * Add unit tests * Add etf sectors endpoint * Add etf sectors fmp endpoint * Omit nested sector list from fmp info data * Update tests and test data * Update test data * Specify provider explicitly in integration tests * Update tests * Skip yfinance etf historical test * Fix linter errors after the merge * Fix more linter errors * Fix failing and add missing tests * Fix integration tests * Fix calendar ipo tests * Add ETF holdings and holding report dates from FMP (#5629) * Add ETF info from FMP * Add integration tests * Add unit tests * Add etf sectors endpoint * Add etf sectors fmp endpoint * Omit nested sector list from fmp info data * Update tests and test data * Update test data * Specify provider explicitly in integration tests * Update tests * Skip yfinance etf historical test * Add etf holdings and holdings date routes and standard models * Add fmp holdings and holding dates fetchers * Update holdings fetcher to properly handle date object inputs * Add unit tests * Add integration tests * Black after merge * Fix test input data format * Disc router for equities. (#5640) * Disc router for equities. * add tests * Bug fixes in financial statements (#5537) * `validator` to `field_validator` in standard models * Polygon add `ttm` to `period` param * Revert "Polygon add `ttm` to `period` param" * Polygon add `ttm` to param `period` * `EarningsCallTranscript` standard model removed `quarter` param * use `tag` instead of `name` for correct field name * fix url for intrinio income statement * modified intrinio cash flow `transform_data` function * set optional data fields and validate dates * fix insider trading not fetching recent data * linting * refactoring * refactoring * set param alias in fmp stock insider provider model * get all quarter data for intrinio * add `limit` param to `stocks.fa.ins` * refactoring and linting * removed additional comment * linting * re-recorded and fix tests * cash flow standard model field type to `StrictFloat` * Intrinio cash flow model fixed to get all quarters' data * linting * refactoring * financial statement standard model field type to `StrictFloat` * Intrinio financial statement model get all quarter data * set `period` type to `Optional[str]` * add `period` param to balance sheet provider models * add `period` param to cash flow provider models * use alias in model dump * remove `ttm` from `period` param * revamped intrinio financials * fixed incorrect description for `limit` param * modified tests for `balance`, `cash` and `income` * re-recorded tests * skipped intrinio financial statement fetcher tests * Add ETF county weighting command with FMP data (#5645) * Remove code that wrongfully infers the filing date as end of quarter * Add etf countries command with fmp data * Add countries command to etf router * Update sector and country weighting fmp models * Fix docstring typo * Add unit tests and update mock data * Add integration tests for etf.countries * Bring back missing integration tests * Fix economic calendar integration tests * fix missing data in intrinio financials * removed inutile params from Polygon financial statement models * Intrinio IPO overhaul * tests fixed and re-recorded * Add ETF holdings performance with FMP data (#5659) * Add etf holdings performance endpoint * Add tests * Fix failing polygon fetcher tests * Split long holdings lists into chunks and update test data * Change chunk length to 500 tickers * Add stock search from FMP (#5642) Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> * Feature/v4 pypi (#5579) * improvements to the publish script * move scripts * initial script that builds the package * adjustments on the docs * test pypi workflow * add hour and minute to version * black * ruff * duplicate file * moving files instead * build throught the script instead * update nox file * integration tests workflow * change workflow * fix dev_install * fix in sed cmd * testing the platform only * commenting out the publishing * fix run commands * improvements to the publish script and doc * fix publish script * updating the script and the workflow * feature/v4-pypi nightly (#5589) * init * Update nightly.py * cleanup * init file * not referencing dev_utils * updating obb platform key * revert * Increase warmup time * project name on pyproject and adding the --pre flag on readme * moving to the build folder * fix noxfile * reflecting the moves on the import statements * fix pyproject path * ruff * fix paths * fix super typo * update workflows * moving the pypi terminal files into its folder --------- Co-authored-by: teh_coderer <me@tehcoderer.com> Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> * economy.calendar nasdaq (#5628) * add quandl econcal * unittest * add integration tests * replace   * fix bug TE importance * small fix * remove stuff from quandl * add nasdaq provider * add nasdaq to install files * Update test_economy_api.py * test * quandl leftovers * remove quandl econcal test * lint * replace   * ruff * lint * update nasdaq gmt * validate countries * here * no need for this * fix calendar tests * static * static * remove error * static * readme + website * readme * remove changes TE * typo * fix unittest * fix tests * Update __init__.py * Update economic_calendar.py * revamped model and added helpers for date range --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Feature/v4-dividend-calendar: Adds Nasdaq dividend calendar and moves the command out of fundamental_analysis (#5672) * add nasdaq dividend calendar and move out of fundamental_analysis * black * ruff * add random-user-agent to pyproject.toml * add nasdaq ipo calendar * add nasdaq flag for SPO to IPO calendar * add spo test param * black * dividend test * fix transform_query - nasdaq_calendar_ipo * bring back different headers for ipo calendar * remove references to test * Add disc endpoints (#5660) * Add Quandl top retail * Add tests * Add Seeking Alpha * Add Filings * Change Provider * Fix test * Add dev_install * static * static correct * y u forget me * updated deps * static --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * using dev install (#5673) * Expanding the `fixedincome` menu (#5655) * models and fetcher * making the fetcher visible * std model * adding the command * improvements to the models * typo * adding the command * imrpovements to dwpcr * standard model for ecb int rates * adding the fetcher for fred * standard model of ice bofa * add ice_bofa command * ruff * ice bofa fetcher * moody std model * moody * std model * add cp command * unused import * cp * spot * ruff * hqm * tmc * ffrmc * tbffr * ruff * typing fixes * buggy dates * fred fetcher tests * ruff * adding ecb as a provider * adding new provider related stuff * adding the new command eu_ycvr * models * test for ecb fetcher * Feature/v4 fixedincome int tests (#5661) * integration tests * happy ruff * mini adjustment * ruff * typo * verbose type * fix tests * docstrings everywhere and an happy pydocstyle * fix tests * Feature/user-cache-dir: Add User Preference for the Cache Directory (#5621) * add user preference for storing cached data * ruff * fix tests? * fix test key error..? * etf integration test fix * add cache dir to SEC * black * improve docs structure for V4 (#5586) * improve docs structure for V4 * moving over changes * Add Docs to the navbar * add some, re-order sidebar * fix sentence * add docs install to source instructions * insert a couple of links, fix a typo * big terminal docs usage revamps * improve toggle component for tutorials * get rid of TOCs for all terminal docs for consistency and simplicity * improve platform docs * improve bot docs content structure * remove index from bot docs * improve ON THIS PAGE to only display TOC if at least 1 element * make edit this page text and icon on same line * add author and date to docs * add basic syntax page to usage * sidebar order for usage section * move api start command to the top with the import python import * some install page additions * small improvement * refactor routines section * Update introduction-to-routines.md * Update pipeline-of-commands.md * Update introduction-to-routines.md * Update routines-for-power-users.md * Update community-routines.md * update keyboard hotkey macros * askobb page * Update askobb-feature.md * Update index.md * Update index.md * Update index.md * Update index.md * fix images * remove HeadTitle from all files where it exist * get rid of extra spacing in markdown * small update * small edit * need index at the start because of main path when homepage of docs * use openAI to create SEO for front matter on my behalf * remove table of content from sdk page * finish improving metadata SEO for SDK docs * update duplicate header * update HeadTitle to be more specific on product * remove index from bot telegram reference * delete duplicated title for platform reference * another update * Hotfix/econometrics export filename fix (#5508) * fix: Modify 'load' behavior to append data to existing sheet Details: - Added logic to detect existing sheet and append data if present. - There is no direct way to append on the sheet, so I am reading the sheet to get the last row number and then writing after that row number. Resolves: #5472 * Added --export option for exporting to a desired file in /econometrics menu * Added a -f/--file option to provide the filename for export. Made -t/--type and -f/--file mutually exclusive. If -f is not given, -t is required and the filename will be generated based on the time and module. * Revert `helper_funcs.py` to original state * Made some arguments not required. * Minor changes asked by @deeleeramone * No sheet name * black --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * FIX #5600 Updated the Twitter logo to X logo (#5601) * Change Ultima paragraph (#5624) * change ultima paragraph * remove old paragraph * Update CONTRIBUTING.md (#5623) * mobile line-brake fixed (#5604) In the mobile view (media max 400px ), the text line "Installation >>" appears broken into smaller segments. Co-authored-by: James Maslek <jmaslek11@gmail.com> * start PR so screenshots can get attached via GitHub website * Update qa.md * Docs/terminalpro and improvement (#5622) * add first iteration of content for Terminal Pro * Update index.md * Update dashboards.md * Update folders.md * Update grouping.md * Update report.md * Update templates.md * Update quick-start.md * Update index.md * Update index.md * Update home.md * Update news.md * Update index.md * Update index.md * Update index.md * Update data-provider.md * Update chat-with-widget.md * Update data-manipulation.md * Update forecasting.md * fix: images self closing tags * fix: only pro visitors can see pro * inter font * improve SEO content and restructuring * add new package for toggle on tutorials * move folder around * improve main page of each prod * small updates and improvements * fix logo above * small improvement in headtitle for portfolio funcs * fix typos from OpenAI's GPT-4 * fix _category_ json * remove generic SEO words * add script that generates SEO for documentation * add missing file * remove sdk warning message * fix links for andrew --------- Co-authored-by: jose-donato <zmcdonato@gmail.com> Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com> Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> * Add light blue banner, blue when clicking sidebar + fix link in docusaurus.config.js (#5627) * typo * pro docs tab coloring * sidebar selection blue * redirecting missing * Update crypto introduction.md * titles * another title * Update crypto dd.md * Update defi.md * Update disc.md * Update nft.md * Update onchain.md * Update ov.md * Update introduction.md updates URL * Update introduction.md add HeadTitle * Update ba.md * Update comparison.md * Update dark-pool-shorts.md * Update disc.md * fix docs (#5646) * Update fa.md * Update gov.md * Update ins.md * Update tradinghours.md * Delete website/content/terminal/menus/stocks/options/screener.md * Update Options introduction.md * Update screener head title * Update screener TOC * Update econometrics.md * Update economy head title * Update etf.md * codespell * Fix the redirect for intro to the correct url for docs (#5658) * fix the redirect for intro to the correct url for docs * fix code linting --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> * Contributing guidelines (#5615) * intro section * what's expected sections * improve sections * improve sections and move how to add a data point * moving qa under contributor * better intro * moving the sharing section * better expectations * small intro to the contributor guidelines * moving things under the contributor section * there is no pre commits on the platform yet * dependency management * best practices for extensions * typo * collapse options subfolder * codespell * Improve Pro documentation further (#5641) * small improvement * Fix TutorialVideo for mobile view * main page terminal pro docs * jose whelp * placeholder index file that needs to be removed * fix: fixes sidebar, removes unused index.md * update link to api keys * update api keys link * fix hyperlinks in terminal helper * fix a few more links * fix some more links * linter * black linter * improve main docs page for each product * small refactor * header to take to main page of product * run OpenAI script to generate SEO for pro content --------- Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com> * Update folders.md * Update integrate-your-own-backend.md * Update index.md * Update fixedincome.md * url * Update forecast.md * Update settings.md (#5665) * Update forex.md * fix front matter (#5667) * Fix conflict markers that got into markdown during previous merges * Fix front matter list formatting * Fix typo * small thing * fix hyperlinks * Update .codespell.ignore * output_type options * Architectural considerations * Update sidebar to hide pro section by default * Minor copy changes * TET pattern * import statements * clarification on preferences * Minor copy changes * Lint markdown and python * fix: open index on collapsible root elements * remove old content * options title * Fix linting errors * Refactor sidebar label to url mapping condition --------- Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Sandip Saha <sandipsmoto@gmail.com> Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: professssor <62937125+professssor@users.noreply.github.com> Co-authored-by: Farookh Zaheer Siddiqui <129654632+FarukhS52@users.noreply.github.com> Co-authored-by: MAX SHESTOV <57421753+maxxsh@users.noreply.github.com> Co-authored-by: jose-donato <zmcdonato@gmail.com> Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com> Co-authored-by: Mohamad Fadil <fadil.parves@gmail.com> Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> * Add multi-ticker support to etf_countries (#5670) * add multi-ticker support to etf_countries * remove commented-out lines * normalized percent points * percent -> percentage * Fix Nasdaq Econ Calendar Fetcher (#5668) * fix nasdaq econ cal request * more html tags * add random-user-agent to pyproject * another edge case - 24H -> 00:00 * Feature/v4-unusual-options: Adds unusual options endpoint. (#5677) * add unusual options fro Intrinio * test params * move sorting * Change type * update FMP fetcher to use the V4 endpoint (#5681) * Fix price performance not parsed correctly when there is only 1 ticker (#5678) * Add crypto search standard model and FMP data for it (#5679) * Apply renaming to news data (#5684) * inegration complete * reformatted for black * fix ruff issues * revised integration * changes to versions in pyproject.toml and updated lock files * Rename models * Update tests * Fix typos here and there * Update routers * Apply rename to ultima * Properly mock api key * Mock ultima api key --------- Co-authored-by: Adi Sai <adithya.sairam1@gmail.com> * Feature/v4-market-snapshots: Adds full market snapshots (#5473) * add stocks market snapshots from fmp * add fmp fetcher test * unused imports * add polygon to market_snapshots * update fmp market_snapshots * black * pydantic2 things * updates * change validate_obj to model_validate * polygon cleanup * tests * descriptions * black * data description * minor adjustments, using less local variables, improving readability and removing pandas * better structure * minor adjustments * lint * fix int tests --------- Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> * Add NBBO Quotes, with historical, to `obb.stocks.quote()` (#5617) * coerce string type, add default=None * add polygon stock quote * limit cleanup * add greater/less than to params * limit param * black * tests * fix tests * test_etf * rename model and function to NBBO * add standard model for nbbo * improve standardization * not redifining builtin max * fix input params * integration test params * removing unused import Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * revamped code * re-recorded nbbo test * added symbol validator * added alias in field * Stock news -> Company news --------- Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> * hotfix/update-quandl-to-nasdaq: Merge Quandl + Nasdaq (#5682) * merge quandl nd nasdaq * dev_install.py * test param name * economy python integration test * Add more input types to data processing commands (#5453) * adding more supported types to data processing commands * ruff * removing unused import * docstrings * data processing types covertion * data description * test filters * ruff * fix package builder tests * ruff * removing print * Add stocks/dps module (#5638) * short volume * pyproject missed * add sec short interest with days to cover * Add FINRA OTC endopoint * some tests * rest of unit tests * Integratin test scripts * dev install * linters caught by pre commit * lines too long * Last test files * maybe it needs a lock file? * thanks pratty * Maybe ill actually listen to pratty next time * sec test date freeze * I cant hit buttons * re record tests * tests 3 * Stockgrid test * regen int test * more testing * lint * moved these fns * dis killing me * one more test * last one * Update integration tests * Fix tests picking up wrong dps route --------- Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> * Rename Forex to Currency (#5687) * restore fields as optional (#5686) * Rename Crypto (#5689) * added `crypto.price.historical` * static * fix tests * fix incorrect label * Move model from sec to finra (#5692) * Update toml * fixed deps * add openbb-etf lock file * cleanup * cleanup (#5694) * Rename Fixed Income (#5695) * Rename Fixed Income * Add routers * Rename stocks to equity (#5688) * Rename stocks folder * Rename openbb_stocks package * Rename routers * Reroute equity menu * Update routes based on feedback * StockNews -> EquityNews * StockInfo -> EquityProfile * Rename Equity calendars * Equity peers rename * Rename discovery * Rename fundamental * Rename price command models * Rename shorts * Update charting router * Fix seeking alpha upcoming release date * Fix linting errors * Update tests * Fix tests * Skip econometrics api tests because it's python only * Update integration tests and test data * Historical analyst estimates * Skip cboe options chain test. Unable to record vcr cassette * re-record cboe cassettes * Document CBOE unit test creation caveats --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * Feature/files-for-igor: Adding a few standard models for Igor (#5699) * add some standard models for Igor * codespell * update descriptions * Add devtools metapackage (#5703) * Add openbb-devtools metapackage * adding devtools to the dev_install script --------- Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> * Rename econometrics commands to be more verbose (#5702) * Expose command to model map (#5706) * Rename ta qa (#5708) * Rename ta folder * Rename ta to technical * Rename qa folder * Rename qa to quantitative * Rename the actual routes in quantitative * Equity cleanup (#5707) * cleanup * static * renaming to equity cc @the-praxs * Proof reading --------- Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> * Don't enforce imperative for first word of the docstring * Remove ultima from default extensions * Rename `economy` and create `index` extension (#5705) * renamed economy and re-recorded tests * static * market indices * european indices * fred indices * index constituents * tests * correct package name * oops * static * linting * Move COT commands to regulators * Rename economy.list to available_indices * Rename GDP models and clean up * Fix charting tests * Drop _indices from available_indices command * Fix obbject to_dict test --------- Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> * Rename etf/disc (#5715) * Docs/v4-working-docs: PR to Work on V4 Docs (#5693) * Revert changes related to pydantic2 made into v3 code * Revert fred model changes in v3 * Revert pydantic2 databento model changes in v2 * Update some names and v3 lock file * Clean up openbb/package before the beta release * Platform publishing procedure (#5701) * update instructions * introducing the version script * publish message * fix platform path * reflecting version changes * getting version from installed packages instead * removing toml from dependencies * Changes to get `a7` out (#5697) * changes to get a7 out * etf menu on the pyproject.toml * poetry lock * bump `openbb-etf` to `a5` to match version * updated deps * removing ultima * removing references to a4 cc @the-praxs * Bump index menu version * poetry lock --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> * Update publishing instructions * Bump core dependencies in extensions and providers * Add changes to the publish script following the beta release * Update the versions in static extension map and openbb metapackage --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Diogo Sousa <montezdesousa@gmail.com> Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> Co-authored-by: tehcoderer <me@tehcoderer.com> Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt> Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> Co-authored-by: Sandip Saha <sandipsmoto@gmail.com> Co-authored-by: professssor <62937125+professssor@users.noreply.github.com> Co-authored-by: Farookh Zaheer Siddiqui <129654632+FarukhS52@users.noreply.github.com> Co-authored-by: MAX SHESTOV <57421753+maxxsh@users.noreply.github.com> Co-authored-by: jose-donato <zmcdonato@gmail.com> Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com> Co-authored-by: Mohamad Fadil <fadil.parves@gmail.com> Co-authored-by: Adi Sai <adithya.sairam1@gmail.com> * Hotfix/pypi openbb terminal (#5719) * renaming the project * documentation changes * Finishing touches to the publishing procedure (#5728) * finishing touches to the publishing procedure * grammar improvements * Run tests on develop (#5725) * Run tests on develop * Add a check that files changes in platform * Seprate Intrinio financials data tags into a different command (#5723) * add `ebit` field in income statement standard model * only add required data tags * remove calculations data * use `name` key instead of `tag` key * set `period` as required in data * remove `period` and `cik` from provider models * add `equity/fundamental/search_financial_attributes` with tests * clean descriptions file * add `equity/fundamental/financial_attributes` with tests * set `value` as `Optional` * Fix threadpool test error (#5734) * Remove ultima from deps (#5736) * remove ultima from deps * skip ultima test * black * change skip location * try except statement to avoid error on the ci * new currency reference rates pr (#5724) * point files to linters (#5739) * remove news from equity (#5741) * Add tiingo provider (#5740) * first commit * things * Add news endpoints * CryptoHistorical * Add currency and trailing dividend yield * things working * deps * fix pre commit things * tests? * black on the tests * pratty told me to add it * integration tests * added helpers * crypto revamped * currency revamped * trailing dividend yield revamped * equity historical revamped * company news overhauled * global news overhauled * remove `tags` param from news models * crypto correct `exchanges` description * james smh * re-recorded fetcher tests * fixed integration tests * econometrics smh * james smh again --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Add `derivatives` extension for `futures` and `options` (#5742) * removed options and futures * add derivatives extension * cleanup * bug #5649 (#5722) * bug #5649 * fixing --a upmom, downmom --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * Rename the fmp search -> screener (#5744) * Rename the fmp search -> screener * misses some * i cant copy paste * docs/fix-urls: Updates the Terminal About URLs to match `/develop` (#5720) * update Terminal about URLs and some other broken links * ruff * intro * changing the heading levels * dependency management sections * structure * developer guides * structure * contributor guides * keywords and descriptions * broken urls * cool cards * Cool cards (#5727) * tidy up terminal/content * some more tidy up * fix styling for platform that was missing * more tidy up * improve color for dark and light mode * create new reference card for more basic cards * rename back to menus * implement all index.md for terminal, except reference * improve bot title * more refactoring * fix remaining index * header styling * more styling * heheheheheheeh * Revert "heheheheheheeh" This reverts commit7d095fcfd2. * Ccards (#5733) * links * more links * improved styling and chevron aligned to title * fix index.mdx urls for Terminal * update package.json * update index.mdx * fix generation * spelling * toolkit_extensions * update data extensions * couple of links * add tiingo to data extensions list --------- Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt> Co-authored-by: James Maslek <jmaslek11@gmail.com> * Stock leftover cleanup (#5745) * change to equity in `.md` files * `HistoricalStockSplits`->`HistoricalSplits` * `StockInsiderTrading`->`InsiderTrading` * sorry fmp * `EquityHistorical` cleanup * `EquityNBBO` cleanup * .md leftover * the last of stocks * Hotfix/urllib to dev group (#5732) * use the urllib3 dependency on the dev group instead * adapt the version script for the nightlies - if it's a nightly the package distribution name will have a different name * add dev dependencies to the dev installation bc of the ci * updating the import on validate_call according to: https://docs.pydantic.dev/latest/concepts/validation_decorator/ the way we were importing it breaks if pydantic=2.5 @montezdesousa * loosing urllib3 version specification on the provider and adding it to platform dev deps * rmeoving urllib from top level deps; and removing --with dev flag * changing to ^ instead * Revert "changing to ^ instead" This reverts commit7300904e9f. * unnecessary dep --------- Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> Co-authored-by: James Maslek <jmaslek11@gmail.com> * feature/v4-bop - Add ECB Balance of Payments (Replaces #5716) (#5726) * add ecb balance of payments * missing __init__.py files * Nasdaq calendar earnings and fix FMP calendar earnings (#5718) Co-authored-by: James Maslek <jmaslek11@gmail.com> * feature/us-treasury-auctions: Adds Treasury Auctions endpoint and provider for US Government Data. (#5746) * add government_us provider and treasury auctions endpoint * black * add param for cusip * move logic for setting default start/end date * Update hub<>platform credentials map (#5749) * update hub<>platform credentials map * typo * Add API settings schema to system settings (#5743) Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> * Skip checking creds (#5737) * skip checking creds * fix bug * ok mypy * add comment * rename required_credentials * fix * fix top_retail bug * don't require creds in some nasdaq fetchers * black * this was not here before * fix tests * update fetcher test * update contributing guidelines * Fix Quote (#5752) * Fix Quote * fixed return type and model validation --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Wrap up renaming global news to world news on a model level (#5750) * Wrap up renaming global news to world news on a model level * cleanup --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Remove eod from docstrings (#5751) * Wrap up renaming global news to world news on a model level * Remove "end of day" from historical price model docstrings --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Massive docstring cleanup (#5755) * sec router remove command * standard models cleanup * fmp cleanup * av cleanup * benzinga cleanup * biztoc cleanup * cboe cleanup * ecb cleanup * finra cleanup * fred cleanup * us cleanup * intrinio cleanup * nasdaq cleanup * oecd cleanup * polygon cleanup * sec cleanup * seeking alpha cleanup * stockgrid cleanup * tiingo cleanup * tradingeconomics cleanup * ultima cleanup * wsj cleanup * yfinance cleanup * sec router lint * fix date query param description * Updates system and api settings (#5753) * remove uncessary import on rest api * remove FrozenField and add api.version * allow setup from json * remove id tag * computed field is better * formatting --------- Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> * Squeeze build time (#5756) * squeeze build time * bug fix * fix test * typo? * rebuild * keep tradingeconomics * docs/working-docs: Working V4 Docs PR (#5747) * post-install clarification, fix links * more links * change word * toolkit cleanup * rename 'contributing' to 'development' * update extensions * some urls * Update sdk-platform and v4-develop in urls (#5730) * Update sdk-platform and v4-develop in urls * Seprate Intrinio financials data tags into a different command (#5723) * add `ebit` field in income statement standard model * only add required data tags * remove calculations data * use `name` key instead of `tag` key * set `period` as required in data * remove `period` and `cik` from provider models * add `equity/fundamental/search_financial_attributes` with tests * clean descriptions file * add `equity/fundamental/financial_attributes` with tests * set `value` as `Optional` * Fix threadpool test error (#5734) * Remove ultima from deps (#5736) * remove ultima from deps * skip ultima test * black * change skip location * try except statement to avoid error on the ci * new currency reference rates pr (#5724) * point files to linters (#5739) * remove news from equity (#5741) * Add tiingo provider (#5740) * first commit * things * Add news endpoints * CryptoHistorical * Add currency and trailing dividend yield * things working * deps * fix pre commit things * tests? * black on the tests * pratty told me to add it * integration tests * added helpers * crypto revamped * currency revamped * trailing dividend yield revamped * equity historical revamped * company news overhauled * global news overhauled * remove `tags` param from news models * crypto correct `exchanges` description * james smh * re-recorded fetcher tests * fixed integration tests * econometrics smh * james smh again --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Add `derivatives` extension for `futures` and `options` (#5742) * removed options and futures * add derivatives extension * cleanup * bug #5649 (#5722) * bug #5649 * fixing --a upmom, downmom --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * Rename the fmp search -> screener (#5744) * Rename the fmp search -> screener * misses some * i cant copy paste * docs/fix-urls: Updates the Terminal About URLs to match `/develop` (#5720) * update Terminal about URLs and some other broken links * ruff * intro * changing the heading levels * dependency management sections * structure * developer guides * structure * contributor guides * keywords and descriptions * broken urls * cool cards * Cool cards (#5727) * tidy up terminal/content * some more tidy up * fix styling for platform that was missing * more tidy up * improve color for dark and light mode * create new reference card for more basic cards * rename back to menus * implement all index.md for terminal, except reference * improve bot title * more refactoring * fix remaining index * header styling * more styling * heheheheheheeh * Revert "heheheheheheeh" This reverts commit7d095fcfd2. * Ccards (#5733) * links * more links * improved styling and chevron aligned to title * fix index.mdx urls for Terminal * update package.json * update index.mdx * fix generation * spelling * toolkit_extensions * update data extensions * couple of links * add tiingo to data extensions list --------- Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt> Co-authored-by: James Maslek <jmaslek11@gmail.com> * Stock leftover cleanup (#5745) * change to equity in `.md` files * `HistoricalStockSplits`->`HistoricalSplits` * `StockInsiderTrading`->`InsiderTrading` * sorry fmp * `EquityHistorical` cleanup * `EquityNBBO` cleanup * .md leftover * the last of stocks * post-install clarification, fix links * more links * change word * toolkit cleanup * rename 'contributing' to 'development' * Hotfix/urllib to dev group (#5732) * use the urllib3 dependency on the dev group instead * adapt the version script for the nightlies - if it's a nightly the package distribution name will have a different name * add dev dependencies to the dev installation bc of the ci * updating the import on validate_call according to: https://docs.pydantic.dev/latest/concepts/validation_decorator/ the way we were importing it breaks if pydantic=2.5 @montezdesousa * loosing urllib3 version specification on the provider and adding it to platform dev deps * rmeoving urllib from top level deps; and removing --with dev flag * changing to ^ instead * Revert "changing to ^ instead" This reverts commit7300904e9f. * unnecessary dep --------- Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> Co-authored-by: James Maslek <jmaslek11@gmail.com> * feature/v4-bop - Add ECB Balance of Payments (Replaces #5716) (#5726) * add ecb balance of payments * missing __init__.py files * Nasdaq calendar earnings and fix FMP calendar earnings (#5718) Co-authored-by: James Maslek <jmaslek11@gmail.com> * feature/us-treasury-auctions: Adds Treasury Auctions endpoint and provider for US Government Data. (#5746) * add government_us provider and treasury auctions endpoint * black * add param for cusip * move logic for setting default start/end date * Update hub<>platform credentials map (#5749) * update hub<>platform credentials map * typo * Add API settings schema to system settings (#5743) Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> * Skip checking creds (#5737) * skip checking creds * fix bug * ok mypy * add comment * rename required_credentials * fix * fix top_retail bug * don't require creds in some nasdaq fetchers * black * this was not here before * fix tests * update fetcher test * update contributing guidelines * Fix Quote (#5752) * Fix Quote * fixed return type and model validation --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Wrap up renaming global news to world news on a model level (#5750) * Wrap up renaming global news to world news on a model level * cleanup --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * update extensions * some urls * Revert changes to v3 docs --------- Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Ramazan <guvencramazan@yandex.com> Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt> * POST request example * update post example * find symbols * market calendars * codespell * codespell ftw * improve main page light mode --------- Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Ramazan <guvencramazan@yandex.com> Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt> * Add Pro videos to docs + fix CI (#5765) * add pro vids * Update gh-pages.yml * install v4 (#5766) * install v4 * add run on pr * this seems sus * thnx juan * flip * thnx juan * idk * Update index.js * Update Root.tsx * Update index.js * try again * fix front matter * fix description front matter * Revert "fix description front matter" This reverts commitcccc7b2469. * try to fix this mickey * fixed all that mickey @DidierRLopes broke * Update index.js * generate platform fix * black fix --------- Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt> Co-authored-by: tehcoderer <me@tehcoderer.com> Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> * Generate widgets library (#5767) * generate widgets library * Update gh-pages.yml * black * ruff fix * add index to widgets-library * linter * Add support for multiple ticker (#5770) Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Released this code (#5761) * updates after release * bump pytest-recorder * Revert "bump pytest-recorder" This reverts commit245f178a7e. * needs to be in dev group * rerecord yfinance tests * record in us --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Feature/fix platform unit test (#5772) * changed checkout ref * Testing * revert changes * Docs/fix doc generations (#5775) * few changes * Update get_search_results.md * updates * undo build * Update test_generate_docs.py * Update controller_doc_classes.py * Update params_controller.py * Update params_controller.py * Small fix (#5777) This file gets automatically generated * Rename session file (#5771) * rename session file * rename method * Update README.md * placed as note * revert readme change --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * fix github pages deployment (#5780) * small changes (#5781) * Merge provider and core into core (#5774) * small changes - moving provider inside the core * uptade readme * lint * remove old provider readme * leftovers * refactor website examples * ruff * fix nox * relock * fix fails_to_deliver headers * fix for tests that have renamed endpoints * fix discovery * removed test for renamed endpoint * fix broken syntax - test_search_financial_attributes * fix cash/income/balance * fix derivatives tests * fix etf tests * fix news tests * fix regulators * black * wrong test param * sort equity gainers/losers by percent * platform markdown generation import * Hotfix/fix int tests core merge (#5779) * removing tests on old endpoint * removing visualization on old endpoint * fixing equity tests * fixing examples * fix news tests * fix index test * example * add comments * example --------- Co-authored-by: Diogo Sousa <montezdesousa@gmail.com> --------- Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> Co-authored-by: Diogo Sousa <montezdesousa@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * hotfix/fix-technical-output: Include Dates in Output (#5754) * fixes output to include dates * ichimoku * add trading_periods param to cones * add param to integration tests --------- Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> * Feature/platform async (#5763) * init * updates * Update helpers.py * tests * Update helpers.py * Update command_runner.py * Update helpers.py * deps * Update helpers.py * only check `async` if model is specified, revert `qa`, `ta`, and `econometrics` * merge issues * Update command_runner.py * remove typing and type: ignore * fix helpers typing * add aiohttp to core deps, remove from charting * remove @overload * ruff * import helper from source * helpers typing+pylint * black --------- Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Diogo Sousa <montezdesousa@gmail.com> * Feature/general fixes (#5786) * fix mypy * import helper from source * improve missing api key msg * fix * remove dynamic default * rename rest_api_settings file * add comment async/sync * fix bug * Revert "fix bug" This reverts commit7d9a0d2749. * fix bug * hotfix/yfinance-download: Fix Intraday Helper (#5785) * fix yfinance_download intraday helper * fix today getting cutoff --------- Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> * Update Pro documentation (#5784) * fix pro videos to latest ones * small fix * attempt border on pro * Update index.md * Update index.md * Update charting.md * Update homepage.md * Update index.md * Update index.md * Update index.md * Update data-provider.md * Update chat-with-widget.md * Update index.md * Update folders.md * Update grouping.md * Update report.md * Update templates.md * Update advanced-search.md * Update copilot.md * pro images gradient * update images with border * Update news.md * Update news.md * add examples to platform v4 generation/ fixed data model ref titles * fix `data_reference_cards` sort by title * Merge branch 'docs/update-pro-videos' of https://github.com/OpenBB-finance/OpenBBTerminal into docs/update-pro-videos --------- Co-authored-by: tehcoderer <me@tehcoderer.com> * fix `\n` in field descriptions breaks markdown table (#5792) * New Intrinio Endpoints (#5789) * redefined CalendarDividend standard model * fix nasdaq calendar dividend model * removed Filings standard model * add DiscoveryFilings standard model * fix fmp calendar dividend and discovery filing models * add cik description in standard model utils * redefine CompanyFilings standard model * fix fmp company filings model * fix sec company filings model * remove regulators/sec/filings command * redefine InsiderTrading standard model * fix fmp insider trading model * redefine InstitutionalOwnership standard model * fix fmp institutional ownership model * redefine KeyMetrics standard model * fix fmp key metrics model * fix fmp market snapshots model * add attributes standard model and commands * redefine EquityInfo standard model * remove SearchFinancialAttributes standard model file * add new intrinio endpoints * linting * pass standard model description test * fix tests? w/@montezdesousa * pass fmp fetcher tests * re-record sec company filings test * pass intrinio fetcher tests * re-record intrinio insider trading test * index integration test * regulators integration test * equity integration test * fix same owner name in intrinio instituional ownership * re-record intrinio insider training * crypto price historical integration test reduce end_date * Fix hqm (#5796) * Feature/release b2 (#5799) * publish core and extensions * rebuild and force commit package changes * Remove tiingo, finra and wsj from extras --------- Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> * Equity multiples add symbol data field (#5800) * add symbol data field * cleanup * remove limit param from standard model * remove limit from equity integration test * re-recrod fmp and intrinio fetcher tests * fix calendar split (#5804) * Add `symbols` field to standard model data (#5802) * add symbols field to standard model data * fix provider models * re-record polygon fetcher test * fix polygon query alias * re-record polygon fetcher * Hotfix/yfinance-adjusted: Fix for #5798 (#5803) * fix yfinance-adjusted * update test * don't need that transform query param piece * re-record test, etf_historical make adj_close not mandatory * yfinance caching.. * mock cookie and crumb? --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Feature/fred-releases: Adds some FRED functionality to the economy router. (#5793) * fred economic releases search * add FRED functions for series and searching. * codespell * ruff * data description. * replace two functions with one fred_search * rename standard model to fred_series * remove consolidated fred model * return series metadata as warning * recapture test * fill nan with None * small fix (#5810) * remove finra, wsj and goventment-us from built ins (#5806) * Add sector news standard model (#5795) * Add Sector News standard model * Fix test coverage test failing --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> * replace provider error by openbb (#5812) * split -> splits in calendar router (#5814) * Add Historical Dividends to Intrinio inplace of Calendar Dividends (#5813) * HistoricalDividends re-defined * re-define fmp model * add intrinio model * re-record intrinio test * fix integration tests --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * Fix typos (#5808) * fix typo * fix typos * fix typo * fix typos * fix typos * fix typos * fix typo --------- Co-authored-by: Luqman <luqazino@gmail.com> Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> * warn loading error by default (#5818) * hotfix/fmp-insider-trading - Fix FMP Insider Trading (#5817) * fix fmp insider trading * re-capture tests * fix intrinio test * Fix nasdaq top retail working without a key resulting in an error (#5811) * raise error if no api key found * check for empty strings * black * fix test * less verbose --------- Co-authored-by: Diogo Sousa <montezdesousa@gmail.com> Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> * hotfix/fmp-replace-zero: Replace Zero with None in FMP Balance, Cash, Income (#5815) * replace zeros with None in Balance, Cash, Income * black --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Set `level` as default `tag` value for `index.market` in Intrinio (#5801) * set level as default tag value * set limit to 1000 * re-record fetcher test --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * Fix tests (#5819) * fix equity tests - python * remove test for intrinio * remove index.fred and fix tests w/@hjoaquim,@IgorWounds * fix ultima company news model w/@hjoaquim,@IgorWounds * re-record intrinio insider trading w/@hjoaquim,@IgorWounds * adjust endpoint * adjust endpoint * adjust params * fix equity test w/@IgorWounds * re-record * remove ultima test * adding keys to the workflow * typo --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * debuggint int tests (#5823) * debug * debug2 * extra debug step * Another hail mary * add debug * MMMMMbop * didnt import base64 * Other tests with headers * increase timeout to 20 --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Standardize balance, income, cash for Intrinio (#5809) * Fix test coverage test failing * Fix spot rates integration test * Apply the standardization to intrinio balance, income and cash --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: James Maslek <jmaslek11@gmail.com> * Docs/pro new widgets struct (#5805) * Improve widgets library structure * add styling to widgets library images * black linting * update widgets library index generator * update border of docs image * shift grouping Minh suggestion * no ruff in this file * Update chart-from-raw-data.md * lint * add pro to index docs * add workflows to docs * dunno how to spell existent lol * navbar logo to go to root docs * push missing bg * backend for terminal pro repo - Andrew suggestion * update content slightly * no widgets-library content should be pushed, this is generated at runtime * add Rita's vidos + review everything * Feature/release rc0 (#5821) * publish core and extensions * build static * lock openbb * force commit package changes --------- Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Account commands: add option to return user settings (#5825) * Add verbosity to login * Fix tests * Add verbosity for other * pratty=False * docstring --------- Co-authored-by: Diogo Sousa <montezdesousa@gmail.com> * fix: search button? (#5831) * Revamp `openbb-core` README (#5830) * core readme * mentioning query params * fix: second attempt (#5832) * Move pytest dependencies from openbb level to to core dev deps level (#5829) * Move pytest to core dev deps * removing openbb-core from devtools * Fix dev_install script not picking developer dependencies --------- Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt> * Prevent gh-actions from publishing v3 unless explicitly asked to (#5835) * Prevent gh-actions from publishing v3 unless explicitly asked to * ) says: "Wait for meeeeeee!" * Update branch name regex * Revert release-v3 changes * updating to pick up the core folder instead (platform folder was droped) (#5836) * Hotfix/test fix (#5827) * Add verbosity to login * Fix tests * fix dem tests baby --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * Release/4.0.0 (#5837) * pyproject toml and poetry.lock files * static assets * fix link to platform * bump core * 4.0.1 adjustments * Fix merge conflict artifacts in the docs * Sync docs with develop * Sync docs generation with develop * docs/new-working-docs: New working docs branch (#5768) * move old example notebooks to v3 folder, update loadHistoricalPriceData and add findSymbols * Create README.md * Update README.md * Update README.md * Update README.md * Vertical diagram instead * important classes * core dependencies * folder structure * devtools * swap order * fix github pages deploy issue * development index * delete expectations for developers * devtools * obbject stuff * add * installation * hub sync * idk if i committed already * add usage page for financial statements * add link to reference page * syntax * numbers * nearly --> more than * easier to read code blocks * codespell * removing mention to provider * add 'orientation' for to_dict * info card for output user preference * put it in a code block * correct user_settings.json example * syntax corrections * fix sentence * get rid of floating point mathc * get rid of other floating point math * add companion example notebook for financial statements, and new section * historical prices usage page * codespell * add commitment of traders section to usage * add a note * codespell * get rid of equals sign * Cleanup docs. with @the-praxs * install * obbject extend * spell * HeadTitle thingies * Update obbject_extensions.md * Update obbject_extensions.md * typo * Update architectural_considerations.md * point to the TET pattern * optional vs required * reviewing the patterns. removed the --pre flag under the assumption this will be the final docs for the release cc @deeleeramone * add a walkthrough * spelling * Add more in the introduction * validator examples * update Copper-to-Gold notebook example for V4 * Update README.md * QA Caveats w @the-praxs * info on class outputs * merge add data sources and add data points * disclaimer on cookiecutter * add missing import to example * slight syntax change * missing code block * missing import * update intrinio example syntax * intrinio syntax update * urls * core and provider merged * example syntax * grammar * Update API banner link * quick-fix-docs cc @minhhoang1023 * Update pip install command for v3 * remove --pre note block * update landing image --------- Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Luqman <luqazino@gmail.com> Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> * fix docs (#5847) * Small change in extensions doc (#5844) * break one table into 2 * Edit pypi readme * remove extra ``` --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * Google Colab Install Notebook (#5841) * Google Colab Install Notebook Adds example notebook for Google Colab install. * Update README.md * Update README.md Add badge -- won't work until merged into develop * point to develop for nb --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> * Sync merge with main (#5838) * Release/3.2.4 (#5696) * test * ultima description (#5541) * Updating showcase page (#5543) * updating showcase page * use sdk instead * add new bot command autopost docs (#5530) add new bot command autopost docs to docs.openbb.co Co-authored-by: James Maslek <jmaslek11@gmail.com> * Hotfix/ultima improvements (#5553) * tweaks for monetization * fix linting issue * fix: Modify 'load' behavior to append data to existing sheet (#5503) * fix: Modify 'load' behavior to append data to existing sheet Details: - Added logic to detect existing sheet and append data if present. - There is no direct way to append on the sheet, so I am reading the sheet to get the last row number and then writing after that row number. Resolves: #5472 * Fixed 'worksheet not found' error during export to an existing sheet * Changes: * Now if the sheet exists in the xlsx file it will ask the user if he wants to replace/append/create new sheet --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * added platform API integration test to Nightly build (#5571) * Add columns to `stocks/search` (#5565) * Add columns to `stocks/search` isin, cusip, figi, composite_figi, shareclass_figi * Update test_search[False].txt * Update test_search[True].txt * Delete tests/openbb_terminal/stocks/cassettes/test_stocks_helper/test_search.yaml * Create test_search.yaml --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * updating ultima urls (#5587) * fix: A value is trying to be set on a copy of a slice from a DataFrame #5582 (#5591) * Update README.md (#5598) * Hotfix/econometrics export filename fix (#5508) * fix: Modify 'load' behavior to append data to existing sheet Details: - Added logic to detect existing sheet and append data if present. - There is no direct way to append on the sheet, so I am reading the sheet to get the last row number and then writing after that row number. Resolves: #5472 * Added --export option for exporting to a desired file in /econometrics menu * Added a -f/--file option to provide the filename for export. Made -t/--type and -f/--file mutually exclusive. If -f is not given, -t is required and the filename will be generated based on the time and module. * Revert `helper_funcs.py` to original state * Made some arguments not required. * Minor changes asked by @deeleeramone * No sheet name * black --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * FIX #5600 Updated the Twitter logo to X logo (#5601) * Change Ultima paragraph (#5624) * change ultima paragraph * remove old paragraph * Update CONTRIBUTING.md (#5623) * mobile line-brake fixed (#5604) In the mobile view (media max 400px ), the text line "Installation >>" appears broken into smaller segments. Co-authored-by: James Maslek <jmaslek11@gmail.com> * Docs/terminalpro and improvement (#5622) * add first iteration of content for Terminal Pro * Update index.md * Update dashboards.md * Update folders.md * Update grouping.md * Update report.md * Update templates.md * Update quick-start.md * Update index.md * Update index.md * Update home.md * Update news.md * Update index.md * Update index.md * Update index.md * Update data-provider.md * Update chat-with-widget.md * Update data-manipulation.md * Update forecasting.md * fix: images self closing tags * fix: only pro visitors can see pro * inter font * improve SEO content and restructuring * add new package for toggle on tutorials * move folder around * improve main page of each prod * small updates and improvements * fix logo above * small improvement in headtitle for portfolio funcs * fix typos from OpenAI's GPT-4 * fix _category_ json * remove generic SEO words * add script that generates SEO for documentation * add missing file * remove sdk warning message * fix links for andrew --------- Co-authored-by: jose-donato <zmcdonato@gmail.com> Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com> Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> * Add light blue banner, blue when clicking sidebar + fix link in docusaurus.config.js (#5627) * typo * pro docs tab coloring * sidebar selection blue * redirecting missing * fix docs (#5646) * Fix the redirect for intro to the correct url for docs (#5658) * fix the redirect for intro to the correct url for docs * fix code linting --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> * Improve Pro documentation further (#5641) * small improvement * Fix TutorialVideo for mobile view * main page terminal pro docs * jose whelp * placeholder index file that needs to be removed * fix: fixes sidebar, removes unused index.md * update link to api keys * update api keys link * fix hyperlinks in terminal helper * fix a few more links * fix some more links * linter * black linter * improve main docs page for each product * small refactor * header to take to main page of product * run OpenAI script to generate SEO for pro content --------- Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com> * Update folders.md * Update integrate-your-own-backend.md * Update index.md * Update settings.md (#5665) * fix front matter (#5667) * #5633 adding comma every 1000 (#5652) * #5633 adding comma every 1000 * pylint --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * Hotfix/reports model render report sanitize inputs (#5669) * Adding more robust special character handling to create_output_path().Addresses https://github.com/OpenBB-finance/OpenBBTerminal/issues/5299 * Running black linter on code to conform to OBB style guides. --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> * hotfix/fix-gov-histcont: Fix #5650 - /stocks/gov/histcont (#5676) * fix histcont * some cleanup * remove sort line * 12-31 not 12-12 * columns_keep_types * remove space in regex (#5675) * Pin openai (#5685) * Clarified stocks/ta empty recom object message (#5468) * Clarified stocks/ta empty recom object message * black * lint --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> * improved market cap value extraction (#5169) * improved market cap value extraction * pylint --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> * 3.2.3->3.2.4 * Changelogs * new changelog --------- Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Andrew <andrew.kenreich@gmail.com> Co-authored-by: Adi Sai <adithya.sairam1@gmail.com> Co-authored-by: Sandip Saha <sandipsmoto@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: Luqman <luqazino@gmail.com> Co-authored-by: Adwait <111136306+AdwaitSalankar@users.noreply.github.com> Co-authored-by: Abhishek Amar <66067391+abhishek-amar@users.noreply.github.com> Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt> Co-authored-by: professssor <62937125+professssor@users.noreply.github.com> Co-authored-by: Farookh Zaheer Siddiqui <129654632+FarukhS52@users.noreply.github.com> Co-authored-by: MAX SHESTOV <57421753+maxxsh@users.noreply.github.com> Co-authored-by: jose-donato <zmcdonato@gmail.com> Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com> Co-authored-by: Mohamad Fadil <fadil.parves@gmail.com> Co-authored-by: Ramazan <guvencramazan@outlook.com> Co-authored-by: joshuabuildsthings <joshuabuildsthings@users.noreply.github.com> Co-authored-by: wojda <114031148+polooner@users.noreply.github.com> Co-authored-by: Bim Phomthong <118195204+bimbolimbo@users.noreply.github.com> * Fix merge conflict artifacts in the docs * Sync docs with develop * Sync docs generation with develop * Update labels-PR check --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Andrew <andrew.kenreich@gmail.com> Co-authored-by: Adi Sai <adithya.sairam1@gmail.com> Co-authored-by: Sandip Saha <sandipsmoto@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: Luqman <luqazino@gmail.com> Co-authored-by: Adwait <111136306+AdwaitSalankar@users.noreply.github.com> Co-authored-by: Abhishek Amar <66067391+abhishek-amar@users.noreply.github.com> Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt> Co-authored-by: professssor <62937125+professssor@users.noreply.github.com> Co-authored-by: Farookh Zaheer Siddiqui <129654632+FarukhS52@users.noreply.github.com> Co-authored-by: MAX SHESTOV <57421753+maxxsh@users.noreply.github.com> Co-authored-by: jose-donato <zmcdonato@gmail.com> Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com> Co-authored-by: Mohamad Fadil <fadil.parves@gmail.com> Co-authored-by: Ramazan <guvencramazan@outlook.com> Co-authored-by: joshuabuildsthings <joshuabuildsthings@users.noreply.github.com> Co-authored-by: wojda <114031148+polooner@users.noreply.github.com> Co-authored-by: Bim Phomthong <118195204+bimbolimbo@users.noreply.github.com> --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt> Co-authored-by: Andrew <andrew.kenreich@gmail.com> Co-authored-by: Adi Sai <adithya.sairam1@gmail.com> Co-authored-by: Sandip Saha <sandipsmoto@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: Luqman <luqazino@gmail.com> Co-authored-by: Adwait <111136306+AdwaitSalankar@users.noreply.github.com> Co-authored-by: Abhishek Amar <66067391+abhishek-amar@users.noreply.github.com> Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt> Co-authored-by: professssor <62937125+professssor@users.noreply.github.com> Co-authored-by: Farookh Zaheer Siddiqui <129654632+FarukhS52@users.noreply.github.com> Co-authored-by: MAX SHESTOV <57421753+maxxsh@users.noreply.github.com> Co-authored-by: jose-donato <zmcdonato@gmail.com> Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com> Co-authored-by: Mohamad Fadil <fadil.parves@gmail.com> Co-authored-by: Ramazan <guvencramazan@outlook.com> Co-authored-by: joshuabuildsthings <joshuabuildsthings@users.noreply.github.com> Co-authored-by: wojda <114031148+polooner@users.noreply.github.com> Co-authored-by: Bim Phomthong <118195204+bimbolimbo@users.noreply.github.com> Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: Diogo Sousa <montezdesousa@gmail.com> Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> Co-authored-by: tehcoderer <me@tehcoderer.com> Co-authored-by: Ramazan <guvencramazan@yandex.com> Co-authored-by: omahs <73983677+omahs@users.noreply.github.com>
2492 lines
192 KiB
Plaintext
Vendored
2492 lines
192 KiB
Plaintext
Vendored
{
|
||
"nbformat": 4,
|
||
"nbformat_minor": 0,
|
||
"metadata": {
|
||
"colab": {
|
||
"provenance": []
|
||
},
|
||
"kernelspec": {
|
||
"name": "python3",
|
||
"display_name": "Python 3"
|
||
},
|
||
"language_info": {
|
||
"name": "python"
|
||
},
|
||
"widgets": {
|
||
"application/vnd.jupyter.widget-state+json": {
|
||
"1c14db4b3fa04b67a7265adda2672f58": {
|
||
"model_module": "@jupyter-widgets/controls",
|
||
"model_name": "DropdownModel",
|
||
"model_module_version": "2.0.0",
|
||
"state": {
|
||
"_dom_classes": [],
|
||
"_model_module": "@jupyter-widgets/controls",
|
||
"_model_module_version": "2.0.0",
|
||
"_model_name": "DropdownModel",
|
||
"_options_labels": [
|
||
"Cash and cash equivalents",
|
||
"Other short-term investments",
|
||
"Total cash",
|
||
"Net receivables",
|
||
"Inventory",
|
||
"Other current assets",
|
||
"Total current assets",
|
||
"Gross property plant and equipment",
|
||
"Accumulated depreciation",
|
||
"Net property plant and equipment",
|
||
"Equity and other investments",
|
||
"Other long-term assets",
|
||
"Total non-current assets",
|
||
"Total assets",
|
||
"Current debt",
|
||
"Accounts payable",
|
||
"Deferred revenues",
|
||
"Other current liabilities",
|
||
"Total current liabilities",
|
||
"Long-term debt",
|
||
"Other long-term liabilities",
|
||
"Total non-current liabilities",
|
||
"Total liabilities",
|
||
"Common stock",
|
||
"Retained earnings",
|
||
"Accumulated other comprehensive income",
|
||
"Total stockholders' equity",
|
||
"Total liabilities and stockholders' equity"
|
||
],
|
||
"_view_count": null,
|
||
"_view_module": "@jupyter-widgets/controls",
|
||
"_view_module_version": "2.0.0",
|
||
"_view_name": "DropdownView",
|
||
"description": "",
|
||
"description_allow_html": false,
|
||
"disabled": false,
|
||
"index": 2,
|
||
"layout": "IPY_MODEL_5038c42252f245e4906d27a68f23d7cd",
|
||
"style": "IPY_MODEL_ce2de0778cf24736b3ed515792072c94",
|
||
"tabbable": null,
|
||
"tooltip": null
|
||
}
|
||
},
|
||
"5038c42252f245e4906d27a68f23d7cd": {
|
||
"model_module": "@jupyter-widgets/base",
|
||
"model_name": "LayoutModel",
|
||
"model_module_version": "2.0.0",
|
||
"state": {
|
||
"_model_module": "@jupyter-widgets/base",
|
||
"_model_module_version": "2.0.0",
|
||
"_model_name": "LayoutModel",
|
||
"_view_count": null,
|
||
"_view_module": "@jupyter-widgets/base",
|
||
"_view_module_version": "2.0.0",
|
||
"_view_name": "LayoutView",
|
||
"align_content": null,
|
||
"align_items": null,
|
||
"align_self": null,
|
||
"border_bottom": null,
|
||
"border_left": null,
|
||
"border_right": null,
|
||
"border_top": null,
|
||
"bottom": null,
|
||
"display": null,
|
||
"flex": null,
|
||
"flex_flow": null,
|
||
"grid_area": null,
|
||
"grid_auto_columns": null,
|
||
"grid_auto_flow": null,
|
||
"grid_auto_rows": null,
|
||
"grid_column": null,
|
||
"grid_gap": null,
|
||
"grid_row": null,
|
||
"grid_template_areas": null,
|
||
"grid_template_columns": null,
|
||
"grid_template_rows": null,
|
||
"height": null,
|
||
"justify_content": null,
|
||
"justify_items": null,
|
||
"left": null,
|
||
"margin": null,
|
||
"max_height": null,
|
||
"max_width": null,
|
||
"min_height": null,
|
||
"min_width": null,
|
||
"object_fit": null,
|
||
"object_position": null,
|
||
"order": null,
|
||
"overflow": null,
|
||
"padding": null,
|
||
"right": null,
|
||
"top": null,
|
||
"visibility": null,
|
||
"width": null
|
||
}
|
||
},
|
||
"ce2de0778cf24736b3ed515792072c94": {
|
||
"model_module": "@jupyter-widgets/controls",
|
||
"model_name": "DescriptionStyleModel",
|
||
"model_module_version": "2.0.0",
|
||
"state": {
|
||
"_model_module": "@jupyter-widgets/controls",
|
||
"_model_module_version": "2.0.0",
|
||
"_model_name": "DescriptionStyleModel",
|
||
"_view_count": null,
|
||
"_view_module": "@jupyter-widgets/base",
|
||
"_view_module_version": "2.0.0",
|
||
"_view_name": "StyleView",
|
||
"description_width": ""
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"id": "LNE5BHdkQ6cY"
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# You can ignore the red warning messages.\n",
|
||
"# The nightly distribution is built from the develop branch on GitHub every night, and will contain bug fixes not available on PyPI.\n",
|
||
"# To not use the nightly distribution, run `!pip install openbb`\n",
|
||
"# To install locally, follow the instructions here: https://docs.openbb.co/terminal/installation/source\n",
|
||
"\n",
|
||
"!pip install openbb-nightly"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# First, restart the runtime by clicking the button.\n",
|
||
"\n",
|
||
"# Import statements - for many scenarios, the only import needed will be `from openbb_terminal.sdk import openbb`\n",
|
||
"\n",
|
||
"from IPython.display import display\n",
|
||
"from IPython.display import clear_output\n",
|
||
"import ipywidgets as widgets\n",
|
||
"import numpy as np\n",
|
||
"import pandas as pd\n",
|
||
"import pandas_ta as ta\n",
|
||
"from datetime import datetime\n",
|
||
"\n",
|
||
"from openbb_terminal.sdk import openbb\n",
|
||
"from openbb_terminal import OpenBBFigure\n",
|
||
"\n",
|
||
"pd.options.plotting.backend = \"plotly\"\n",
|
||
"\n",
|
||
"# The output of this block can be ignored. The forecast components are not currently compatible with CoLabs.\n",
|
||
"# Documentation is found here: https://docs.openbb.co/sdk/usage/basics\n",
|
||
"# For additional example notebooks, see: https://my.openbb.co/app/sdk/examples\n",
|
||
"# Enter API credentials and generate a personal access token to login remotely: https://my.openbb.co/app/sdk/api-keys"
|
||
],
|
||
"metadata": {
|
||
"id": "YqSodJvmQ87R"
|
||
},
|
||
"execution_count": 3,
|
||
"outputs": []
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# Login with:\n",
|
||
"\n",
|
||
"#openbb.login(token=\"REPLACE_WITH_PAT\")"
|
||
],
|
||
"metadata": {
|
||
"id": "KkwFZdBqpmvr"
|
||
},
|
||
"execution_count": null,
|
||
"outputs": []
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"symbol= \"AAPL\""
|
||
],
|
||
"metadata": {
|
||
"id": "oWTfr457h470"
|
||
},
|
||
"execution_count": 2,
|
||
"outputs": []
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"data = openbb.stocks.load(symbol)[\"Close\"].pct_change(21)\n",
|
||
"data.tail(2)"
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 107
|
||
},
|
||
"id": "Kwc9TSwXd8jm",
|
||
"outputId": "9453751b-5dd1-4961-ab48-8850e89660ef"
|
||
},
|
||
"execution_count": 4,
|
||
"outputs": [
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"Loading Daily data for AAPL with starting period 2020-08-04.\n"
|
||
],
|
||
"text/html": [
|
||
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Loading Daily data for AAPL with starting period 2020-08-04.\n",
|
||
"</pre>\n"
|
||
]
|
||
},
|
||
"metadata": {}
|
||
},
|
||
{
|
||
"output_type": "execute_result",
|
||
"data": {
|
||
"text/plain": [
|
||
"date\n",
|
||
"2023-08-08 -0.046710\n",
|
||
"2023-08-09 -0.045613\n",
|
||
"Name: Close, dtype: float64"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"execution_count": 4
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# Generate output without loading to a variable.\n",
|
||
"\n",
|
||
"openbb.stocks.load(symbol)[\"Close\"].pct_change(21).plot()"
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 559
|
||
},
|
||
"id": "BgmixSVBYd_N",
|
||
"outputId": "bdcb310f-027f-43f9-9fa2-d63114326ebd"
|
||
},
|
||
"execution_count": 5,
|
||
"outputs": [
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"Loading Daily data for AAPL with starting period 2020-08-04.\n"
|
||
],
|
||
"text/html": [
|
||
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Loading Daily data for AAPL with starting period 2020-08-04.\n",
|
||
"</pre>\n"
|
||
]
|
||
},
|
||
"metadata": {}
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/html": [
|
||
"<html>\n",
|
||
"<head><meta charset=\"utf-8\" /></head>\n",
|
||
"<body>\n",
|
||
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
|
||
" <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script> <div id=\"a085f1e9-8822-4c42-9fb1-bee9c04de07a\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"a085f1e9-8822-4c42-9fb1-bee9c04de07a\")) { Plotly.newPlot( \"a085f1e9-8822-4c42-9fb1-bee9c04de07a\", [{\"hovertemplate\":\"variable=Close\\u003cbr\\u003edate=%{x}\\u003cbr\\u003evalue=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"Close\",\"line\":{\"color\":\"#ffed00\",\"dash\":\"solid\"},\"marker\":{\"symbol\":\"circle\"},\"mode\":\"lines\",\"name\":\"Close\",\"orientation\":\"v\",\"showlegend\":true,\"x\":[\"2020-08-04T00:00:00\",\"2020-08-05T00:00:00\",\"2020-08-06T00:00:00\",\"2020-08-07T00:00:00\",\"2020-08-10T00:00:00\",\"2020-08-11T00:00:00\",\"2020-08-12T00:00:00\",\"2020-08-13T00:00:00\",\"2020-08-14T00:00:00\",\"2020-08-17T00:00:00\",\"2020-08-18T00:00:00\",\"2020-08-19T00:00:00\",\"2020-08-20T00:00:00\",\"2020-08-21T00:00:00\",\"2020-08-24T00:00:00\",\"2020-08-25T00:00:00\",\"2020-08-26T00:00:00\",\"2020-08-27T00:00:00\",\"2020-08-28T00:00:00\",\"2020-08-31T00:00:00\",\"2020-09-01T00:00:00\",\"2020-09-02T00:00:00\",\"2020-09-03T00:00:00\",\"2020-09-04T00:00:00\",\"2020-09-08T00:00:00\",\"2020-09-09T00:00:00\",\"2020-09-10T00:00:00\",\"2020-09-11T00:00:00\",\"2020-09-14T00:00:00\",\"2020-09-15T00:00:00\",\"2020-09-16T00:00:00\",\"2020-09-17T00:00:00\",\"2020-09-18T00:00:00\",\"2020-09-21T00:00:00\",\"2020-09-22T00:00:00\",\"2020-09-23T00:00:00\",\"2020-09-24T00:00:00\",\"2020-09-25T00:00:00\",\"2020-09-28T00:00:00\",\"2020-09-29T00:00:00\",\"2020-09-30T00:00:00\",\"2020-10-01T00:00:00\",\"2020-10-02T00:00:00\",\"2020-10-05T00:00:00\",\"2020-10-06T00:00:00\",\"2020-10-07T00:00:00\",\"2020-10-08T00:00:00\",\"2020-10-09T00:00:00\",\"2020-10-12T00:00:00\",\"2020-10-13T00:00:00\",\"2020-10-14T00:00:00\",\"2020-10-15T00:00:00\",\"2020-10-16T00:00:00\",\"2020-10-19T00:00:00\",\"2020-10-20T00:00:00\",\"2020-10-21T00:00:00\",\"2020-10-22T00:00:00\",\"2020-10-23T00:00:00\",\"2020-10-26T00:00:00\",\"2020-10-27T00:00:00\",\"2020-10-28T00:00:00\",\"2020-10-29T00:00:00\",\"2020-10-30T00:00:00\",\"2020-11-02T00:00:00\",\"2020-11-03T00:00:00\",\"2020-11-04T00:00:00\",\"2020-11-05T00:00:00\",\"2020-11-06T00:00:00\",\"2020-11-09T00:00:00\",\"2020-11-10T00:00:00\",\"2020-11-11T00:00:00\",\"2020-11-12T00:00:00\",\"2020-11-13T00:00:00\",\"2020-11-16T00:00:00\",\"2020-11-17T00:00:00\",\"2020-11-18T00:00:00\",\"2020-11-19T00:00:00\",\"2020-11-20T00:00:00\",\"2020-11-23T00:00:00\",\"2020-11-24T00:00:00\",\"2020-11-25T00:00:00\",\"2020-11-27T00:00:00\",\"2020-11-30T00:00:00\",\"2020-12-01T00:00:00\",\"2020-12-02T00:00:00\",\"2020-12-03T00:00:00\",\"2020-12-04T00:00:00\",\"2020-12-07T00:00:00\",\"2020-12-08T00:00:00\",\"2020-12-09T00:00:00\",\"2020-12-10T00:00:00\",\"2020-12-11T00:00:00\",\"2020-12-14T00:00:00\",\"2020-12-15T00:00:00\",\"2020-12-16T00:00:00\",\"2020-12-17T00:00:00\",\"2020-12-18T00:00:00\",\"2020-12-21T00:00:00\",\"2020-12-22T00:00:00\",\"2020-12-23T00:00:00\",\"2020-12-24T00:00:00\",\"2020-12-28T00:00:00\",\"2020-12-29T00:00:00\",\"2020-12-30T00:00:00\",\"2020-12-31T00:00:00\",\"2021-01-04T00:00:00\",\"2021-01-05T00:00:00\",\"2021-01-06T00:00:00\",\"2021-01-07T00:00:00\",\"2021-01-08T00:00:00\",\"2021-01-11T00:00:00\",\"2021-01-12T00:00:00\",\"2021-01-13T00:00:00\",\"2021-01-14T00:00:00\",\"2021-01-15T00:00:00\",\"2021-01-19T00:00:00\",\"2021-01-20T00:00:00\",\"2021-01-21T00:00:00\",\"2021-01-22T00:00:00\",\"2021-01-25T00:00:00\",\"2021-01-26T00:00:00\",\"2021-01-27T00:00:00\",\"2021-01-28T00:00:00\",\"2021-01-29T00:00:00\",\"2021-02-01T00:00:00\",\"2021-02-02T00:00:00\",\"2021-02-03T00:00:00\",\"2021-02-04T00:00:00\",\"2021-02-05T00:00:00\",\"2021-02-08T00:00:00\",\"2021-02-09T00:00:00\",\"2021-02-10T00:00:00\",\"2021-02-11T00:00:00\",\"2021-02-12T00:00:00\",\"2021-02-16T00:00:00\",\"2021-02-17T00:00:00\",\"2021-02-18T00:00:00\",\"2021-02-19T00:00:00\",\"2021-02-22T00:00:00\",\"2021-02-23T00:00:00\",\"2021-02-24T00:00:00\",\"2021-02-25T00:00:00\",\"2021-02-26T00:00:00\",\"2021-03-01T00:00:00\",\"2021-03-02T00:00:00\",\"2021-03-03T00:00:00\",\"2021-03-04T00:00:00\",\"2021-03-05T00:00:00\",\"2021-03-08T00:00:00\",\"2021-03-09T00:00:00\",\"2021-03-10T00:00:00\",\"2021-03-11T00:00:00\",\"2021-03-12T00:00:00\",\"2021-03-15T00:00:00\",\"2021-03-16T00:00:00\",\"2021-03-17T00:00:00\",\"2021-03-18T00:00:00\",\"2021-03-19T00:00:00\",\"2021-03-22T00:00:00\",\"2021-03-23T00:00:00\",\"2021-03-24T00:00:00\",\"2021-03-25T00:00:00\",\"2021-03-26T00:00:00\",\"2021-03-29T00:00:00\",\"2021-03-30T00:00:00\",\"2021-03-31T00:00:00\",\"2021-04-01T00:00:00\",\"2021-04-05T00:00:00\",\"2021-04-06T00:00:00\",\"2021-04-07T00:00:00\",\"2021-04-08T00:00:00\",\"2021-04-09T00:00:00\",\"2021-04-12T00:00:00\",\"2021-04-13T00:00:00\",\"2021-04-14T00:00:00\",\"2021-04-15T00:00:00\",\"2021-04-16T00:00:00\",\"2021-04-19T00:00:00\",\"2021-04-20T00:00:00\",\"2021-04-21T00:00:00\",\"2021-04-22T00:00:00\",\"2021-04-23T00:00:00\",\"2021-04-26T00:00:00\",\"2021-04-27T00:00:00\",\"2021-04-28T00:00:00\",\"2021-04-29T00:00:00\",\"2021-04-30T00:00:00\",\"2021-05-03T00:00:00\",\"2021-05-04T00:00:00\",\"2021-05-05T00:00:00\",\"2021-05-06T00:00:00\",\"2021-05-07T00:00:00\",\"2021-05-10T00:00:00\",\"2021-05-11T00:00:00\",\"2021-05-12T00:00:00\",\"2021-05-13T00:00:00\",\"2021-05-14T00:00:00\",\"2021-05-17T00:00:00\",\"2021-05-18T00:00:00\",\"2021-05-19T00:00:00\",\"2021-05-20T00:00:00\",\"2021-05-21T00:00:00\",\"2021-05-24T00:00:00\",\"2021-05-25T00:00:00\",\"2021-05-26T00:00:00\",\"2021-05-27T00:00:00\",\"2021-05-28T00:00:00\",\"2021-06-01T00:00:00\",\"2021-06-02T00:00:00\",\"2021-06-03T00:00:00\",\"2021-06-04T00:00:00\",\"2021-06-07T00:00:00\",\"2021-06-08T00:00:00\",\"2021-06-09T00:00:00\",\"2021-06-10T00:00:00\",\"2021-06-11T00:00:00\",\"2021-06-14T00:00:00\",\"2021-06-15T00:00:00\",\"2021-06-16T00:00:00\",\"2021-06-17T00:00:00\",\"2021-06-18T00:00:00\",\"2021-06-21T00:00:00\",\"2021-06-22T00:00:00\",\"2021-06-23T00:00:00\",\"2021-06-24T00:00:00\",\"2021-06-25T00:00:00\",\"2021-06-28T00:00:00\",\"2021-06-29T00:00:00\",\"2021-06-30T00:00:00\",\"2021-07-01T00:00:00\",\"2021-07-02T00:00:00\",\"2021-07-06T00:00:00\",\"2021-07-07T00:00:00\",\"2021-07-08T00:00:00\",\"2021-07-09T00:00:00\",\"2021-07-12T00:00:00\",\"2021-07-13T00:00:00\",\"2021-07-14T00:00:00\",\"2021-07-15T00:00:00\",\"2021-07-16T00:00:00\",\"2021-07-19T00:00:00\",\"2021-07-20T00:00:00\",\"2021-07-21T00:00:00\",\"2021-07-22T00:00:00\",\"2021-07-23T00:00:00\",\"2021-07-26T00:00:00\",\"2021-07-27T00:00:00\",\"2021-07-28T00:00:00\",\"2021-07-29T00:00:00\",\"2021-07-30T00:00:00\",\"2021-08-02T00:00:00\",\"2021-08-03T00:00:00\",\"2021-08-04T00:00:00\",\"2021-08-05T00:00:00\",\"2021-08-06T00:00:00\",\"2021-08-09T00:00:00\",\"2021-08-10T00:00:00\",\"2021-08-11T00:00:00\",\"2021-08-12T00:00:00\",\"2021-08-13T00:00:00\",\"2021-08-16T00:00:00\",\"2021-08-17T00:00:00\",\"2021-08-18T00:00:00\",\"2021-08-19T00:00:00\",\"2021-08-20T00:00:00\",\"2021-08-23T00:00:00\",\"2021-08-24T00:00:00\",\"2021-08-25T00:00:00\",\"2021-08-26T00:00:00\",\"2021-08-27T00:00:00\",\"2021-08-30T00:00:00\",\"2021-08-31T00:00:00\",\"2021-09-01T00:00:00\",\"2021-09-02T00:00:00\",\"2021-09-03T00:00:00\",\"2021-09-07T00:00:00\",\"2021-09-08T00:00:00\",\"2021-09-09T00:00:00\",\"2021-09-10T00:00:00\",\"2021-09-13T00:00:00\",\"2021-09-14T00:00:00\",\"2021-09-15T00:00:00\",\"2021-09-16T00:00:00\",\"2021-09-17T00:00:00\",\"2021-09-20T00:00:00\",\"2021-09-21T00:00:00\",\"2021-09-22T00:00:00\",\"2021-09-23T00:00:00\",\"2021-09-24T00:00:00\",\"2021-09-27T00:00:00\",\"2021-09-28T00:00:00\",\"2021-09-29T00:00:00\",\"2021-09-30T00:00:00\",\"2021-10-01T00:00:00\",\"2021-10-04T00:00:00\",\"2021-10-05T00:00:00\",\"2021-10-06T00:00:00\",\"2021-10-07T00:00:00\",\"2021-10-08T00:00:00\",\"2021-10-11T00:00:00\",\"2021-10-12T00:00:00\",\"2021-10-13T00:00:00\",\"2021-10-14T00:00:00\",\"2021-10-15T00:00:00\",\"2021-10-18T00:00:00\",\"2021-10-19T00:00:00\",\"2021-10-20T00:00:00\",\"2021-10-21T00:00:00\",\"2021-10-22T00:00:00\",\"2021-10-25T00:00:00\",\"2021-10-26T00:00:00\",\"2021-10-27T00:00:00\",\"2021-10-28T00:00:00\",\"2021-10-29T00:00:00\",\"2021-11-01T00:00:00\",\"2021-11-02T00:00:00\",\"2021-11-03T00:00:00\",\"2021-11-04T00:00:00\",\"2021-11-05T00:00:00\",\"2021-11-08T00:00:00\",\"2021-11-09T00:00:00\",\"2021-11-10T00:00:00\",\"2021-11-11T00:00:00\",\"2021-11-12T00:00:00\",\"2021-11-15T00:00:00\",\"2021-11-16T00:00:00\",\"2021-11-17T00:00:00\",\"2021-11-18T00:00:00\",\"2021-11-19T00:00:00\",\"2021-11-22T00:00:00\",\"2021-11-23T00:00:00\",\"2021-11-24T00:00:00\",\"2021-11-26T00:00:00\",\"2021-11-29T00:00:00\",\"2021-11-30T00:00:00\",\"2021-12-01T00:00:00\",\"2021-12-02T00:00:00\",\"2021-12-03T00:00:00\",\"2021-12-06T00:00:00\",\"2021-12-07T00:00:00\",\"2021-12-08T00:00:00\",\"2021-12-09T00:00:00\",\"2021-12-10T00:00:00\",\"2021-12-13T00:00:00\",\"2021-12-14T00:00:00\",\"2021-12-15T00:00:00\",\"2021-12-16T00:00:00\",\"2021-12-17T00:00:00\",\"2021-12-20T00:00:00\",\"2021-12-21T00:00:00\",\"2021-12-22T00:00:00\",\"2021-12-23T00:00:00\",\"2021-12-27T00:00:00\",\"2021-12-28T00:00:00\",\"2021-12-29T00:00:00\",\"2021-12-30T00:00:00\",\"2021-12-31T00:00:00\",\"2022-01-03T00:00:00\",\"2022-01-04T00:00:00\",\"2022-01-05T00:00:00\",\"2022-01-06T00:00:00\",\"2022-01-07T00:00:00\",\"2022-01-10T00:00:00\",\"2022-01-11T00:00:00\",\"2022-01-12T00:00:00\",\"2022-01-13T00:00:00\",\"2022-01-14T00:00:00\",\"2022-01-18T00:00:00\",\"2022-01-19T00:00:00\",\"2022-01-20T00:00:00\",\"2022-01-21T00:00:00\",\"2022-01-24T00:00:00\",\"2022-01-25T00:00:00\",\"2022-01-26T00:00:00\",\"2022-01-27T00:00:00\",\"2022-01-28T00:00:00\",\"2022-01-31T00:00:00\",\"2022-02-01T00:00:00\",\"2022-02-02T00:00:00\",\"2022-02-03T00:00:00\",\"2022-02-04T00:00:00\",\"2022-02-07T00:00:00\",\"2022-02-08T00:00:00\",\"2022-02-09T00:00:00\",\"2022-02-10T00:00:00\",\"2022-02-11T00:00:00\",\"2022-02-14T00:00:00\",\"2022-02-15T00:00:00\",\"2022-02-16T00:00:00\",\"2022-02-17T00:00:00\",\"2022-02-18T00:00:00\",\"2022-02-22T00:00:00\",\"2022-02-23T00:00:00\",\"2022-02-24T00:00:00\",\"2022-02-25T00:00:00\",\"2022-02-28T00:00:00\",\"2022-03-01T00:00:00\",\"2022-03-02T00:00:00\",\"2022-03-03T00:00:00\",\"2022-03-04T00:00:00\",\"2022-03-07T00:00:00\",\"2022-03-08T00:00:00\",\"2022-03-09T00:00:00\",\"2022-03-10T00:00:00\",\"2022-03-11T00:00:00\",\"2022-03-14T00:00:00\",\"2022-03-15T00:00:00\",\"2022-03-16T00:00:00\",\"2022-03-17T00:00:00\",\"2022-03-18T00:00:00\",\"2022-03-21T00:00:00\",\"2022-03-22T00:00:00\",\"2022-03-23T00:00:00\",\"2022-03-24T00:00:00\",\"2022-03-25T00:00:00\",\"2022-03-28T00:00:00\",\"2022-03-29T00:00:00\",\"2022-03-30T00:00:00\",\"2022-03-31T00:00:00\",\"2022-04-01T00:00:00\",\"2022-04-04T00:00:00\",\"2022-04-05T00:00:00\",\"2022-04-06T00:00:00\",\"2022-04-07T00:00:00\",\"2022-04-08T00:00:00\",\"2022-04-11T00:00:00\",\"2022-04-12T00:00:00\",\"2022-04-13T00:00:00\",\"2022-04-14T00:00:00\",\"2022-04-18T00:00:00\",\"2022-04-19T00:00:00\",\"2022-04-20T00:00:00\",\"2022-04-21T00:00:00\",\"2022-04-22T00:00:00\",\"2022-04-25T00:00:00\",\"2022-04-26T00:00:00\",\"2022-04-27T00:00:00\",\"2022-04-28T00:00:00\",\"2022-04-29T00:00:00\",\"2022-05-02T00:00:00\",\"2022-05-03T00:00:00\",\"2022-05-04T00:00:00\",\"2022-05-05T00:00:00\",\"2022-05-06T00:00:00\",\"2022-05-09T00:00:00\",\"2022-05-10T00:00:00\",\"2022-05-11T00:00:00\",\"2022-05-12T00:00:00\",\"2022-05-13T00:00:00\",\"2022-05-16T00:00:00\",\"2022-05-17T00:00:00\",\"2022-05-18T00:00:00\",\"2022-05-19T00:00:00\",\"2022-05-20T00:00:00\",\"2022-05-23T00:00:00\",\"2022-05-24T00:00:00\",\"2022-05-25T00:00:00\",\"2022-05-26T00:00:00\",\"2022-05-27T00:00:00\",\"2022-05-31T00:00:00\",\"2022-06-01T00:00:00\",\"2022-06-02T00:00:00\",\"2022-06-03T00:00:00\",\"2022-06-06T00:00:00\",\"2022-06-07T00:00:00\",\"2022-06-08T00:00:00\",\"2022-06-09T00:00:00\",\"2022-06-10T00:00:00\",\"2022-06-13T00:00:00\",\"2022-06-14T00:00:00\",\"2022-06-15T00:00:00\",\"2022-06-16T00:00:00\",\"2022-06-17T00:00:00\",\"2022-06-21T00:00:00\",\"2022-06-22T00:00:00\",\"2022-06-23T00:00:00\",\"2022-06-24T00:00:00\",\"2022-06-27T00:00:00\",\"2022-06-28T00:00:00\",\"2022-06-29T00:00:00\",\"2022-06-30T00:00:00\",\"2022-07-01T00:00:00\",\"2022-07-05T00:00:00\",\"2022-07-06T00:00:00\",\"2022-07-07T00:00:00\",\"2022-07-08T00:00:00\",\"2022-07-11T00:00:00\",\"2022-07-12T00:00:00\",\"2022-07-13T00:00:00\",\"2022-07-14T00:00:00\",\"2022-07-15T00:00:00\",\"2022-07-18T00:00:00\",\"2022-07-19T00:00:00\",\"2022-07-20T00:00:00\",\"2022-07-21T00:00:00\",\"2022-07-22T00:00:00\",\"2022-07-25T00:00:00\",\"2022-07-26T00:00:00\",\"2022-07-27T00:00:00\",\"2022-07-28T00:00:00\",\"2022-07-29T00:00:00\",\"2022-08-01T00:00:00\",\"2022-08-02T00:00:00\",\"2022-08-03T00:00:00\",\"2022-08-04T00:00:00\",\"2022-08-05T00:00:00\",\"2022-08-08T00:00:00\",\"2022-08-09T00:00:00\",\"2022-08-10T00:00:00\",\"2022-08-11T00:00:00\",\"2022-08-12T00:00:00\",\"2022-08-15T00:00:00\",\"2022-08-16T00:00:00\",\"2022-08-17T00:00:00\",\"2022-08-18T00:00:00\",\"2022-08-19T00:00:00\",\"2022-08-22T00:00:00\",\"2022-08-23T00:00:00\",\"2022-08-24T00:00:00\",\"2022-08-25T00:00:00\",\"2022-08-26T00:00:00\",\"2022-08-29T00:00:00\",\"2022-08-30T00:00:00\",\"2022-08-31T00:00:00\",\"2022-09-01T00:00:00\",\"2022-09-02T00:00:00\",\"2022-09-06T00:00:00\",\"2022-09-07T00:00:00\",\"2022-09-08T00:00:00\",\"2022-09-09T00:00:00\",\"2022-09-12T00:00:00\",\"2022-09-13T00:00:00\",\"2022-09-14T00:00:00\",\"2022-09-15T00:00:00\",\"2022-09-16T00:00:00\",\"2022-09-19T00:00:00\",\"2022-09-20T00:00:00\",\"2022-09-21T00:00:00\",\"2022-09-22T00:00:00\",\"2022-09-23T00:00:00\",\"2022-09-26T00:00:00\",\"2022-09-27T00:00:00\",\"2022-09-28T00:00:00\",\"2022-09-29T00:00:00\",\"2022-09-30T00:00:00\",\"2022-10-03T00:00:00\",\"2022-10-04T00:00:00\",\"2022-10-05T00:00:00\",\"2022-10-06T00:00:00\",\"2022-10-07T00:00:00\",\"2022-10-10T00:00:00\",\"2022-10-11T00:00:00\",\"2022-10-12T00:00:00\",\"2022-10-13T00:00:00\",\"2022-10-14T00:00:00\",\"2022-10-17T00:00:00\",\"2022-10-18T00:00:00\",\"2022-10-19T00:00:00\",\"2022-10-20T00:00:00\",\"2022-10-21T00:00:00\",\"2022-10-24T00:00:00\",\"2022-10-25T00:00:00\",\"2022-10-26T00:00:00\",\"2022-10-27T00:00:00\",\"2022-10-28T00:00:00\",\"2022-10-31T00:00:00\",\"2022-11-01T00:00:00\",\"2022-11-02T00:00:00\",\"2022-11-03T00:00:00\",\"2022-11-04T00:00:00\",\"2022-11-07T00:00:00\",\"2022-11-08T00:00:00\",\"2022-11-09T00:00:00\",\"2022-11-10T00:00:00\",\"2022-11-11T00:00:00\",\"2022-11-14T00:00:00\",\"2022-11-15T00:00:00\",\"2022-11-16T00:00:00\",\"2022-11-17T00:00:00\",\"2022-11-18T00:00:00\",\"2022-11-21T00:00:00\",\"2022-11-22T00:00:00\",\"2022-11-23T00:00:00\",\"2022-11-25T00:00:00\",\"2022-11-28T00:00:00\",\"2022-11-29T00:00:00\",\"2022-11-30T00:00:00\",\"2022-12-01T00:00:00\",\"2022-12-02T00:00:00\",\"2022-12-05T00:00:00\",\"2022-12-06T00:00:00\",\"2022-12-07T00:00:00\",\"2022-12-08T00:00:00\",\"2022-12-09T00:00:00\",\"2022-12-12T00:00:00\",\"2022-12-13T00:00:00\",\"2022-12-14T00:00:00\",\"2022-12-15T00:00:00\",\"2022-12-16T00:00:00\",\"2022-12-19T00:00:00\",\"2022-12-20T00:00:00\",\"2022-12-21T00:00:00\",\"2022-12-22T00:00:00\",\"2022-12-23T00:00:00\",\"2022-12-27T00:00:00\",\"2022-12-28T00:00:00\",\"2022-12-29T00:00:00\",\"2022-12-30T00:00:00\",\"2023-01-03T00:00:00\",\"2023-01-04T00:00:00\",\"2023-01-05T00:00:00\",\"2023-01-06T00:00:00\",\"2023-01-09T00:00:00\",\"2023-01-10T00:00:00\",\"2023-01-11T00:00:00\",\"2023-01-12T00:00:00\",\"2023-01-13T00:00:00\",\"2023-01-17T00:00:00\",\"2023-01-18T00:00:00\",\"2023-01-19T00:00:00\",\"2023-01-20T00:00:00\",\"2023-01-23T00:00:00\",\"2023-01-24T00:00:00\",\"2023-01-25T00:00:00\",\"2023-01-26T00:00:00\",\"2023-01-27T00:00:00\",\"2023-01-30T00:00:00\",\"2023-01-31T00:00:00\",\"2023-02-01T00:00:00\",\"2023-02-02T00:00:00\",\"2023-02-03T00:00:00\",\"2023-02-06T00:00:00\",\"2023-02-07T00:00:00\",\"2023-02-08T00:00:00\",\"2023-02-09T00:00:00\",\"2023-02-10T00:00:00\",\"2023-02-13T00:00:00\",\"2023-02-14T00:00:00\",\"2023-02-15T00:00:00\",\"2023-02-16T00:00:00\",\"2023-02-17T00:00:00\",\"2023-02-21T00:00:00\",\"2023-02-22T00:00:00\",\"2023-02-23T00:00:00\",\"2023-02-24T00:00:00\",\"2023-02-27T00:00:00\",\"2023-02-28T00:00:00\",\"2023-03-01T00:00:00\",\"2023-03-02T00:00:00\",\"2023-03-03T00:00:00\",\"2023-03-06T00:00:00\",\"2023-03-07T00:00:00\",\"2023-03-08T00:00:00\",\"2023-03-09T00:00:00\",\"2023-03-10T00:00:00\",\"2023-03-13T00:00:00\",\"2023-03-14T00:00:00\",\"2023-03-15T00:00:00\",\"2023-03-16T00:00:00\",\"2023-03-17T00:00:00\",\"2023-03-20T00:00:00\",\"2023-03-21T00:00:00\",\"2023-03-22T00:00:00\",\"2023-03-23T00:00:00\",\"2023-03-24T00:00:00\",\"2023-03-27T00:00:00\",\"2023-03-28T00:00:00\",\"2023-03-29T00:00:00\",\"2023-03-30T00:00:00\",\"2023-03-31T00:00:00\",\"2023-04-03T00:00:00\",\"2023-04-04T00:00:00\",\"2023-04-05T00:00:00\",\"2023-04-06T00:00:00\",\"2023-04-10T00:00:00\",\"2023-04-11T00:00:00\",\"2023-04-12T00:00:00\",\"2023-04-13T00:00:00\",\"2023-04-14T00:00:00\",\"2023-04-17T00:00:00\",\"2023-04-18T00:00:00\",\"2023-04-19T00:00:00\",\"2023-04-20T00:00:00\",\"2023-04-21T00:00:00\",\"2023-04-24T00:00:00\",\"2023-04-25T00:00:00\",\"2023-04-26T00:00:00\",\"2023-04-27T00:00:00\",\"2023-04-28T00:00:00\",\"2023-05-01T00:00:00\",\"2023-05-02T00:00:00\",\"2023-05-03T00:00:00\",\"2023-05-04T00:00:00\",\"2023-05-05T00:00:00\",\"2023-05-08T00:00:00\",\"2023-05-09T00:00:00\",\"2023-05-10T00:00:00\",\"2023-05-11T00:00:00\",\"2023-05-12T00:00:00\",\"2023-05-15T00:00:00\",\"2023-05-16T00:00:00\",\"2023-05-17T00:00:00\",\"2023-05-18T00:00:00\",\"2023-05-19T00:00:00\",\"2023-05-22T00:00:00\",\"2023-05-23T00:00:00\",\"2023-05-24T00:00:00\",\"2023-05-25T00:00:00\",\"2023-05-26T00:00:00\",\"2023-05-30T00:00:00\",\"2023-05-31T00:00:00\",\"2023-06-01T00:00:00\",\"2023-06-02T00:00:00\",\"2023-06-05T00:00:00\",\"2023-06-06T00:00:00\",\"2023-06-07T00:00:00\",\"2023-06-08T00:00:00\",\"2023-06-09T00:00:00\",\"2023-06-12T00:00:00\",\"2023-06-13T00:00:00\",\"2023-06-14T00:00:00\",\"2023-06-15T00:00:00\",\"2023-06-16T00:00:00\",\"2023-06-20T00:00:00\",\"2023-06-21T00:00:00\",\"2023-06-22T00:00:00\",\"2023-06-23T00:00:00\",\"2023-06-26T00:00:00\",\"2023-06-27T00:00:00\",\"2023-06-28T00:00:00\",\"2023-06-29T00:00:00\",\"2023-06-30T00:00:00\",\"2023-07-03T00:00:00\",\"2023-07-05T00:00:00\",\"2023-07-06T00:00:00\",\"2023-07-07T00:00:00\",\"2023-07-10T00:00:00\",\"2023-07-11T00:00:00\",\"2023-07-12T00:00:00\",\"2023-07-13T00:00:00\",\"2023-07-14T00:00:00\",\"2023-07-17T00:00:00\",\"2023-07-18T00:00:00\",\"2023-07-19T00:00:00\",\"2023-07-20T00:00:00\",\"2023-07-21T00:00:00\",\"2023-07-24T00:00:00\",\"2023-07-25T00:00:00\",\"2023-07-26T00:00:00\",\"2023-07-27T00:00:00\",\"2023-07-28T00:00:00\",\"2023-07-31T00:00:00\",\"2023-08-01T00:00:00\",\"2023-08-02T00:00:00\",\"2023-08-03T00:00:00\",\"2023-08-04T00:00:00\",\"2023-08-07T00:00:00\",\"2023-08-08T00:00:00\",\"2023-08-09T00:00:00\"],\"xaxis\":\"x\",\"y\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,0.20035466608901986,0.1002653213195166,0.06387568122721254,0.01536725511369208,0.04073988519810556,0.0376229585278125,-0.008937335692571935,0.0030432436409852937,0.0055044205611956,-0.021617247557944586,-0.04519192322332721,-0.07663729297507127,-0.069287672030653,-0.10098897179938504,-0.1488787018370591,-0.133026146698914,-0.1125690188571945,-0.0803936701436796,-0.08587214749510952,-0.10252636006971283,-0.1296020225781489,-0.13987811040429943,-0.03623414905975131,-0.06448417921469984,0.02003202285492378,-0.020030748282929944,0.030663479458803433,0.1107144741932522,0.04975738069999025,0.04890088941651349,0.07651827402114808,0.07866575315077928,0.08554870069171816,0.06749634901480661,0.04525556833675326,0.08056394836266345,0.06301964522169734,0.024670543927649113,0.014265918342684536,-0.025331002682831616,-0.004231123239945567,-0.06789973526909221,-0.03760405688356039,-0.052017389932176084,0.015818205149226383,0.034323876362650996,0.03413744914833816,-0.0038413422084435656,-0.0661570358908341,-0.011592576508161034,-0.014641124811767936,-0.010307753997293334,0.012498447266295898,0.031177511763480492,0.006157998278593535,0.016896361421369743,0.015485300735239571,-0.008636682689617037,0.002770140251876718,-0.0031717827224391204,0.05027998858519078,0.03412612993408781,0.12926434723894542,0.1335144471488301,0.11510421846545782,0.0653408107464859,0.04144755903442898,0.04793986598828992,0.04693949732317226,0.06268841184522422,0.02443718117907001,0.021558741961225536,0.07227907537853939,0.06242738892488853,0.0779797279325336,0.07311712688116745,0.08083265475767476,0.12391352923451882,0.15028571922163247,0.1458710802283949,0.17805732914039663,0.15678868320895245,0.12322527195948396,0.08124177114855047,0.05142998969152912,0.06564164535597117,0.03558282099781951,0.05793944754777458,0.061666073984645964,0.05912286089804608,0.04511543036462973,0.0692754530442743,0.05854817346938135,-0.005786647790405719,0.00015637180574534781,0.025874306164117566,0.08060942641141233,0.08453559439533276,0.08371232547259333,0.09315806869899057,0.07645688291259933,0.002926417189100805,-0.02157617866962347,0.003140933040102434,0.017333831784776432,0.03500487279949893,0.048698546821933864,0.08186677447983914,0.04731568787239393,0.03152753764537253,0.05126633104043177,0.05071362220344744,0.03577257108469922,0.034745457990125406,0.03063949181820136,0.016223415951694964,-0.014890230836524077,-0.07804288975449136,-0.09363579265977195,-0.12162518288600899,-0.1535988771003659,-0.1451414580520699,-0.06644569915431353,-0.050416906620592394,-0.08869546453690391,-0.10875239190384356,-0.09212011956178257,-0.1518022059776697,-0.11458015080735051,-0.1236578857247157,-0.1033011470698153,-0.10606401353058736,-0.08243901099278361,-0.07239415671500282,-0.06329316811190333,-0.07879848784510834,-0.07493652215566915,-0.0498959850379439,-0.027460191546455404,-0.045844656647782034,-0.03797376689439458,0.0018182995202560281,0.0010720486445978672,-0.06174190481768449,-0.02373724902189356,0.007701125827390909,0.04803110476722172,0.03944987913395703,0.09917498592461227,0.07655460811774728,0.108518255088494,0.07609040959664792,0.11071646257031031,0.06484378410265812,0.0711156057768223,0.07534480167454505,0.11872567219133012,0.10934233196608867,0.08193532515321889,0.0767095274315941,0.11849456087774879,0.11717381996180909,0.10873691281075804,0.10042044934130034,0.11326108542620505,0.0762176493282607,0.07756094270735203,0.015488572676837009,0.014975194905919587,0.014386372491322685,0.0005461448508055078,-0.044620735866213956,-0.03898282118157326,-0.0851853185376974,-0.05186488813763235,-0.05080665402043916,-0.057211701050308816,-0.07251510859252497,-0.061664656094589154,-0.044747321718052735,-0.04772577252310428,-0.05214492613468902,-0.056446171727878025,-0.054502119357140444,-0.06054232875743393,-0.06486626134183526,-0.0530115871627449,-0.05483292910069004,-0.03207010378782593,-0.01558296792361813,-0.027949478814184525,-0.026649390214262603,0.0022073882518824917,0.0015883278957620206,0.0373053096752578,0.04409061205632492,0.017183035912738953,0.030727816122504636,0.05558667736891598,0.04627466546193393,0.03919581866643895,0.06816538035382913,0.0519276655518639,0.051300274081256036,0.04934963402785497,0.07583012995101024,0.09405353171825537,0.1020278496662339,0.0976331874069134,0.13291244191374751,0.12812766523621466,0.14829249899989727,0.1301879150895422,0.14142987048651623,0.14582502959964816,0.14362013048804645,0.14308684087760049,0.14532542749619926,0.12477909643488116,0.08088628395065767,0.120266673135486,0.0990173261680154,0.09568605554057008,0.11114424941341161,0.11678281412580205,0.10262194498225208,0.07567883695920719,0.06829017569399554,0.06498230469735389,0.0601004709102988,0.05287212602093749,0.034713296728906995,0.01722332748412425,0.021774300019022252,0.008261899006954954,0.009122179579783118,0.0030109891670744293,-0.0002472707580644107,0.005680451791122865,0.033857579683068906,0.055914568131893105,0.002937527938732032,0.010452444863663812,0.010980992191813144,0.009250818096201652,0.005732810892672191,0.0123476605941093,0.019182428946621588,0.021852832101049602,0.051346588333487375,0.044924878553024294,0.03649920109152727,0.04716048435938158,0.05080351942853367,0.07219091118032561,0.06174285956665915,0.05817302760244436,0.0213218156061048,0.004432614476423069,-0.006572823246602688,-0.013830111794942201,-0.009321572917928234,-0.002050036261365795,-0.02563032145918953,-0.032120924462674005,-0.025783235244453362,-0.01864700137228481,-0.009706172659927015,-0.014707824392070412,-0.04502020741948021,-0.06720219459405041,-0.06803652008418837,-0.06465157215617501,-0.09443538869433066,-0.08548268135696813,-0.09375205359514416,-0.07620406256832235,-0.07249970010398066,-0.04135044612253813,-0.05376122202867484,-0.048676722171859255,-0.03536192903597224,-0.026547469716954875,0.003354971970312093,0.040716223349618774,0.04064709763305685,0.024888642472848277,0.012667650977739253,0.011707345528895852,0.027172027440511393,0.0489043112385219,0.06819302981120012,0.05865714504209629,0.04423417514293404,0.07819454647355806,0.07355966252164947,0.06309874370678314,0.05730196758984096,0.05430081504887507,0.057559534622513064,0.04682269037856446,0.05092485934852364,0.044858824219428994,0.03713699711291962,0.03186895009602653,0.0333021091843555,0.05922811599234823,0.07562430142062393,0.08450464327118845,0.08749711055850917,0.0860992796516562,0.055013881855622504,0.05180484187427137,0.10508175501864092,0.10775024900076313,0.09318090487733177,0.0698804416918326,0.09672285534309788,0.1315440594127908,0.1637864054425866,0.15748281267860942,0.21315584619237904,0.18847613291843768,0.16227729952660153,0.19533331773606477,0.14079455134040209,0.11499114975205171,0.07525195001305507,0.07748366243349558,0.09079612856972163,0.0921253715459458,0.11356054573405516,0.1433582217669469,0.1194458519342112,0.0780399794549298,0.07768408118052283,0.11144351714554701,0.11035581730986421,0.058069201989904506,0.004790343889593762,-0.016621169540043668,-0.013576759706704689,-0.02435210401777299,-0.0011949984532635405,-0.01227540358089918,-0.03474618197101742,-0.01428075133462925,-0.02868995954844855,-0.03086895347813423,-0.06115958599243254,-0.07982225363026196,-0.09360104730154217,-0.11445685077282419,-0.11194142352663827,-0.05045162314469398,-0.019191940305830046,-0.01666946648033607,-0.033899112054766256,-0.03784086906708295,-0.013208099212315028,-0.0007051702762496115,0.01674359558899119,0.025057050844327522,-0.015654199917694567,-0.03802833475857126,-0.017973440663144102,-0.0003459585065015425,0.01749018168138572,0.017236160473167006,0.01825506776717911,0.013049448531624375,-0.008328577882850574,0.019823154320488756,0.033627885610209685,0.038376954589611545,-0.040639129854868616,-0.04581646553888574,-0.0467797790496004,-0.07087192795992603,-0.077484290368525,-0.08672199406931236,-0.050739849800201076,-0.09329040569815816,-0.12224861329159364,-0.12491290921060394,-0.08034869876961104,-0.0550095973168474,-0.07043216986694134,-0.04966671035039849,-0.02072487027214831,0.009085645718072355,0.035844707144533805,0.08746165769371861,0.07361436067386795,0.06521091642960664,0.08381777235322763,0.08927704339450204,0.048331037217201445,0.048607217443163764,0.09358337261159067,0.09893270955707445,0.09139990987819879,0.05639762085891786,0.07298753911965461,0.07122067405924803,0.11313259188595115,0.09871685738595493,0.035716521823226044,0.027705064401703616,0.02085612335688003,0.011186441749281073,-0.01421637862968439,-0.0494685796270764,-0.0642844583639739,-0.10256407323630934,-0.10837133405059773,-0.08560575130516845,-0.11318007459406365,-0.0953553545375374,-0.08507827465486495,-0.06960309530492237,-0.10447818337693371,-0.08333198393062669,-0.11535129197754945,-0.09026402771506525,-0.1148399998478985,-0.14845852311658314,-0.13540986585096426,-0.11819317215115921,-0.09457026456511552,-0.15754527757937242,-0.1774693644776858,-0.17202176234177113,-0.11415858707535231,-0.13699522083466176,-0.10250976905826648,-0.08033960586154232,-0.08421004276838362,-0.054496016958944904,-0.057175878753410236,-0.050462875006060615,-0.12303583841126486,-0.06643680712665245,-0.054488646555767684,-0.026963073420704364,-0.07682343318668916,-0.06395911163360146,-0.07491583987044748,-0.09754621743519643,-0.06946553670397693,-0.1285179857358233,-0.06575779376498803,-0.010775330497894586,-0.016280113267319485,-0.03382009474230108,0.009261998346243638,0.008112661200184945,-0.04409504855108992,-0.06956694071638625,-0.08142976435054416,-0.0657657248495821,-0.06381858183794198,-0.01692121375937461,0.0014369919822128097,-0.011230066855835164,-0.020884105017984433,0.022574171378048735,0.06096406524262821,0.12579611328992257,0.1311390077413188,0.08594858626277024,0.16100262751744743,0.1632714709048393,0.1433722923583085,0.1384557737972243,0.10616922483596025,0.07016810451456834,0.10680502600413955,0.14486324972751796,0.1672052307192966,0.18131948758361083,0.15173103229512397,0.17356602670423404,0.1601595693950515,0.13139515870288032,0.12281708319879714,0.1399812287636879,0.16190266417563093,0.15969511626424993,0.160766959669566,0.15489489860294126,0.1781488436482901,0.15756605414449942,0.1395184298645098,0.10562126596436872,0.08899198087363658,0.09488256647551307,0.10661407604175044,0.08595044817623587,0.041291772023475115,-0.00557389192084623,-0.014731287370302493,-0.016071496922200668,-0.04785763850069347,-0.05900478086373262,-0.06543707765787754,-0.054042487595419186,-0.06342459520966937,-0.07013717221217719,-0.030031485105710964,-0.10610115226440808,-0.10323928528439219,-0.11940130981086006,-0.13663715312706726,-0.11294867656822527,-0.0852379553965339,-0.08265209736763579,-0.08664720685740579,-0.10207136162125152,-0.11327413746923665,-0.07248497469167825,-0.07150837203479554,-0.10339204911019606,-0.12097708049919287,-0.09818947525321176,-0.06231939863755298,-0.05261127006567112,-0.06751743265648358,-0.09303382833583851,-0.10770801086220583,-0.14960538417571134,-0.10075403536859906,-0.07932504759903569,-0.09181593795317722,-0.055009781017502535,-0.06945862152624283,-0.08311018594513886,-0.06720008344380402,-0.035812388797569095,-0.006514685529598774,0.010413227929854552,-0.015880403711309388,-0.03363578629312758,0.09306591174041712,0.10955144507670345,0.057564021569169954,-0.007323844004063718,-0.05136593232417175,-0.046898509584255565,-0.006706773377171293,-0.004903692937845983,-0.027962749422199118,0.06342082889517542,0.048662839106208944,0.07331967663919925,0.05532528975118689,0.03677778655729447,0.049423205912798585,0.056844782077488,0.006691837908306297,0.006551558651660683,-0.006691501284226464,-0.006657554003205113,-0.0023532804284558395,-0.0920498023294486,-0.03302749083697076,-0.013899535878313718,0.020859087119527553,0.05755502483283448,0.032736052643627334,0.014540817872122469,0.022580647992271885,0.05405214352375842,-0.01620472708900178,-0.02825637984549778,-0.03419199478691337,-0.09024262303241515,-0.09597423043413378,-0.12174896600180429,-0.12552052608537678,-0.08485913246704313,-0.1195232094344012,-0.12715959114145214,-0.12207140223872825,-0.12605741542109117,-0.08188705012426756,-0.12227249438754217,-0.1566987957699908,-0.14511865305938199,-0.14737783433965013,-0.09299565082606465,-0.07655748904647908,-0.08356118312751126,-0.060987695200605097,-0.07668346325028452,-0.07362347777787126,-0.05076468566092973,-0.00945044266122308,0.005650281865603235,0.041550156413822315,0.06659111832330344,0.05227026095700249,0.07282775324390656,0.09176398496602722,0.122279390770895,0.13456043237557047,0.11326275108309769,0.11929496098342973,0.20588484687047393,0.22269697284761625,0.21364591883280282,0.1931029231025334,0.1672686640854404,0.15405804104677667,0.13297297557559906,0.15497264151581858,0.1385716331400444,0.14438109690372558,0.13855999387916307,0.1294663816671746,0.0786008809649501,0.05688719351935423,0.04980081542042858,0.03576764557965961,0.029076444685584457,0.011684269273853465,0.01770529542928001,0.012771495973318059,0.040092179233891745,0.021514818212073683,-0.017271943066851536,0.00905162571417728,-0.024766090230347926,-0.021019469504357624,-0.0011285455587634052,0.010462898570169799,-0.005589849104961742,0.017297698730142974,-0.002124508368676281,0.0240061632516122,0.04411657472353969,0.06297152802247208,0.06728889662352389,0.07262388936946818,0.07886304502647823,0.0657787483233383,0.09063161388481245,0.11733542014506604,0.1301486519742594,0.10024503679092867,0.07670808915599325,0.08021097541862221,0.07712433718320977,0.07596783662698159,0.08282835080128903,0.06399947357630276,0.0849990361819788,0.07987452489407243,0.06018601763702747,0.0740000368689071,0.06499372204065623,0.04627070491565033,0.045555344719757196,0.040269394569825145,0.02196567043980724,0.03462216820434194,0.06825252564119588,0.05542066991266603,0.04453059592716846,0.022073934862057998,0.0077029353820547986,0.0009658907713150366,0.05990482162989719,0.0536863837259931,0.060112427893660225,0.07935320435442783,0.08525923472065422,0.04378295350328698,0.042963498432518454,0.042837342313666316,0.03879892523976536,0.04570851289616473,0.052519014370162154,0.0570896922011519,0.03911747219365136,0.050727719316447484,0.05782417688848662,0.043124759734751716,0.04635342880926685,0.04661345657920268,0.07000774239404972,0.08211577041193663,0.08467581948912484,0.03392220978413252,0.026316823120462907,0.052685345552267115,0.04407874586540017,0.05924720731901223,0.062235555302475376,0.06904160584847796,0.08101346306303747,0.07082051974426662,0.05689797932841634,0.0502397971441777,0.07347877885187848,0.08813240459521166,0.07815414467399528,0.08711481349727568,0.078777905154223,0.06931750183075347,0.09433004920001764,0.06868793729534839,0.05736394063483474,0.06810332778058892,0.06400304409467172,0.060679298401216775,0.04159048680410993,0.048684776921588346,0.03672670029151859,0.040259696585580595,0.05458009628424643,0.04150315278042438,0.05505087624578997,0.04388957687189454,0.043378970625670865,0.03074866310160429,0.03717593054259116,0.04981915860467789,0.02743807151492539,0.03476883398179487,0.036183346921562,0.008454912508777168,0.00062348079082164,-0.0008362706349140936,-0.05119645581784593,-0.0620410479686796,-0.04671012952698239,-0.045698644922513854],\"yaxis\":\"y\",\"type\":\"scatter\"}], {\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"contour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"contour\"}],\"heatmapgl\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmapgl\"}],\"heatmap\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmap\"}],\"histogram2dcontour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2dcontour\"}],\"histogram2d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"surface\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}],\"candlestick\":[{\"decreasing\":{\"fillcolor\":\"#e4003a\",\"line\":{\"color\":\"#e4003a\"}},\"increasing\":{\"fillcolor\":\"#00ACFF\",\"line\":{\"color\":\"#00ACFF\"}},\"type\":\"candlestick\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1,\"showarrow\":false},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]],\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]},\"colorway\":[\"#ffed00\",\"#ef7d00\",\"#e4003a\",\"#c13246\",\"#822661\",\"#48277c\",\"#005ca9\",\"#00aaff\",\"#9b30d9\",\"#af005f\",\"#5f00af\",\"#af87ff\"],\"font\":{\"color\":\"#f2f5fa\",\"family\":\"Fira Code\",\"size\":18},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"lakecolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#506784\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"x\",\"mapbox\":{\"style\":\"dark\"},\"paper_bgcolor\":\"#000000\",\"plot_bgcolor\":\"#000000\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"bordercolor\":\"rgb(17,17,17)\",\"borderwidth\":1,\"tickwidth\":0},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#F5EFF3\",\"ticks\":\"outside\",\"title\":{\"standoff\":20},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2,\"autorange\":true,\"mirror\":true,\"rangeslider\":{\"visible\":false},\"showgrid\":true,\"showline\":true,\"tick0\":1,\"tickfont\":{\"size\":14},\"zeroline\":false},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#F5EFF3\",\"ticks\":\"outside\",\"title\":{\"standoff\":20},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2,\"anchor\":\"x\",\"fixedrange\":false,\"mirror\":true,\"showgrid\":true,\"showline\":true,\"side\":\"right\",\"tick0\":0.5,\"zeroline\":false},\"dragmode\":\"pan\",\"legend\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15},\"x\":0.01,\"xanchor\":\"left\",\"y\":0.99,\"yanchor\":\"top\"},\"legend2\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}},\"legend3\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}},\"legend4\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}},\"legend5\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"date\"}},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"value\"}},\"legend\":{\"title\":{\"text\":\"variable\"},\"tracegroupgap\":0},\"margin\":{\"t\":60}}, {\"responsive\": true} ).then(function(){\n",
|
||
" \n",
|
||
"var gd = document.getElementById('a085f1e9-8822-4c42-9fb1-bee9c04de07a');\n",
|
||
"var x = new MutationObserver(function (mutations, observer) {{\n",
|
||
" var display = window.getComputedStyle(gd).display;\n",
|
||
" if (!display || display === 'none') {{\n",
|
||
" console.log([gd, 'removed!']);\n",
|
||
" Plotly.purge(gd);\n",
|
||
" observer.disconnect();\n",
|
||
" }}\n",
|
||
"}});\n",
|
||
"\n",
|
||
"// Listen for the removal of the full notebook cells\n",
|
||
"var notebookContainer = gd.closest('#notebook-container');\n",
|
||
"if (notebookContainer) {{\n",
|
||
" x.observe(notebookContainer, {childList: true});\n",
|
||
"}}\n",
|
||
"\n",
|
||
"// Listen for the clearing of the current output cell\n",
|
||
"var outputEl = gd.closest('.output');\n",
|
||
"if (outputEl) {{\n",
|
||
" x.observe(outputEl, {childList: true});\n",
|
||
"}}\n",
|
||
"\n",
|
||
" }) }; </script> </div>\n",
|
||
"</body>\n",
|
||
"</html>"
|
||
]
|
||
},
|
||
"metadata": {}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# This loads the complete options chain for a symbol, and binds class methods to the response object.\n",
|
||
"\n",
|
||
"options = openbb.stocks.options.load_options_chains(symbol)\n",
|
||
"\n",
|
||
"options.get_strategies()"
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 1000
|
||
},
|
||
"id": "Qrv_m3gTh0XE",
|
||
"outputId": "1aaf4a3c-d0a3-4268-f134-33c5e5141415"
|
||
},
|
||
"execution_count": 6,
|
||
"outputs": [
|
||
{
|
||
"output_type": "execute_result",
|
||
"data": {
|
||
"text/plain": [
|
||
" Expiration DTE Strategy Underlying Price Strike 1 Strike 2 \\\n",
|
||
"0 2023-08-11 2 Long Straddle 179.42 180.0 180.0 \n",
|
||
"1 2023-08-18 9 Long Straddle 179.42 180.0 180.0 \n",
|
||
"2 2023-08-25 16 Long Straddle 179.42 180.0 180.0 \n",
|
||
"3 2023-09-01 23 Long Straddle 179.42 180.0 180.0 \n",
|
||
"4 2023-09-08 30 Long Straddle 179.42 180.0 180.0 \n",
|
||
"5 2023-09-15 37 Long Straddle 179.42 180.0 180.0 \n",
|
||
"6 2023-09-22 44 Long Straddle 179.42 180.0 180.0 \n",
|
||
"7 2023-10-20 72 Long Straddle 179.42 180.0 180.0 \n",
|
||
"8 2023-11-17 100 Long Straddle 179.42 180.0 180.0 \n",
|
||
"9 2023-12-15 128 Long Straddle 179.42 180.0 180.0 \n",
|
||
"10 2024-01-19 163 Long Straddle 179.42 180.0 180.0 \n",
|
||
"11 2024-03-15 219 Long Straddle 179.42 180.0 180.0 \n",
|
||
"12 2024-06-21 317 Long Straddle 179.42 180.0 180.0 \n",
|
||
"13 2024-09-20 408 Long Straddle 179.42 180.0 180.0 \n",
|
||
"14 2024-12-20 499 Long Straddle 179.42 180.0 180.0 \n",
|
||
"15 2025-01-17 527 Long Straddle 179.42 180.0 180.0 \n",
|
||
"16 2025-06-20 681 Long Straddle 179.42 180.0 180.0 \n",
|
||
"17 2025-12-19 863 Long Straddle 179.42 180.0 180.0 \n",
|
||
"\n",
|
||
" Strike 1 Premium Strike 2 Premium Cost Cost Percent Breakeven Upper \\\n",
|
||
"0 1.02 1.77 2.79 1.555 182.79 \n",
|
||
"1 2.08 2.67 4.75 2.6474 184.75 \n",
|
||
"2 2.97 3.4 6.37 3.5503 186.37 \n",
|
||
"3 3.7 3.9 7.6 4.2359 187.6 \n",
|
||
"4 4.25 4.25 8.5 4.7375 188.5 \n",
|
||
"5 4.95 4.75 9.7 5.4063 189.7 \n",
|
||
"6 5.55 5.15 10.7 5.9637 190.7 \n",
|
||
"7 7.45 6.35 13.8 7.6915 193.8 \n",
|
||
"8 9.55 7.85 17.4 9.6979 197.4 \n",
|
||
"9 11.0 8.65 19.65 10.952 199.65 \n",
|
||
"10 12.8 9.55 22.35 12.4568 202.35 \n",
|
||
"11 15.85 11.3 27.15 15.1321 207.15 \n",
|
||
"12 20.15 13.55 33.7 18.7827 213.7 \n",
|
||
"13 23.7 15.35 39.05 21.7646 219.05 \n",
|
||
"14 27.05 17.1 44.15 24.6071 224.15 \n",
|
||
"15 27.95 17.45 45.4 25.3038 225.4 \n",
|
||
"16 32.55 19.9 52.45 29.2331 232.45 \n",
|
||
"17 37.3 22.3 59.6 33.2181 239.6 \n",
|
||
"\n",
|
||
" Breakeven Upper Percent Breakeven Lower Breakeven Lower Percent Max Profit \\\n",
|
||
"0 1.8783 177.21 -1.2317 inf \n",
|
||
"1 2.9707 175.25 -2.3242 inf \n",
|
||
"2 3.8736 173.63 -3.2271 inf \n",
|
||
"3 4.5591 172.4 -3.9126 inf \n",
|
||
"4 5.0608 171.5 -4.4142 inf \n",
|
||
"5 5.7296 170.3 -5.083 inf \n",
|
||
"6 6.2869 169.3 -5.6404 inf \n",
|
||
"7 8.0147 166.2 -7.3682 inf \n",
|
||
"8 10.0212 162.6 -9.3747 inf \n",
|
||
"9 11.2752 160.35 -10.6287 inf \n",
|
||
"10 12.7801 157.65 -12.1335 inf \n",
|
||
"11 15.4554 152.85 -14.8088 inf \n",
|
||
"12 19.106 146.3 -18.4595 inf \n",
|
||
"13 22.0878 140.95 -21.4413 inf \n",
|
||
"14 24.9303 135.85 -24.2838 inf \n",
|
||
"15 25.627 134.6 -24.9805 inf \n",
|
||
"16 29.5563 127.55 -28.9098 inf \n",
|
||
"17 33.5414 120.4 -32.8949 inf \n",
|
||
"\n",
|
||
" Max Loss Payoff Ratio \n",
|
||
"0 -2.79 inf \n",
|
||
"1 -4.75 inf \n",
|
||
"2 -6.37 inf \n",
|
||
"3 -7.6 inf \n",
|
||
"4 -8.5 inf \n",
|
||
"5 -9.7 inf \n",
|
||
"6 -10.7 inf \n",
|
||
"7 -13.8 inf \n",
|
||
"8 -17.4 inf \n",
|
||
"9 -19.65 inf \n",
|
||
"10 -22.35 inf \n",
|
||
"11 -27.15 inf \n",
|
||
"12 -33.7 inf \n",
|
||
"13 -39.05 inf \n",
|
||
"14 -44.15 inf \n",
|
||
"15 -45.4 inf \n",
|
||
"16 -52.45 inf \n",
|
||
"17 -59.6 inf "
|
||
],
|
||
"text/html": [
|
||
"\n",
|
||
"\n",
|
||
" <div id=\"df-e2ef5074-aa29-4e6f-b0c5-46615557d634\">\n",
|
||
" <div class=\"colab-df-container\">\n",
|
||
" <div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>Expiration</th>\n",
|
||
" <th>DTE</th>\n",
|
||
" <th>Strategy</th>\n",
|
||
" <th>Underlying Price</th>\n",
|
||
" <th>Strike 1</th>\n",
|
||
" <th>Strike 2</th>\n",
|
||
" <th>Strike 1 Premium</th>\n",
|
||
" <th>Strike 2 Premium</th>\n",
|
||
" <th>Cost</th>\n",
|
||
" <th>Cost Percent</th>\n",
|
||
" <th>Breakeven Upper</th>\n",
|
||
" <th>Breakeven Upper Percent</th>\n",
|
||
" <th>Breakeven Lower</th>\n",
|
||
" <th>Breakeven Lower Percent</th>\n",
|
||
" <th>Max Profit</th>\n",
|
||
" <th>Max Loss</th>\n",
|
||
" <th>Payoff Ratio</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>2023-08-11</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>1.02</td>\n",
|
||
" <td>1.77</td>\n",
|
||
" <td>2.79</td>\n",
|
||
" <td>1.555</td>\n",
|
||
" <td>182.79</td>\n",
|
||
" <td>1.8783</td>\n",
|
||
" <td>177.21</td>\n",
|
||
" <td>-1.2317</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-2.79</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>2023-08-18</td>\n",
|
||
" <td>9</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>2.08</td>\n",
|
||
" <td>2.67</td>\n",
|
||
" <td>4.75</td>\n",
|
||
" <td>2.6474</td>\n",
|
||
" <td>184.75</td>\n",
|
||
" <td>2.9707</td>\n",
|
||
" <td>175.25</td>\n",
|
||
" <td>-2.3242</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-4.75</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>2023-08-25</td>\n",
|
||
" <td>16</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>2.97</td>\n",
|
||
" <td>3.4</td>\n",
|
||
" <td>6.37</td>\n",
|
||
" <td>3.5503</td>\n",
|
||
" <td>186.37</td>\n",
|
||
" <td>3.8736</td>\n",
|
||
" <td>173.63</td>\n",
|
||
" <td>-3.2271</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-6.37</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>2023-09-01</td>\n",
|
||
" <td>23</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>3.7</td>\n",
|
||
" <td>3.9</td>\n",
|
||
" <td>7.6</td>\n",
|
||
" <td>4.2359</td>\n",
|
||
" <td>187.6</td>\n",
|
||
" <td>4.5591</td>\n",
|
||
" <td>172.4</td>\n",
|
||
" <td>-3.9126</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-7.6</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>2023-09-08</td>\n",
|
||
" <td>30</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>4.25</td>\n",
|
||
" <td>4.25</td>\n",
|
||
" <td>8.5</td>\n",
|
||
" <td>4.7375</td>\n",
|
||
" <td>188.5</td>\n",
|
||
" <td>5.0608</td>\n",
|
||
" <td>171.5</td>\n",
|
||
" <td>-4.4142</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-8.5</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>2023-09-15</td>\n",
|
||
" <td>37</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>4.95</td>\n",
|
||
" <td>4.75</td>\n",
|
||
" <td>9.7</td>\n",
|
||
" <td>5.4063</td>\n",
|
||
" <td>189.7</td>\n",
|
||
" <td>5.7296</td>\n",
|
||
" <td>170.3</td>\n",
|
||
" <td>-5.083</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-9.7</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>2023-09-22</td>\n",
|
||
" <td>44</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>5.55</td>\n",
|
||
" <td>5.15</td>\n",
|
||
" <td>10.7</td>\n",
|
||
" <td>5.9637</td>\n",
|
||
" <td>190.7</td>\n",
|
||
" <td>6.2869</td>\n",
|
||
" <td>169.3</td>\n",
|
||
" <td>-5.6404</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-10.7</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>2023-10-20</td>\n",
|
||
" <td>72</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>7.45</td>\n",
|
||
" <td>6.35</td>\n",
|
||
" <td>13.8</td>\n",
|
||
" <td>7.6915</td>\n",
|
||
" <td>193.8</td>\n",
|
||
" <td>8.0147</td>\n",
|
||
" <td>166.2</td>\n",
|
||
" <td>-7.3682</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-13.8</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>2023-11-17</td>\n",
|
||
" <td>100</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>9.55</td>\n",
|
||
" <td>7.85</td>\n",
|
||
" <td>17.4</td>\n",
|
||
" <td>9.6979</td>\n",
|
||
" <td>197.4</td>\n",
|
||
" <td>10.0212</td>\n",
|
||
" <td>162.6</td>\n",
|
||
" <td>-9.3747</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-17.4</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>2023-12-15</td>\n",
|
||
" <td>128</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>11.0</td>\n",
|
||
" <td>8.65</td>\n",
|
||
" <td>19.65</td>\n",
|
||
" <td>10.952</td>\n",
|
||
" <td>199.65</td>\n",
|
||
" <td>11.2752</td>\n",
|
||
" <td>160.35</td>\n",
|
||
" <td>-10.6287</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-19.65</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>10</th>\n",
|
||
" <td>2024-01-19</td>\n",
|
||
" <td>163</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>12.8</td>\n",
|
||
" <td>9.55</td>\n",
|
||
" <td>22.35</td>\n",
|
||
" <td>12.4568</td>\n",
|
||
" <td>202.35</td>\n",
|
||
" <td>12.7801</td>\n",
|
||
" <td>157.65</td>\n",
|
||
" <td>-12.1335</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-22.35</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>11</th>\n",
|
||
" <td>2024-03-15</td>\n",
|
||
" <td>219</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>15.85</td>\n",
|
||
" <td>11.3</td>\n",
|
||
" <td>27.15</td>\n",
|
||
" <td>15.1321</td>\n",
|
||
" <td>207.15</td>\n",
|
||
" <td>15.4554</td>\n",
|
||
" <td>152.85</td>\n",
|
||
" <td>-14.8088</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-27.15</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>12</th>\n",
|
||
" <td>2024-06-21</td>\n",
|
||
" <td>317</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>20.15</td>\n",
|
||
" <td>13.55</td>\n",
|
||
" <td>33.7</td>\n",
|
||
" <td>18.7827</td>\n",
|
||
" <td>213.7</td>\n",
|
||
" <td>19.106</td>\n",
|
||
" <td>146.3</td>\n",
|
||
" <td>-18.4595</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-33.7</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>13</th>\n",
|
||
" <td>2024-09-20</td>\n",
|
||
" <td>408</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>23.7</td>\n",
|
||
" <td>15.35</td>\n",
|
||
" <td>39.05</td>\n",
|
||
" <td>21.7646</td>\n",
|
||
" <td>219.05</td>\n",
|
||
" <td>22.0878</td>\n",
|
||
" <td>140.95</td>\n",
|
||
" <td>-21.4413</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-39.05</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>14</th>\n",
|
||
" <td>2024-12-20</td>\n",
|
||
" <td>499</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>27.05</td>\n",
|
||
" <td>17.1</td>\n",
|
||
" <td>44.15</td>\n",
|
||
" <td>24.6071</td>\n",
|
||
" <td>224.15</td>\n",
|
||
" <td>24.9303</td>\n",
|
||
" <td>135.85</td>\n",
|
||
" <td>-24.2838</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-44.15</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>15</th>\n",
|
||
" <td>2025-01-17</td>\n",
|
||
" <td>527</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>27.95</td>\n",
|
||
" <td>17.45</td>\n",
|
||
" <td>45.4</td>\n",
|
||
" <td>25.3038</td>\n",
|
||
" <td>225.4</td>\n",
|
||
" <td>25.627</td>\n",
|
||
" <td>134.6</td>\n",
|
||
" <td>-24.9805</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-45.4</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>16</th>\n",
|
||
" <td>2025-06-20</td>\n",
|
||
" <td>681</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>32.55</td>\n",
|
||
" <td>19.9</td>\n",
|
||
" <td>52.45</td>\n",
|
||
" <td>29.2331</td>\n",
|
||
" <td>232.45</td>\n",
|
||
" <td>29.5563</td>\n",
|
||
" <td>127.55</td>\n",
|
||
" <td>-28.9098</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-52.45</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>17</th>\n",
|
||
" <td>2025-12-19</td>\n",
|
||
" <td>863</td>\n",
|
||
" <td>Long Straddle</td>\n",
|
||
" <td>179.42</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>180.0</td>\n",
|
||
" <td>37.3</td>\n",
|
||
" <td>22.3</td>\n",
|
||
" <td>59.6</td>\n",
|
||
" <td>33.2181</td>\n",
|
||
" <td>239.6</td>\n",
|
||
" <td>33.5414</td>\n",
|
||
" <td>120.4</td>\n",
|
||
" <td>-32.8949</td>\n",
|
||
" <td>inf</td>\n",
|
||
" <td>-59.6</td>\n",
|
||
" <td>inf</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>\n",
|
||
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-e2ef5074-aa29-4e6f-b0c5-46615557d634')\"\n",
|
||
" title=\"Convert this dataframe to an interactive table.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
|
||
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
|
||
" </svg>\n",
|
||
" </button>\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
" <div id=\"df-ecad0759-7760-4615-9c82-a832dbe14dc1\">\n",
|
||
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-ecad0759-7760-4615-9c82-a832dbe14dc1')\"\n",
|
||
" title=\"Suggest charts.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <g>\n",
|
||
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
||
" </g>\n",
|
||
"</svg>\n",
|
||
" </button>\n",
|
||
" </div>\n",
|
||
"\n",
|
||
"<style>\n",
|
||
" .colab-df-quickchart {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-quickchart:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-quickchart {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-quickchart:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" async function quickchart(key) {\n",
|
||
" const containerElement = document.querySelector('#' + key);\n",
|
||
" const charts = await google.colab.kernel.invokeFunction(\n",
|
||
" 'suggestCharts', [key], {});\n",
|
||
" }\n",
|
||
" </script>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
"\n",
|
||
"function displayQuickchartButton(domScope) {\n",
|
||
" let quickchartButtonEl =\n",
|
||
" domScope.querySelector('#df-ecad0759-7760-4615-9c82-a832dbe14dc1 button.colab-df-quickchart');\n",
|
||
" quickchartButtonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"}\n",
|
||
"\n",
|
||
" displayQuickchartButton(document);\n",
|
||
" </script>\n",
|
||
" <style>\n",
|
||
" .colab-df-container {\n",
|
||
" display:flex;\n",
|
||
" flex-wrap:wrap;\n",
|
||
" gap: 12px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
" </style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" const buttonEl =\n",
|
||
" document.querySelector('#df-e2ef5074-aa29-4e6f-b0c5-46615557d634 button.colab-df-convert');\n",
|
||
" buttonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"\n",
|
||
" async function convertToInteractive(key) {\n",
|
||
" const element = document.querySelector('#df-e2ef5074-aa29-4e6f-b0c5-46615557d634');\n",
|
||
" const dataTable =\n",
|
||
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
||
" [key], {});\n",
|
||
" if (!dataTable) return;\n",
|
||
"\n",
|
||
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
||
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
||
" + ' to learn more about interactive tables.';\n",
|
||
" element.innerHTML = '';\n",
|
||
" dataTable['output_type'] = 'display_data';\n",
|
||
" await google.colab.output.renderOutput(dataTable, element);\n",
|
||
" const docLink = document.createElement('div');\n",
|
||
" docLink.innerHTML = docLinkHtml;\n",
|
||
" element.appendChild(docLink);\n",
|
||
" }\n",
|
||
" </script>\n",
|
||
" </div>\n",
|
||
" </div>\n"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"execution_count": 6
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"print(f\"Last Price of Underlying: {options.last_price}\")\n",
|
||
"options.get_skew()"
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 442
|
||
},
|
||
"id": "qKxdTqbKienM",
|
||
"outputId": "e50cf906-5904-4bf1-af82-6cd3867cd7b9"
|
||
},
|
||
"execution_count": 7,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"Last Price of Underlying: 179.42\n"
|
||
]
|
||
},
|
||
{
|
||
"output_type": "execute_result",
|
||
"data": {
|
||
"text/plain": [
|
||
" Expiration Strike Option Type IV ATM IV Skew\n",
|
||
"0 2023-08-11 50.0 put 5.1895 0.2470 4.9425\n",
|
||
"1 2023-08-11 60.0 put 4.4677 0.2470 4.2207\n",
|
||
"2 2023-08-11 65.0 put 4.1514 0.2470 3.9044\n",
|
||
"3 2023-08-11 70.0 put 3.8588 0.2470 3.6118\n",
|
||
"4 2023-08-11 75.0 put 3.5865 0.2470 3.3395\n",
|
||
"... ... ... ... ... ... ...\n",
|
||
"1508 2025-12-19 290.0 put 0.3132 0.2666 0.0466\n",
|
||
"1509 2025-12-19 300.0 call 0.2225 0.2708 -0.0483\n",
|
||
"1510 2025-12-19 300.0 put 0.3366 0.2666 0.0700\n",
|
||
"1511 2025-12-19 310.0 call 0.2211 0.2708 -0.0497\n",
|
||
"1512 2025-12-19 310.0 put 0.3460 0.2666 0.0794\n",
|
||
"\n",
|
||
"[1513 rows x 6 columns]"
|
||
],
|
||
"text/html": [
|
||
"\n",
|
||
"\n",
|
||
" <div id=\"df-a7276714-33bc-4711-829c-d9e32c415be2\">\n",
|
||
" <div class=\"colab-df-container\">\n",
|
||
" <div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>Expiration</th>\n",
|
||
" <th>Strike</th>\n",
|
||
" <th>Option Type</th>\n",
|
||
" <th>IV</th>\n",
|
||
" <th>ATM IV</th>\n",
|
||
" <th>Skew</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>2023-08-11</td>\n",
|
||
" <td>50.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>5.1895</td>\n",
|
||
" <td>0.2470</td>\n",
|
||
" <td>4.9425</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>2023-08-11</td>\n",
|
||
" <td>60.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>4.4677</td>\n",
|
||
" <td>0.2470</td>\n",
|
||
" <td>4.2207</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>2023-08-11</td>\n",
|
||
" <td>65.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>4.1514</td>\n",
|
||
" <td>0.2470</td>\n",
|
||
" <td>3.9044</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>2023-08-11</td>\n",
|
||
" <td>70.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>3.8588</td>\n",
|
||
" <td>0.2470</td>\n",
|
||
" <td>3.6118</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>2023-08-11</td>\n",
|
||
" <td>75.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>3.5865</td>\n",
|
||
" <td>0.2470</td>\n",
|
||
" <td>3.3395</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1508</th>\n",
|
||
" <td>2025-12-19</td>\n",
|
||
" <td>290.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>0.3132</td>\n",
|
||
" <td>0.2666</td>\n",
|
||
" <td>0.0466</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1509</th>\n",
|
||
" <td>2025-12-19</td>\n",
|
||
" <td>300.0</td>\n",
|
||
" <td>call</td>\n",
|
||
" <td>0.2225</td>\n",
|
||
" <td>0.2708</td>\n",
|
||
" <td>-0.0483</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1510</th>\n",
|
||
" <td>2025-12-19</td>\n",
|
||
" <td>300.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>0.3366</td>\n",
|
||
" <td>0.2666</td>\n",
|
||
" <td>0.0700</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1511</th>\n",
|
||
" <td>2025-12-19</td>\n",
|
||
" <td>310.0</td>\n",
|
||
" <td>call</td>\n",
|
||
" <td>0.2211</td>\n",
|
||
" <td>0.2708</td>\n",
|
||
" <td>-0.0497</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1512</th>\n",
|
||
" <td>2025-12-19</td>\n",
|
||
" <td>310.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>0.3460</td>\n",
|
||
" <td>0.2666</td>\n",
|
||
" <td>0.0794</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>1513 rows × 6 columns</p>\n",
|
||
"</div>\n",
|
||
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a7276714-33bc-4711-829c-d9e32c415be2')\"\n",
|
||
" title=\"Convert this dataframe to an interactive table.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
|
||
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
|
||
" </svg>\n",
|
||
" </button>\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
" <div id=\"df-31080597-6145-4878-8626-08128e749c76\">\n",
|
||
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-31080597-6145-4878-8626-08128e749c76')\"\n",
|
||
" title=\"Suggest charts.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <g>\n",
|
||
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
||
" </g>\n",
|
||
"</svg>\n",
|
||
" </button>\n",
|
||
" </div>\n",
|
||
"\n",
|
||
"<style>\n",
|
||
" .colab-df-quickchart {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-quickchart:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-quickchart {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-quickchart:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" async function quickchart(key) {\n",
|
||
" const containerElement = document.querySelector('#' + key);\n",
|
||
" const charts = await google.colab.kernel.invokeFunction(\n",
|
||
" 'suggestCharts', [key], {});\n",
|
||
" }\n",
|
||
" </script>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
"\n",
|
||
"function displayQuickchartButton(domScope) {\n",
|
||
" let quickchartButtonEl =\n",
|
||
" domScope.querySelector('#df-31080597-6145-4878-8626-08128e749c76 button.colab-df-quickchart');\n",
|
||
" quickchartButtonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"}\n",
|
||
"\n",
|
||
" displayQuickchartButton(document);\n",
|
||
" </script>\n",
|
||
" <style>\n",
|
||
" .colab-df-container {\n",
|
||
" display:flex;\n",
|
||
" flex-wrap:wrap;\n",
|
||
" gap: 12px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
" </style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" const buttonEl =\n",
|
||
" document.querySelector('#df-a7276714-33bc-4711-829c-d9e32c415be2 button.colab-df-convert');\n",
|
||
" buttonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"\n",
|
||
" async function convertToInteractive(key) {\n",
|
||
" const element = document.querySelector('#df-a7276714-33bc-4711-829c-d9e32c415be2');\n",
|
||
" const dataTable =\n",
|
||
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
||
" [key], {});\n",
|
||
" if (!dataTable) return;\n",
|
||
"\n",
|
||
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
||
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
||
" + ' to learn more about interactive tables.';\n",
|
||
" element.innerHTML = '';\n",
|
||
" dataTable['output_type'] = 'display_data';\n",
|
||
" await google.colab.output.renderOutput(dataTable, element);\n",
|
||
" const docLink = document.createElement('div');\n",
|
||
" docLink.innerHTML = docLinkHtml;\n",
|
||
" element.appendChild(docLink);\n",
|
||
" }\n",
|
||
" </script>\n",
|
||
" </div>\n",
|
||
" </div>\n"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"execution_count": 7
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# The data for the chains is stored as a class property, `chains`.\n",
|
||
"\n",
|
||
"options.chains"
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 487
|
||
},
|
||
"id": "CBJeBoq-nurT",
|
||
"outputId": "e1c52a4b-f69f-4071-b3cb-9d77b7cbc171"
|
||
},
|
||
"execution_count": 8,
|
||
"outputs": [
|
||
{
|
||
"output_type": "execute_result",
|
||
"data": {
|
||
"text/plain": [
|
||
" expiration strike optionType contractSymbol bid bidSize \\\n",
|
||
"0 2023-08-11 50.0 call AAPL230811C00050000 129.30 1 \n",
|
||
"1 2023-08-11 50.0 put AAPL230811P00050000 0.00 0 \n",
|
||
"2 2023-08-11 60.0 call AAPL230811C00060000 119.30 1 \n",
|
||
"3 2023-08-11 60.0 put AAPL230811P00060000 0.00 0 \n",
|
||
"4 2023-08-11 65.0 call AAPL230811C00065000 114.30 1 \n",
|
||
"... ... ... ... ... ... ... \n",
|
||
"1797 2025-12-19 290.0 put AAPL251219P00290000 109.10 90 \n",
|
||
"1798 2025-12-19 300.0 call AAPL251219C00300000 4.05 107 \n",
|
||
"1799 2025-12-19 300.0 put AAPL251219P00300000 119.30 2 \n",
|
||
"1800 2025-12-19 310.0 call AAPL251219C00310000 3.25 130 \n",
|
||
"1801 2025-12-19 310.0 put AAPL251219P00310000 129.05 59 \n",
|
||
"\n",
|
||
" ask askSize impliedVolatility openInterest ... change open \\\n",
|
||
"0 129.45 1 0.0000 4 ... 0.000 0.0 \n",
|
||
"1 0.01 624 5.1895 1 ... 0.000 0.0 \n",
|
||
"2 119.45 1 0.0000 1 ... 0.000 0.0 \n",
|
||
"3 0.01 624 4.4677 0 ... 0.000 0.0 \n",
|
||
"4 114.45 1 0.0000 0 ... 0.000 0.0 \n",
|
||
"... ... ... ... ... ... ... ... \n",
|
||
"1797 112.50 102 0.3132 0 ... 0.000 0.0 \n",
|
||
"1798 4.20 340 0.2225 5130 ... -0.150 4.1 \n",
|
||
"1799 122.40 102 0.3366 1 ... 2.000 121.0 \n",
|
||
"1800 3.45 150 0.2211 3419 ... -0.075 3.3 \n",
|
||
"1801 132.45 100 0.3460 0 ... 0.000 0.0 \n",
|
||
"\n",
|
||
" high low tick lastTradePrice lastTradeTimestamp \\\n",
|
||
"0 0.00 0.00 up 129.30 2023-08-08T14:18:27 \n",
|
||
"1 0.00 0.00 up 0.01 2023-08-08T10:36:09 \n",
|
||
"2 0.00 0.00 down 118.85 2023-08-07T10:50:09 \n",
|
||
"3 0.00 0.00 no_change 0.00 None \n",
|
||
"4 0.00 0.00 no_change 0.00 None \n",
|
||
"... ... ... ... ... ... \n",
|
||
"1797 0.00 0.00 down 101.00 2023-06-28T10:34:27 \n",
|
||
"1798 4.10 3.90 no_change 4.05 2023-08-09T13:49:34 \n",
|
||
"1799 122.00 121.00 up 122.00 2023-08-09T11:06:30 \n",
|
||
"1800 3.35 3.15 up 3.35 2023-08-09T14:24:11 \n",
|
||
"1801 0.00 0.00 up 125.50 2023-08-04T14:01:04 \n",
|
||
"\n",
|
||
" changePercent previousClose dte \n",
|
||
"0 0.00 130.03 2 \n",
|
||
"1 0.00 0.00 2 \n",
|
||
"2 0.00 120.02 2 \n",
|
||
"3 0.00 0.00 2 \n",
|
||
"4 0.00 115.02 2 \n",
|
||
"... ... ... ... \n",
|
||
"1797 0.00 110.05 863 \n",
|
||
"1798 -3.57 4.20 863 \n",
|
||
"1799 1.67 120.00 863 \n",
|
||
"1800 -2.19 3.42 863 \n",
|
||
"1801 0.00 130.05 863 \n",
|
||
"\n",
|
||
"[1802 rows x 27 columns]"
|
||
],
|
||
"text/html": [
|
||
"\n",
|
||
"\n",
|
||
" <div id=\"df-829ff2b9-1980-47e5-8038-9a5a7d0bc654\">\n",
|
||
" <div class=\"colab-df-container\">\n",
|
||
" <div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>expiration</th>\n",
|
||
" <th>strike</th>\n",
|
||
" <th>optionType</th>\n",
|
||
" <th>contractSymbol</th>\n",
|
||
" <th>bid</th>\n",
|
||
" <th>bidSize</th>\n",
|
||
" <th>ask</th>\n",
|
||
" <th>askSize</th>\n",
|
||
" <th>impliedVolatility</th>\n",
|
||
" <th>openInterest</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>change</th>\n",
|
||
" <th>open</th>\n",
|
||
" <th>high</th>\n",
|
||
" <th>low</th>\n",
|
||
" <th>tick</th>\n",
|
||
" <th>lastTradePrice</th>\n",
|
||
" <th>lastTradeTimestamp</th>\n",
|
||
" <th>changePercent</th>\n",
|
||
" <th>previousClose</th>\n",
|
||
" <th>dte</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>2023-08-11</td>\n",
|
||
" <td>50.0</td>\n",
|
||
" <td>call</td>\n",
|
||
" <td>AAPL230811C00050000</td>\n",
|
||
" <td>129.30</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>129.45</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0.0000</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.000</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>up</td>\n",
|
||
" <td>129.30</td>\n",
|
||
" <td>2023-08-08T14:18:27</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>130.03</td>\n",
|
||
" <td>2</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>2023-08-11</td>\n",
|
||
" <td>50.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>AAPL230811P00050000</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.01</td>\n",
|
||
" <td>624</td>\n",
|
||
" <td>5.1895</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.000</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>up</td>\n",
|
||
" <td>0.01</td>\n",
|
||
" <td>2023-08-08T10:36:09</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>2</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>2023-08-11</td>\n",
|
||
" <td>60.0</td>\n",
|
||
" <td>call</td>\n",
|
||
" <td>AAPL230811C00060000</td>\n",
|
||
" <td>119.30</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>119.45</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0.0000</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.000</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>down</td>\n",
|
||
" <td>118.85</td>\n",
|
||
" <td>2023-08-07T10:50:09</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>120.02</td>\n",
|
||
" <td>2</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>2023-08-11</td>\n",
|
||
" <td>60.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>AAPL230811P00060000</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.01</td>\n",
|
||
" <td>624</td>\n",
|
||
" <td>4.4677</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.000</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>no_change</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>None</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>2</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>2023-08-11</td>\n",
|
||
" <td>65.0</td>\n",
|
||
" <td>call</td>\n",
|
||
" <td>AAPL230811C00065000</td>\n",
|
||
" <td>114.30</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>114.45</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0.0000</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.000</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>no_change</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>None</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>115.02</td>\n",
|
||
" <td>2</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1797</th>\n",
|
||
" <td>2025-12-19</td>\n",
|
||
" <td>290.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>AAPL251219P00290000</td>\n",
|
||
" <td>109.10</td>\n",
|
||
" <td>90</td>\n",
|
||
" <td>112.50</td>\n",
|
||
" <td>102</td>\n",
|
||
" <td>0.3132</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.000</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>down</td>\n",
|
||
" <td>101.00</td>\n",
|
||
" <td>2023-06-28T10:34:27</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>110.05</td>\n",
|
||
" <td>863</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1798</th>\n",
|
||
" <td>2025-12-19</td>\n",
|
||
" <td>300.0</td>\n",
|
||
" <td>call</td>\n",
|
||
" <td>AAPL251219C00300000</td>\n",
|
||
" <td>4.05</td>\n",
|
||
" <td>107</td>\n",
|
||
" <td>4.20</td>\n",
|
||
" <td>340</td>\n",
|
||
" <td>0.2225</td>\n",
|
||
" <td>5130</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>-0.150</td>\n",
|
||
" <td>4.1</td>\n",
|
||
" <td>4.10</td>\n",
|
||
" <td>3.90</td>\n",
|
||
" <td>no_change</td>\n",
|
||
" <td>4.05</td>\n",
|
||
" <td>2023-08-09T13:49:34</td>\n",
|
||
" <td>-3.57</td>\n",
|
||
" <td>4.20</td>\n",
|
||
" <td>863</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1799</th>\n",
|
||
" <td>2025-12-19</td>\n",
|
||
" <td>300.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>AAPL251219P00300000</td>\n",
|
||
" <td>119.30</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>122.40</td>\n",
|
||
" <td>102</td>\n",
|
||
" <td>0.3366</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>2.000</td>\n",
|
||
" <td>121.0</td>\n",
|
||
" <td>122.00</td>\n",
|
||
" <td>121.00</td>\n",
|
||
" <td>up</td>\n",
|
||
" <td>122.00</td>\n",
|
||
" <td>2023-08-09T11:06:30</td>\n",
|
||
" <td>1.67</td>\n",
|
||
" <td>120.00</td>\n",
|
||
" <td>863</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1800</th>\n",
|
||
" <td>2025-12-19</td>\n",
|
||
" <td>310.0</td>\n",
|
||
" <td>call</td>\n",
|
||
" <td>AAPL251219C00310000</td>\n",
|
||
" <td>3.25</td>\n",
|
||
" <td>130</td>\n",
|
||
" <td>3.45</td>\n",
|
||
" <td>150</td>\n",
|
||
" <td>0.2211</td>\n",
|
||
" <td>3419</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>-0.075</td>\n",
|
||
" <td>3.3</td>\n",
|
||
" <td>3.35</td>\n",
|
||
" <td>3.15</td>\n",
|
||
" <td>up</td>\n",
|
||
" <td>3.35</td>\n",
|
||
" <td>2023-08-09T14:24:11</td>\n",
|
||
" <td>-2.19</td>\n",
|
||
" <td>3.42</td>\n",
|
||
" <td>863</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1801</th>\n",
|
||
" <td>2025-12-19</td>\n",
|
||
" <td>310.0</td>\n",
|
||
" <td>put</td>\n",
|
||
" <td>AAPL251219P00310000</td>\n",
|
||
" <td>129.05</td>\n",
|
||
" <td>59</td>\n",
|
||
" <td>132.45</td>\n",
|
||
" <td>100</td>\n",
|
||
" <td>0.3460</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.000</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>up</td>\n",
|
||
" <td>125.50</td>\n",
|
||
" <td>2023-08-04T14:01:04</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>130.05</td>\n",
|
||
" <td>863</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>1802 rows × 27 columns</p>\n",
|
||
"</div>\n",
|
||
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-829ff2b9-1980-47e5-8038-9a5a7d0bc654')\"\n",
|
||
" title=\"Convert this dataframe to an interactive table.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
|
||
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
|
||
" </svg>\n",
|
||
" </button>\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
" <div id=\"df-127314b8-75aa-4a35-a72a-6c6f3c98b961\">\n",
|
||
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-127314b8-75aa-4a35-a72a-6c6f3c98b961')\"\n",
|
||
" title=\"Suggest charts.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <g>\n",
|
||
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
||
" </g>\n",
|
||
"</svg>\n",
|
||
" </button>\n",
|
||
" </div>\n",
|
||
"\n",
|
||
"<style>\n",
|
||
" .colab-df-quickchart {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-quickchart:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-quickchart {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-quickchart:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" async function quickchart(key) {\n",
|
||
" const containerElement = document.querySelector('#' + key);\n",
|
||
" const charts = await google.colab.kernel.invokeFunction(\n",
|
||
" 'suggestCharts', [key], {});\n",
|
||
" }\n",
|
||
" </script>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
"\n",
|
||
"function displayQuickchartButton(domScope) {\n",
|
||
" let quickchartButtonEl =\n",
|
||
" domScope.querySelector('#df-127314b8-75aa-4a35-a72a-6c6f3c98b961 button.colab-df-quickchart');\n",
|
||
" quickchartButtonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"}\n",
|
||
"\n",
|
||
" displayQuickchartButton(document);\n",
|
||
" </script>\n",
|
||
" <style>\n",
|
||
" .colab-df-container {\n",
|
||
" display:flex;\n",
|
||
" flex-wrap:wrap;\n",
|
||
" gap: 12px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
" </style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" const buttonEl =\n",
|
||
" document.querySelector('#df-829ff2b9-1980-47e5-8038-9a5a7d0bc654 button.colab-df-convert');\n",
|
||
" buttonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"\n",
|
||
" async function convertToInteractive(key) {\n",
|
||
" const element = document.querySelector('#df-829ff2b9-1980-47e5-8038-9a5a7d0bc654');\n",
|
||
" const dataTable =\n",
|
||
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
||
" [key], {});\n",
|
||
" if (!dataTable) return;\n",
|
||
"\n",
|
||
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
||
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
||
" + ' to learn more about interactive tables.';\n",
|
||
" element.innerHTML = '';\n",
|
||
" dataTable['output_type'] = 'display_data';\n",
|
||
" await google.colab.output.renderOutput(dataTable, element);\n",
|
||
" const docLink = document.createElement('div');\n",
|
||
" docLink.innerHTML = docLinkHtml;\n",
|
||
" element.appendChild(docLink);\n",
|
||
" }\n",
|
||
" </script>\n",
|
||
" </div>\n",
|
||
" </div>\n"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"execution_count": 8
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# The source for the data can be defined by using the `source` argument.\n",
|
||
"# Instructions for obtaining and entering API keys are found here: https://docs.openbb.co/sdk/usage/api-keys\n",
|
||
"\n",
|
||
"balance_sheet_growth = openbb.stocks.fa.balance(symbol, ratios = True).transpose()\n",
|
||
"\n",
|
||
"balance_sheet_growth"
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 337
|
||
},
|
||
"id": "nC2Iy_kTYqnf",
|
||
"outputId": "d01644ab-fe22-4d48-ded9-8d3f298810a9"
|
||
},
|
||
"execution_count": 9,
|
||
"outputs": [
|
||
{
|
||
"output_type": "execute_result",
|
||
"data": {
|
||
"text/plain": [
|
||
"Breakdown Cash and cash equivalents Other short-term investments \\\n",
|
||
"2022-09-30 -0.323240 -0.109787 \n",
|
||
"2021-09-30 -0.080913 -0.476657 \n",
|
||
"2020-09-30 -0.221685 0.023476 \n",
|
||
"2019-09-30 0.000000 0.000000 \n",
|
||
"\n",
|
||
"Breakdown Total cash Net receivables Inventory Other current assets \\\n",
|
||
"2022-09-30 -0.228851 0.072532 -0.248328 0.504004 \n",
|
||
"2021-09-30 -0.311228 0.630149 0.620291 0.252752 \n",
|
||
"2020-09-30 -0.095607 -0.296868 -0.010960 -0.088083 \n",
|
||
"2019-09-30 0.000000 0.000000 0.000000 0.000000 \n",
|
||
"\n",
|
||
"Breakdown Total current assets Gross property plant and equipment \\\n",
|
||
"2022-09-30 0.004220 0.043145 \n",
|
||
"2021-09-30 -0.061769 0.059859 \n",
|
||
"2020-09-30 -0.117345 0.078879 \n",
|
||
"2019-09-30 0.000000 0.000000 \n",
|
||
"\n",
|
||
"Breakdown Accumulated depreciation Net property plant and equipment ... \\\n",
|
||
"2022-09-30 0.029267 0.067875 ... \n",
|
||
"2021-09-30 0.052771 0.072730 ... \n",
|
||
"2020-09-30 0.139658 -0.016373 ... \n",
|
||
"2019-09-30 0.000000 0.000000 ... \n",
|
||
"\n",
|
||
"Breakdown Total current liabilities Long-term debt \\\n",
|
||
"2022-09-30 0.227134 -0.093001 \n",
|
||
"2021-09-30 0.190612 0.105800 \n",
|
||
"2020-09-30 -0.003084 0.074722 \n",
|
||
"2019-09-30 0.000000 0.000000 \n",
|
||
"\n",
|
||
"Breakdown Other long-term liabilities Total non-current liabilities \\\n",
|
||
"2022-09-30 -0.078444 -0.088222 \n",
|
||
"2021-09-30 -0.021380 0.060552 \n",
|
||
"2020-09-30 0.078946 0.076221 \n",
|
||
"2019-09-30 0.000000 0.000000 \n",
|
||
"\n",
|
||
"Breakdown Total liabilities Common stock Retained earnings \\\n",
|
||
"2022-09-30 0.049220 0.130463 -1.551600 \n",
|
||
"2021-09-30 0.113568 0.129699 -0.628358 \n",
|
||
"2020-09-30 0.042419 0.124076 -0.673929 \n",
|
||
"2019-09-30 0.000000 0.000000 0.000000 \n",
|
||
"\n",
|
||
"Breakdown Accumulated other comprehensive income \\\n",
|
||
"2022-09-30 -69.153374 \n",
|
||
"2021-09-30 -1.401478 \n",
|
||
"2020-09-30 -0.304795 \n",
|
||
"2019-09-30 0.000000 \n",
|
||
"\n",
|
||
"Breakdown Total stockholders' equity \\\n",
|
||
"2022-09-30 -0.196830 \n",
|
||
"2021-09-30 -0.034420 \n",
|
||
"2020-09-30 -0.277926 \n",
|
||
"2019-09-30 0.000000 \n",
|
||
"\n",
|
||
"Breakdown Total liabilities and stockholders' equity \n",
|
||
"2022-09-30 0.004994 \n",
|
||
"2021-09-30 0.083714 \n",
|
||
"2020-09-30 -0.043212 \n",
|
||
"2019-09-30 0.000000 \n",
|
||
"\n",
|
||
"[4 rows x 28 columns]"
|
||
],
|
||
"text/html": [
|
||
"\n",
|
||
"\n",
|
||
" <div id=\"df-f5c3961d-86e4-4d13-8250-e32f14ef3afc\">\n",
|
||
" <div class=\"colab-df-container\">\n",
|
||
" <div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th>Breakdown</th>\n",
|
||
" <th>Cash and cash equivalents</th>\n",
|
||
" <th>Other short-term investments</th>\n",
|
||
" <th>Total cash</th>\n",
|
||
" <th>Net receivables</th>\n",
|
||
" <th>Inventory</th>\n",
|
||
" <th>Other current assets</th>\n",
|
||
" <th>Total current assets</th>\n",
|
||
" <th>Gross property plant and equipment</th>\n",
|
||
" <th>Accumulated depreciation</th>\n",
|
||
" <th>Net property plant and equipment</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>Total current liabilities</th>\n",
|
||
" <th>Long-term debt</th>\n",
|
||
" <th>Other long-term liabilities</th>\n",
|
||
" <th>Total non-current liabilities</th>\n",
|
||
" <th>Total liabilities</th>\n",
|
||
" <th>Common stock</th>\n",
|
||
" <th>Retained earnings</th>\n",
|
||
" <th>Accumulated other comprehensive income</th>\n",
|
||
" <th>Total stockholders' equity</th>\n",
|
||
" <th>Total liabilities and stockholders' equity</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>2022-09-30</th>\n",
|
||
" <td>-0.323240</td>\n",
|
||
" <td>-0.109787</td>\n",
|
||
" <td>-0.228851</td>\n",
|
||
" <td>0.072532</td>\n",
|
||
" <td>-0.248328</td>\n",
|
||
" <td>0.504004</td>\n",
|
||
" <td>0.004220</td>\n",
|
||
" <td>0.043145</td>\n",
|
||
" <td>0.029267</td>\n",
|
||
" <td>0.067875</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.227134</td>\n",
|
||
" <td>-0.093001</td>\n",
|
||
" <td>-0.078444</td>\n",
|
||
" <td>-0.088222</td>\n",
|
||
" <td>0.049220</td>\n",
|
||
" <td>0.130463</td>\n",
|
||
" <td>-1.551600</td>\n",
|
||
" <td>-69.153374</td>\n",
|
||
" <td>-0.196830</td>\n",
|
||
" <td>0.004994</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2021-09-30</th>\n",
|
||
" <td>-0.080913</td>\n",
|
||
" <td>-0.476657</td>\n",
|
||
" <td>-0.311228</td>\n",
|
||
" <td>0.630149</td>\n",
|
||
" <td>0.620291</td>\n",
|
||
" <td>0.252752</td>\n",
|
||
" <td>-0.061769</td>\n",
|
||
" <td>0.059859</td>\n",
|
||
" <td>0.052771</td>\n",
|
||
" <td>0.072730</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.190612</td>\n",
|
||
" <td>0.105800</td>\n",
|
||
" <td>-0.021380</td>\n",
|
||
" <td>0.060552</td>\n",
|
||
" <td>0.113568</td>\n",
|
||
" <td>0.129699</td>\n",
|
||
" <td>-0.628358</td>\n",
|
||
" <td>-1.401478</td>\n",
|
||
" <td>-0.034420</td>\n",
|
||
" <td>0.083714</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2020-09-30</th>\n",
|
||
" <td>-0.221685</td>\n",
|
||
" <td>0.023476</td>\n",
|
||
" <td>-0.095607</td>\n",
|
||
" <td>-0.296868</td>\n",
|
||
" <td>-0.010960</td>\n",
|
||
" <td>-0.088083</td>\n",
|
||
" <td>-0.117345</td>\n",
|
||
" <td>0.078879</td>\n",
|
||
" <td>0.139658</td>\n",
|
||
" <td>-0.016373</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>-0.003084</td>\n",
|
||
" <td>0.074722</td>\n",
|
||
" <td>0.078946</td>\n",
|
||
" <td>0.076221</td>\n",
|
||
" <td>0.042419</td>\n",
|
||
" <td>0.124076</td>\n",
|
||
" <td>-0.673929</td>\n",
|
||
" <td>-0.304795</td>\n",
|
||
" <td>-0.277926</td>\n",
|
||
" <td>-0.043212</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2019-09-30</th>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>4 rows × 28 columns</p>\n",
|
||
"</div>\n",
|
||
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f5c3961d-86e4-4d13-8250-e32f14ef3afc')\"\n",
|
||
" title=\"Convert this dataframe to an interactive table.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
|
||
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
|
||
" </svg>\n",
|
||
" </button>\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
" <div id=\"df-a1298838-1d01-455c-9f10-c69b55fd9b08\">\n",
|
||
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-a1298838-1d01-455c-9f10-c69b55fd9b08')\"\n",
|
||
" title=\"Suggest charts.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <g>\n",
|
||
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
||
" </g>\n",
|
||
"</svg>\n",
|
||
" </button>\n",
|
||
" </div>\n",
|
||
"\n",
|
||
"<style>\n",
|
||
" .colab-df-quickchart {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-quickchart:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-quickchart {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-quickchart:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" async function quickchart(key) {\n",
|
||
" const containerElement = document.querySelector('#' + key);\n",
|
||
" const charts = await google.colab.kernel.invokeFunction(\n",
|
||
" 'suggestCharts', [key], {});\n",
|
||
" }\n",
|
||
" </script>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
"\n",
|
||
"function displayQuickchartButton(domScope) {\n",
|
||
" let quickchartButtonEl =\n",
|
||
" domScope.querySelector('#df-a1298838-1d01-455c-9f10-c69b55fd9b08 button.colab-df-quickchart');\n",
|
||
" quickchartButtonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"}\n",
|
||
"\n",
|
||
" displayQuickchartButton(document);\n",
|
||
" </script>\n",
|
||
" <style>\n",
|
||
" .colab-df-container {\n",
|
||
" display:flex;\n",
|
||
" flex-wrap:wrap;\n",
|
||
" gap: 12px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
" </style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" const buttonEl =\n",
|
||
" document.querySelector('#df-f5c3961d-86e4-4d13-8250-e32f14ef3afc button.colab-df-convert');\n",
|
||
" buttonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"\n",
|
||
" async function convertToInteractive(key) {\n",
|
||
" const element = document.querySelector('#df-f5c3961d-86e4-4d13-8250-e32f14ef3afc');\n",
|
||
" const dataTable =\n",
|
||
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
||
" [key], {});\n",
|
||
" if (!dataTable) return;\n",
|
||
"\n",
|
||
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
||
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
||
" + ' to learn more about interactive tables.';\n",
|
||
" element.innerHTML = '';\n",
|
||
" dataTable['output_type'] = 'display_data';\n",
|
||
" await google.colab.output.renderOutput(dataTable, element);\n",
|
||
" const docLink = document.createElement('div');\n",
|
||
" docLink.innerHTML = docLinkHtml;\n",
|
||
" element.appendChild(docLink);\n",
|
||
" }\n",
|
||
" </script>\n",
|
||
" </div>\n",
|
||
" </div>\n"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"execution_count": 9
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# Select a metric to display (note that YahooFinance has limited financial statement history)\n",
|
||
"\n",
|
||
"clear_output(wait = False)\n",
|
||
"\n",
|
||
"growth_choices = balance_sheet_growth.columns.tolist()\n",
|
||
"growth_selection = widgets.Dropdown(\n",
|
||
" options = growth_choices,\n",
|
||
" value = None,\n",
|
||
")\n",
|
||
"output = widgets.Output()\n",
|
||
"\n",
|
||
"def generate_growth_figure(growth_choice):\n",
|
||
" growth_fig = OpenBBFigure()\n",
|
||
" growth_fig.add_bar(\n",
|
||
" y = balance_sheet_growth[growth_choice][balance_sheet_growth[growth_choice] > 0].values,\n",
|
||
" x = balance_sheet_growth[growth_choice][balance_sheet_growth[growth_choice] > 0].index,\n",
|
||
" name = growth_choice + \" Growth\",\n",
|
||
" marker = dict(color = \"blue\"),\n",
|
||
" )\n",
|
||
" growth_fig.add_bar(\n",
|
||
" y = balance_sheet_growth[growth_choice][balance_sheet_growth[growth_choice] < 0].values,\n",
|
||
" x = balance_sheet_growth[growth_choice][balance_sheet_growth[growth_choice] < 0].index,\n",
|
||
" name = growth_choice + \" Growth\",\n",
|
||
" marker = dict(color = \"red\")\n",
|
||
" )\n",
|
||
" growth_fig.update_layout(\n",
|
||
" showlegend=False,\n",
|
||
" width=600,\n",
|
||
" height=200,\n",
|
||
" title = dict(\n",
|
||
" text=f\"{symbol} {growth_choice} Growth\",\n",
|
||
" xanchor = \"center\",\n",
|
||
" x = 0.5,\n",
|
||
" font = dict(size = 12)\n",
|
||
" ),\n",
|
||
" barmode=\"overlay\",\n",
|
||
" bargap=0,\n",
|
||
" bargroupgap=0,\n",
|
||
" yaxis = dict(\n",
|
||
" title = \"% Growth\",\n",
|
||
" title_font = dict(size = 12),\n",
|
||
" ),\n",
|
||
" xaxis = dict(\n",
|
||
" showgrid = False,\n",
|
||
" title_font = dict(size = 9)\n",
|
||
" )\n",
|
||
" )\n",
|
||
" growth_fig.update_xaxes(type=\"category\")\n",
|
||
" return growth_fig\n",
|
||
"\n",
|
||
"def on_value_change(change):\n",
|
||
" clear_output(wait = True)\n",
|
||
" display(growth_selection)\n",
|
||
" with output:\n",
|
||
" growth_selection.value\n",
|
||
"\n",
|
||
"growth_selection.observe(on_value_change, names=\"value\")\n",
|
||
"display(growth_selection)"
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 49,
|
||
"referenced_widgets": [
|
||
"1c14db4b3fa04b67a7265adda2672f58",
|
||
"5038c42252f245e4906d27a68f23d7cd",
|
||
"ce2de0778cf24736b3ed515792072c94"
|
||
]
|
||
},
|
||
"id": "lx9Tglgqackd",
|
||
"outputId": "55757848-ee92-4f56-ad2c-dc4dd2499a3f"
|
||
},
|
||
"execution_count": 12,
|
||
"outputs": [
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"Dropdown(index=2, options=('Cash and cash equivalents', 'Other short-term investments', 'Total cash', 'Net rec…"
|
||
],
|
||
"application/vnd.jupyter.widget-view+json": {
|
||
"version_major": 2,
|
||
"version_minor": 0,
|
||
"model_id": "1c14db4b3fa04b67a7265adda2672f58"
|
||
}
|
||
},
|
||
"metadata": {}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# Play the cell to update to the selection.\n",
|
||
"\n",
|
||
"if not growth_selection.value is None:\n",
|
||
"\n",
|
||
" generate_growth_figure(growth_selection.value).show()"
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 217
|
||
},
|
||
"id": "oWmne07cb6-Z",
|
||
"outputId": "c4b48906-187f-4d5c-ad11-4f1ef0b55986"
|
||
},
|
||
"execution_count": 14,
|
||
"outputs": [
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/html": [
|
||
"<html>\n",
|
||
"<head><meta charset=\"utf-8\" /></head>\n",
|
||
"<body>\n",
|
||
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
|
||
" <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script> <div id=\"bec22cf2-69a6-4676-bde6-ab24a8442eba\" class=\"plotly-graph-div\" style=\"height:200px; width:600px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"bec22cf2-69a6-4676-bde6-ab24a8442eba\")) { Plotly.newPlot( \"bec22cf2-69a6-4676-bde6-ab24a8442eba\", [{\"marker\":{\"color\":\"blue\",\"line\":{\"width\":0.15}},\"name\":\"Total cash Growth\",\"x\":[],\"y\":[],\"type\":\"bar\"},{\"marker\":{\"color\":\"red\",\"line\":{\"width\":0.15}},\"name\":\"Total cash Growth\",\"x\":[\"2022-09-30\",\"2021-09-30\",\"2020-09-30\"],\"y\":[-0.2288510352974984,-0.31122791198882815,-0.09560746641208473],\"type\":\"bar\"}], {\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"contour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"contour\"}],\"heatmapgl\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmapgl\"}],\"heatmap\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmap\"}],\"histogram2dcontour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2dcontour\"}],\"histogram2d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"surface\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}],\"candlestick\":[{\"decreasing\":{\"fillcolor\":\"#e4003a\",\"line\":{\"color\":\"#e4003a\"}},\"increasing\":{\"fillcolor\":\"#00ACFF\",\"line\":{\"color\":\"#00ACFF\"}},\"type\":\"candlestick\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1,\"showarrow\":false},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]],\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]},\"colorway\":[\"#ffed00\",\"#ef7d00\",\"#e4003a\",\"#c13246\",\"#822661\",\"#48277c\",\"#005ca9\",\"#00aaff\",\"#9b30d9\",\"#af005f\",\"#5f00af\",\"#af87ff\"],\"font\":{\"color\":\"#f2f5fa\",\"family\":\"Fira Code\",\"size\":18},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"lakecolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#506784\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"x\",\"mapbox\":{\"style\":\"dark\"},\"paper_bgcolor\":\"#000000\",\"plot_bgcolor\":\"#000000\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"bordercolor\":\"rgb(17,17,17)\",\"borderwidth\":1,\"tickwidth\":0},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#F5EFF3\",\"ticks\":\"outside\",\"title\":{\"standoff\":20},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2,\"autorange\":true,\"mirror\":true,\"rangeslider\":{\"visible\":false},\"showgrid\":true,\"showline\":true,\"tick0\":1,\"tickfont\":{\"size\":14},\"zeroline\":false},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#F5EFF3\",\"ticks\":\"outside\",\"title\":{\"standoff\":20},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2,\"anchor\":\"x\",\"fixedrange\":false,\"mirror\":true,\"showgrid\":true,\"showline\":true,\"side\":\"right\",\"tick0\":0.5,\"zeroline\":false},\"dragmode\":\"pan\",\"legend\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15},\"x\":0.01,\"xanchor\":\"left\",\"y\":0.99,\"yanchor\":\"top\"},\"legend2\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}},\"legend3\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}},\"legend4\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}},\"legend5\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}}}},\"title\":{\"font\":{\"size\":12},\"text\":\"AAPL Total cash Growth\",\"xanchor\":\"center\",\"x\":0.5},\"yaxis\":{\"title\":{\"text\":\"% Growth\",\"font\":{\"size\":12}}},\"xaxis\":{\"title\":{\"font\":{\"size\":9}},\"showgrid\":false,\"type\":\"category\"},\"showlegend\":false,\"width\":600,\"height\":200,\"barmode\":\"overlay\",\"bargap\":0,\"bargroupgap\":0,\"margin\":{\"l\":40,\"r\":50,\"b\":80,\"t\":50},\"annotations\":[{\"font\":{\"color\":\"gray\",\"size\":17},\"opacity\":0.5,\"showarrow\":false,\"text\":\"OpenBB Terminal\",\"x\":1,\"xanchor\":\"right\",\"xref\":\"paper\",\"xshift\":40,\"y\":0,\"yanchor\":\"bottom\",\"yref\":\"paper\",\"yshift\":-80}],\"legend\":{\"orientation\":\"v\"}}, {\"scrollZoom\": true, \"displaylogo\": false, \"responsive\": true} ).then(function(){\n",
|
||
" \n",
|
||
"var gd = document.getElementById('bec22cf2-69a6-4676-bde6-ab24a8442eba');\n",
|
||
"var x = new MutationObserver(function (mutations, observer) {{\n",
|
||
" var display = window.getComputedStyle(gd).display;\n",
|
||
" if (!display || display === 'none') {{\n",
|
||
" console.log([gd, 'removed!']);\n",
|
||
" Plotly.purge(gd);\n",
|
||
" observer.disconnect();\n",
|
||
" }}\n",
|
||
"}});\n",
|
||
"\n",
|
||
"// Listen for the removal of the full notebook cells\n",
|
||
"var notebookContainer = gd.closest('#notebook-container');\n",
|
||
"if (notebookContainer) {{\n",
|
||
" x.observe(notebookContainer, {childList: true});\n",
|
||
"}}\n",
|
||
"\n",
|
||
"// Listen for the clearing of the current output cell\n",
|
||
"var outputEl = gd.closest('.output');\n",
|
||
"if (outputEl) {{\n",
|
||
" x.observe(outputEl, {childList: true});\n",
|
||
"}}\n",
|
||
"\n",
|
||
" }) }; </script> </div>\n",
|
||
"</body>\n",
|
||
"</html>"
|
||
]
|
||
},
|
||
"metadata": {}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# Momentum Score\n",
|
||
"\n",
|
||
"def get_momentum(symbol) -> pd.DataFrame:\n",
|
||
" \"\"\"\n",
|
||
" Momentum Factor Exposure is calculated as the log trailing 12-month return minus trailing one-month return. Higher values indicate larger, positive momentum exposure.\n",
|
||
"\n",
|
||
" Momentum = ln(1 + r12) - ln(1 + r1)\n",
|
||
"\n",
|
||
" Parameters\n",
|
||
" ----------\n",
|
||
" symbol: Ticker\n",
|
||
" The Ticker object\n",
|
||
"\n",
|
||
" Returns\n",
|
||
" -------\n",
|
||
" pd.DataFrame\n",
|
||
" Pandas DataFrame with the calculated historical momentum factor exposure score.\n",
|
||
" \"\"\"\n",
|
||
" monthly = openbb.stocks.load(symbol, monthly=True, start_date = \"1900-01-01\")[[\"Close\"]]\n",
|
||
" monthly[\"12 Month Log Return\"] = np.log( 1 + monthly[[\"Close\"]].pct_change(12))\n",
|
||
" monthly[\"1 Month Log Return\"] = np.log(1 + monthly[[\"Close\"]].pct_change(1))\n",
|
||
" monthly = monthly.dropna()\n",
|
||
" monthly[\"Momentum\"] = monthly[\"12 Month Log Return\"] - monthly[\"1 Month Log Return\"]\n",
|
||
"\n",
|
||
" return monthly\n",
|
||
"\n",
|
||
"momentum = get_momentum(symbol)\n",
|
||
"print(f\"Momentum Score: {momentum.Momentum.iloc[-1]}\")\n",
|
||
"momentum[\"Momentum\"].plot()"
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 577
|
||
},
|
||
"id": "STTnGHZTcOfP",
|
||
"outputId": "72861dee-6522-40d1-b733-841c49184c18"
|
||
},
|
||
"execution_count": 15,
|
||
"outputs": [
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"Loading Monthly data for AAPL with starting period 1985-01-01.\n"
|
||
],
|
||
"text/html": [
|
||
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Loading Monthly data for AAPL with starting period 1985-01-01.\n",
|
||
"</pre>\n"
|
||
]
|
||
},
|
||
"metadata": {}
|
||
},
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"Momentum Score: 0.22871522034849812\n"
|
||
]
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/html": [
|
||
"<html>\n",
|
||
"<head><meta charset=\"utf-8\" /></head>\n",
|
||
"<body>\n",
|
||
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
|
||
" <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script> <div id=\"11865a6a-f546-426e-96f0-10fa29161ba4\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"11865a6a-f546-426e-96f0-10fa29161ba4\")) { Plotly.newPlot( \"11865a6a-f546-426e-96f0-10fa29161ba4\", [{\"hovertemplate\":\"variable=Momentum\\u003cbr\\u003edate=%{x}\\u003cbr\\u003evalue=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"Momentum\",\"line\":{\"color\":\"#ffed00\",\"dash\":\"solid\"},\"marker\":{\"symbol\":\"circle\"},\"mode\":\"lines\",\"name\":\"Momentum\",\"orientation\":\"v\",\"showlegend\":true,\"x\":[\"1986-01-01T00:00:00\",\"1986-02-01T00:00:00\",\"1986-03-01T00:00:00\",\"1986-04-01T00:00:00\",\"1986-05-01T00:00:00\",\"1986-06-01T00:00:00\",\"1986-07-01T00:00:00\",\"1986-08-01T00:00:00\",\"1986-09-01T00:00:00\",\"1986-10-01T00:00:00\",\"1986-11-01T00:00:00\",\"1986-12-01T00:00:00\",\"1987-01-01T00:00:00\",\"1987-02-01T00:00:00\",\"1987-03-01T00:00:00\",\"1987-04-01T00:00:00\",\"1987-05-01T00:00:00\",\"1987-06-01T00:00:00\",\"1987-07-01T00:00:00\",\"1987-08-01T00:00:00\",\"1987-09-01T00:00:00\",\"1987-10-01T00:00:00\",\"1987-11-01T00:00:00\",\"1987-12-01T00:00:00\",\"1988-01-01T00:00:00\",\"1988-02-01T00:00:00\",\"1988-03-01T00:00:00\",\"1988-04-01T00:00:00\",\"1988-05-01T00:00:00\",\"1988-06-01T00:00:00\",\"1988-07-01T00:00:00\",\"1988-08-01T00:00:00\",\"1988-09-01T00:00:00\",\"1988-10-01T00:00:00\",\"1988-11-01T00:00:00\",\"1988-12-01T00:00:00\",\"1989-01-01T00:00:00\",\"1989-02-01T00:00:00\",\"1989-03-01T00:00:00\",\"1989-04-01T00:00:00\",\"1989-05-01T00:00:00\",\"1989-06-01T00:00:00\",\"1989-07-01T00:00:00\",\"1989-08-01T00:00:00\",\"1989-09-01T00:00:00\",\"1989-10-01T00:00:00\",\"1989-11-01T00:00:00\",\"1989-12-01T00:00:00\",\"1990-01-01T00:00:00\",\"1990-02-01T00:00:00\",\"1990-03-01T00:00:00\",\"1990-04-01T00:00:00\",\"1990-05-01T00:00:00\",\"1990-06-01T00:00:00\",\"1990-07-01T00:00:00\",\"1990-08-01T00:00:00\",\"1990-09-01T00:00:00\",\"1990-10-01T00:00:00\",\"1990-11-01T00:00:00\",\"1990-12-01T00:00:00\",\"1991-01-01T00:00:00\",\"1991-02-01T00:00:00\",\"1991-03-01T00:00:00\",\"1991-04-01T00:00:00\",\"1991-05-01T00:00:00\",\"1991-06-01T00:00:00\",\"1991-07-01T00:00:00\",\"1991-08-01T00:00:00\",\"1991-09-01T00:00:00\",\"1991-10-01T00:00:00\",\"1991-11-01T00:00:00\",\"1991-12-01T00:00:00\",\"1992-01-01T00:00:00\",\"1992-02-01T00:00:00\",\"1992-03-01T00:00:00\",\"1992-04-01T00:00:00\",\"1992-05-01T00:00:00\",\"1992-06-01T00:00:00\",\"1992-07-01T00:00:00\",\"1992-08-01T00:00:00\",\"1992-09-01T00:00:00\",\"1992-10-01T00:00:00\",\"1992-11-01T00:00:00\",\"1992-12-01T00:00:00\",\"1993-01-01T00:00:00\",\"1993-02-01T00:00:00\",\"1993-03-01T00:00:00\",\"1993-04-01T00:00:00\",\"1993-05-01T00:00:00\",\"1993-06-01T00:00:00\",\"1993-07-01T00:00:00\",\"1993-08-01T00:00:00\",\"1993-09-01T00:00:00\",\"1993-10-01T00:00:00\",\"1993-11-01T00:00:00\",\"1993-12-01T00:00:00\",\"1994-01-01T00:00:00\",\"1994-02-01T00:00:00\",\"1994-03-01T00:00:00\",\"1994-04-01T00:00:00\",\"1994-05-01T00:00:00\",\"1994-06-01T00:00:00\",\"1994-07-01T00:00:00\",\"1994-08-01T00:00:00\",\"1994-09-01T00:00:00\",\"1994-10-01T00:00:00\",\"1994-11-01T00:00:00\",\"1994-12-01T00:00:00\",\"1995-01-01T00:00:00\",\"1995-02-01T00:00:00\",\"1995-03-01T00:00:00\",\"1995-04-01T00:00:00\",\"1995-05-01T00:00:00\",\"1995-06-01T00:00:00\",\"1995-07-01T00:00:00\",\"1995-08-01T00:00:00\",\"1995-09-01T00:00:00\",\"1995-10-01T00:00:00\",\"1995-11-01T00:00:00\",\"1995-12-01T00:00:00\",\"1996-01-01T00:00:00\",\"1996-02-01T00:00:00\",\"1996-03-01T00:00:00\",\"1996-04-01T00:00:00\",\"1996-05-01T00:00:00\",\"1996-06-01T00:00:00\",\"1996-07-01T00:00:00\",\"1996-08-01T00:00:00\",\"1996-09-01T00:00:00\",\"1996-10-01T00:00:00\",\"1996-11-01T00:00:00\",\"1996-12-01T00:00:00\",\"1997-01-01T00:00:00\",\"1997-02-01T00:00:00\",\"1997-03-01T00:00:00\",\"1997-04-01T00:00:00\",\"1997-05-01T00:00:00\",\"1997-06-01T00:00:00\",\"1997-07-01T00:00:00\",\"1997-08-01T00:00:00\",\"1997-09-01T00:00:00\",\"1997-10-01T00:00:00\",\"1997-11-01T00:00:00\",\"1997-12-01T00:00:00\",\"1998-01-01T00:00:00\",\"1998-02-01T00:00:00\",\"1998-03-01T00:00:00\",\"1998-04-01T00:00:00\",\"1998-05-01T00:00:00\",\"1998-06-01T00:00:00\",\"1998-07-01T00:00:00\",\"1998-08-01T00:00:00\",\"1998-09-01T00:00:00\",\"1998-10-01T00:00:00\",\"1998-11-01T00:00:00\",\"1998-12-01T00:00:00\",\"1999-01-01T00:00:00\",\"1999-02-01T00:00:00\",\"1999-03-01T00:00:00\",\"1999-04-01T00:00:00\",\"1999-05-01T00:00:00\",\"1999-06-01T00:00:00\",\"1999-07-01T00:00:00\",\"1999-08-01T00:00:00\",\"1999-09-01T00:00:00\",\"1999-10-01T00:00:00\",\"1999-11-01T00:00:00\",\"1999-12-01T00:00:00\",\"2000-01-01T00:00:00\",\"2000-02-01T00:00:00\",\"2000-03-01T00:00:00\",\"2000-04-01T00:00:00\",\"2000-05-01T00:00:00\",\"2000-06-01T00:00:00\",\"2000-07-01T00:00:00\",\"2000-08-01T00:00:00\",\"2000-09-01T00:00:00\",\"2000-10-01T00:00:00\",\"2000-11-01T00:00:00\",\"2000-12-01T00:00:00\",\"2001-01-01T00:00:00\",\"2001-02-01T00:00:00\",\"2001-03-01T00:00:00\",\"2001-04-01T00:00:00\",\"2001-05-01T00:00:00\",\"2001-06-01T00:00:00\",\"2001-07-01T00:00:00\",\"2001-08-01T00:00:00\",\"2001-09-01T00:00:00\",\"2001-10-01T00:00:00\",\"2001-11-01T00:00:00\",\"2001-12-01T00:00:00\",\"2002-01-01T00:00:00\",\"2002-02-01T00:00:00\",\"2002-03-01T00:00:00\",\"2002-04-01T00:00:00\",\"2002-05-01T00:00:00\",\"2002-06-01T00:00:00\",\"2002-07-01T00:00:00\",\"2002-08-01T00:00:00\",\"2002-09-01T00:00:00\",\"2002-10-01T00:00:00\",\"2002-11-01T00:00:00\",\"2002-12-01T00:00:00\",\"2003-01-01T00:00:00\",\"2003-02-01T00:00:00\",\"2003-03-01T00:00:00\",\"2003-04-01T00:00:00\",\"2003-05-01T00:00:00\",\"2003-06-01T00:00:00\",\"2003-07-01T00:00:00\",\"2003-08-01T00:00:00\",\"2003-09-01T00:00:00\",\"2003-10-01T00:00:00\",\"2003-11-01T00:00:00\",\"2003-12-01T00:00:00\",\"2004-01-01T00:00:00\",\"2004-02-01T00:00:00\",\"2004-03-01T00:00:00\",\"2004-04-01T00:00:00\",\"2004-05-01T00:00:00\",\"2004-06-01T00:00:00\",\"2004-07-01T00:00:00\",\"2004-08-01T00:00:00\",\"2004-09-01T00:00:00\",\"2004-10-01T00:00:00\",\"2004-11-01T00:00:00\",\"2004-12-01T00:00:00\",\"2005-01-01T00:00:00\",\"2005-02-01T00:00:00\",\"2005-03-01T00:00:00\",\"2005-04-01T00:00:00\",\"2005-05-01T00:00:00\",\"2005-06-01T00:00:00\",\"2005-07-01T00:00:00\",\"2005-08-01T00:00:00\",\"2005-09-01T00:00:00\",\"2005-10-01T00:00:00\",\"2005-11-01T00:00:00\",\"2005-12-01T00:00:00\",\"2006-01-01T00:00:00\",\"2006-02-01T00:00:00\",\"2006-03-01T00:00:00\",\"2006-04-01T00:00:00\",\"2006-05-01T00:00:00\",\"2006-06-01T00:00:00\",\"2006-07-01T00:00:00\",\"2006-08-01T00:00:00\",\"2006-09-01T00:00:00\",\"2006-10-01T00:00:00\",\"2006-11-01T00:00:00\",\"2006-12-01T00:00:00\",\"2007-01-01T00:00:00\",\"2007-02-01T00:00:00\",\"2007-03-01T00:00:00\",\"2007-04-01T00:00:00\",\"2007-05-01T00:00:00\",\"2007-06-01T00:00:00\",\"2007-07-01T00:00:00\",\"2007-08-01T00:00:00\",\"2007-09-01T00:00:00\",\"2007-10-01T00:00:00\",\"2007-11-01T00:00:00\",\"2007-12-01T00:00:00\",\"2008-01-01T00:00:00\",\"2008-02-01T00:00:00\",\"2008-03-01T00:00:00\",\"2008-04-01T00:00:00\",\"2008-05-01T00:00:00\",\"2008-06-01T00:00:00\",\"2008-07-01T00:00:00\",\"2008-08-01T00:00:00\",\"2008-09-01T00:00:00\",\"2008-10-01T00:00:00\",\"2008-11-01T00:00:00\",\"2008-12-01T00:00:00\",\"2009-01-01T00:00:00\",\"2009-02-01T00:00:00\",\"2009-03-01T00:00:00\",\"2009-04-01T00:00:00\",\"2009-05-01T00:00:00\",\"2009-06-01T00:00:00\",\"2009-07-01T00:00:00\",\"2009-08-01T00:00:00\",\"2009-09-01T00:00:00\",\"2009-10-01T00:00:00\",\"2009-11-01T00:00:00\",\"2009-12-01T00:00:00\",\"2010-01-01T00:00:00\",\"2010-02-01T00:00:00\",\"2010-03-01T00:00:00\",\"2010-04-01T00:00:00\",\"2010-05-01T00:00:00\",\"2010-06-01T00:00:00\",\"2010-07-01T00:00:00\",\"2010-08-01T00:00:00\",\"2010-09-01T00:00:00\",\"2010-10-01T00:00:00\",\"2010-11-01T00:00:00\",\"2010-12-01T00:00:00\",\"2011-01-01T00:00:00\",\"2011-02-01T00:00:00\",\"2011-03-01T00:00:00\",\"2011-04-01T00:00:00\",\"2011-05-01T00:00:00\",\"2011-06-01T00:00:00\",\"2011-07-01T00:00:00\",\"2011-08-01T00:00:00\",\"2011-09-01T00:00:00\",\"2011-10-01T00:00:00\",\"2011-11-01T00:00:00\",\"2011-12-01T00:00:00\",\"2012-01-01T00:00:00\",\"2012-02-01T00:00:00\",\"2012-03-01T00:00:00\",\"2012-04-01T00:00:00\",\"2012-05-01T00:00:00\",\"2012-06-01T00:00:00\",\"2012-07-01T00:00:00\",\"2012-08-01T00:00:00\",\"2012-09-01T00:00:00\",\"2012-10-01T00:00:00\",\"2012-11-01T00:00:00\",\"2012-12-01T00:00:00\",\"2013-01-01T00:00:00\",\"2013-02-01T00:00:00\",\"2013-03-01T00:00:00\",\"2013-04-01T00:00:00\",\"2013-05-01T00:00:00\",\"2013-06-01T00:00:00\",\"2013-07-01T00:00:00\",\"2013-08-01T00:00:00\",\"2013-09-01T00:00:00\",\"2013-10-01T00:00:00\",\"2013-11-01T00:00:00\",\"2013-12-01T00:00:00\",\"2014-01-01T00:00:00\",\"2014-02-01T00:00:00\",\"2014-03-01T00:00:00\",\"2014-04-01T00:00:00\",\"2014-05-01T00:00:00\",\"2014-06-01T00:00:00\",\"2014-07-01T00:00:00\",\"2014-08-01T00:00:00\",\"2014-09-01T00:00:00\",\"2014-10-01T00:00:00\",\"2014-11-01T00:00:00\",\"2014-12-01T00:00:00\",\"2015-01-01T00:00:00\",\"2015-02-01T00:00:00\",\"2015-03-01T00:00:00\",\"2015-04-01T00:00:00\",\"2015-05-01T00:00:00\",\"2015-06-01T00:00:00\",\"2015-07-01T00:00:00\",\"2015-08-01T00:00:00\",\"2015-09-01T00:00:00\",\"2015-10-01T00:00:00\",\"2015-11-01T00:00:00\",\"2015-12-01T00:00:00\",\"2016-01-01T00:00:00\",\"2016-02-01T00:00:00\",\"2016-03-01T00:00:00\",\"2016-04-01T00:00:00\",\"2016-05-01T00:00:00\",\"2016-06-01T00:00:00\",\"2016-07-01T00:00:00\",\"2016-08-01T00:00:00\",\"2016-09-01T00:00:00\",\"2016-10-01T00:00:00\",\"2016-11-01T00:00:00\",\"2016-12-01T00:00:00\",\"2017-01-01T00:00:00\",\"2017-02-01T00:00:00\",\"2017-03-01T00:00:00\",\"2017-04-01T00:00:00\",\"2017-05-01T00:00:00\",\"2017-06-01T00:00:00\",\"2017-07-01T00:00:00\",\"2017-08-01T00:00:00\",\"2017-09-01T00:00:00\",\"2017-10-01T00:00:00\",\"2017-11-01T00:00:00\",\"2017-12-01T00:00:00\",\"2018-01-01T00:00:00\",\"2018-02-01T00:00:00\",\"2018-03-01T00:00:00\",\"2018-04-01T00:00:00\",\"2018-05-01T00:00:00\",\"2018-06-01T00:00:00\",\"2018-07-01T00:00:00\",\"2018-08-01T00:00:00\",\"2018-09-01T00:00:00\",\"2018-10-01T00:00:00\",\"2018-11-01T00:00:00\",\"2018-12-01T00:00:00\",\"2019-01-01T00:00:00\",\"2019-02-01T00:00:00\",\"2019-03-01T00:00:00\",\"2019-04-01T00:00:00\",\"2019-05-01T00:00:00\",\"2019-06-01T00:00:00\",\"2019-07-01T00:00:00\",\"2019-08-01T00:00:00\",\"2019-09-01T00:00:00\",\"2019-10-01T00:00:00\",\"2019-11-01T00:00:00\",\"2019-12-01T00:00:00\",\"2020-01-01T00:00:00\",\"2020-02-01T00:00:00\",\"2020-03-01T00:00:00\",\"2020-04-01T00:00:00\",\"2020-05-01T00:00:00\",\"2020-06-01T00:00:00\",\"2020-07-01T00:00:00\",\"2020-08-01T00:00:00\",\"2020-09-01T00:00:00\",\"2020-10-01T00:00:00\",\"2020-11-01T00:00:00\",\"2020-12-01T00:00:00\",\"2021-01-01T00:00:00\",\"2021-02-01T00:00:00\",\"2021-03-01T00:00:00\",\"2021-04-01T00:00:00\",\"2021-05-01T00:00:00\",\"2021-06-01T00:00:00\",\"2021-07-01T00:00:00\",\"2021-08-01T00:00:00\",\"2021-09-01T00:00:00\",\"2021-10-01T00:00:00\",\"2021-11-01T00:00:00\",\"2021-12-01T00:00:00\",\"2022-01-01T00:00:00\",\"2022-02-01T00:00:00\",\"2022-03-01T00:00:00\",\"2022-04-01T00:00:00\",\"2022-05-01T00:00:00\",\"2022-06-01T00:00:00\",\"2022-07-01T00:00:00\",\"2022-08-01T00:00:00\",\"2022-09-01T00:00:00\",\"2022-10-01T00:00:00\",\"2022-11-01T00:00:00\",\"2022-12-01T00:00:00\",\"2023-01-01T00:00:00\",\"2023-02-01T00:00:00\",\"2023-03-01T00:00:00\",\"2023-04-01T00:00:00\",\"2023-05-01T00:00:00\",\"2023-06-01T00:00:00\",\"2023-07-01T00:00:00\",\"2023-08-01T00:00:00\"],\"xaxis\":\"x\",\"y\":[-0.27625369354607715,-0.0679065933562821,0.12216943011635407,0.28473687753662996,0.5544660413373885,0.7205508475219171,0.8152865458926534,0.7339745496990653,0.8540735167075932,0.5870471540402987,0.5426111760526056,0.5978376069453395,0.5603857919345318,0.7975095329070856,0.9074021885495788,0.7571650501633429,0.7616877857796654,0.7894101087383982,0.953949796972225,0.803399687469332,1.1721037000012031,1.1856231479707406,0.6609824279429487,0.49116449730400225,0.4194244813824801,0.17533727258076415,0.29267596015610015,0.01637992366799558,0.04423124588386813,0.029832786525987365,0.12182510868841945,-0.18889175038930153,-0.34236490605700026,0.12110689774409913,0.16539906743356209,-0.10416948532186149,-0.022118440936517964,-0.12174874802910793,-0.09194455861382965,-0.13127614817399885,-0.05288435690835269,0.039190230296621,-0.06356259695977212,0.0063215826956479065,0.036067227812155614,0.15153582260547094,0.22173056398052227,0.10205687841044453,-0.05874948187139304,-0.05430816735917535,-0.03966773161050893,0.04178502679204155,-0.1826097839661261,0.00804726209792414,0.12929943130554672,-0.047000446169629756,-0.17612223887861297,-0.46069024214591264,-0.3524975745760982,0.05067836474648357,0.24718454521841793,0.5023667735594294,0.361444070454525,0.557602831558057,0.2989086087361826,0.05751346137444657,-0.0009629209523141502,0.23415599599395615,0.6109889030899065,0.4863308575593519,0.34769254922076703,0.17262265073459115,0.024956593164455088,0.132420194102741,-0.00016688842840537066,0.06649218076858807,0.25535830110612734,0.3710007223426529,0.04366518169982171,-0.11694135511160894,-0.06705159022602887,-0.12318001802888895,0.042866222937416584,0.026322118016879434,-0.07167740527881297,-0.11746428712071118,-0.08763314816605346,-0.14584709557111603,-0.14445633253320297,0.17424691969205594,-0.15943659522179132,-0.4963281660571133,-0.5259004505540259,-0.7983644240999324,-0.6151104052681584,-0.6315230646625409,-0.6978504451332965,-0.4691424474663725,-0.3342009745082507,-0.41900638950228697,-0.6215991098863702,-0.2888558003384633,-0.030586035667837852,0.2554877437633673,0.4481640384154667,0.10580685622466021,0.33013665867573594,0.25275591159047867,0.18864600480717142,0.11488611964010158,0.18264872096192702,0.1744155841376361,0.28141031190303745,0.45926132765991456,0.3329585008660604,0.22992415432757635,0.2525936616639416,-0.13665671152705686,-0.014244227052462761,-0.014449305177171329,-0.22503827619663874,-0.34622862776331464,-0.23967209709782974,-0.4343173576744862,-0.525034741003304,-0.5693786521780733,-0.7563037726985989,-0.6643203945716641,-0.42612334388237005,-0.4895218750410491,-0.5022671275242063,-0.2785713680568793,-0.2801693015338108,-0.5032763791265551,-0.4131299051560846,-0.28939580767113104,-0.42967763863497244,-0.23361173603474863,-0.43428897742618555,-0.326216119337413,-0.01991903710196409,-0.05875919450929315,-0.3481980760014186,-0.16216829958018442,-0.23638787255735677,0.11949044537484627,0.2581454775662846,0.48097170717944226,0.49872065844649677,0.6250940443359841,0.49425902209287614,0.46496485832491646,0.36328384329698726,0.8058191580071014,0.737905642889722,0.8892571204459309,0.804463948367637,0.5558280762768022,0.23578965695022097,0.2721514058595671,0.5467909696593521,0.42914843509017614,0.29083464577760465,0.5797380512591734,0.5373548640802573,0.5337923601104919,0.9198081936610293,0.8716459712029941,0.9147712724175988,1.0920068096277953,1.1598834964844977,1.0826353062294451,1.0351768826404952,0.5954060295680697,0.6318205809110715,0.4430639747285605,0.6549139648086154,-0.4420077217854966,-0.9169304363844454,-1.1363996973698267,-1.2491547949169433,-0.9746686967036409,-1.313962781449336,-1.033419594171496,-0.4993824679028206,-0.9652005456382926,-0.7818359027484164,-1.1765233373713437,-0.327963594741376,-0.23212947867024342,0.06226203270333838,0.3590249252897941,0.012635020686676185,0.30344775599589596,-0.01690621081166535,-0.07407789409083601,0.19601226620960258,0.0021460598930047037,-0.058630670981821176,-0.19523480301352392,-0.050240641740348854,-0.1914723935772118,-0.2817537807596545,-0.34564445900494495,-0.5452577735565737,-0.41286420589983874,-0.4554920068257673,-0.5402333643910538,-0.49380132015409395,0.012896041537201586,0.2223567292475741,0.35708236675379396,0.4442423087852494,0.25414658343329566,0.38985883278213956,0.3778721755317448,0.397539321271236,0.4074606842816065,0.5257075141856133,0.6426659280198475,0.36200742874668257,0.38675228127423095,0.43414383288795766,0.3579122751780599,0.509570287210062,0.5264306195989806,0.9186781866374386,1.1434509849523022,1.0489351261458855,1.167790272886685,1.1993767916504765,1.1733298373707368,0.9439871312984307,0.8935387699245061,0.8226122215252618,0.9055046743712741,0.8838211072394682,0.7159768180741839,0.5410578464951341,0.7448912466948263,0.6257790792944848,0.5207185926754483,0.49690625609601613,0.5534964389019709,0.5711902472141119,0.4847341323793666,0.2947494971062766,0.3711145447128207,0.23556360689348838,0.2901966127750042,0.17857891698358463,0.2429485993473477,0.11650204482808882,0.22451556162277628,0.2993718198387615,0.27757960914982127,0.5126642633617768,0.7495827024894652,0.58542966104097,0.6636829341571487,0.5871801924573865,0.6380687746860312,0.7286748139508354,0.7644473447266231,0.8374681782854283,0.46988565897436235,0.29684279361620824,0.36316661550625917,0.361408292050514,0.43607470594436815,0.2396426848726686,0.13786377607493558,0.09952483630192849,-0.5135491546619484,-0.5268870258551159,-0.7596266048655342,-0.46117764310839365,-0.327220622436491,-0.4742209804069388,-0.5036652026838884,-0.4054910328921283,-0.20936821512467457,-0.10973882288655418,-0.036890035908192356,0.3920013008729792,0.5439184238486706,0.7100533593535352,0.8511070890358333,0.8493245620387054,0.7656940647999254,0.6660522774990596,0.6246525776631723,0.6536086215165698,0.5897580569213943,0.4314221712382216,0.42483542893220866,0.2712265436923623,0.40899576910679797,0.4091766263721413,0.3896975714841351,0.5184814188201962,0.5057887467854539,0.4074777316369771,0.28880190878396617,0.3096958675734553,0.32415174294274024,0.2660800205206326,0.47390402968365486,0.30470790296372174,0.23659504002717907,0.2630682302558771,0.16965478009485457,0.1769433051769484,0.2564822153982984,0.44241008247162955,0.537874272784225,0.5181527933645068,0.5429780499170513,0.4025245782771398,0.4619024047387708,0.5565085864577715,0.5038808384083046,0.4474393751057814,0.3724877173367242,0.16225949415331697,-0.1658622968161796,-0.2973864521493551,-0.26241213018186055,-0.2513812409015802,-0.24660128911359597,-0.41070272648704964,-0.364044016675246,-0.2972591690140711,-0.19856036018683337,-0.08953603939194754,0.06292095155186866,0.23319349884010496,0.15066722476927247,0.19195518203726902,0.21740881948340574,0.2965952976283437,0.48608928005222074,0.38684325216411247,0.34130772955607386,0.42614019661829017,0.3218653599228199,0.32946774681253055,0.41118847138496106,0.4548578341932266,0.4645198994576061,0.5308724281777722,0.40817576493421626,0.3437500545727068,0.35106702191037303,0.2889708292060741,0.18579953493644097,0.12505376101451898,0.03802311336954359,0.021731322334239484,0.08191843510760856,-0.09021246447887041,-0.26051303756579103,-0.23927737231086688,-0.11988926820129953,-0.3107938091350443,-0.21377954547769593,-0.2178248917695675,-0.05858461162492919,-0.023069073863201055,-0.034330731326595164,-0.019913075281370304,0.06564707988087248,0.19583268706585777,0.24917409803793772,0.2452451095002727,0.44784418720116836,0.38453028859750826,0.48354538434362604,0.34251331330981916,0.3567195033800805,0.3856028086696066,0.3230616922086288,0.4424247882142961,0.406949169967066,0.34853288641359326,0.21661070068626773,0.22663506313993154,0.1709697362594814,0.09434738811937034,0.2720374236305785,0.23424288301728896,0.16410818929536142,0.4014961351477665,0.30425545663419695,0.25681742481145675,0.06519644152156774,-0.04471559068444925,-0.052920946009945895,0.04233744207418905,0.1543533620802697,0.08636102683428773,-0.044500575753200516,0.05442084516715587,-0.051134320201207464,-0.06668814203518023,0.03847828553661588,0.346850430129057,0.5391515847057426,0.5826667642227247,0.5957452839138098,0.374662499069405,0.2498175350129334,0.5307174077578591,0.4831603186943584,0.5497330882520328,0.7229576604281716,0.8429760772624082,0.6316296876416855,0.4980456019201419,0.49032465493519256,0.5479183721897728,0.6666022471410121,0.6519846184215958,0.5163666944235519,0.5108558358887179,0.3171524126204347,0.26051538443384936,0.1292404396686719,0.2757248289876711,0.2686483085800396,0.23616874939994087,0.22443405467757754,0.3030121092729613,0.37173683099710275,0.3060752969714992,0.2897784178830129,0.241114393275986,0.08741194622138038,-0.05901526746111345,0.0736748438616929,0.10954632952448592,-0.07501138011221646,-0.06951635034463369,-0.17782055159974777,-0.290745147248912,-0.12906039338896194,-0.16482341422531915,0.05100131160273233,0.13708164124187716,0.2641974794302194,0.18291751701099557,0.22871522034849812],\"yaxis\":\"y\",\"type\":\"scatter\"}], {\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"contour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"contour\"}],\"heatmapgl\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmapgl\"}],\"heatmap\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmap\"}],\"histogram2dcontour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2dcontour\"}],\"histogram2d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"surface\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}],\"candlestick\":[{\"decreasing\":{\"fillcolor\":\"#e4003a\",\"line\":{\"color\":\"#e4003a\"}},\"increasing\":{\"fillcolor\":\"#00ACFF\",\"line\":{\"color\":\"#00ACFF\"}},\"type\":\"candlestick\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1,\"showarrow\":false},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]],\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]},\"colorway\":[\"#ffed00\",\"#ef7d00\",\"#e4003a\",\"#c13246\",\"#822661\",\"#48277c\",\"#005ca9\",\"#00aaff\",\"#9b30d9\",\"#af005f\",\"#5f00af\",\"#af87ff\"],\"font\":{\"color\":\"#f2f5fa\",\"family\":\"Fira Code\",\"size\":18},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"lakecolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#506784\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"x\",\"mapbox\":{\"style\":\"dark\"},\"paper_bgcolor\":\"#000000\",\"plot_bgcolor\":\"#000000\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"bordercolor\":\"rgb(17,17,17)\",\"borderwidth\":1,\"tickwidth\":0},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#F5EFF3\",\"ticks\":\"outside\",\"title\":{\"standoff\":20},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2,\"autorange\":true,\"mirror\":true,\"rangeslider\":{\"visible\":false},\"showgrid\":true,\"showline\":true,\"tick0\":1,\"tickfont\":{\"size\":14},\"zeroline\":false},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#F5EFF3\",\"ticks\":\"outside\",\"title\":{\"standoff\":20},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2,\"anchor\":\"x\",\"fixedrange\":false,\"mirror\":true,\"showgrid\":true,\"showline\":true,\"side\":\"right\",\"tick0\":0.5,\"zeroline\":false},\"dragmode\":\"pan\",\"legend\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15},\"x\":0.01,\"xanchor\":\"left\",\"y\":0.99,\"yanchor\":\"top\"},\"legend2\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}},\"legend3\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}},\"legend4\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}},\"legend5\":{\"bgcolor\":\"rgba(0, 0, 0, 0.5)\",\"font\":{\"size\":15}}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"date\"}},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"value\"}},\"legend\":{\"title\":{\"text\":\"variable\"},\"tracegroupgap\":0},\"margin\":{\"t\":60}}, {\"responsive\": true} ).then(function(){\n",
|
||
" \n",
|
||
"var gd = document.getElementById('11865a6a-f546-426e-96f0-10fa29161ba4');\n",
|
||
"var x = new MutationObserver(function (mutations, observer) {{\n",
|
||
" var display = window.getComputedStyle(gd).display;\n",
|
||
" if (!display || display === 'none') {{\n",
|
||
" console.log([gd, 'removed!']);\n",
|
||
" Plotly.purge(gd);\n",
|
||
" observer.disconnect();\n",
|
||
" }}\n",
|
||
"}});\n",
|
||
"\n",
|
||
"// Listen for the removal of the full notebook cells\n",
|
||
"var notebookContainer = gd.closest('#notebook-container');\n",
|
||
"if (notebookContainer) {{\n",
|
||
" x.observe(notebookContainer, {childList: true});\n",
|
||
"}}\n",
|
||
"\n",
|
||
"// Listen for the clearing of the current output cell\n",
|
||
"var outputEl = gd.closest('.output');\n",
|
||
"if (outputEl) {{\n",
|
||
" x.observe(outputEl, {childList: true});\n",
|
||
"}}\n",
|
||
"\n",
|
||
" }) }; </script> </div>\n",
|
||
"</body>\n",
|
||
"</html>"
|
||
]
|
||
},
|
||
"metadata": {}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|