mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-12 12:22:35 +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>
17186 lines
394 KiB
Plaintext
Vendored
17186 lines
394 KiB
Plaintext
Vendored
{
|
|
"cells": [
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Options Chains Analysis\n",
|
|
"\n",
|
|
"Version 3.1 of the OpenBB SDK provides a suite of enhancements to the Options module. This notebook will highlight the changes and demonstrate how to get started using the new tools.\n",
|
|
"\n",
|
|
"## What's Changed\n",
|
|
"\n",
|
|
"- There's a new way to `load`\n",
|
|
" \n",
|
|
" `openbb.stocks.options.load_options_chains()`\n",
|
|
"\n",
|
|
" The legacy method (`openbb.stocks.options.chains()`) remains in service, but some minor changes to existing scripts will be required to take advantage of the new functionality. Don't worry, it's nothing that `Find & Replace` can't easily handle. Let's compare below."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Select the `obb` Python environment as the session's kernel, then import the OpenBB SDK.\n",
|
|
"\n",
|
|
"from openbb_terminal.sdk import openbb\n",
|
|
"import pandas as pd\n",
|
|
"from openbb_terminal.economy.plot_view import show_plot"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>optionType</th>\n",
|
|
" <th>expiration</th>\n",
|
|
" <th>strike</th>\n",
|
|
" <th>lastPrice</th>\n",
|
|
" <th>bid</th>\n",
|
|
" <th>ask</th>\n",
|
|
" <th>openInterest</th>\n",
|
|
" <th>volume</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>call</td>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>275.0</td>\n",
|
|
" <td>158.44</td>\n",
|
|
" <td>159.31</td>\n",
|
|
" <td>159.45</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>2</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>put</td>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>275.0</td>\n",
|
|
" <td>0.01</td>\n",
|
|
" <td>0.00</td>\n",
|
|
" <td>0.01</td>\n",
|
|
" <td>1007</td>\n",
|
|
" <td>1</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" optionType expiration strike lastPrice bid ask openInterest \\\n",
|
|
"0 call 2023-06-23 275.0 158.44 159.31 159.45 0 \n",
|
|
"1 put 2023-06-23 275.0 0.01 0.00 0.01 1007 \n",
|
|
"\n",
|
|
" volume \n",
|
|
"0 2 \n",
|
|
"1 1 "
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# The legacy method\n",
|
|
"\n",
|
|
"spy_chains = openbb.stocks.options.chains(\"SPY\")\n",
|
|
"spy_chains.head(2)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>optionType</th>\n",
|
|
" <th>expiration</th>\n",
|
|
" <th>strike</th>\n",
|
|
" <th>lastPrice</th>\n",
|
|
" <th>bid</th>\n",
|
|
" <th>ask</th>\n",
|
|
" <th>openInterest</th>\n",
|
|
" <th>volume</th>\n",
|
|
" <th>dte</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>call</td>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>275.0</td>\n",
|
|
" <td>158.44</td>\n",
|
|
" <td>159.31</td>\n",
|
|
" <td>159.45</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>put</td>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>275.0</td>\n",
|
|
" <td>0.01</td>\n",
|
|
" <td>0.00</td>\n",
|
|
" <td>0.01</td>\n",
|
|
" <td>1007</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" optionType expiration strike lastPrice bid ask openInterest \\\n",
|
|
"0 call 2023-06-23 275.0 158.44 159.31 159.45 0 \n",
|
|
"1 put 2023-06-23 275.0 0.01 0.00 0.01 1007 \n",
|
|
"\n",
|
|
" volume dte \n",
|
|
"0 2 0 \n",
|
|
"1 1 0 "
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# The new method\n",
|
|
"\n",
|
|
"spy = openbb.stocks.options.load_options_chains(\"SPY\", \"Nasdaq\")\n",
|
|
"spy.chains.head(2)"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The same response (the options chains) is in both variables, but the new method contains more than just the chains data previously fetched."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"dict_keys(['source', 'SYMBOLS', 'symbol', 'chains', 'expirations', 'strikes', 'underlying_price', 'last_price', 'underlying_name', 'hasIV', 'hasGreeks', 'get_available_greeks', 'date'])"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"spy.__dict__.keys()"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The new object eliminates the need to make an additional request for the price of the underlying asset, or the list of expirations and strikes."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"434.3"
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Instead of:\n",
|
|
"\n",
|
|
"last_price = openbb.stocks.options.price(\"SPY\")\n",
|
|
"\n",
|
|
"last_price"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"434.3"
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Use the Options data object:\n",
|
|
"\n",
|
|
"spy.last_price"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- There are new sources of data\n",
|
|
"\n",
|
|
" Two additional data sources have been added, `CBOE` and `TMX`, with the latter covering the Canadian market. The new default source is `CBOE`. The DataFrame has been transposed below to better illustrate the additional columns available by default."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>186</th>\n",
|
|
" <th>187</th>\n",
|
|
" <th>456</th>\n",
|
|
" <th>457</th>\n",
|
|
" <th>636</th>\n",
|
|
" <th>637</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>expiration</th>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>2023-06-26</td>\n",
|
|
" <td>2023-06-26</td>\n",
|
|
" <td>2023-06-27</td>\n",
|
|
" <td>2023-06-27</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>strike</th>\n",
|
|
" <td>435.0</td>\n",
|
|
" <td>435.0</td>\n",
|
|
" <td>435.0</td>\n",
|
|
" <td>435.0</td>\n",
|
|
" <td>435.0</td>\n",
|
|
" <td>435.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>optionType</th>\n",
|
|
" <td>call</td>\n",
|
|
" <td>put</td>\n",
|
|
" <td>call</td>\n",
|
|
" <td>put</td>\n",
|
|
" <td>call</td>\n",
|
|
" <td>put</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>contractSymbol</th>\n",
|
|
" <td>SPY230623C00435000</td>\n",
|
|
" <td>SPY230623P00435000</td>\n",
|
|
" <td>SPY230626C00435000</td>\n",
|
|
" <td>SPY230626P00435000</td>\n",
|
|
" <td>SPY230627C00435000</td>\n",
|
|
" <td>SPY230627P00435000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>bid</th>\n",
|
|
" <td>0.28</td>\n",
|
|
" <td>0.89</td>\n",
|
|
" <td>0.95</td>\n",
|
|
" <td>1.51</td>\n",
|
|
" <td>1.36</td>\n",
|
|
" <td>1.86</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>bidSize</th>\n",
|
|
" <td>829</td>\n",
|
|
" <td>211</td>\n",
|
|
" <td>112</td>\n",
|
|
" <td>58</td>\n",
|
|
" <td>97</td>\n",
|
|
" <td>113</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>ask</th>\n",
|
|
" <td>0.29</td>\n",
|
|
" <td>0.9</td>\n",
|
|
" <td>0.96</td>\n",
|
|
" <td>1.52</td>\n",
|
|
" <td>1.37</td>\n",
|
|
" <td>1.87</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>askSize</th>\n",
|
|
" <td>387</td>\n",
|
|
" <td>11</td>\n",
|
|
" <td>201</td>\n",
|
|
" <td>150</td>\n",
|
|
" <td>168</td>\n",
|
|
" <td>150</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>impliedVolatility</th>\n",
|
|
" <td>0.145</td>\n",
|
|
" <td>0.148</td>\n",
|
|
" <td>0.0743</td>\n",
|
|
" <td>0.0748</td>\n",
|
|
" <td>0.0863</td>\n",
|
|
" <td>0.0862</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>openInterest</th>\n",
|
|
" <td>27779</td>\n",
|
|
" <td>24957</td>\n",
|
|
" <td>7187</td>\n",
|
|
" <td>8872</td>\n",
|
|
" <td>1820</td>\n",
|
|
" <td>5341</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>volume</th>\n",
|
|
" <td>239793</td>\n",
|
|
" <td>57155</td>\n",
|
|
" <td>66936</td>\n",
|
|
" <td>11268</td>\n",
|
|
" <td>9232</td>\n",
|
|
" <td>5067</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>delta</th>\n",
|
|
" <td>0.3365</td>\n",
|
|
" <td>-0.6636</td>\n",
|
|
" <td>0.4295</td>\n",
|
|
" <td>-0.5728</td>\n",
|
|
" <td>0.4534</td>\n",
|
|
" <td>-0.5502</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>gamma</th>\n",
|
|
" <td>0.2537</td>\n",
|
|
" <td>0.2537</td>\n",
|
|
" <td>0.1304</td>\n",
|
|
" <td>0.1314</td>\n",
|
|
" <td>0.0991</td>\n",
|
|
" <td>0.1004</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>theta</th>\n",
|
|
" <td>-0.3203</td>\n",
|
|
" <td>-0.3203</td>\n",
|
|
" <td>-0.2032</td>\n",
|
|
" <td>-0.2046</td>\n",
|
|
" <td>-0.2018</td>\n",
|
|
" <td>-0.2041</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>rho</th>\n",
|
|
" <td>0.0007</td>\n",
|
|
" <td>-0.0014</td>\n",
|
|
" <td>0.016</td>\n",
|
|
" <td>-0.018</td>\n",
|
|
" <td>0.0222</td>\n",
|
|
" <td>-0.0227</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>vega</th>\n",
|
|
" <td>0.0333</td>\n",
|
|
" <td>0.0333</td>\n",
|
|
" <td>0.159</td>\n",
|
|
" <td>0.1587</td>\n",
|
|
" <td>0.1839</td>\n",
|
|
" <td>0.1834</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>theoretical</th>\n",
|
|
" <td>0.3203</td>\n",
|
|
" <td>0.9303</td>\n",
|
|
" <td>0.9436</td>\n",
|
|
" <td>1.4949</td>\n",
|
|
" <td>1.3566</td>\n",
|
|
" <td>1.8531</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>change</th>\n",
|
|
" <td>-1.45</td>\n",
|
|
" <td>0.275</td>\n",
|
|
" <td>-1.22</td>\n",
|
|
" <td>0.515</td>\n",
|
|
" <td>-1.155</td>\n",
|
|
" <td>0.555</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>open</th>\n",
|
|
" <td>0.29</td>\n",
|
|
" <td>2.02</td>\n",
|
|
" <td>0.71</td>\n",
|
|
" <td>2.72</td>\n",
|
|
" <td>1.03</td>\n",
|
|
" <td>2.96</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>high</th>\n",
|
|
" <td>0.49</td>\n",
|
|
" <td>2.51</td>\n",
|
|
" <td>1.11</td>\n",
|
|
" <td>2.85</td>\n",
|
|
" <td>1.52</td>\n",
|
|
" <td>3.1</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>low</th>\n",
|
|
" <td>0.11</td>\n",
|
|
" <td>0.66</td>\n",
|
|
" <td>0.54</td>\n",
|
|
" <td>1.31</td>\n",
|
|
" <td>0.87</td>\n",
|
|
" <td>1.67</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>tick</th>\n",
|
|
" <td>no_change</td>\n",
|
|
" <td>down</td>\n",
|
|
" <td>up</td>\n",
|
|
" <td>no_change</td>\n",
|
|
" <td>no_change</td>\n",
|
|
" <td>no_change</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>lastTradePrice</th>\n",
|
|
" <td>0.28</td>\n",
|
|
" <td>0.89</td>\n",
|
|
" <td>0.94</td>\n",
|
|
" <td>1.51</td>\n",
|
|
" <td>1.35</td>\n",
|
|
" <td>1.81</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>lastTradeTimestamp</th>\n",
|
|
" <td>2023-06-23T12:41:18</td>\n",
|
|
" <td>2023-06-23T12:41:18</td>\n",
|
|
" <td>2023-06-23T12:40:59</td>\n",
|
|
" <td>2023-06-23T12:41:12</td>\n",
|
|
" <td>2023-06-23T12:41:07</td>\n",
|
|
" <td>2023-06-23T12:38:51</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>changePercent</th>\n",
|
|
" <td>-83.82</td>\n",
|
|
" <td>44.72</td>\n",
|
|
" <td>-56.48</td>\n",
|
|
" <td>51.76</td>\n",
|
|
" <td>-46.11</td>\n",
|
|
" <td>44.22</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>previousClose</th>\n",
|
|
" <td>1.73</td>\n",
|
|
" <td>0.62</td>\n",
|
|
" <td>2.16</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>2.5</td>\n",
|
|
" <td>1.25</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>dte</th>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" 186 187 \\\n",
|
|
"expiration 2023-06-23 2023-06-23 \n",
|
|
"strike 435.0 435.0 \n",
|
|
"optionType call put \n",
|
|
"contractSymbol SPY230623C00435000 SPY230623P00435000 \n",
|
|
"bid 0.28 0.89 \n",
|
|
"bidSize 829 211 \n",
|
|
"ask 0.29 0.9 \n",
|
|
"askSize 387 11 \n",
|
|
"impliedVolatility 0.145 0.148 \n",
|
|
"openInterest 27779 24957 \n",
|
|
"volume 239793 57155 \n",
|
|
"delta 0.3365 -0.6636 \n",
|
|
"gamma 0.2537 0.2537 \n",
|
|
"theta -0.3203 -0.3203 \n",
|
|
"rho 0.0007 -0.0014 \n",
|
|
"vega 0.0333 0.0333 \n",
|
|
"theoretical 0.3203 0.9303 \n",
|
|
"change -1.45 0.275 \n",
|
|
"open 0.29 2.02 \n",
|
|
"high 0.49 2.51 \n",
|
|
"low 0.11 0.66 \n",
|
|
"tick no_change down \n",
|
|
"lastTradePrice 0.28 0.89 \n",
|
|
"lastTradeTimestamp 2023-06-23T12:41:18 2023-06-23T12:41:18 \n",
|
|
"changePercent -83.82 44.72 \n",
|
|
"previousClose 1.73 0.62 \n",
|
|
"dte 0 0 \n",
|
|
"\n",
|
|
" 456 457 \\\n",
|
|
"expiration 2023-06-26 2023-06-26 \n",
|
|
"strike 435.0 435.0 \n",
|
|
"optionType call put \n",
|
|
"contractSymbol SPY230626C00435000 SPY230626P00435000 \n",
|
|
"bid 0.95 1.51 \n",
|
|
"bidSize 112 58 \n",
|
|
"ask 0.96 1.52 \n",
|
|
"askSize 201 150 \n",
|
|
"impliedVolatility 0.0743 0.0748 \n",
|
|
"openInterest 7187 8872 \n",
|
|
"volume 66936 11268 \n",
|
|
"delta 0.4295 -0.5728 \n",
|
|
"gamma 0.1304 0.1314 \n",
|
|
"theta -0.2032 -0.2046 \n",
|
|
"rho 0.016 -0.018 \n",
|
|
"vega 0.159 0.1587 \n",
|
|
"theoretical 0.9436 1.4949 \n",
|
|
"change -1.22 0.515 \n",
|
|
"open 0.71 2.72 \n",
|
|
"high 1.11 2.85 \n",
|
|
"low 0.54 1.31 \n",
|
|
"tick up no_change \n",
|
|
"lastTradePrice 0.94 1.51 \n",
|
|
"lastTradeTimestamp 2023-06-23T12:40:59 2023-06-23T12:41:12 \n",
|
|
"changePercent -56.48 51.76 \n",
|
|
"previousClose 2.16 1.0 \n",
|
|
"dte 3 3 \n",
|
|
"\n",
|
|
" 636 637 \n",
|
|
"expiration 2023-06-27 2023-06-27 \n",
|
|
"strike 435.0 435.0 \n",
|
|
"optionType call put \n",
|
|
"contractSymbol SPY230627C00435000 SPY230627P00435000 \n",
|
|
"bid 1.36 1.86 \n",
|
|
"bidSize 97 113 \n",
|
|
"ask 1.37 1.87 \n",
|
|
"askSize 168 150 \n",
|
|
"impliedVolatility 0.0863 0.0862 \n",
|
|
"openInterest 1820 5341 \n",
|
|
"volume 9232 5067 \n",
|
|
"delta 0.4534 -0.5502 \n",
|
|
"gamma 0.0991 0.1004 \n",
|
|
"theta -0.2018 -0.2041 \n",
|
|
"rho 0.0222 -0.0227 \n",
|
|
"vega 0.1839 0.1834 \n",
|
|
"theoretical 1.3566 1.8531 \n",
|
|
"change -1.155 0.555 \n",
|
|
"open 1.03 2.96 \n",
|
|
"high 1.52 3.1 \n",
|
|
"low 0.87 1.67 \n",
|
|
"tick no_change no_change \n",
|
|
"lastTradePrice 1.35 1.81 \n",
|
|
"lastTradeTimestamp 2023-06-23T12:41:07 2023-06-23T12:38:51 \n",
|
|
"changePercent -46.11 44.22 \n",
|
|
"previousClose 2.5 1.25 \n",
|
|
"dte 4 4 "
|
|
]
|
|
},
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"spy = openbb.stocks.options.load_options_chains(\"SPY\")\n",
|
|
"\n",
|
|
"spy.chains.query(\"`strike` == 435\").head(6).transpose()"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"`TMX` provides historical EOD chains data, beginning in 2009. Notably, this data contains implied volatility, the current quotes do not."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"The closing price of XIU on, 2009-07-02, was: $15.59\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>10</th>\n",
|
|
" <th>11</th>\n",
|
|
" <th>30</th>\n",
|
|
" <th>31</th>\n",
|
|
" <th>64</th>\n",
|
|
" <th>65</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>expiration</th>\n",
|
|
" <td>2009-07-17 00:00:00</td>\n",
|
|
" <td>2009-07-17 00:00:00</td>\n",
|
|
" <td>2009-08-21 00:00:00</td>\n",
|
|
" <td>2009-08-21 00:00:00</td>\n",
|
|
" <td>2009-09-18 00:00:00</td>\n",
|
|
" <td>2009-09-18 00:00:00</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>strike</th>\n",
|
|
" <td>15.0</td>\n",
|
|
" <td>15.0</td>\n",
|
|
" <td>15.0</td>\n",
|
|
" <td>15.0</td>\n",
|
|
" <td>15.0</td>\n",
|
|
" <td>15.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>optionType</th>\n",
|
|
" <td>call</td>\n",
|
|
" <td>put</td>\n",
|
|
" <td>call</td>\n",
|
|
" <td>put</td>\n",
|
|
" <td>call</td>\n",
|
|
" <td>put</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>date</th>\n",
|
|
" <td>2009-07-02</td>\n",
|
|
" <td>2009-07-02</td>\n",
|
|
" <td>2009-07-02</td>\n",
|
|
" <td>2009-07-02</td>\n",
|
|
" <td>2009-07-02</td>\n",
|
|
" <td>2009-07-02</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>bid</th>\n",
|
|
" <td>0.68</td>\n",
|
|
" <td>0.1</td>\n",
|
|
" <td>0.94</td>\n",
|
|
" <td>0.34</td>\n",
|
|
" <td>1.14</td>\n",
|
|
" <td>0.56</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>ask</th>\n",
|
|
" <td>0.77</td>\n",
|
|
" <td>0.15</td>\n",
|
|
" <td>1.05</td>\n",
|
|
" <td>0.43</td>\n",
|
|
" <td>1.26</td>\n",
|
|
" <td>0.63</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>bidSize</th>\n",
|
|
" <td>510</td>\n",
|
|
" <td>500</td>\n",
|
|
" <td>510</td>\n",
|
|
" <td>800</td>\n",
|
|
" <td>510</td>\n",
|
|
" <td>510</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>askSize</th>\n",
|
|
" <td>52</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>330</td>\n",
|
|
" <td>300</td>\n",
|
|
" <td>300</td>\n",
|
|
" <td>300</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>lastPrice</th>\n",
|
|
" <td>0.77</td>\n",
|
|
" <td>0.15</td>\n",
|
|
" <td>1.05</td>\n",
|
|
" <td>0.43</td>\n",
|
|
" <td>1.26</td>\n",
|
|
" <td>0.63</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>volume</th>\n",
|
|
" <td>0</td>\n",
|
|
" <td>60</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>15</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>previousClose</th>\n",
|
|
" <td>0.96</td>\n",
|
|
" <td>0.17</td>\n",
|
|
" <td>1.19</td>\n",
|
|
" <td>0.39</td>\n",
|
|
" <td>1.38</td>\n",
|
|
" <td>0.58</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>change</th>\n",
|
|
" <td>-0.19</td>\n",
|
|
" <td>-0.02</td>\n",
|
|
" <td>-0.14</td>\n",
|
|
" <td>0.04</td>\n",
|
|
" <td>-0.12</td>\n",
|
|
" <td>0.05</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>open</th>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.09</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.62</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>high</th>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.12</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.62</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>low</th>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.09</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.62</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>totalValue</th>\n",
|
|
" <td>0</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>9</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>transactions</th>\n",
|
|
" <td>0</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>1</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>settlementPrice</th>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>openInterest</th>\n",
|
|
" <td>590</td>\n",
|
|
" <td>19786</td>\n",
|
|
" <td>131</td>\n",
|
|
" <td>47</td>\n",
|
|
" <td>6782</td>\n",
|
|
" <td>173</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>impliedVolatility</th>\n",
|
|
" <td>0.2782</td>\n",
|
|
" <td>0.2799</td>\n",
|
|
" <td>0.2808</td>\n",
|
|
" <td>0.2899</td>\n",
|
|
" <td>0.2978</td>\n",
|
|
" <td>0.3151</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>contractSymbol</th>\n",
|
|
" <td>XIXG09C15.00</td>\n",
|
|
" <td>XIXS09P15.00</td>\n",
|
|
" <td>XIXH09C15.00</td>\n",
|
|
" <td>XIXT09P15.00</td>\n",
|
|
" <td>XIXI09C15.00</td>\n",
|
|
" <td>XIXU09P15.00</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>dte</th>\n",
|
|
" <td>15</td>\n",
|
|
" <td>15</td>\n",
|
|
" <td>50</td>\n",
|
|
" <td>50</td>\n",
|
|
" <td>78</td>\n",
|
|
" <td>78</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" 10 11 \\\n",
|
|
"expiration 2009-07-17 00:00:00 2009-07-17 00:00:00 \n",
|
|
"strike 15.0 15.0 \n",
|
|
"optionType call put \n",
|
|
"date 2009-07-02 2009-07-02 \n",
|
|
"bid 0.68 0.1 \n",
|
|
"ask 0.77 0.15 \n",
|
|
"bidSize 510 500 \n",
|
|
"askSize 52 2 \n",
|
|
"lastPrice 0.77 0.15 \n",
|
|
"volume 0 60 \n",
|
|
"previousClose 0.96 0.17 \n",
|
|
"change -0.19 -0.02 \n",
|
|
"open 0.0 0.09 \n",
|
|
"high 0.0 0.12 \n",
|
|
"low 0.0 0.09 \n",
|
|
"totalValue 0 5 \n",
|
|
"transactions 0 2 \n",
|
|
"settlementPrice 0 0 \n",
|
|
"openInterest 590 19786 \n",
|
|
"impliedVolatility 0.2782 0.2799 \n",
|
|
"contractSymbol XIXG09C15.00 XIXS09P15.00 \n",
|
|
"dte 15 15 \n",
|
|
"\n",
|
|
" 30 31 \\\n",
|
|
"expiration 2009-08-21 00:00:00 2009-08-21 00:00:00 \n",
|
|
"strike 15.0 15.0 \n",
|
|
"optionType call put \n",
|
|
"date 2009-07-02 2009-07-02 \n",
|
|
"bid 0.94 0.34 \n",
|
|
"ask 1.05 0.43 \n",
|
|
"bidSize 510 800 \n",
|
|
"askSize 330 300 \n",
|
|
"lastPrice 1.05 0.43 \n",
|
|
"volume 0 0 \n",
|
|
"previousClose 1.19 0.39 \n",
|
|
"change -0.14 0.04 \n",
|
|
"open 0.0 0.0 \n",
|
|
"high 0.0 0.0 \n",
|
|
"low 0.0 0.0 \n",
|
|
"totalValue 0 0 \n",
|
|
"transactions 0 0 \n",
|
|
"settlementPrice 0 0 \n",
|
|
"openInterest 131 47 \n",
|
|
"impliedVolatility 0.2808 0.2899 \n",
|
|
"contractSymbol XIXH09C15.00 XIXT09P15.00 \n",
|
|
"dte 50 50 \n",
|
|
"\n",
|
|
" 64 65 \n",
|
|
"expiration 2009-09-18 00:00:00 2009-09-18 00:00:00 \n",
|
|
"strike 15.0 15.0 \n",
|
|
"optionType call put \n",
|
|
"date 2009-07-02 2009-07-02 \n",
|
|
"bid 1.14 0.56 \n",
|
|
"ask 1.26 0.63 \n",
|
|
"bidSize 510 510 \n",
|
|
"askSize 300 300 \n",
|
|
"lastPrice 1.26 0.63 \n",
|
|
"volume 0 15 \n",
|
|
"previousClose 1.38 0.58 \n",
|
|
"change -0.12 0.05 \n",
|
|
"open 0.0 0.62 \n",
|
|
"high 0.0 0.62 \n",
|
|
"low 0.0 0.62 \n",
|
|
"totalValue 0 9 \n",
|
|
"transactions 0 1 \n",
|
|
"settlementPrice 0 0 \n",
|
|
"openInterest 6782 173 \n",
|
|
"impliedVolatility 0.2978 0.3151 \n",
|
|
"contractSymbol XIXI09C15.00 XIXU09P15.00 \n",
|
|
"dte 78 78 "
|
|
]
|
|
},
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"xiu = openbb.stocks.options.load_options_chains(\"XIU\", \"TMX\", \"2009-07-01\")\n",
|
|
"print(\"The closing price of \", xiu.symbol, \" on, \", xiu.date, \", was: $\", xiu.last_price, sep =\"\")\n",
|
|
"xiu.chains.query(\"`strike` == 15\").head(6).transpose()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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>bid</th>\n",
|
|
" <th>ask</th>\n",
|
|
" <th>lastPrice</th>\n",
|
|
" <th>change</th>\n",
|
|
" <th>openInterest</th>\n",
|
|
" <th>volume</th>\n",
|
|
" <th>dte</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>30.00</td>\n",
|
|
" <td>call</td>\n",
|
|
" <td>0.00</td>\n",
|
|
" <td>0.05</td>\n",
|
|
" <td>0.07</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>30</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>30.00</td>\n",
|
|
" <td>put</td>\n",
|
|
" <td>0.22</td>\n",
|
|
" <td>0.55</td>\n",
|
|
" <td>0.28</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>30.25</td>\n",
|
|
" <td>call</td>\n",
|
|
" <td>0.00</td>\n",
|
|
" <td>0.05</td>\n",
|
|
" <td>0.05</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>30.25</td>\n",
|
|
" <td>put</td>\n",
|
|
" <td>0.47</td>\n",
|
|
" <td>0.75</td>\n",
|
|
" <td>0.64</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>30.50</td>\n",
|
|
" <td>call</td>\n",
|
|
" <td>0.00</td>\n",
|
|
" <td>0.05</td>\n",
|
|
" <td>0.05</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>49</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>30.50</td>\n",
|
|
" <td>put</td>\n",
|
|
" <td>0.72</td>\n",
|
|
" <td>1.00</td>\n",
|
|
" <td>0.89</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>30.75</td>\n",
|
|
" <td>call</td>\n",
|
|
" <td>0.00</td>\n",
|
|
" <td>0.05</td>\n",
|
|
" <td>0.05</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>51</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>21</th>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>30.75</td>\n",
|
|
" <td>put</td>\n",
|
|
" <td>0.97</td>\n",
|
|
" <td>1.25</td>\n",
|
|
" <td>1.14</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>31.00</td>\n",
|
|
" <td>call</td>\n",
|
|
" <td>0.00</td>\n",
|
|
" <td>0.05</td>\n",
|
|
" <td>0.05</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23</th>\n",
|
|
" <td>2023-06-23</td>\n",
|
|
" <td>31.00</td>\n",
|
|
" <td>put</td>\n",
|
|
" <td>1.22</td>\n",
|
|
" <td>1.50</td>\n",
|
|
" <td>1.39</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" expiration strike optionType bid ask lastPrice change \\\n",
|
|
"14 2023-06-23 30.00 call 0.00 0.05 0.07 0.0 \n",
|
|
"15 2023-06-23 30.00 put 0.22 0.55 0.28 0.0 \n",
|
|
"16 2023-06-23 30.25 call 0.00 0.05 0.05 0.0 \n",
|
|
"17 2023-06-23 30.25 put 0.47 0.75 0.64 0.0 \n",
|
|
"18 2023-06-23 30.50 call 0.00 0.05 0.05 0.0 \n",
|
|
"19 2023-06-23 30.50 put 0.72 1.00 0.89 0.0 \n",
|
|
"20 2023-06-23 30.75 call 0.00 0.05 0.05 0.0 \n",
|
|
"21 2023-06-23 30.75 put 0.97 1.25 1.14 0.0 \n",
|
|
"22 2023-06-23 31.00 call 0.00 0.05 0.05 0.0 \n",
|
|
"23 2023-06-23 31.00 put 1.22 1.50 1.39 0.0 \n",
|
|
"\n",
|
|
" openInterest volume dte \n",
|
|
"14 30 0 0 \n",
|
|
"15 4 0 0 \n",
|
|
"16 0 0 0 \n",
|
|
"17 0 0 0 \n",
|
|
"18 49 0 0 \n",
|
|
"19 0 0 0 \n",
|
|
"20 51 0 0 \n",
|
|
"21 0 0 0 \n",
|
|
"22 0 0 0 \n",
|
|
"23 0 0 0 "
|
|
]
|
|
},
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"xiu = openbb.stocks.options.load_options_chains(\"XIU\", \"TMX\")\n",
|
|
"xiu.chains.query(\"30 <= `strike` <= 31\").head(10)"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Methods are bound to the returned object that sort and filter the data\n",
|
|
" Along with attributes listed above - `spy.__dict__.keys()` - methods are provided for extracting key insights from the raw data.\n",
|
|
"\n",
|
|
" - `get_stats()`\n",
|
|
" - `get_skew()`\n",
|
|
" - `get_straddle()`\n",
|
|
" - `get_strangle()`\n",
|
|
" - `get_vertical_call_spread()`\n",
|
|
" - `get_vertical_put_spread()`\n",
|
|
" - `get_strategies()`\n",
|
|
"\n",
|
|
"`impliedVolatility` is a required field for `get_skew()`; therefore, only sources returning `hasIV` as `True` will work. All other callables are compatible with every source.\n"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Getting Started\n",
|
|
"\n",
|
|
"Assign a ticker to a new variable."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"INVESCO QQQ TR UNIT SER 1\n",
|
|
"Symbol: QQQ\n",
|
|
"Source: CBOE\n",
|
|
"Last Price: 364.02\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"ticker = openbb.stocks.options.load_options_chains(\"QQQ\")\n",
|
|
"print(ticker.underlying_name, '\\n', \"Symbol: \", ticker.symbol, '\\n', \"Source: \", ticker.source, '\\n', \"Last Price: \" , ticker.last_price, sep = \"\")"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Let's look at volume and open interest, by expiration."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"oi = ticker.get_stats()[[\"Puts OI\", \"Calls OI\"]]\n",
|
|
"oi[\"Puts OI\"] = oi[\"Puts OI\"] * (-1)\n",
|
|
"vol = ticker.get_stats()[[\"Puts Volume\", \"Calls Volume\"]]\n",
|
|
"vol[\"Puts Volume\"] = vol[\"Puts Volume\"] * (-1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"displaylogo": false,
|
|
"plotlyServerURL": "https://plot.ly",
|
|
"scrollZoom": true
|
|
},
|
|
"data": [
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Puts OI",
|
|
"type": "scatter",
|
|
"x": [
|
|
"2023-06-23",
|
|
"2023-06-26",
|
|
"2023-06-27",
|
|
"2023-06-28",
|
|
"2023-06-29",
|
|
"2023-06-30",
|
|
"2023-07-03",
|
|
"2023-07-05",
|
|
"2023-07-06",
|
|
"2023-07-07",
|
|
"2023-07-14",
|
|
"2023-07-21",
|
|
"2023-07-28",
|
|
"2023-08-04",
|
|
"2023-08-18",
|
|
"2023-09-15",
|
|
"2023-09-29",
|
|
"2023-10-20",
|
|
"2023-11-17",
|
|
"2023-12-15",
|
|
"2023-12-29",
|
|
"2024-01-19",
|
|
"2024-03-15",
|
|
"2024-03-28",
|
|
"2024-06-21",
|
|
"2024-09-20",
|
|
"2024-12-20",
|
|
"2025-01-17",
|
|
"2025-06-20"
|
|
],
|
|
"y": [
|
|
-376642,
|
|
-63549,
|
|
-29383,
|
|
-32543,
|
|
-19868,
|
|
-896364,
|
|
-6245,
|
|
-12376,
|
|
-505,
|
|
-366128,
|
|
-69958,
|
|
-1319320,
|
|
-124591,
|
|
-1073,
|
|
-755713,
|
|
-1856061,
|
|
-209296,
|
|
-160812,
|
|
-72575,
|
|
-1278699,
|
|
-38141,
|
|
-449126,
|
|
-213891,
|
|
-31603,
|
|
-226111,
|
|
-59,
|
|
-188306,
|
|
-101640,
|
|
-12507
|
|
]
|
|
},
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Calls OI",
|
|
"type": "scatter",
|
|
"x": [
|
|
"2023-06-23",
|
|
"2023-06-26",
|
|
"2023-06-27",
|
|
"2023-06-28",
|
|
"2023-06-29",
|
|
"2023-06-30",
|
|
"2023-07-03",
|
|
"2023-07-05",
|
|
"2023-07-06",
|
|
"2023-07-07",
|
|
"2023-07-14",
|
|
"2023-07-21",
|
|
"2023-07-28",
|
|
"2023-08-04",
|
|
"2023-08-18",
|
|
"2023-09-15",
|
|
"2023-09-29",
|
|
"2023-10-20",
|
|
"2023-11-17",
|
|
"2023-12-15",
|
|
"2023-12-29",
|
|
"2024-01-19",
|
|
"2024-03-15",
|
|
"2024-03-28",
|
|
"2024-06-21",
|
|
"2024-09-20",
|
|
"2024-12-20",
|
|
"2025-01-17",
|
|
"2025-06-20"
|
|
],
|
|
"y": [
|
|
185337,
|
|
45749,
|
|
20902,
|
|
21110,
|
|
14294,
|
|
460201,
|
|
6066,
|
|
841,
|
|
673,
|
|
143338,
|
|
38137,
|
|
644266,
|
|
56458,
|
|
1103,
|
|
322757,
|
|
703815,
|
|
59394,
|
|
90198,
|
|
61159,
|
|
515607,
|
|
22556,
|
|
365046,
|
|
90841,
|
|
6848,
|
|
173515,
|
|
696,
|
|
82465,
|
|
50154,
|
|
8230
|
|
]
|
|
}
|
|
],
|
|
"layout": {
|
|
"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
|
|
}
|
|
],
|
|
"bargap": 0,
|
|
"bargroupgap": 0,
|
|
"barmode": "overlay",
|
|
"legend": {
|
|
"orientation": "v"
|
|
},
|
|
"margin": {
|
|
"b": 80,
|
|
"l": 40,
|
|
"r": 50,
|
|
"t": 50
|
|
},
|
|
"template": {
|
|
"data": {
|
|
"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"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "rgb(17,17,17)",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"candlestick": [
|
|
{
|
|
"decreasing": {
|
|
"fillcolor": "#e4003a",
|
|
"line": {
|
|
"color": "#e4003a"
|
|
}
|
|
},
|
|
"increasing": {
|
|
"fillcolor": "#00ACFF",
|
|
"line": {
|
|
"color": "#00ACFF"
|
|
}
|
|
},
|
|
"type": "candlestick"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#283442"
|
|
}
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#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"
|
|
}
|
|
]
|
|
},
|
|
"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,
|
|
"#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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#ffed00",
|
|
"#ef7d00",
|
|
"#e4003a",
|
|
"#c13246",
|
|
"#822661",
|
|
"#48277c",
|
|
"#005ca9",
|
|
"#00aaff",
|
|
"#9b30d9",
|
|
"#af005f",
|
|
"#5f00af",
|
|
"#af87ff"
|
|
],
|
|
"dragmode": "pan",
|
|
"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",
|
|
"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
|
|
}
|
|
},
|
|
"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,
|
|
"autorange": true,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"rangeslider": {
|
|
"visible": false
|
|
},
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"tick0": 1,
|
|
"tickfont": {
|
|
"size": 14
|
|
},
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"automargin": true,
|
|
"fixedrange": false,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"side": "right",
|
|
"tick0": 0.5,
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"openbb.forecast.plot(oi, oi.columns.to_list())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"displaylogo": false,
|
|
"plotlyServerURL": "https://plot.ly",
|
|
"scrollZoom": true
|
|
},
|
|
"data": [
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Puts Volume",
|
|
"type": "scatter",
|
|
"x": [
|
|
"2023-06-23",
|
|
"2023-06-26",
|
|
"2023-06-27",
|
|
"2023-06-28",
|
|
"2023-06-29",
|
|
"2023-06-30",
|
|
"2023-07-03",
|
|
"2023-07-05",
|
|
"2023-07-06",
|
|
"2023-07-07",
|
|
"2023-07-14",
|
|
"2023-07-21",
|
|
"2023-07-28",
|
|
"2023-08-04",
|
|
"2023-08-18",
|
|
"2023-09-15",
|
|
"2023-09-29",
|
|
"2023-10-20",
|
|
"2023-11-17",
|
|
"2023-12-15",
|
|
"2023-12-29",
|
|
"2024-01-19",
|
|
"2024-03-15",
|
|
"2024-03-28",
|
|
"2024-06-21",
|
|
"2024-09-20",
|
|
"2024-12-20",
|
|
"2025-01-17",
|
|
"2025-06-20"
|
|
],
|
|
"y": [
|
|
-448062,
|
|
-145336,
|
|
-18897,
|
|
-34022,
|
|
-9873,
|
|
-98947,
|
|
-10962,
|
|
-1993,
|
|
-912,
|
|
-54842,
|
|
-9654,
|
|
-62940,
|
|
-11117,
|
|
-1476,
|
|
-22711,
|
|
-28846,
|
|
-1777,
|
|
-1760,
|
|
-1202,
|
|
-4000,
|
|
-641,
|
|
-3840,
|
|
-613,
|
|
-161,
|
|
-9636,
|
|
-475,
|
|
-211,
|
|
-209,
|
|
-171
|
|
]
|
|
},
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Calls Volume",
|
|
"type": "scatter",
|
|
"x": [
|
|
"2023-06-23",
|
|
"2023-06-26",
|
|
"2023-06-27",
|
|
"2023-06-28",
|
|
"2023-06-29",
|
|
"2023-06-30",
|
|
"2023-07-03",
|
|
"2023-07-05",
|
|
"2023-07-06",
|
|
"2023-07-07",
|
|
"2023-07-14",
|
|
"2023-07-21",
|
|
"2023-07-28",
|
|
"2023-08-04",
|
|
"2023-08-18",
|
|
"2023-09-15",
|
|
"2023-09-29",
|
|
"2023-10-20",
|
|
"2023-11-17",
|
|
"2023-12-15",
|
|
"2023-12-29",
|
|
"2024-01-19",
|
|
"2024-03-15",
|
|
"2024-03-28",
|
|
"2024-06-21",
|
|
"2024-09-20",
|
|
"2024-12-20",
|
|
"2025-01-17",
|
|
"2025-06-20"
|
|
],
|
|
"y": [
|
|
382988,
|
|
121253,
|
|
27185,
|
|
11766,
|
|
13276,
|
|
59880,
|
|
5474,
|
|
1281,
|
|
1731,
|
|
12312,
|
|
7853,
|
|
33718,
|
|
2529,
|
|
2854,
|
|
9242,
|
|
11071,
|
|
532,
|
|
892,
|
|
404,
|
|
3044,
|
|
553,
|
|
3884,
|
|
1195,
|
|
6,
|
|
1047,
|
|
36,
|
|
107,
|
|
34,
|
|
225
|
|
]
|
|
}
|
|
],
|
|
"layout": {
|
|
"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
|
|
}
|
|
],
|
|
"bargap": 0,
|
|
"bargroupgap": 0,
|
|
"barmode": "overlay",
|
|
"legend": {
|
|
"orientation": "v"
|
|
},
|
|
"margin": {
|
|
"b": 80,
|
|
"l": 40,
|
|
"r": 50,
|
|
"t": 50
|
|
},
|
|
"template": {
|
|
"data": {
|
|
"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"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "rgb(17,17,17)",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"candlestick": [
|
|
{
|
|
"decreasing": {
|
|
"fillcolor": "#e4003a",
|
|
"line": {
|
|
"color": "#e4003a"
|
|
}
|
|
},
|
|
"increasing": {
|
|
"fillcolor": "#00ACFF",
|
|
"line": {
|
|
"color": "#00ACFF"
|
|
}
|
|
},
|
|
"type": "candlestick"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#283442"
|
|
}
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#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"
|
|
}
|
|
]
|
|
},
|
|
"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,
|
|
"#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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#ffed00",
|
|
"#ef7d00",
|
|
"#e4003a",
|
|
"#c13246",
|
|
"#822661",
|
|
"#48277c",
|
|
"#005ca9",
|
|
"#00aaff",
|
|
"#9b30d9",
|
|
"#af005f",
|
|
"#5f00af",
|
|
"#af87ff"
|
|
],
|
|
"dragmode": "pan",
|
|
"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",
|
|
"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
|
|
}
|
|
},
|
|
"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,
|
|
"autorange": true,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"rangeslider": {
|
|
"visible": false
|
|
},
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"tick0": 1,
|
|
"tickfont": {
|
|
"size": 14
|
|
},
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"automargin": true,
|
|
"fixedrange": false,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"side": "right",
|
|
"tick0": 0.5,
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"openbb.forecast.plot(vol, vol.columns.to_list())"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The concentration of volume is clearly at the front contract, while the open interest paints a different picture. The same analysis can be easily applied by strike.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"strike_oi = ticker.get_stats(\"strike\")[[\"Puts OI\", \"Calls OI\"]]\n",
|
|
"strike_oi[\"Puts OI\"] = strike_oi[\"Puts OI\"] * (-1)\n",
|
|
"strike_vol = ticker.get_stats(\"strike\")[[\"Puts Volume\", \"Calls Volume\"]]\n",
|
|
"strike_vol[\"Puts Volume\"] = strike_vol[\"Puts Volume\"] * (-1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"displaylogo": false,
|
|
"plotlyServerURL": "https://plot.ly",
|
|
"scrollZoom": true
|
|
},
|
|
"data": [
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Puts OI",
|
|
"type": "scatter",
|
|
"x": [
|
|
130,
|
|
135,
|
|
140,
|
|
145,
|
|
150,
|
|
155,
|
|
160,
|
|
165,
|
|
170,
|
|
175,
|
|
180,
|
|
185,
|
|
190,
|
|
195,
|
|
196,
|
|
197,
|
|
198,
|
|
199,
|
|
200,
|
|
205,
|
|
210,
|
|
215,
|
|
220,
|
|
225,
|
|
230,
|
|
235,
|
|
238,
|
|
239,
|
|
240,
|
|
241,
|
|
242,
|
|
243,
|
|
244,
|
|
245,
|
|
246,
|
|
247,
|
|
248,
|
|
249,
|
|
250,
|
|
251,
|
|
252,
|
|
253,
|
|
254,
|
|
255,
|
|
256,
|
|
257,
|
|
258,
|
|
259,
|
|
260,
|
|
261,
|
|
262,
|
|
263,
|
|
264,
|
|
265,
|
|
266,
|
|
267,
|
|
268,
|
|
269,
|
|
270,
|
|
271,
|
|
272,
|
|
273,
|
|
274,
|
|
275,
|
|
276,
|
|
277,
|
|
278,
|
|
279,
|
|
280,
|
|
281,
|
|
282,
|
|
283,
|
|
284,
|
|
285,
|
|
286,
|
|
287,
|
|
288,
|
|
289,
|
|
290,
|
|
291,
|
|
292,
|
|
293,
|
|
294,
|
|
295,
|
|
296,
|
|
297,
|
|
298,
|
|
299,
|
|
300,
|
|
301,
|
|
302,
|
|
302.5,
|
|
303,
|
|
304,
|
|
305,
|
|
306,
|
|
307,
|
|
307.5,
|
|
308,
|
|
309,
|
|
310,
|
|
311,
|
|
312,
|
|
312.5,
|
|
313,
|
|
314,
|
|
315,
|
|
316,
|
|
317,
|
|
317.5,
|
|
318,
|
|
319,
|
|
320,
|
|
321,
|
|
322,
|
|
322.5,
|
|
323,
|
|
324,
|
|
325,
|
|
326,
|
|
327,
|
|
327.5,
|
|
328,
|
|
329,
|
|
330,
|
|
331,
|
|
332,
|
|
332.5,
|
|
333,
|
|
334,
|
|
335,
|
|
336,
|
|
337,
|
|
337.5,
|
|
338,
|
|
339,
|
|
340,
|
|
341,
|
|
342,
|
|
342.5,
|
|
343,
|
|
344,
|
|
345,
|
|
346,
|
|
347,
|
|
347.5,
|
|
348,
|
|
349,
|
|
350,
|
|
351,
|
|
352,
|
|
352.5,
|
|
353,
|
|
354,
|
|
355,
|
|
356,
|
|
357,
|
|
357.5,
|
|
358,
|
|
359,
|
|
360,
|
|
361,
|
|
362,
|
|
362.5,
|
|
363,
|
|
364,
|
|
365,
|
|
366,
|
|
367,
|
|
367.5,
|
|
368,
|
|
369,
|
|
370,
|
|
371,
|
|
372,
|
|
372.5,
|
|
373,
|
|
374,
|
|
375,
|
|
376,
|
|
377,
|
|
377.5,
|
|
378,
|
|
379,
|
|
380,
|
|
381,
|
|
382,
|
|
383,
|
|
384,
|
|
385,
|
|
386,
|
|
387,
|
|
388,
|
|
389,
|
|
390,
|
|
391,
|
|
392,
|
|
393,
|
|
394,
|
|
395,
|
|
396,
|
|
397,
|
|
398,
|
|
399,
|
|
400,
|
|
401,
|
|
402,
|
|
403,
|
|
404,
|
|
405,
|
|
406,
|
|
407,
|
|
408,
|
|
409,
|
|
410,
|
|
411,
|
|
412,
|
|
413,
|
|
414,
|
|
415,
|
|
416,
|
|
417,
|
|
418,
|
|
419,
|
|
420,
|
|
425,
|
|
430,
|
|
435,
|
|
440,
|
|
445,
|
|
450,
|
|
455,
|
|
460,
|
|
465,
|
|
470,
|
|
475,
|
|
480,
|
|
485,
|
|
490,
|
|
495,
|
|
500,
|
|
505,
|
|
510,
|
|
515,
|
|
520,
|
|
525,
|
|
530,
|
|
535,
|
|
540,
|
|
545,
|
|
550,
|
|
555,
|
|
560,
|
|
565,
|
|
570,
|
|
575,
|
|
580,
|
|
585,
|
|
590,
|
|
595,
|
|
600,
|
|
605,
|
|
610
|
|
],
|
|
"y": [
|
|
-15748,
|
|
-4727,
|
|
-11395,
|
|
-27399,
|
|
-23789,
|
|
-13383,
|
|
-13385,
|
|
-18574,
|
|
-149890,
|
|
-39382,
|
|
-95546,
|
|
-53225,
|
|
-96137,
|
|
-14063,
|
|
-1446,
|
|
-26656,
|
|
-317,
|
|
-467,
|
|
-85800,
|
|
-21583,
|
|
-88090,
|
|
-45538,
|
|
-188945,
|
|
-40800,
|
|
-127494,
|
|
-73795,
|
|
-52,
|
|
-48,
|
|
-157863,
|
|
-142,
|
|
-148,
|
|
-378,
|
|
-311,
|
|
-91768,
|
|
-160,
|
|
-92,
|
|
-80,
|
|
-224,
|
|
-235393,
|
|
-1953,
|
|
-3497,
|
|
-783,
|
|
-466,
|
|
-80030,
|
|
-434,
|
|
-496,
|
|
-185,
|
|
-510,
|
|
-282812,
|
|
-1106,
|
|
-2318,
|
|
-387,
|
|
-337,
|
|
-185392,
|
|
-1196,
|
|
-373,
|
|
-3264,
|
|
-983,
|
|
-243952,
|
|
-1154,
|
|
-643,
|
|
-1029,
|
|
-776,
|
|
-176646,
|
|
-784,
|
|
-1315,
|
|
-696,
|
|
-830,
|
|
-231808,
|
|
-1937,
|
|
-748,
|
|
-519,
|
|
-1843,
|
|
-343788,
|
|
-7566,
|
|
-9621,
|
|
-10274,
|
|
-6570,
|
|
-217845,
|
|
-20444,
|
|
-37447,
|
|
-9069,
|
|
-8803,
|
|
-113360,
|
|
-10164,
|
|
-32689,
|
|
-18272,
|
|
-7502,
|
|
-372132,
|
|
-11072,
|
|
-11873,
|
|
-110,
|
|
-9516,
|
|
-8613,
|
|
-109301,
|
|
-5761,
|
|
-9372,
|
|
-208,
|
|
-20979,
|
|
-9220,
|
|
-253473,
|
|
-9135,
|
|
-88033,
|
|
-124,
|
|
-15136,
|
|
-27899,
|
|
-146644,
|
|
-19347,
|
|
-16726,
|
|
-1329,
|
|
-28586,
|
|
-12010,
|
|
-250907,
|
|
-10442,
|
|
-30797,
|
|
-1243,
|
|
-25589,
|
|
-19107,
|
|
-355138,
|
|
-15732,
|
|
-13883,
|
|
-713,
|
|
-27834,
|
|
-19093,
|
|
-291304,
|
|
-13470,
|
|
-121908,
|
|
-2932,
|
|
-20072,
|
|
-64967,
|
|
-162175,
|
|
-30483,
|
|
-19558,
|
|
-1335,
|
|
-35507,
|
|
-16520,
|
|
-282943,
|
|
-14144,
|
|
-38815,
|
|
-1054,
|
|
-29748,
|
|
-21573,
|
|
-143753,
|
|
-13280,
|
|
-57187,
|
|
-960,
|
|
-29568,
|
|
-27906,
|
|
-288335,
|
|
-24055,
|
|
-30980,
|
|
-2774,
|
|
-54312,
|
|
-31997,
|
|
-208975,
|
|
-54666,
|
|
-55464,
|
|
-757,
|
|
-34089,
|
|
-33456,
|
|
-234639,
|
|
-26377,
|
|
-46332,
|
|
-1625,
|
|
-65637,
|
|
-27544,
|
|
-127247,
|
|
-27773,
|
|
-28901,
|
|
-33,
|
|
-20121,
|
|
-14272,
|
|
-90586,
|
|
-11689,
|
|
-10084,
|
|
0,
|
|
-25166,
|
|
-6553,
|
|
-22774,
|
|
-3525,
|
|
-2444,
|
|
-4,
|
|
-4411,
|
|
-1640,
|
|
-20499,
|
|
-1108,
|
|
-632,
|
|
-1213,
|
|
-399,
|
|
-4677,
|
|
-759,
|
|
-448,
|
|
-473,
|
|
-93,
|
|
-4842,
|
|
-309,
|
|
-41,
|
|
-221,
|
|
-175,
|
|
-731,
|
|
-147,
|
|
-5,
|
|
-7,
|
|
-3,
|
|
-3644,
|
|
-1,
|
|
0,
|
|
-1,
|
|
0,
|
|
-3837,
|
|
0,
|
|
0,
|
|
0,
|
|
-1,
|
|
-340,
|
|
0,
|
|
0,
|
|
0,
|
|
-1,
|
|
-316,
|
|
0,
|
|
0,
|
|
-1,
|
|
-3,
|
|
-166,
|
|
-76,
|
|
-144,
|
|
-8,
|
|
-1315,
|
|
-3,
|
|
-33,
|
|
-14,
|
|
-4,
|
|
-2,
|
|
-12,
|
|
0,
|
|
0,
|
|
0,
|
|
-1,
|
|
0,
|
|
-27,
|
|
0,
|
|
0,
|
|
0,
|
|
-1,
|
|
-1,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-2,
|
|
0,
|
|
0,
|
|
-7,
|
|
-3,
|
|
-4,
|
|
-3,
|
|
0,
|
|
-2,
|
|
0,
|
|
0,
|
|
-5
|
|
]
|
|
},
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Calls OI",
|
|
"type": "scatter",
|
|
"x": [
|
|
130,
|
|
135,
|
|
140,
|
|
145,
|
|
150,
|
|
155,
|
|
160,
|
|
165,
|
|
170,
|
|
175,
|
|
180,
|
|
185,
|
|
190,
|
|
195,
|
|
196,
|
|
197,
|
|
198,
|
|
199,
|
|
200,
|
|
205,
|
|
210,
|
|
215,
|
|
220,
|
|
225,
|
|
230,
|
|
235,
|
|
238,
|
|
239,
|
|
240,
|
|
241,
|
|
242,
|
|
243,
|
|
244,
|
|
245,
|
|
246,
|
|
247,
|
|
248,
|
|
249,
|
|
250,
|
|
251,
|
|
252,
|
|
253,
|
|
254,
|
|
255,
|
|
256,
|
|
257,
|
|
258,
|
|
259,
|
|
260,
|
|
261,
|
|
262,
|
|
263,
|
|
264,
|
|
265,
|
|
266,
|
|
267,
|
|
268,
|
|
269,
|
|
270,
|
|
271,
|
|
272,
|
|
273,
|
|
274,
|
|
275,
|
|
276,
|
|
277,
|
|
278,
|
|
279,
|
|
280,
|
|
281,
|
|
282,
|
|
283,
|
|
284,
|
|
285,
|
|
286,
|
|
287,
|
|
288,
|
|
289,
|
|
290,
|
|
291,
|
|
292,
|
|
293,
|
|
294,
|
|
295,
|
|
296,
|
|
297,
|
|
298,
|
|
299,
|
|
300,
|
|
301,
|
|
302,
|
|
302.5,
|
|
303,
|
|
304,
|
|
305,
|
|
306,
|
|
307,
|
|
307.5,
|
|
308,
|
|
309,
|
|
310,
|
|
311,
|
|
312,
|
|
312.5,
|
|
313,
|
|
314,
|
|
315,
|
|
316,
|
|
317,
|
|
317.5,
|
|
318,
|
|
319,
|
|
320,
|
|
321,
|
|
322,
|
|
322.5,
|
|
323,
|
|
324,
|
|
325,
|
|
326,
|
|
327,
|
|
327.5,
|
|
328,
|
|
329,
|
|
330,
|
|
331,
|
|
332,
|
|
332.5,
|
|
333,
|
|
334,
|
|
335,
|
|
336,
|
|
337,
|
|
337.5,
|
|
338,
|
|
339,
|
|
340,
|
|
341,
|
|
342,
|
|
342.5,
|
|
343,
|
|
344,
|
|
345,
|
|
346,
|
|
347,
|
|
347.5,
|
|
348,
|
|
349,
|
|
350,
|
|
351,
|
|
352,
|
|
352.5,
|
|
353,
|
|
354,
|
|
355,
|
|
356,
|
|
357,
|
|
357.5,
|
|
358,
|
|
359,
|
|
360,
|
|
361,
|
|
362,
|
|
362.5,
|
|
363,
|
|
364,
|
|
365,
|
|
366,
|
|
367,
|
|
367.5,
|
|
368,
|
|
369,
|
|
370,
|
|
371,
|
|
372,
|
|
372.5,
|
|
373,
|
|
374,
|
|
375,
|
|
376,
|
|
377,
|
|
377.5,
|
|
378,
|
|
379,
|
|
380,
|
|
381,
|
|
382,
|
|
383,
|
|
384,
|
|
385,
|
|
386,
|
|
387,
|
|
388,
|
|
389,
|
|
390,
|
|
391,
|
|
392,
|
|
393,
|
|
394,
|
|
395,
|
|
396,
|
|
397,
|
|
398,
|
|
399,
|
|
400,
|
|
401,
|
|
402,
|
|
403,
|
|
404,
|
|
405,
|
|
406,
|
|
407,
|
|
408,
|
|
409,
|
|
410,
|
|
411,
|
|
412,
|
|
413,
|
|
414,
|
|
415,
|
|
416,
|
|
417,
|
|
418,
|
|
419,
|
|
420,
|
|
425,
|
|
430,
|
|
435,
|
|
440,
|
|
445,
|
|
450,
|
|
455,
|
|
460,
|
|
465,
|
|
470,
|
|
475,
|
|
480,
|
|
485,
|
|
490,
|
|
495,
|
|
500,
|
|
505,
|
|
510,
|
|
515,
|
|
520,
|
|
525,
|
|
530,
|
|
535,
|
|
540,
|
|
545,
|
|
550,
|
|
555,
|
|
560,
|
|
565,
|
|
570,
|
|
575,
|
|
580,
|
|
585,
|
|
590,
|
|
595,
|
|
600,
|
|
605,
|
|
610
|
|
],
|
|
"y": [
|
|
1006,
|
|
160,
|
|
89,
|
|
70,
|
|
1051,
|
|
197,
|
|
336,
|
|
168,
|
|
427,
|
|
364,
|
|
589,
|
|
271,
|
|
833,
|
|
534,
|
|
0,
|
|
1,
|
|
0,
|
|
0,
|
|
1934,
|
|
719,
|
|
608,
|
|
401,
|
|
6628,
|
|
1227,
|
|
801,
|
|
715,
|
|
23,
|
|
3,
|
|
1804,
|
|
9,
|
|
2,
|
|
2,
|
|
31,
|
|
934,
|
|
18,
|
|
32,
|
|
3,
|
|
8,
|
|
4675,
|
|
17,
|
|
20,
|
|
11,
|
|
21,
|
|
1727,
|
|
15,
|
|
0,
|
|
10,
|
|
13,
|
|
10238,
|
|
72,
|
|
33,
|
|
76,
|
|
101,
|
|
16409,
|
|
208,
|
|
367,
|
|
575,
|
|
225,
|
|
30390,
|
|
253,
|
|
649,
|
|
41,
|
|
111,
|
|
18322,
|
|
197,
|
|
147,
|
|
573,
|
|
435,
|
|
52407,
|
|
371,
|
|
1733,
|
|
843,
|
|
154,
|
|
49540,
|
|
2337,
|
|
807,
|
|
2476,
|
|
200,
|
|
47399,
|
|
975,
|
|
1042,
|
|
1026,
|
|
798,
|
|
39854,
|
|
1329,
|
|
1069,
|
|
1471,
|
|
1921,
|
|
100595,
|
|
1159,
|
|
1264,
|
|
0,
|
|
1007,
|
|
1333,
|
|
53585,
|
|
1698,
|
|
1938,
|
|
0,
|
|
3572,
|
|
2246,
|
|
82908,
|
|
3213,
|
|
3668,
|
|
0,
|
|
5917,
|
|
2783,
|
|
61990,
|
|
3371,
|
|
4308,
|
|
3,
|
|
13673,
|
|
5108,
|
|
92687,
|
|
7880,
|
|
15356,
|
|
46,
|
|
9600,
|
|
12012,
|
|
60680,
|
|
8942,
|
|
9457,
|
|
4,
|
|
8702,
|
|
9300,
|
|
87888,
|
|
7162,
|
|
8693,
|
|
43,
|
|
9028,
|
|
9211,
|
|
66962,
|
|
10584,
|
|
8407,
|
|
117,
|
|
13070,
|
|
8357,
|
|
130874,
|
|
7696,
|
|
7084,
|
|
78,
|
|
5671,
|
|
5422,
|
|
39925,
|
|
5958,
|
|
10844,
|
|
27,
|
|
8366,
|
|
10382,
|
|
172908,
|
|
14525,
|
|
23228,
|
|
136,
|
|
37185,
|
|
18029,
|
|
119011,
|
|
16398,
|
|
24882,
|
|
504,
|
|
18910,
|
|
23563,
|
|
268564,
|
|
17881,
|
|
26309,
|
|
1619,
|
|
52659,
|
|
35748,
|
|
190309,
|
|
43941,
|
|
38493,
|
|
2,
|
|
37765,
|
|
27489,
|
|
231691,
|
|
28318,
|
|
50864,
|
|
40,
|
|
42681,
|
|
34360,
|
|
120593,
|
|
18785,
|
|
30470,
|
|
59,
|
|
23343,
|
|
8217,
|
|
158607,
|
|
7400,
|
|
17386,
|
|
5499,
|
|
19652,
|
|
144014,
|
|
6248,
|
|
4004,
|
|
9473,
|
|
2491,
|
|
51616,
|
|
1182,
|
|
6725,
|
|
2370,
|
|
4660,
|
|
64898,
|
|
3722,
|
|
750,
|
|
3425,
|
|
1231,
|
|
111397,
|
|
1962,
|
|
4125,
|
|
1084,
|
|
811,
|
|
28347,
|
|
607,
|
|
1975,
|
|
883,
|
|
224,
|
|
40328,
|
|
427,
|
|
507,
|
|
889,
|
|
518,
|
|
20623,
|
|
372,
|
|
1384,
|
|
129,
|
|
550,
|
|
41835,
|
|
26252,
|
|
22746,
|
|
7490,
|
|
11187,
|
|
12479,
|
|
23052,
|
|
6390,
|
|
21516,
|
|
2245,
|
|
15801,
|
|
3138,
|
|
7543,
|
|
14133,
|
|
7262,
|
|
3722,
|
|
18604,
|
|
4698,
|
|
1126,
|
|
815,
|
|
825,
|
|
6581,
|
|
6439,
|
|
388,
|
|
608,
|
|
624,
|
|
4842,
|
|
1349,
|
|
975,
|
|
1924,
|
|
1198,
|
|
974,
|
|
263,
|
|
1448,
|
|
1195,
|
|
865,
|
|
3528,
|
|
827,
|
|
5360
|
|
]
|
|
}
|
|
],
|
|
"layout": {
|
|
"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
|
|
}
|
|
],
|
|
"bargap": 0,
|
|
"bargroupgap": 0,
|
|
"barmode": "overlay",
|
|
"legend": {
|
|
"orientation": "v"
|
|
},
|
|
"margin": {
|
|
"b": 80,
|
|
"l": 40,
|
|
"r": 50,
|
|
"t": 50
|
|
},
|
|
"template": {
|
|
"data": {
|
|
"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"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "rgb(17,17,17)",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"candlestick": [
|
|
{
|
|
"decreasing": {
|
|
"fillcolor": "#e4003a",
|
|
"line": {
|
|
"color": "#e4003a"
|
|
}
|
|
},
|
|
"increasing": {
|
|
"fillcolor": "#00ACFF",
|
|
"line": {
|
|
"color": "#00ACFF"
|
|
}
|
|
},
|
|
"type": "candlestick"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#283442"
|
|
}
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#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"
|
|
}
|
|
]
|
|
},
|
|
"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,
|
|
"#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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#ffed00",
|
|
"#ef7d00",
|
|
"#e4003a",
|
|
"#c13246",
|
|
"#822661",
|
|
"#48277c",
|
|
"#005ca9",
|
|
"#00aaff",
|
|
"#9b30d9",
|
|
"#af005f",
|
|
"#5f00af",
|
|
"#af87ff"
|
|
],
|
|
"dragmode": "pan",
|
|
"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",
|
|
"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
|
|
}
|
|
},
|
|
"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,
|
|
"autorange": true,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"rangeslider": {
|
|
"visible": false
|
|
},
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"tick0": 1,
|
|
"tickfont": {
|
|
"size": 14
|
|
},
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"automargin": true,
|
|
"fixedrange": false,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"side": "right",
|
|
"tick0": 0.5,
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"openbb.forecast.plot(strike_oi, strike_oi.columns.to_list())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"displaylogo": false,
|
|
"plotlyServerURL": "https://plot.ly",
|
|
"scrollZoom": true
|
|
},
|
|
"data": [
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Puts Volume",
|
|
"type": "scatter",
|
|
"x": [
|
|
130,
|
|
135,
|
|
140,
|
|
145,
|
|
150,
|
|
155,
|
|
160,
|
|
165,
|
|
170,
|
|
175,
|
|
180,
|
|
185,
|
|
190,
|
|
195,
|
|
196,
|
|
197,
|
|
198,
|
|
199,
|
|
200,
|
|
205,
|
|
210,
|
|
215,
|
|
220,
|
|
225,
|
|
230,
|
|
235,
|
|
238,
|
|
239,
|
|
240,
|
|
241,
|
|
242,
|
|
243,
|
|
244,
|
|
245,
|
|
246,
|
|
247,
|
|
248,
|
|
249,
|
|
250,
|
|
251,
|
|
252,
|
|
253,
|
|
254,
|
|
255,
|
|
256,
|
|
257,
|
|
258,
|
|
259,
|
|
260,
|
|
261,
|
|
262,
|
|
263,
|
|
264,
|
|
265,
|
|
266,
|
|
267,
|
|
268,
|
|
269,
|
|
270,
|
|
271,
|
|
272,
|
|
273,
|
|
274,
|
|
275,
|
|
276,
|
|
277,
|
|
278,
|
|
279,
|
|
280,
|
|
281,
|
|
282,
|
|
283,
|
|
284,
|
|
285,
|
|
286,
|
|
287,
|
|
288,
|
|
289,
|
|
290,
|
|
291,
|
|
292,
|
|
293,
|
|
294,
|
|
295,
|
|
296,
|
|
297,
|
|
298,
|
|
299,
|
|
300,
|
|
301,
|
|
302,
|
|
302.5,
|
|
303,
|
|
304,
|
|
305,
|
|
306,
|
|
307,
|
|
307.5,
|
|
308,
|
|
309,
|
|
310,
|
|
311,
|
|
312,
|
|
312.5,
|
|
313,
|
|
314,
|
|
315,
|
|
316,
|
|
317,
|
|
317.5,
|
|
318,
|
|
319,
|
|
320,
|
|
321,
|
|
322,
|
|
322.5,
|
|
323,
|
|
324,
|
|
325,
|
|
326,
|
|
327,
|
|
327.5,
|
|
328,
|
|
329,
|
|
330,
|
|
331,
|
|
332,
|
|
332.5,
|
|
333,
|
|
334,
|
|
335,
|
|
336,
|
|
337,
|
|
337.5,
|
|
338,
|
|
339,
|
|
340,
|
|
341,
|
|
342,
|
|
342.5,
|
|
343,
|
|
344,
|
|
345,
|
|
346,
|
|
347,
|
|
347.5,
|
|
348,
|
|
349,
|
|
350,
|
|
351,
|
|
352,
|
|
352.5,
|
|
353,
|
|
354,
|
|
355,
|
|
356,
|
|
357,
|
|
357.5,
|
|
358,
|
|
359,
|
|
360,
|
|
361,
|
|
362,
|
|
362.5,
|
|
363,
|
|
364,
|
|
365,
|
|
366,
|
|
367,
|
|
367.5,
|
|
368,
|
|
369,
|
|
370,
|
|
371,
|
|
372,
|
|
372.5,
|
|
373,
|
|
374,
|
|
375,
|
|
376,
|
|
377,
|
|
377.5,
|
|
378,
|
|
379,
|
|
380,
|
|
381,
|
|
382,
|
|
383,
|
|
384,
|
|
385,
|
|
386,
|
|
387,
|
|
388,
|
|
389,
|
|
390,
|
|
391,
|
|
392,
|
|
393,
|
|
394,
|
|
395,
|
|
396,
|
|
397,
|
|
398,
|
|
399,
|
|
400,
|
|
401,
|
|
402,
|
|
403,
|
|
404,
|
|
405,
|
|
406,
|
|
407,
|
|
408,
|
|
409,
|
|
410,
|
|
411,
|
|
412,
|
|
413,
|
|
414,
|
|
415,
|
|
416,
|
|
417,
|
|
418,
|
|
419,
|
|
420,
|
|
425,
|
|
430,
|
|
435,
|
|
440,
|
|
445,
|
|
450,
|
|
455,
|
|
460,
|
|
465,
|
|
470,
|
|
475,
|
|
480,
|
|
485,
|
|
490,
|
|
495,
|
|
500,
|
|
505,
|
|
510,
|
|
515,
|
|
520,
|
|
525,
|
|
530,
|
|
535,
|
|
540,
|
|
545,
|
|
550,
|
|
555,
|
|
560,
|
|
565,
|
|
570,
|
|
575,
|
|
580,
|
|
585,
|
|
590,
|
|
595,
|
|
600,
|
|
605,
|
|
610
|
|
],
|
|
"y": [
|
|
-14,
|
|
-60,
|
|
0,
|
|
-8,
|
|
0,
|
|
0,
|
|
0,
|
|
-2,
|
|
-30,
|
|
-4,
|
|
-30,
|
|
-84,
|
|
-3,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-13,
|
|
-25,
|
|
-17,
|
|
-282,
|
|
-296,
|
|
-93,
|
|
-14,
|
|
-21,
|
|
0,
|
|
0,
|
|
-110,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-132,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-320,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
0,
|
|
-5,
|
|
0,
|
|
0,
|
|
-103,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-267,
|
|
0,
|
|
0,
|
|
0,
|
|
-1,
|
|
-326,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-415,
|
|
-1,
|
|
-4,
|
|
0,
|
|
0,
|
|
-947,
|
|
-5,
|
|
0,
|
|
0,
|
|
0,
|
|
-870,
|
|
-701,
|
|
-164,
|
|
-14,
|
|
-170,
|
|
-2322,
|
|
-216,
|
|
-492,
|
|
-166,
|
|
-139,
|
|
-855,
|
|
-4,
|
|
-378,
|
|
-204,
|
|
-27,
|
|
-5003,
|
|
-37,
|
|
-53,
|
|
0,
|
|
-24,
|
|
-64,
|
|
-1240,
|
|
-209,
|
|
-82,
|
|
0,
|
|
-23,
|
|
-82,
|
|
-1030,
|
|
-98,
|
|
-226,
|
|
0,
|
|
-23,
|
|
-186,
|
|
-2407,
|
|
-92,
|
|
-153,
|
|
0,
|
|
-63,
|
|
-207,
|
|
-12895,
|
|
-189,
|
|
-202,
|
|
0,
|
|
-5389,
|
|
-175,
|
|
-3508,
|
|
-154,
|
|
-636,
|
|
0,
|
|
-292,
|
|
-75,
|
|
-7030,
|
|
-395,
|
|
-946,
|
|
-2,
|
|
-2108,
|
|
-367,
|
|
-14498,
|
|
-487,
|
|
-143,
|
|
-4,
|
|
-933,
|
|
-1192,
|
|
-10780,
|
|
-627,
|
|
-2492,
|
|
-61,
|
|
-1872,
|
|
-1324,
|
|
-10142,
|
|
-871,
|
|
-2453,
|
|
-85,
|
|
-3098,
|
|
-7296,
|
|
-67541,
|
|
-5608,
|
|
-13408,
|
|
-287,
|
|
-11718,
|
|
-7296,
|
|
-35154,
|
|
-16449,
|
|
-28529,
|
|
-478,
|
|
-49333,
|
|
-47505,
|
|
-168211,
|
|
-107267,
|
|
-139633,
|
|
-542,
|
|
-76105,
|
|
-25069,
|
|
-44299,
|
|
-11555,
|
|
-3768,
|
|
-5,
|
|
-2294,
|
|
-983,
|
|
-2637,
|
|
-487,
|
|
-468,
|
|
-5,
|
|
-320,
|
|
-325,
|
|
-1098,
|
|
-161,
|
|
-43,
|
|
-5,
|
|
-161,
|
|
-30,
|
|
-501,
|
|
0,
|
|
-4,
|
|
0,
|
|
-1,
|
|
-139,
|
|
-5,
|
|
-84,
|
|
-3,
|
|
-1,
|
|
-159,
|
|
-84,
|
|
-1,
|
|
-12,
|
|
-2,
|
|
-662,
|
|
-1,
|
|
-2,
|
|
0,
|
|
0,
|
|
-212,
|
|
-12,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-7,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-163,
|
|
0,
|
|
-2,
|
|
0,
|
|
-4,
|
|
0,
|
|
-51,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
]
|
|
},
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Calls Volume",
|
|
"type": "scatter",
|
|
"x": [
|
|
130,
|
|
135,
|
|
140,
|
|
145,
|
|
150,
|
|
155,
|
|
160,
|
|
165,
|
|
170,
|
|
175,
|
|
180,
|
|
185,
|
|
190,
|
|
195,
|
|
196,
|
|
197,
|
|
198,
|
|
199,
|
|
200,
|
|
205,
|
|
210,
|
|
215,
|
|
220,
|
|
225,
|
|
230,
|
|
235,
|
|
238,
|
|
239,
|
|
240,
|
|
241,
|
|
242,
|
|
243,
|
|
244,
|
|
245,
|
|
246,
|
|
247,
|
|
248,
|
|
249,
|
|
250,
|
|
251,
|
|
252,
|
|
253,
|
|
254,
|
|
255,
|
|
256,
|
|
257,
|
|
258,
|
|
259,
|
|
260,
|
|
261,
|
|
262,
|
|
263,
|
|
264,
|
|
265,
|
|
266,
|
|
267,
|
|
268,
|
|
269,
|
|
270,
|
|
271,
|
|
272,
|
|
273,
|
|
274,
|
|
275,
|
|
276,
|
|
277,
|
|
278,
|
|
279,
|
|
280,
|
|
281,
|
|
282,
|
|
283,
|
|
284,
|
|
285,
|
|
286,
|
|
287,
|
|
288,
|
|
289,
|
|
290,
|
|
291,
|
|
292,
|
|
293,
|
|
294,
|
|
295,
|
|
296,
|
|
297,
|
|
298,
|
|
299,
|
|
300,
|
|
301,
|
|
302,
|
|
302.5,
|
|
303,
|
|
304,
|
|
305,
|
|
306,
|
|
307,
|
|
307.5,
|
|
308,
|
|
309,
|
|
310,
|
|
311,
|
|
312,
|
|
312.5,
|
|
313,
|
|
314,
|
|
315,
|
|
316,
|
|
317,
|
|
317.5,
|
|
318,
|
|
319,
|
|
320,
|
|
321,
|
|
322,
|
|
322.5,
|
|
323,
|
|
324,
|
|
325,
|
|
326,
|
|
327,
|
|
327.5,
|
|
328,
|
|
329,
|
|
330,
|
|
331,
|
|
332,
|
|
332.5,
|
|
333,
|
|
334,
|
|
335,
|
|
336,
|
|
337,
|
|
337.5,
|
|
338,
|
|
339,
|
|
340,
|
|
341,
|
|
342,
|
|
342.5,
|
|
343,
|
|
344,
|
|
345,
|
|
346,
|
|
347,
|
|
347.5,
|
|
348,
|
|
349,
|
|
350,
|
|
351,
|
|
352,
|
|
352.5,
|
|
353,
|
|
354,
|
|
355,
|
|
356,
|
|
357,
|
|
357.5,
|
|
358,
|
|
359,
|
|
360,
|
|
361,
|
|
362,
|
|
362.5,
|
|
363,
|
|
364,
|
|
365,
|
|
366,
|
|
367,
|
|
367.5,
|
|
368,
|
|
369,
|
|
370,
|
|
371,
|
|
372,
|
|
372.5,
|
|
373,
|
|
374,
|
|
375,
|
|
376,
|
|
377,
|
|
377.5,
|
|
378,
|
|
379,
|
|
380,
|
|
381,
|
|
382,
|
|
383,
|
|
384,
|
|
385,
|
|
386,
|
|
387,
|
|
388,
|
|
389,
|
|
390,
|
|
391,
|
|
392,
|
|
393,
|
|
394,
|
|
395,
|
|
396,
|
|
397,
|
|
398,
|
|
399,
|
|
400,
|
|
401,
|
|
402,
|
|
403,
|
|
404,
|
|
405,
|
|
406,
|
|
407,
|
|
408,
|
|
409,
|
|
410,
|
|
411,
|
|
412,
|
|
413,
|
|
414,
|
|
415,
|
|
416,
|
|
417,
|
|
418,
|
|
419,
|
|
420,
|
|
425,
|
|
430,
|
|
435,
|
|
440,
|
|
445,
|
|
450,
|
|
455,
|
|
460,
|
|
465,
|
|
470,
|
|
475,
|
|
480,
|
|
485,
|
|
490,
|
|
495,
|
|
500,
|
|
505,
|
|
510,
|
|
515,
|
|
520,
|
|
525,
|
|
530,
|
|
535,
|
|
540,
|
|
545,
|
|
550,
|
|
555,
|
|
560,
|
|
565,
|
|
570,
|
|
575,
|
|
580,
|
|
585,
|
|
590,
|
|
595,
|
|
600,
|
|
605,
|
|
610
|
|
],
|
|
"y": [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
1,
|
|
0,
|
|
2,
|
|
16,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
5,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
13,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
30,
|
|
1,
|
|
0,
|
|
19,
|
|
0,
|
|
0,
|
|
1,
|
|
0,
|
|
80,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
22,
|
|
0,
|
|
2,
|
|
0,
|
|
0,
|
|
7,
|
|
0,
|
|
0,
|
|
0,
|
|
1,
|
|
17,
|
|
7,
|
|
0,
|
|
3,
|
|
3,
|
|
0,
|
|
0,
|
|
5,
|
|
0,
|
|
0,
|
|
107,
|
|
5,
|
|
0,
|
|
0,
|
|
20,
|
|
0,
|
|
38,
|
|
1,
|
|
0,
|
|
0,
|
|
1,
|
|
39,
|
|
50,
|
|
0,
|
|
1,
|
|
0,
|
|
2,
|
|
0,
|
|
75,
|
|
1,
|
|
1,
|
|
0,
|
|
0,
|
|
12,
|
|
234,
|
|
36,
|
|
255,
|
|
0,
|
|
18,
|
|
5,
|
|
552,
|
|
9,
|
|
7,
|
|
0,
|
|
23,
|
|
25,
|
|
168,
|
|
4,
|
|
35,
|
|
0,
|
|
1,
|
|
7,
|
|
287,
|
|
38,
|
|
57,
|
|
0,
|
|
174,
|
|
41,
|
|
448,
|
|
12,
|
|
58,
|
|
1,
|
|
213,
|
|
69,
|
|
655,
|
|
112,
|
|
187,
|
|
2,
|
|
22,
|
|
172,
|
|
3620,
|
|
231,
|
|
344,
|
|
0,
|
|
946,
|
|
394,
|
|
3573,
|
|
856,
|
|
955,
|
|
25,
|
|
3145,
|
|
2439,
|
|
16178,
|
|
30235,
|
|
96101,
|
|
369,
|
|
135770,
|
|
93259,
|
|
92224,
|
|
41348,
|
|
24301,
|
|
10,
|
|
20676,
|
|
15903,
|
|
26576,
|
|
10099,
|
|
12916,
|
|
0,
|
|
7885,
|
|
9049,
|
|
15130,
|
|
3667,
|
|
2233,
|
|
2,
|
|
1915,
|
|
669,
|
|
4853,
|
|
542,
|
|
704,
|
|
2336,
|
|
1672,
|
|
3598,
|
|
807,
|
|
445,
|
|
1030,
|
|
1694,
|
|
1946,
|
|
603,
|
|
791,
|
|
201,
|
|
1610,
|
|
644,
|
|
586,
|
|
70,
|
|
325,
|
|
89,
|
|
3661,
|
|
88,
|
|
85,
|
|
2,
|
|
84,
|
|
509,
|
|
6,
|
|
50,
|
|
3,
|
|
56,
|
|
893,
|
|
10,
|
|
386,
|
|
13,
|
|
113,
|
|
1776,
|
|
33,
|
|
10,
|
|
0,
|
|
1,
|
|
795,
|
|
158,
|
|
1550,
|
|
189,
|
|
1126,
|
|
86,
|
|
136,
|
|
93,
|
|
26,
|
|
12,
|
|
3,
|
|
7,
|
|
0,
|
|
892,
|
|
16,
|
|
0,
|
|
372,
|
|
25,
|
|
3,
|
|
3,
|
|
0,
|
|
0,
|
|
481,
|
|
0,
|
|
2,
|
|
294,
|
|
1,
|
|
0,
|
|
1,
|
|
15,
|
|
0,
|
|
198,
|
|
0,
|
|
0,
|
|
1,
|
|
2,
|
|
0,
|
|
0,
|
|
2
|
|
]
|
|
}
|
|
],
|
|
"layout": {
|
|
"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
|
|
}
|
|
],
|
|
"bargap": 0,
|
|
"bargroupgap": 0,
|
|
"barmode": "overlay",
|
|
"legend": {
|
|
"orientation": "v"
|
|
},
|
|
"margin": {
|
|
"b": 80,
|
|
"l": 40,
|
|
"r": 50,
|
|
"t": 50
|
|
},
|
|
"template": {
|
|
"data": {
|
|
"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"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "rgb(17,17,17)",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"candlestick": [
|
|
{
|
|
"decreasing": {
|
|
"fillcolor": "#e4003a",
|
|
"line": {
|
|
"color": "#e4003a"
|
|
}
|
|
},
|
|
"increasing": {
|
|
"fillcolor": "#00ACFF",
|
|
"line": {
|
|
"color": "#00ACFF"
|
|
}
|
|
},
|
|
"type": "candlestick"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#283442"
|
|
}
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#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"
|
|
}
|
|
]
|
|
},
|
|
"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,
|
|
"#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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#ffed00",
|
|
"#ef7d00",
|
|
"#e4003a",
|
|
"#c13246",
|
|
"#822661",
|
|
"#48277c",
|
|
"#005ca9",
|
|
"#00aaff",
|
|
"#9b30d9",
|
|
"#af005f",
|
|
"#5f00af",
|
|
"#af87ff"
|
|
],
|
|
"dragmode": "pan",
|
|
"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",
|
|
"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
|
|
}
|
|
},
|
|
"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,
|
|
"autorange": true,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"rangeslider": {
|
|
"visible": false
|
|
},
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"tick0": 1,
|
|
"tickfont": {
|
|
"size": 14
|
|
},
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"automargin": true,
|
|
"fixedrange": false,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"side": "right",
|
|
"tick0": 0.5,
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"openbb.forecast.plot(strike_vol, strike_vol.columns.to_list())"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Delta exposure can easily be calculated by multiplying the delta value in the chains data by (OI * 100 * share price)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"displaylogo": false,
|
|
"plotlyServerURL": "https://plot.ly",
|
|
"scrollZoom": true
|
|
},
|
|
"data": [
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Call DEX",
|
|
"type": "scatter",
|
|
"x": [
|
|
"2023-06-23",
|
|
"2023-06-26",
|
|
"2023-06-27",
|
|
"2023-06-28",
|
|
"2023-06-29",
|
|
"2023-06-30",
|
|
"2023-07-03",
|
|
"2023-07-05",
|
|
"2023-07-06",
|
|
"2023-07-07",
|
|
"2023-07-14",
|
|
"2023-07-21",
|
|
"2023-07-28",
|
|
"2023-08-04",
|
|
"2023-08-18",
|
|
"2023-09-15",
|
|
"2023-09-29",
|
|
"2023-10-20",
|
|
"2023-11-17",
|
|
"2023-12-15",
|
|
"2023-12-29",
|
|
"2024-01-19",
|
|
"2024-03-15",
|
|
"2024-03-28",
|
|
"2024-06-21",
|
|
"2024-09-20",
|
|
"2024-12-20",
|
|
"2025-01-17",
|
|
"2025-06-20"
|
|
],
|
|
"y": [
|
|
2192511676.6158,
|
|
366902241.1962,
|
|
264048695.973,
|
|
208837997.3448,
|
|
181938601.1172,
|
|
9135425345.5896,
|
|
57969598.9278,
|
|
12113861.200199999,
|
|
10715587.5762,
|
|
1959414785.8379998,
|
|
457949263.66499996,
|
|
13542068596.5024,
|
|
790287834.9828,
|
|
15482942.7444,
|
|
5770994226.0534,
|
|
17470389611.0976,
|
|
1326150781.8641999,
|
|
1811519538.972,
|
|
886102995.2628,
|
|
11679972082.3284,
|
|
542120490.7236,
|
|
7378160279.3088,
|
|
1958264133.1787999,
|
|
173289005.41079998,
|
|
3839811076.8389997,
|
|
6938967.441,
|
|
1880329562.4947999,
|
|
1212958828.3878,
|
|
173368929.642
|
|
]
|
|
},
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Put DEX",
|
|
"type": "scatter",
|
|
"x": [
|
|
"2023-06-23",
|
|
"2023-06-26",
|
|
"2023-06-27",
|
|
"2023-06-28",
|
|
"2023-06-29",
|
|
"2023-06-30",
|
|
"2023-07-03",
|
|
"2023-07-05",
|
|
"2023-07-06",
|
|
"2023-07-07",
|
|
"2023-07-14",
|
|
"2023-07-21",
|
|
"2023-07-28",
|
|
"2023-08-04",
|
|
"2023-08-18",
|
|
"2023-09-15",
|
|
"2023-09-29",
|
|
"2023-10-20",
|
|
"2023-11-17",
|
|
"2023-12-15",
|
|
"2023-12-29",
|
|
"2024-01-19",
|
|
"2024-03-15",
|
|
"2024-03-28",
|
|
"2024-06-21",
|
|
"2024-09-20",
|
|
"2024-12-20",
|
|
"2025-01-17",
|
|
"2025-06-20"
|
|
],
|
|
"y": [
|
|
-1893965937.3449998,
|
|
-627862060.02,
|
|
-274422425.0868,
|
|
-401273016.87659997,
|
|
-297826308.3438,
|
|
-2561391496.5042,
|
|
-65473055.823,
|
|
-94032132.0768,
|
|
-7077593.5374,
|
|
-1133665771.4657998,
|
|
-466864113.465,
|
|
-6661804312.973399,
|
|
-1207375667.9975998,
|
|
-14489754.2166,
|
|
-2973266217.2999997,
|
|
-5337588581.3448,
|
|
-605896219.572,
|
|
-1062937169.6123999,
|
|
-425949950.8776,
|
|
-5849514865.297199,
|
|
-187913902.0524,
|
|
-1824929216.727,
|
|
-953132189.2631999,
|
|
-83286865.95,
|
|
-1165621754.9526,
|
|
-451086.3036,
|
|
-1094572120.221,
|
|
-612291883.5228,
|
|
-88642415.55479999
|
|
]
|
|
}
|
|
],
|
|
"layout": {
|
|
"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
|
|
}
|
|
],
|
|
"bargap": 0,
|
|
"bargroupgap": 0,
|
|
"barmode": "overlay",
|
|
"legend": {
|
|
"orientation": "v"
|
|
},
|
|
"margin": {
|
|
"b": 80,
|
|
"l": 40,
|
|
"r": 50,
|
|
"t": 50
|
|
},
|
|
"template": {
|
|
"data": {
|
|
"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"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "rgb(17,17,17)",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"candlestick": [
|
|
{
|
|
"decreasing": {
|
|
"fillcolor": "#e4003a",
|
|
"line": {
|
|
"color": "#e4003a"
|
|
}
|
|
},
|
|
"increasing": {
|
|
"fillcolor": "#00ACFF",
|
|
"line": {
|
|
"color": "#00ACFF"
|
|
}
|
|
},
|
|
"type": "candlestick"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#283442"
|
|
}
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#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"
|
|
}
|
|
]
|
|
},
|
|
"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,
|
|
"#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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#ffed00",
|
|
"#ef7d00",
|
|
"#e4003a",
|
|
"#c13246",
|
|
"#822661",
|
|
"#48277c",
|
|
"#005ca9",
|
|
"#00aaff",
|
|
"#9b30d9",
|
|
"#af005f",
|
|
"#5f00af",
|
|
"#af87ff"
|
|
],
|
|
"dragmode": "pan",
|
|
"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",
|
|
"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
|
|
}
|
|
},
|
|
"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,
|
|
"autorange": true,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"rangeslider": {
|
|
"visible": false
|
|
},
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"tick0": 1,
|
|
"tickfont": {
|
|
"size": 14
|
|
},
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"automargin": true,
|
|
"fixedrange": false,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"side": "right",
|
|
"tick0": 0.5,
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"df = ticker.chains[[\"expiration\", \"dte\", \"strike\", \"optionType\", \"openInterest\", \"delta\"]]\n",
|
|
"df[\"Delta Exposure\"] = df[\"delta\"] * df[\"openInterest\"] * (100) * ticker.last_price\n",
|
|
"dex = pd.DataFrame()\n",
|
|
"dex[\"Call DEX\"] = df.query(\"`optionType` == 'call'\").set_index([\"expiration\",\"strike\"])[[\"Delta Exposure\"]]\n",
|
|
"dex[\"Put DEX\"] = df.query(\"`optionType` == 'put'\").set_index([\"expiration\",\"strike\"])[[\"Delta Exposure\"]]\n",
|
|
"\n",
|
|
"# By expiration date\n",
|
|
"\n",
|
|
"dex_by_expiry = dex.reset_index().groupby(\"expiration\")[[\"Call DEX\", \"Put DEX\"]].sum()\n",
|
|
"\n",
|
|
"openbb.forecast.plot(dex_by_expiry, dex_by_expiry.columns.to_list())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"displaylogo": false,
|
|
"plotlyServerURL": "https://plot.ly",
|
|
"scrollZoom": true
|
|
},
|
|
"data": [
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Call DEX",
|
|
"type": "scatter",
|
|
"x": [
|
|
130,
|
|
135,
|
|
140,
|
|
145,
|
|
150,
|
|
155,
|
|
160,
|
|
165,
|
|
170,
|
|
175,
|
|
180,
|
|
185,
|
|
190,
|
|
195,
|
|
196,
|
|
197,
|
|
198,
|
|
199,
|
|
200,
|
|
205,
|
|
210,
|
|
215,
|
|
220,
|
|
225,
|
|
230,
|
|
235,
|
|
238,
|
|
239,
|
|
240,
|
|
241,
|
|
242,
|
|
243,
|
|
244,
|
|
245,
|
|
246,
|
|
247,
|
|
248,
|
|
249,
|
|
250,
|
|
251,
|
|
252,
|
|
253,
|
|
254,
|
|
255,
|
|
256,
|
|
257,
|
|
258,
|
|
259,
|
|
260,
|
|
261,
|
|
262,
|
|
263,
|
|
264,
|
|
265,
|
|
266,
|
|
267,
|
|
268,
|
|
269,
|
|
270,
|
|
271,
|
|
272,
|
|
273,
|
|
274,
|
|
275,
|
|
276,
|
|
277,
|
|
278,
|
|
279,
|
|
280,
|
|
281,
|
|
282,
|
|
283,
|
|
284,
|
|
285,
|
|
286,
|
|
287,
|
|
288,
|
|
289,
|
|
290,
|
|
291,
|
|
292,
|
|
293,
|
|
294,
|
|
295,
|
|
296,
|
|
297,
|
|
298,
|
|
299,
|
|
300,
|
|
301,
|
|
302,
|
|
302.5,
|
|
303,
|
|
304,
|
|
305,
|
|
306,
|
|
307,
|
|
307.5,
|
|
308,
|
|
309,
|
|
310,
|
|
311,
|
|
312,
|
|
312.5,
|
|
313,
|
|
314,
|
|
315,
|
|
316,
|
|
317,
|
|
317.5,
|
|
318,
|
|
319,
|
|
320,
|
|
321,
|
|
322,
|
|
322.5,
|
|
323,
|
|
324,
|
|
325,
|
|
326,
|
|
327,
|
|
327.5,
|
|
328,
|
|
329,
|
|
330,
|
|
331,
|
|
332,
|
|
332.5,
|
|
333,
|
|
334,
|
|
335,
|
|
336,
|
|
337,
|
|
337.5,
|
|
338,
|
|
339,
|
|
340,
|
|
341,
|
|
342,
|
|
342.5,
|
|
343,
|
|
344,
|
|
345,
|
|
346,
|
|
347,
|
|
347.5,
|
|
348,
|
|
349,
|
|
350,
|
|
351,
|
|
352,
|
|
352.5,
|
|
353,
|
|
354,
|
|
355,
|
|
356,
|
|
357,
|
|
357.5,
|
|
358,
|
|
359,
|
|
360,
|
|
361,
|
|
362,
|
|
362.5,
|
|
363,
|
|
364,
|
|
365,
|
|
366,
|
|
367,
|
|
367.5,
|
|
368,
|
|
369,
|
|
370,
|
|
371,
|
|
372,
|
|
372.5,
|
|
373,
|
|
374,
|
|
375,
|
|
376,
|
|
377,
|
|
377.5,
|
|
378,
|
|
379,
|
|
380,
|
|
381,
|
|
382,
|
|
383,
|
|
384,
|
|
385,
|
|
386,
|
|
387,
|
|
388,
|
|
389,
|
|
390,
|
|
391,
|
|
392,
|
|
393,
|
|
394,
|
|
395,
|
|
396,
|
|
397,
|
|
398,
|
|
399,
|
|
400,
|
|
401,
|
|
402,
|
|
403,
|
|
404,
|
|
405,
|
|
406,
|
|
407,
|
|
408,
|
|
409,
|
|
410,
|
|
411,
|
|
412,
|
|
413,
|
|
414,
|
|
415,
|
|
416,
|
|
417,
|
|
418,
|
|
419,
|
|
420,
|
|
425,
|
|
430,
|
|
435,
|
|
440,
|
|
445,
|
|
450,
|
|
455,
|
|
460,
|
|
465,
|
|
470,
|
|
475,
|
|
480,
|
|
485,
|
|
490,
|
|
495,
|
|
500,
|
|
505,
|
|
510,
|
|
515,
|
|
520,
|
|
525,
|
|
530,
|
|
535,
|
|
540,
|
|
545,
|
|
550,
|
|
555,
|
|
560,
|
|
565,
|
|
570,
|
|
575,
|
|
580,
|
|
585,
|
|
590,
|
|
595,
|
|
600,
|
|
605,
|
|
610
|
|
],
|
|
"y": [
|
|
36468895.9554,
|
|
5805907.8684,
|
|
3215523.3474,
|
|
2532956.7257999997,
|
|
38022245.7396,
|
|
7112943.519599999,
|
|
12098430.3924,
|
|
6042648.2754,
|
|
15398016.8784,
|
|
13111225.0374,
|
|
21192356.1912,
|
|
9733720.0704,
|
|
29971324.6056,
|
|
19301880.2046,
|
|
0,
|
|
36260.0322,
|
|
0,
|
|
0,
|
|
68899423.1946,
|
|
25369030.666199997,
|
|
21762935.7,
|
|
14295356.616,
|
|
236587132.73879996,
|
|
43858629.362399995,
|
|
28247908.317599997,
|
|
25281927.9606,
|
|
812379.7938,
|
|
105886.13760000002,
|
|
63544758.1584,
|
|
317199.74759999994,
|
|
70430.5896,
|
|
70386.90719999999,
|
|
1111535.0699999998,
|
|
32753533.105799995,
|
|
644883.2712,
|
|
1144522.5624,
|
|
107382.2598,
|
|
285475.40459999995,
|
|
164738015.442,
|
|
616806.4086,
|
|
719212.5149999999,
|
|
391135.84979999997,
|
|
749458.9368,
|
|
60330450.6378,
|
|
535477.0602,
|
|
0,
|
|
353350.5738,
|
|
458515.95180000004,
|
|
353103032.91959995,
|
|
2619560.724,
|
|
1190370.8813999998,
|
|
2741234.409,
|
|
3658160.7467999994,
|
|
558615955.0979999,
|
|
7419586.6872,
|
|
13008007.1664,
|
|
20519894.764799997,
|
|
7955744.464799999,
|
|
1057695838.563,
|
|
8920710.521999998,
|
|
22916693.4498,
|
|
1455082.5851999999,
|
|
3937051.0296,
|
|
628645929.7674,
|
|
7143761.4528,
|
|
5288748.294600001,
|
|
20316786.1656,
|
|
15342347.299800001,
|
|
1780250490.3468,
|
|
13416346.601400001,
|
|
59475156.5262,
|
|
29855085.7392,
|
|
5584525.4651999995,
|
|
1668289142.8823998,
|
|
82444294.3374,
|
|
28678929.8388,
|
|
83715350.2518,
|
|
7170349.4736,
|
|
1607906724.7494,
|
|
34235127.2676,
|
|
37150891.0656,
|
|
36197704.6956,
|
|
28270954.4238,
|
|
1304545383.0995998,
|
|
46446873.4458,
|
|
37001264.2848,
|
|
51015364.488,
|
|
67222383.0546,
|
|
3324085374.1787996,
|
|
40548431.693399996,
|
|
44404131.5334,
|
|
0,
|
|
35160411.5046,
|
|
46670516.4132,
|
|
1756031355.1782,
|
|
58663941.5964,
|
|
67404706.1118,
|
|
0,
|
|
118755864.489,
|
|
77688540.4866,
|
|
2681277362.7978,
|
|
107335013.6442,
|
|
124999266.15419999,
|
|
0,
|
|
198614237.19059998,
|
|
94284172.2444,
|
|
2009560546.5881999,
|
|
113378320.7958,
|
|
144393545.55539998,
|
|
108514.362,
|
|
477391648.3091999,
|
|
169401901.5654,
|
|
2897641619.2506,
|
|
253570948.1442,
|
|
519407186.1684,
|
|
1653895.7484,
|
|
323180960.21999997,
|
|
402727564.3524,
|
|
1904720697.1133997,
|
|
293332430.481,
|
|
311349396.5298,
|
|
143103.5424,
|
|
284408796.87839997,
|
|
304318306.5474,
|
|
2656149819.3594,
|
|
231414852.64319995,
|
|
282899457.1122,
|
|
1528450.8161999998,
|
|
288825309.5706,
|
|
298214044.2468,
|
|
1980864591.534,
|
|
337752739.0632,
|
|
257722840.1376,
|
|
3871527.4295999995,
|
|
419230338.2484,
|
|
261251165.87099996,
|
|
3794253875.5536,
|
|
236953398.7422,
|
|
214986255.1026,
|
|
2589143.2128,
|
|
171132299.757,
|
|
163693048.7094,
|
|
1136830714.2342,
|
|
182701019.166,
|
|
310578464.0532,
|
|
804782.6963999999,
|
|
251087560.02179998,
|
|
306346800.71699995,
|
|
4708560375.9744,
|
|
423747353.2224,
|
|
672842275.0445999,
|
|
3837364.1525999997,
|
|
1102426674.4062,
|
|
525188111.3442,
|
|
3133190912.7684,
|
|
446934378.8448,
|
|
667654160.079,
|
|
12177462.774599997,
|
|
488104400.1696,
|
|
588359592.474,
|
|
6380908709.516999,
|
|
445088790.1644,
|
|
617965149.7836,
|
|
33927308.3154,
|
|
1115197995.7686,
|
|
703971663.7566,
|
|
3582750487.3668,
|
|
653602773.3072,
|
|
495827058.98819995,
|
|
35717.6424,
|
|
442483863.0444,
|
|
273241067.3406,
|
|
3705665618.8943996,
|
|
295289911.629,
|
|
504374849.2212,
|
|
585780.9839999999,
|
|
454638148.66559994,
|
|
274607678.505,
|
|
1405566983.112,
|
|
141094450.4964,
|
|
251052701.46659997,
|
|
679967.5188,
|
|
150826303.1442,
|
|
46031446.5414,
|
|
1866474739.2425997,
|
|
30133207.939799994,
|
|
110437010.0742,
|
|
17545571.069399998,
|
|
113855623.81979999,
|
|
1063549651.4634,
|
|
22423642.920599997,
|
|
16173991.031999998,
|
|
53608799.496599995,
|
|
8993350.713,
|
|
446187045.78479993,
|
|
7777301.8608,
|
|
20352350.9196,
|
|
14824434.204599999,
|
|
20452969.687799998,
|
|
340111057.194,
|
|
12754521.8394,
|
|
5505966.308999999,
|
|
15878366.749799998,
|
|
6069360.063,
|
|
907873236.8441999,
|
|
8142541.327799999,
|
|
27441050.7072,
|
|
5691485.4618,
|
|
4087962.801,
|
|
199887415.34159997,
|
|
2573555.8764,
|
|
6837587.870999999,
|
|
4289116.612799999,
|
|
845065.1496,
|
|
283952556.0516,
|
|
1989817.0446,
|
|
2258958.8718,
|
|
6481212.290999999,
|
|
2126928.8178,
|
|
110648312.76359999,
|
|
2202066.1859999998,
|
|
6063408.336,
|
|
576116.2529999999,
|
|
2983839.1782,
|
|
178868299.9086,
|
|
190090177.42139995,
|
|
133603494.048,
|
|
31621139.689799998,
|
|
61227279.4314,
|
|
69416488.1232,
|
|
96683038.563,
|
|
11070292.304399999,
|
|
86058790.8852,
|
|
8195560.840799999,
|
|
22106752.59,
|
|
7643007.6024,
|
|
12853076.6142,
|
|
38457355.2054,
|
|
9854287.134599999,
|
|
17826205.007999998,
|
|
27689534.3994,
|
|
4154673.1062000007,
|
|
1775278.2174,
|
|
425069.7942,
|
|
1259574.7236,
|
|
14937906.519,
|
|
2640804.9312,
|
|
158446.98539999998,
|
|
170805.4644,
|
|
120181.203,
|
|
3228573.4644,
|
|
183211.266,
|
|
140387.95319999996,
|
|
204069.61199999996,
|
|
116140.581,
|
|
104277.16919999999,
|
|
22918.699199999995,
|
|
128426.256,
|
|
89541.6396,
|
|
60645.731999999996,
|
|
198842.2848,
|
|
34101.393599999996,
|
|
250678.7328
|
|
]
|
|
},
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Put DEX",
|
|
"type": "scatter",
|
|
"x": [
|
|
130,
|
|
135,
|
|
140,
|
|
145,
|
|
150,
|
|
155,
|
|
160,
|
|
165,
|
|
170,
|
|
175,
|
|
180,
|
|
185,
|
|
190,
|
|
195,
|
|
196,
|
|
197,
|
|
198,
|
|
199,
|
|
200,
|
|
205,
|
|
210,
|
|
215,
|
|
220,
|
|
225,
|
|
230,
|
|
235,
|
|
238,
|
|
239,
|
|
240,
|
|
241,
|
|
242,
|
|
243,
|
|
244,
|
|
245,
|
|
246,
|
|
247,
|
|
248,
|
|
249,
|
|
250,
|
|
251,
|
|
252,
|
|
253,
|
|
254,
|
|
255,
|
|
256,
|
|
257,
|
|
258,
|
|
259,
|
|
260,
|
|
261,
|
|
262,
|
|
263,
|
|
264,
|
|
265,
|
|
266,
|
|
267,
|
|
268,
|
|
269,
|
|
270,
|
|
271,
|
|
272,
|
|
273,
|
|
274,
|
|
275,
|
|
276,
|
|
277,
|
|
278,
|
|
279,
|
|
280,
|
|
281,
|
|
282,
|
|
283,
|
|
284,
|
|
285,
|
|
286,
|
|
287,
|
|
288,
|
|
289,
|
|
290,
|
|
291,
|
|
292,
|
|
293,
|
|
294,
|
|
295,
|
|
296,
|
|
297,
|
|
298,
|
|
299,
|
|
300,
|
|
301,
|
|
302,
|
|
302.5,
|
|
303,
|
|
304,
|
|
305,
|
|
306,
|
|
307,
|
|
307.5,
|
|
308,
|
|
309,
|
|
310,
|
|
311,
|
|
312,
|
|
312.5,
|
|
313,
|
|
314,
|
|
315,
|
|
316,
|
|
317,
|
|
317.5,
|
|
318,
|
|
319,
|
|
320,
|
|
321,
|
|
322,
|
|
322.5,
|
|
323,
|
|
324,
|
|
325,
|
|
326,
|
|
327,
|
|
327.5,
|
|
328,
|
|
329,
|
|
330,
|
|
331,
|
|
332,
|
|
332.5,
|
|
333,
|
|
334,
|
|
335,
|
|
336,
|
|
337,
|
|
337.5,
|
|
338,
|
|
339,
|
|
340,
|
|
341,
|
|
342,
|
|
342.5,
|
|
343,
|
|
344,
|
|
345,
|
|
346,
|
|
347,
|
|
347.5,
|
|
348,
|
|
349,
|
|
350,
|
|
351,
|
|
352,
|
|
352.5,
|
|
353,
|
|
354,
|
|
355,
|
|
356,
|
|
357,
|
|
357.5,
|
|
358,
|
|
359,
|
|
360,
|
|
361,
|
|
362,
|
|
362.5,
|
|
363,
|
|
364,
|
|
365,
|
|
366,
|
|
367,
|
|
367.5,
|
|
368,
|
|
369,
|
|
370,
|
|
371,
|
|
372,
|
|
372.5,
|
|
373,
|
|
374,
|
|
375,
|
|
376,
|
|
377,
|
|
377.5,
|
|
378,
|
|
379,
|
|
380,
|
|
381,
|
|
382,
|
|
383,
|
|
384,
|
|
385,
|
|
386,
|
|
387,
|
|
388,
|
|
389,
|
|
390,
|
|
391,
|
|
392,
|
|
393,
|
|
394,
|
|
395,
|
|
396,
|
|
397,
|
|
398,
|
|
399,
|
|
400,
|
|
401,
|
|
402,
|
|
403,
|
|
404,
|
|
405,
|
|
406,
|
|
407,
|
|
408,
|
|
409,
|
|
410,
|
|
411,
|
|
412,
|
|
413,
|
|
414,
|
|
415,
|
|
416,
|
|
417,
|
|
418,
|
|
419,
|
|
420,
|
|
425,
|
|
430,
|
|
435,
|
|
440,
|
|
445,
|
|
450,
|
|
455,
|
|
460,
|
|
465,
|
|
470,
|
|
475,
|
|
480,
|
|
485,
|
|
490,
|
|
495,
|
|
500,
|
|
505,
|
|
510,
|
|
515,
|
|
520,
|
|
525,
|
|
530,
|
|
535,
|
|
540,
|
|
545,
|
|
550,
|
|
555,
|
|
560,
|
|
565,
|
|
570,
|
|
575,
|
|
580,
|
|
585,
|
|
590,
|
|
595,
|
|
600,
|
|
605,
|
|
610
|
|
],
|
|
"y": [
|
|
-1915145.622,
|
|
-541396.0253999999,
|
|
-1661117.9052,
|
|
-3432908.811,
|
|
-4118678.8085999996,
|
|
-3994657.1945999996,
|
|
-4574708.5038,
|
|
-6203468.671200001,
|
|
-17989864.7598,
|
|
-5837271.8316,
|
|
-12282999.453,
|
|
-6384939.9216,
|
|
-26237666.110799998,
|
|
-7336400.8368,
|
|
-126984.73679999998,
|
|
-3374727.4943999997,
|
|
-40806.64199999999,
|
|
-32368.6584,
|
|
-49676189.511,
|
|
-9252816.8886,
|
|
-41891079.4212,
|
|
-23486497.595999997,
|
|
-117469767.26820001,
|
|
-22644814.192199998,
|
|
-89683927.7376,
|
|
-55903202.9958,
|
|
-57544.281599999995,
|
|
-54340.9056,
|
|
-147481476.25259998,
|
|
-168512.1384,
|
|
-179403.61680000002,
|
|
-467838.504,
|
|
-293884.2666,
|
|
-65236420.9818,
|
|
-98969.75759999998,
|
|
-56015.397600000004,
|
|
-88678.91219999999,
|
|
-297564.5088,
|
|
-208444790.2212,
|
|
-346233.9828,
|
|
-2179638.9138,
|
|
-483003.5772,
|
|
-190469.8248,
|
|
-83711335.11119999,
|
|
-143205.468,
|
|
-136310.92919999998,
|
|
-114484.29000000001,
|
|
-130341.0012,
|
|
-286899793.01879996,
|
|
-246197.64659999998,
|
|
-1504141.5605999997,
|
|
-200509.4964,
|
|
-195395.0154,
|
|
-226616821.50959998,
|
|
-792719.0735999999,
|
|
-202904.748,
|
|
-1076057.6808,
|
|
-322394.31299999997,
|
|
-437060187.0966,
|
|
-326700.66959999996,
|
|
-499832.2218,
|
|
-476476.6986,
|
|
-239350.4304,
|
|
-222549513.2034,
|
|
-527479.5408,
|
|
-361464.57959999994,
|
|
-721327.4712,
|
|
-358530.5784,
|
|
-422526277.254,
|
|
-509089.25039999996,
|
|
-701892.4434,
|
|
-361650.2298,
|
|
-629059.3217999999,
|
|
-674219238.9377999,
|
|
-7792707.187199999,
|
|
-10812733.593600001,
|
|
-7616725.3584,
|
|
-7404956.7234000005,
|
|
-522156738.4344,
|
|
-12258246.093,
|
|
-53766656.7696,
|
|
-16326034.9056,
|
|
-14324030.471399998,
|
|
-266696814.06599998,
|
|
-19784312.270400003,
|
|
-62335982.425799996,
|
|
-34787705.9874,
|
|
-13436728.0812,
|
|
-1156046332.6193998,
|
|
-16920151.9476,
|
|
-13864731.8766,
|
|
-2002.11,
|
|
-16094161.445999999,
|
|
-15169827.3012,
|
|
-250156305.8568,
|
|
-9760235.287199998,
|
|
-16397564.835599998,
|
|
-4542.969599999999,
|
|
-38859542.7024,
|
|
-14902709.425199999,
|
|
-701124390.3216,
|
|
-17313249.865199998,
|
|
-255999671.38319996,
|
|
-3159.6935999999996,
|
|
-57236728.3824,
|
|
-73448384.56379999,
|
|
-438582118.3146,
|
|
-37458007.459199995,
|
|
-42721398.1206,
|
|
-61686.82920000001,
|
|
-45281674.5474,
|
|
-28815666.6714,
|
|
-1010143028.6748,
|
|
-32767606.119,
|
|
-79814329.9218,
|
|
-309740.97780000005,
|
|
-59196521.057399996,
|
|
-40347962.239199996,
|
|
-2020065421.1873999,
|
|
-49674638.785799995,
|
|
-39501018.7464,
|
|
-125838.0738,
|
|
-59043042.945,
|
|
-50660787.1668,
|
|
-1064584334.6309999,
|
|
-44499999.8406,
|
|
-149476961.08859998,
|
|
-2115407.5848000003,
|
|
-68728479.40259999,
|
|
-97092790.39559999,
|
|
-665104094.4131999,
|
|
-59686353.6498,
|
|
-90416601.7122,
|
|
-1274426.7396,
|
|
-142380314.7444,
|
|
-57742457.728199996,
|
|
-1592783746.8221998,
|
|
-62944936.923,
|
|
-91814686.04579999,
|
|
-3628107.2556,
|
|
-150504411.1788,
|
|
-96847240.70459999,
|
|
-926116128.2658,
|
|
-61536306.92999999,
|
|
-157309404.699,
|
|
-5916478.943399999,
|
|
-148347421.5894,
|
|
-151499569.0548,
|
|
-2308620824.4888,
|
|
-118124835.81899999,
|
|
-151063738.8294,
|
|
-24589285.265399996,
|
|
-292021219.5204,
|
|
-181758971.808,
|
|
-1724635088.8434,
|
|
-347018107.3614,
|
|
-437928145.464,
|
|
-8963006.0058,
|
|
-251587286.67779997,
|
|
-324351339.12299997,
|
|
-2777967962.0562,
|
|
-261934169.3166,
|
|
-557660439,
|
|
-25647207.4698,
|
|
-960575371.7268,
|
|
-479587857.41339993,
|
|
-2405811303.2915998,
|
|
-609840157.86,
|
|
-657203138.5985999,
|
|
-632346.4223999999,
|
|
-476487488.15279996,
|
|
-367065103.7442,
|
|
-2042678427.3119998,
|
|
-286221379.8654,
|
|
-265567856.9988,
|
|
0,
|
|
-600452791.8989999,
|
|
-156285769.5384,
|
|
-504973858.692,
|
|
-81062241.4446,
|
|
-56242003.6902,
|
|
-104313.57119999999,
|
|
-97043953.4724,
|
|
-37766692.779,
|
|
-433209816.50939995,
|
|
-24484250.934599996,
|
|
-15941910.080999998,
|
|
-28108794.434399996,
|
|
-9850745.219999999,
|
|
-112867731.78299999,
|
|
-18197978.634,
|
|
-12407978.439599998,
|
|
-15197197.964999998,
|
|
-2658368.8962,
|
|
-127286276.4072,
|
|
-9911998.8654,
|
|
-1139557.3295999998,
|
|
-7394036.1234,
|
|
-5884725.4788,
|
|
-22094364.989400003,
|
|
-5022449.4636,
|
|
-157576.9776,
|
|
-192417.33179999999,
|
|
-82090.1502,
|
|
-93712264.0626,
|
|
-29441.937599999997,
|
|
0,
|
|
-27061.246799999994,
|
|
0,
|
|
-128785958.7228,
|
|
0,
|
|
0,
|
|
0,
|
|
-34181.477999999996,
|
|
-9065444.874,
|
|
0,
|
|
0,
|
|
0,
|
|
-34731.148199999996,
|
|
-9290627.646,
|
|
0,
|
|
0,
|
|
-36249.1116,
|
|
-109206,
|
|
-5209206.2844,
|
|
-2123157.5706,
|
|
-4660599.022799999,
|
|
-282221.0658,
|
|
-47842919.2674,
|
|
-106483.1304,
|
|
-1130507.7924,
|
|
-475169.86679999996,
|
|
-145476.9528,
|
|
-72804,
|
|
-436824,
|
|
0,
|
|
0,
|
|
0,
|
|
-36402,
|
|
0,
|
|
-982854,
|
|
0,
|
|
0,
|
|
0,
|
|
-36402,
|
|
-36402,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-72804,
|
|
0,
|
|
0,
|
|
-254814,
|
|
-109206,
|
|
-145608,
|
|
-109206,
|
|
0,
|
|
-72804,
|
|
0,
|
|
0,
|
|
-182010
|
|
]
|
|
}
|
|
],
|
|
"layout": {
|
|
"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
|
|
}
|
|
],
|
|
"bargap": 0,
|
|
"bargroupgap": 0,
|
|
"barmode": "overlay",
|
|
"legend": {
|
|
"orientation": "v"
|
|
},
|
|
"margin": {
|
|
"b": 80,
|
|
"l": 40,
|
|
"r": 50,
|
|
"t": 50
|
|
},
|
|
"template": {
|
|
"data": {
|
|
"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"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "rgb(17,17,17)",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"candlestick": [
|
|
{
|
|
"decreasing": {
|
|
"fillcolor": "#e4003a",
|
|
"line": {
|
|
"color": "#e4003a"
|
|
}
|
|
},
|
|
"increasing": {
|
|
"fillcolor": "#00ACFF",
|
|
"line": {
|
|
"color": "#00ACFF"
|
|
}
|
|
},
|
|
"type": "candlestick"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#283442"
|
|
}
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#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"
|
|
}
|
|
]
|
|
},
|
|
"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,
|
|
"#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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#ffed00",
|
|
"#ef7d00",
|
|
"#e4003a",
|
|
"#c13246",
|
|
"#822661",
|
|
"#48277c",
|
|
"#005ca9",
|
|
"#00aaff",
|
|
"#9b30d9",
|
|
"#af005f",
|
|
"#5f00af",
|
|
"#af87ff"
|
|
],
|
|
"dragmode": "pan",
|
|
"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",
|
|
"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
|
|
}
|
|
},
|
|
"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,
|
|
"autorange": true,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"rangeslider": {
|
|
"visible": false
|
|
},
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"tick0": 1,
|
|
"tickfont": {
|
|
"size": 14
|
|
},
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"automargin": true,
|
|
"fixedrange": false,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"side": "right",
|
|
"tick0": 0.5,
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# By strike price\n",
|
|
"\n",
|
|
"dex_by_strike = dex.reset_index().groupby(\"strike\")[[\"Call DEX\", \"Put DEX\"]].sum()\n",
|
|
"\n",
|
|
"openbb.forecast.plot(dex_by_strike, dex_by_strike.columns.to_list())"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The Put/Call Ratios can be visualized using columns returned by, `get_stats()`"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"displaylogo": false,
|
|
"plotlyServerURL": "https://plot.ly",
|
|
"scrollZoom": true
|
|
},
|
|
"data": [
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"mode": "lines",
|
|
"name": "ITM Percent",
|
|
"type": "scatter",
|
|
"x": [
|
|
"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-14T00:00:00",
|
|
"2023-07-21T00:00:00",
|
|
"2023-07-28T00:00:00",
|
|
"2023-08-04T00:00:00",
|
|
"2023-08-18T00:00:00",
|
|
"2023-09-15T00:00:00",
|
|
"2023-09-29T00:00:00",
|
|
"2023-10-20T00:00:00",
|
|
"2023-11-17T00:00:00",
|
|
"2023-12-15T00:00:00",
|
|
"2023-12-29T00:00:00",
|
|
"2024-01-19T00:00:00",
|
|
"2024-03-15T00:00:00",
|
|
"2024-03-28T00:00:00",
|
|
"2024-06-21T00:00:00",
|
|
"2024-09-20T00:00:00",
|
|
"2024-12-20T00:00:00",
|
|
"2025-01-17T00:00:00",
|
|
"2025-06-20T00:00:00"
|
|
],
|
|
"xaxis": "x",
|
|
"y": [
|
|
18.61,
|
|
21.35,
|
|
21.98,
|
|
21.67,
|
|
41.26,
|
|
21.12,
|
|
18.27,
|
|
9,
|
|
31.83,
|
|
12.24,
|
|
14.95,
|
|
22.42,
|
|
20.33,
|
|
19.21,
|
|
16,
|
|
21.85,
|
|
13.58,
|
|
19.08,
|
|
14.27,
|
|
19.76,
|
|
25.95,
|
|
24.86,
|
|
17.24,
|
|
15.01,
|
|
27.22,
|
|
1.72,
|
|
17.73,
|
|
29.57,
|
|
22.09
|
|
],
|
|
"yaxis": "y"
|
|
},
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"mode": "lines",
|
|
"name": "OI Ratio",
|
|
"type": "scatter",
|
|
"x": [
|
|
"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-14T00:00:00",
|
|
"2023-07-21T00:00:00",
|
|
"2023-07-28T00:00:00",
|
|
"2023-08-04T00:00:00",
|
|
"2023-08-18T00:00:00",
|
|
"2023-09-15T00:00:00",
|
|
"2023-09-29T00:00:00",
|
|
"2023-10-20T00:00:00",
|
|
"2023-11-17T00:00:00",
|
|
"2023-12-15T00:00:00",
|
|
"2023-12-29T00:00:00",
|
|
"2024-01-19T00:00:00",
|
|
"2024-03-15T00:00:00",
|
|
"2024-03-28T00:00:00",
|
|
"2024-06-21T00:00:00",
|
|
"2024-09-20T00:00:00",
|
|
"2024-12-20T00:00:00",
|
|
"2025-01-17T00:00:00",
|
|
"2025-06-20T00:00:00"
|
|
],
|
|
"xaxis": "x",
|
|
"xhoverformat": "%Y-%m-%d",
|
|
"y": [
|
|
2.03,
|
|
1.39,
|
|
1.41,
|
|
1.54,
|
|
1.39,
|
|
1.95,
|
|
1.03,
|
|
14.72,
|
|
0.75,
|
|
2.55,
|
|
1.83,
|
|
2.05,
|
|
2.21,
|
|
0.97,
|
|
2.34,
|
|
2.64,
|
|
3.52,
|
|
1.78,
|
|
1.19,
|
|
2.48,
|
|
1.69,
|
|
1.23,
|
|
2.35,
|
|
4.61,
|
|
1.3,
|
|
0.08,
|
|
2.28,
|
|
2.03,
|
|
1.52
|
|
],
|
|
"yaxis": "y2"
|
|
}
|
|
],
|
|
"layout": {
|
|
"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
|
|
}
|
|
],
|
|
"bargap": 0,
|
|
"bargroupgap": 0,
|
|
"barmode": "overlay",
|
|
"legend": {
|
|
"orientation": "v",
|
|
"x": 0.9,
|
|
"xanchor": "right",
|
|
"y": 1,
|
|
"yanchor": "top"
|
|
},
|
|
"margin": {
|
|
"b": 80,
|
|
"l": 40,
|
|
"r": 50,
|
|
"t": 50
|
|
},
|
|
"template": {
|
|
"data": {
|
|
"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"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "rgb(17,17,17)",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"candlestick": [
|
|
{
|
|
"decreasing": {
|
|
"fillcolor": "#e4003a",
|
|
"line": {
|
|
"color": "#e4003a"
|
|
}
|
|
},
|
|
"increasing": {
|
|
"fillcolor": "#00ACFF",
|
|
"line": {
|
|
"color": "#00ACFF"
|
|
}
|
|
},
|
|
"type": "candlestick"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#283442"
|
|
}
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#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"
|
|
}
|
|
]
|
|
},
|
|
"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,
|
|
"#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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#ffed00",
|
|
"#ef7d00",
|
|
"#e4003a",
|
|
"#c13246",
|
|
"#822661",
|
|
"#48277c",
|
|
"#005ca9",
|
|
"#00aaff",
|
|
"#9b30d9",
|
|
"#af005f",
|
|
"#5f00af",
|
|
"#af87ff"
|
|
],
|
|
"dragmode": "pan",
|
|
"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",
|
|
"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
|
|
}
|
|
},
|
|
"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,
|
|
"autorange": true,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"rangeslider": {
|
|
"visible": false
|
|
},
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"tick0": 1,
|
|
"tickfont": {
|
|
"size": 14
|
|
},
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"automargin": true,
|
|
"fixedrange": false,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"side": "right",
|
|
"tick0": 0.5,
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
},
|
|
"title": {
|
|
"text": "QQQ - Put/Call Ratio vs % ITM",
|
|
"x": 0.5,
|
|
"y": 0.98
|
|
},
|
|
"xaxis": {
|
|
"anchor": "y",
|
|
"domain": [
|
|
0,
|
|
0.94
|
|
],
|
|
"tick0": 0.5,
|
|
"tickformatstops": [
|
|
{
|
|
"dtickrange": [
|
|
null,
|
|
604800000
|
|
],
|
|
"value": "%Y-%m-%d"
|
|
},
|
|
{
|
|
"dtickrange": [
|
|
604800000,
|
|
"M1"
|
|
],
|
|
"value": "%Y-%m-%d"
|
|
},
|
|
{
|
|
"dtickrange": [
|
|
"M1",
|
|
null
|
|
],
|
|
"value": "%Y-%m-%d"
|
|
}
|
|
],
|
|
"title": {
|
|
"text": "Expiration Date"
|
|
},
|
|
"type": "date"
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"domain": [
|
|
0,
|
|
1
|
|
],
|
|
"side": "left",
|
|
"title": {
|
|
"text": "% of OI ITM"
|
|
}
|
|
},
|
|
"yaxis2": {
|
|
"anchor": "x",
|
|
"overlaying": "y",
|
|
"side": "right",
|
|
"title": {
|
|
"text": "Put/Call Ratio"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"itm = ticker.get_stats()[[\"ITM Percent\"]]\n",
|
|
"pcr = ticker.get_stats()[[\"OI Ratio\"]]\n",
|
|
"pcr_fig = show_plot(itm, pcr, external_axes = True)\n",
|
|
"pcr_fig.update_layout(\n",
|
|
" xaxis = {'title': 'Expiration Date'},\n",
|
|
" yaxis= {'title': '% of OI ITM'},\n",
|
|
" yaxis2 = {'title': 'Put/Call Ratio'},\n",
|
|
" title = f\"{ticker.symbol} - Put/Call Ratio vs % ITM\",\n",
|
|
" title_y = 0.98,\n",
|
|
" title_x = 0.5,\n",
|
|
" legend=dict(\n",
|
|
" yanchor=\"top\",\n",
|
|
" y=1,\n",
|
|
" xanchor=\"right\",\n",
|
|
" x=0.9\n",
|
|
" )\n",
|
|
")\n",
|
|
"pcr_fig.show()"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Make a chart of the term structure using the implied volatility skew, or the cost of an at-the-money straddle."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"displaylogo": false,
|
|
"plotlyServerURL": "https://plot.ly",
|
|
"scrollZoom": true
|
|
},
|
|
"data": [
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Call Skew",
|
|
"type": "scatter",
|
|
"x": [
|
|
130,
|
|
135,
|
|
140,
|
|
145,
|
|
150,
|
|
155,
|
|
160,
|
|
165,
|
|
170,
|
|
175,
|
|
180,
|
|
185,
|
|
190,
|
|
195,
|
|
200,
|
|
205,
|
|
210,
|
|
215,
|
|
220,
|
|
225,
|
|
230,
|
|
235,
|
|
240,
|
|
245,
|
|
250,
|
|
255,
|
|
260,
|
|
265,
|
|
270,
|
|
275,
|
|
280,
|
|
285,
|
|
290,
|
|
291,
|
|
292,
|
|
293,
|
|
294,
|
|
295,
|
|
296,
|
|
297,
|
|
298,
|
|
299,
|
|
300,
|
|
301,
|
|
302,
|
|
303,
|
|
304,
|
|
305,
|
|
306,
|
|
307,
|
|
308,
|
|
309,
|
|
310,
|
|
311,
|
|
312,
|
|
313,
|
|
314,
|
|
315,
|
|
316,
|
|
317,
|
|
318,
|
|
319,
|
|
320,
|
|
321,
|
|
322,
|
|
323,
|
|
324,
|
|
325,
|
|
326,
|
|
327,
|
|
328,
|
|
329,
|
|
330,
|
|
331,
|
|
332,
|
|
333,
|
|
334,
|
|
335,
|
|
336,
|
|
337,
|
|
338,
|
|
339,
|
|
340,
|
|
341,
|
|
342,
|
|
343,
|
|
344,
|
|
345,
|
|
346,
|
|
347,
|
|
348,
|
|
349,
|
|
350,
|
|
351,
|
|
352,
|
|
353,
|
|
354,
|
|
355,
|
|
356,
|
|
357,
|
|
358,
|
|
359,
|
|
360,
|
|
361,
|
|
362,
|
|
363,
|
|
364,
|
|
365,
|
|
366,
|
|
367,
|
|
368,
|
|
369,
|
|
370,
|
|
371,
|
|
372,
|
|
373,
|
|
374,
|
|
375,
|
|
376,
|
|
377,
|
|
378,
|
|
379,
|
|
380,
|
|
381,
|
|
382,
|
|
383,
|
|
384,
|
|
385,
|
|
386,
|
|
387,
|
|
388,
|
|
389,
|
|
390,
|
|
391,
|
|
392,
|
|
393,
|
|
394,
|
|
395,
|
|
396,
|
|
397,
|
|
398,
|
|
399,
|
|
400,
|
|
401,
|
|
402,
|
|
403,
|
|
404,
|
|
405,
|
|
406,
|
|
407,
|
|
408,
|
|
409,
|
|
410,
|
|
411,
|
|
412,
|
|
413,
|
|
414,
|
|
415,
|
|
416,
|
|
417,
|
|
418,
|
|
419,
|
|
420,
|
|
425,
|
|
430,
|
|
435,
|
|
440,
|
|
445,
|
|
450,
|
|
455,
|
|
460,
|
|
465,
|
|
470,
|
|
475,
|
|
480,
|
|
485,
|
|
490,
|
|
495,
|
|
500,
|
|
505,
|
|
510,
|
|
515,
|
|
520,
|
|
525,
|
|
530,
|
|
535,
|
|
540,
|
|
545,
|
|
550,
|
|
555,
|
|
560,
|
|
565,
|
|
570,
|
|
575,
|
|
580,
|
|
585,
|
|
590,
|
|
595,
|
|
600,
|
|
605,
|
|
610
|
|
],
|
|
"y": [
|
|
0.36029999999999995,
|
|
0.3498,
|
|
0.3386,
|
|
0.3247,
|
|
0.31689999999999996,
|
|
0.30269999999999997,
|
|
0.29200000000000004,
|
|
0.281,
|
|
0.27349999999999997,
|
|
0.26180000000000003,
|
|
0.252,
|
|
0.2428,
|
|
0.23479999999999998,
|
|
0.2246,
|
|
0.21630000000000002,
|
|
0.208,
|
|
0.19920000000000002,
|
|
0.19099999999999998,
|
|
0.1836,
|
|
0.1747,
|
|
0.167,
|
|
0.15940000000000001,
|
|
0.15280000000000002,
|
|
0.14509999999999998,
|
|
0.1338,
|
|
0.12760000000000002,
|
|
0.1212,
|
|
0.1142,
|
|
0.10800000000000001,
|
|
0.10200000000000001,
|
|
0.09569999999999998,
|
|
0.08930000000000002,
|
|
0.0829,
|
|
0.08199999999999999,
|
|
0.08059999999999998,
|
|
0.07949999999999999,
|
|
0.07830000000000001,
|
|
0.07680000000000001,
|
|
0.07570000000000002,
|
|
0.07449999999999998,
|
|
0.0733,
|
|
0.07210000000000003,
|
|
0.07099999999999998,
|
|
0.06970000000000001,
|
|
0.06839999999999999,
|
|
0.06720000000000001,
|
|
0.06610000000000002,
|
|
0.06460000000000002,
|
|
0.0638,
|
|
0.06260000000000002,
|
|
0.06139999999999998,
|
|
0.060100000000000015,
|
|
0.059000000000000025,
|
|
0.05789999999999998,
|
|
0.0567,
|
|
0.05539999999999998,
|
|
0.054399999999999976,
|
|
0.05310000000000001,
|
|
0.05210000000000001,
|
|
0.050799999999999984,
|
|
0.049699999999999994,
|
|
0.048400000000000026,
|
|
0.047400000000000025,
|
|
0.04619999999999999,
|
|
0.04500000000000001,
|
|
0.04400000000000001,
|
|
0.04300000000000001,
|
|
0.0416,
|
|
0.04050000000000001,
|
|
0.039599999999999996,
|
|
0.0383,
|
|
0.03720000000000001,
|
|
0.03609999999999999,
|
|
0.03509999999999999,
|
|
0.0338,
|
|
0.03270000000000001,
|
|
0.03159999999999999,
|
|
0.03059999999999999,
|
|
0.0295,
|
|
0.028099999999999986,
|
|
0.02729999999999999,
|
|
0.0262,
|
|
0.02529999999999999,
|
|
0.0242,
|
|
0.022999999999999993,
|
|
0.021999999999999992,
|
|
0.020900000000000002,
|
|
0.019800000000000012,
|
|
0.01880000000000001,
|
|
0.017699999999999994,
|
|
0.016600000000000004,
|
|
0.015399999999999997,
|
|
0.01419999999999999,
|
|
0.01319999999999999,
|
|
0.012500000000000011,
|
|
0.011399999999999993,
|
|
0.010399999999999993,
|
|
0.009000000000000008,
|
|
0.008300000000000002,
|
|
0.007099999999999995,
|
|
0.0058,
|
|
0.005099999999999993,
|
|
0.0040999999999999925,
|
|
0.002799999999999997,
|
|
0.0019000000000000128,
|
|
0.0009000000000000119,
|
|
0,
|
|
-0.0010000000000000009,
|
|
-0.0015999999999999903,
|
|
-0.002700000000000008,
|
|
-0.0033999999999999864,
|
|
-0.004599999999999993,
|
|
-0.005399999999999988,
|
|
-0.006200000000000011,
|
|
-0.00739999999999999,
|
|
-0.008000000000000007,
|
|
-0.008800000000000002,
|
|
-0.009899999999999992,
|
|
-0.010800000000000004,
|
|
-0.01150000000000001,
|
|
-0.012399999999999994,
|
|
-0.01319999999999999,
|
|
-0.014000000000000012,
|
|
-0.014800000000000008,
|
|
-0.015600000000000003,
|
|
-0.016499999999999987,
|
|
-0.017199999999999993,
|
|
-0.017999999999999988,
|
|
-0.01880000000000001,
|
|
-0.019600000000000006,
|
|
-0.020199999999999996,
|
|
-0.02099999999999999,
|
|
-0.021800000000000014,
|
|
-0.022499999999999992,
|
|
-0.0232,
|
|
-0.0237,
|
|
-0.024400000000000005,
|
|
-0.02510000000000001,
|
|
-0.0257,
|
|
-0.02629999999999999,
|
|
-0.026900000000000007,
|
|
-0.027499999999999997,
|
|
-0.028100000000000014,
|
|
-0.028700000000000003,
|
|
-0.029200000000000004,
|
|
-0.029799999999999993,
|
|
-0.030299999999999994,
|
|
-0.030700000000000005,
|
|
-0.031200000000000006,
|
|
-0.031700000000000006,
|
|
-0.03209999999999999,
|
|
-0.03259999999999999,
|
|
-0.033,
|
|
-0.03340000000000001,
|
|
-0.0338,
|
|
-0.03420000000000001,
|
|
-0.03459999999999999,
|
|
-0.03489999999999999,
|
|
-0.03520000000000001,
|
|
-0.03559999999999999,
|
|
-0.03589999999999999,
|
|
-0.03609999999999999,
|
|
-0.03639999999999999,
|
|
-0.037599999999999995,
|
|
-0.0383,
|
|
-0.0388,
|
|
-0.03900000000000001,
|
|
-0.03870000000000001,
|
|
-0.0383,
|
|
-0.037500000000000006,
|
|
-0.03639999999999999,
|
|
-0.03539999999999999,
|
|
-0.034,
|
|
-0.03259999999999999,
|
|
-0.031,
|
|
-0.029599999999999987,
|
|
-0.027700000000000002,
|
|
-0.026400000000000007,
|
|
-0.023799999999999988,
|
|
-0.021900000000000003,
|
|
-0.0199,
|
|
-0.0184,
|
|
-0.016699999999999993,
|
|
-0.015199999999999991,
|
|
-0.01319999999999999,
|
|
-0.01150000000000001,
|
|
-0.010300000000000004,
|
|
-0.006099999999999994,
|
|
-0.005899999999999989,
|
|
-0.006399999999999989,
|
|
-0.0024000000000000132,
|
|
-0.004500000000000004,
|
|
-0.0007000000000000062,
|
|
0.0030999999999999917,
|
|
0.007000000000000006,
|
|
0.001700000000000007,
|
|
0.005299999999999999,
|
|
0.008800000000000002,
|
|
0.012300000000000005,
|
|
0.015699999999999992,
|
|
0.012300000000000005
|
|
]
|
|
},
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"name": "Put Skew",
|
|
"type": "scatter",
|
|
"x": [
|
|
130,
|
|
135,
|
|
140,
|
|
145,
|
|
150,
|
|
155,
|
|
160,
|
|
165,
|
|
170,
|
|
175,
|
|
180,
|
|
185,
|
|
190,
|
|
195,
|
|
200,
|
|
205,
|
|
210,
|
|
215,
|
|
220,
|
|
225,
|
|
230,
|
|
235,
|
|
240,
|
|
245,
|
|
250,
|
|
255,
|
|
260,
|
|
265,
|
|
270,
|
|
275,
|
|
280,
|
|
285,
|
|
290,
|
|
291,
|
|
292,
|
|
293,
|
|
294,
|
|
295,
|
|
296,
|
|
297,
|
|
298,
|
|
299,
|
|
300,
|
|
301,
|
|
302,
|
|
303,
|
|
304,
|
|
305,
|
|
306,
|
|
307,
|
|
308,
|
|
309,
|
|
310,
|
|
311,
|
|
312,
|
|
313,
|
|
314,
|
|
315,
|
|
316,
|
|
317,
|
|
318,
|
|
319,
|
|
320,
|
|
321,
|
|
322,
|
|
323,
|
|
324,
|
|
325,
|
|
326,
|
|
327,
|
|
328,
|
|
329,
|
|
330,
|
|
331,
|
|
332,
|
|
333,
|
|
334,
|
|
335,
|
|
336,
|
|
337,
|
|
338,
|
|
339,
|
|
340,
|
|
341,
|
|
342,
|
|
343,
|
|
344,
|
|
345,
|
|
346,
|
|
347,
|
|
348,
|
|
349,
|
|
350,
|
|
351,
|
|
352,
|
|
353,
|
|
354,
|
|
355,
|
|
356,
|
|
357,
|
|
358,
|
|
359,
|
|
360,
|
|
361,
|
|
362,
|
|
363,
|
|
364,
|
|
365,
|
|
366,
|
|
367,
|
|
368,
|
|
369,
|
|
370,
|
|
371,
|
|
372,
|
|
373,
|
|
374,
|
|
375,
|
|
376,
|
|
377,
|
|
378,
|
|
379,
|
|
380,
|
|
381,
|
|
382,
|
|
383,
|
|
384,
|
|
385,
|
|
386,
|
|
387,
|
|
388,
|
|
389,
|
|
390,
|
|
391,
|
|
392,
|
|
393,
|
|
394,
|
|
395,
|
|
396,
|
|
397,
|
|
398,
|
|
399,
|
|
400,
|
|
401,
|
|
402,
|
|
403,
|
|
404,
|
|
405,
|
|
406,
|
|
407,
|
|
408,
|
|
409,
|
|
410,
|
|
411,
|
|
412,
|
|
413,
|
|
414,
|
|
415,
|
|
416,
|
|
417,
|
|
418,
|
|
419,
|
|
420,
|
|
425,
|
|
430,
|
|
435,
|
|
440,
|
|
445,
|
|
450,
|
|
455,
|
|
460,
|
|
465,
|
|
470,
|
|
475,
|
|
480,
|
|
485,
|
|
490,
|
|
495,
|
|
500,
|
|
505,
|
|
510,
|
|
515,
|
|
520,
|
|
525,
|
|
530,
|
|
535,
|
|
540,
|
|
545,
|
|
550,
|
|
555,
|
|
560,
|
|
565,
|
|
570,
|
|
575,
|
|
580,
|
|
585,
|
|
590,
|
|
595,
|
|
600,
|
|
605,
|
|
610
|
|
],
|
|
"y": [
|
|
0.3641,
|
|
0.35029999999999994,
|
|
0.3413999999999999,
|
|
0.32719999999999994,
|
|
0.31699999999999995,
|
|
0.3064,
|
|
0.2950999999999999,
|
|
0.28369999999999995,
|
|
0.2721,
|
|
0.26270000000000004,
|
|
0.25270000000000004,
|
|
0.24250000000000002,
|
|
0.2336,
|
|
0.22419999999999998,
|
|
0.21580000000000002,
|
|
0.2064,
|
|
0.19749999999999998,
|
|
0.18989999999999999,
|
|
0.1817,
|
|
0.1737,
|
|
0.16579999999999998,
|
|
0.1584,
|
|
0.15130000000000002,
|
|
0.1439,
|
|
0.13699999999999998,
|
|
0.1299,
|
|
0.12310000000000001,
|
|
0.11650000000000002,
|
|
0.10990000000000003,
|
|
0.10340000000000002,
|
|
0.097,
|
|
0.0905,
|
|
0.08420000000000002,
|
|
0.0829,
|
|
0.08159999999999998,
|
|
0.0804,
|
|
0.07909999999999998,
|
|
0.0779,
|
|
0.07659999999999997,
|
|
0.0754,
|
|
0.07420000000000002,
|
|
0.07299999999999998,
|
|
0.0718,
|
|
0.07049999999999998,
|
|
0.0693,
|
|
0.06810000000000002,
|
|
0.06689999999999999,
|
|
0.06570000000000001,
|
|
0.06449999999999997,
|
|
0.0633,
|
|
0.06200000000000003,
|
|
0.06079999999999999,
|
|
0.059600000000000014,
|
|
0.05839999999999998,
|
|
0.0572,
|
|
0.05600000000000002,
|
|
0.05479999999999999,
|
|
0.05360000000000001,
|
|
0.05250000000000002,
|
|
0.051199999999999996,
|
|
0.050100000000000006,
|
|
0.04890000000000003,
|
|
0.047500000000000014,
|
|
0.046500000000000014,
|
|
0.045400000000000024,
|
|
0.04419999999999999,
|
|
0.042800000000000005,
|
|
0.041800000000000004,
|
|
0.0406,
|
|
0.03939999999999999,
|
|
0.03820000000000001,
|
|
0.037099999999999994,
|
|
0.03609999999999999,
|
|
0.03489999999999999,
|
|
0.03359999999999999,
|
|
0.03240000000000001,
|
|
0.0315,
|
|
0.030299999999999994,
|
|
0.029200000000000004,
|
|
0.027999999999999997,
|
|
0.026900000000000007,
|
|
0.025900000000000006,
|
|
0.024900000000000005,
|
|
0.02360000000000001,
|
|
0.022699999999999998,
|
|
0.02149999999999999,
|
|
0.0204,
|
|
0.01930000000000001,
|
|
0.01830000000000001,
|
|
0.017199999999999993,
|
|
0.016199999999999992,
|
|
0.014899999999999997,
|
|
0.013899999999999996,
|
|
0.0131,
|
|
0.01200000000000001,
|
|
0.010899999999999993,
|
|
0.009899999999999992,
|
|
0.008700000000000013,
|
|
0.007700000000000012,
|
|
0.0068000000000000005,
|
|
0.0058,
|
|
0.004799999999999999,
|
|
0.003799999999999998,
|
|
0.0029000000000000137,
|
|
0.0019000000000000128,
|
|
0.0009000000000000119,
|
|
0,
|
|
-0.0010000000000000009,
|
|
-0.0020000000000000018,
|
|
-0.0029000000000000137,
|
|
-0.003799999999999998,
|
|
-0.00470000000000001,
|
|
-0.005700000000000011,
|
|
-0.006599999999999995,
|
|
-0.007500000000000007,
|
|
-0.00839999999999999,
|
|
-0.009399999999999992,
|
|
-0.010300000000000004,
|
|
-0.01100000000000001,
|
|
-0.0121,
|
|
-0.013000000000000012,
|
|
-0.013899999999999996,
|
|
-0.014600000000000002,
|
|
-0.015500000000000014,
|
|
-0.016199999999999992,
|
|
-0.016999999999999987,
|
|
-0.01780000000000001,
|
|
-0.018600000000000005,
|
|
-0.01949999999999999,
|
|
-0.0204,
|
|
-0.020600000000000007,
|
|
-0.021400000000000002,
|
|
-0.022299999999999986,
|
|
-0.023299999999999987,
|
|
-0.0237,
|
|
-0.02479999999999999,
|
|
-0.0252,
|
|
-0.02579999999999999,
|
|
-0.02629999999999999,
|
|
-0.02679999999999999,
|
|
-0.027600000000000013,
|
|
-0.028299999999999992,
|
|
-0.029299999999999993,
|
|
-0.029700000000000004,
|
|
-0.030099999999999988,
|
|
-0.030799999999999994,
|
|
-0.031200000000000006,
|
|
-0.032,
|
|
-0.032799999999999996,
|
|
-0.03309999999999999,
|
|
-0.03359999999999999,
|
|
-0.034400000000000014,
|
|
-0.03470000000000001,
|
|
-0.0348,
|
|
-0.03609999999999999,
|
|
-0.03689999999999999,
|
|
-0.03459999999999999,
|
|
-0.0348,
|
|
-0.0335,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
]
|
|
}
|
|
],
|
|
"layout": {
|
|
"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
|
|
}
|
|
],
|
|
"bargap": 0,
|
|
"bargroupgap": 0,
|
|
"barmode": "overlay",
|
|
"legend": {
|
|
"orientation": "v"
|
|
},
|
|
"margin": {
|
|
"b": 80,
|
|
"l": 40,
|
|
"r": 50,
|
|
"t": 50
|
|
},
|
|
"template": {
|
|
"data": {
|
|
"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"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "rgb(17,17,17)",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"candlestick": [
|
|
{
|
|
"decreasing": {
|
|
"fillcolor": "#e4003a",
|
|
"line": {
|
|
"color": "#e4003a"
|
|
}
|
|
},
|
|
"increasing": {
|
|
"fillcolor": "#00ACFF",
|
|
"line": {
|
|
"color": "#00ACFF"
|
|
}
|
|
},
|
|
"type": "candlestick"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#283442"
|
|
}
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#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"
|
|
}
|
|
]
|
|
},
|
|
"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,
|
|
"#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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#ffed00",
|
|
"#ef7d00",
|
|
"#e4003a",
|
|
"#c13246",
|
|
"#822661",
|
|
"#48277c",
|
|
"#005ca9",
|
|
"#00aaff",
|
|
"#9b30d9",
|
|
"#af005f",
|
|
"#5f00af",
|
|
"#af87ff"
|
|
],
|
|
"dragmode": "pan",
|
|
"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",
|
|
"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
|
|
}
|
|
},
|
|
"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,
|
|
"autorange": true,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"rangeslider": {
|
|
"visible": false
|
|
},
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"tick0": 1,
|
|
"tickfont": {
|
|
"size": 14
|
|
},
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"automargin": true,
|
|
"fixedrange": false,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"side": "right",
|
|
"tick0": 0.5,
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"skew_df = pd.DataFrame()\n",
|
|
"\n",
|
|
"ticker = openbb.stocks.options.load_options_chains(\"QQQ\")\n",
|
|
"skew = ticker.get_skew(\"2023-12-15\")\n",
|
|
"call_skew = skew[skew[\"Option Type\"] == \"call\"].set_index(\"Strike\")[[\"Skew\"]]\n",
|
|
"put_skew = skew[skew[\"Option Type\"] == \"put\"].set_index(\"Strike\")[[\"Skew\"]]\n",
|
|
"skew_df[\"Call Skew\"] = call_skew[\"Skew\"]\n",
|
|
"skew_df[\"Put Skew\"] = put_skew[\"Skew\"]\n",
|
|
"\n",
|
|
"openbb.forecast.plot(skew_df, columns = skew_df.columns.to_list())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"displaylogo": false,
|
|
"plotlyServerURL": "https://plot.ly",
|
|
"scrollZoom": true
|
|
},
|
|
"data": [
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"mode": "lines",
|
|
"name": "ATM Skew",
|
|
"type": "scatter",
|
|
"x": [
|
|
"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-14T00:00:00",
|
|
"2023-07-21T00:00:00",
|
|
"2023-07-28T00:00:00",
|
|
"2023-08-04T00:00:00",
|
|
"2023-08-18T00:00:00",
|
|
"2023-09-15T00:00:00",
|
|
"2023-09-29T00:00:00",
|
|
"2023-10-20T00:00:00",
|
|
"2023-11-17T00:00:00",
|
|
"2023-12-15T00:00:00",
|
|
"2023-12-29T00:00:00",
|
|
"2024-01-19T00:00:00",
|
|
"2024-03-15T00:00:00",
|
|
"2024-03-28T00:00:00",
|
|
"2024-06-21T00:00:00",
|
|
"2024-09-20T00:00:00",
|
|
"2024-12-20T00:00:00",
|
|
"2025-01-17T00:00:00",
|
|
"2025-06-20T00:00:00"
|
|
],
|
|
"xaxis": "x",
|
|
"y": [
|
|
-0.003899999999999987,
|
|
-0.0010999999999999899,
|
|
0.00009999999999998899,
|
|
-0.0005000000000000004,
|
|
-0.00020000000000000573,
|
|
-0.0002999999999999947,
|
|
-0.00040000000000001146,
|
|
-0.00030000000000002247,
|
|
-0.00040000000000001146,
|
|
0.00010000000000001674,
|
|
0.00020000000000000573,
|
|
-0.00010000000000001674,
|
|
-0.00009999999999998899,
|
|
-0.00009999999999998899,
|
|
0.0002999999999999947,
|
|
0,
|
|
-0.00010000000000001674,
|
|
0.0005999999999999894,
|
|
-0.00009999999999998899,
|
|
0,
|
|
0.00020000000000000573,
|
|
0.0003999999999999837,
|
|
0.0002999999999999947,
|
|
0.0006000000000000172,
|
|
0.0008000000000000229,
|
|
0.00040000000000001146,
|
|
0.001899999999999985,
|
|
0.0007999999999999952,
|
|
0.0023999999999999855
|
|
],
|
|
"yaxis": "y"
|
|
},
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"mode": "lines",
|
|
"name": "10% OTM Skew",
|
|
"type": "scatter",
|
|
"x": [
|
|
"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-14T00:00:00",
|
|
"2023-07-21T00:00:00",
|
|
"2023-07-28T00:00:00",
|
|
"2023-08-04T00:00:00",
|
|
"2023-08-18T00:00:00",
|
|
"2023-09-15T00:00:00",
|
|
"2023-09-29T00:00:00",
|
|
"2023-10-20T00:00:00",
|
|
"2023-11-17T00:00:00",
|
|
"2023-12-15T00:00:00",
|
|
"2023-12-29T00:00:00",
|
|
"2024-01-19T00:00:00",
|
|
"2024-03-15T00:00:00",
|
|
"2024-03-28T00:00:00",
|
|
"2024-06-21T00:00:00",
|
|
"2024-09-20T00:00:00",
|
|
"2024-12-20T00:00:00",
|
|
"2025-01-17T00:00:00",
|
|
"2025-06-20T00:00:00"
|
|
],
|
|
"xaxis": "x",
|
|
"xhoverformat": "%Y-%m-%d",
|
|
"y": [
|
|
-0.18009999999999993,
|
|
-0.04580000000000001,
|
|
-0.04930000000000001,
|
|
-0.032999999999999974,
|
|
-0.04400000000000001,
|
|
-0.06620000000000001,
|
|
-0.031899999999999956,
|
|
-0.04599999999999996,
|
|
-0.045999999999999985,
|
|
-0.05880000000000002,
|
|
-0.07100000000000001,
|
|
-0.0759,
|
|
-0.07830000000000001,
|
|
-0.08330000000000001,
|
|
-0.0797,
|
|
-0.07800000000000001,
|
|
-0.0771,
|
|
-0.07499999999999998,
|
|
-0.07080000000000003,
|
|
-0.0675,
|
|
-0.06589999999999999,
|
|
-0.06539999999999999,
|
|
-0.05829999999999999,
|
|
-0.05770000000000003,
|
|
-0.053200000000000025,
|
|
-0.0471,
|
|
-0.04429999999999998,
|
|
-0.04219999999999999,
|
|
-0.04440000000000002
|
|
],
|
|
"yaxis": "y2"
|
|
}
|
|
],
|
|
"layout": {
|
|
"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
|
|
}
|
|
],
|
|
"bargap": 0,
|
|
"bargroupgap": 0,
|
|
"barmode": "overlay",
|
|
"legend": {
|
|
"orientation": "v",
|
|
"x": 0.9,
|
|
"xanchor": "right",
|
|
"y": 0.1,
|
|
"yanchor": "bottom"
|
|
},
|
|
"margin": {
|
|
"b": 80,
|
|
"l": 40,
|
|
"r": 50,
|
|
"t": 50
|
|
},
|
|
"template": {
|
|
"data": {
|
|
"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"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "rgb(17,17,17)",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"candlestick": [
|
|
{
|
|
"decreasing": {
|
|
"fillcolor": "#e4003a",
|
|
"line": {
|
|
"color": "#e4003a"
|
|
}
|
|
},
|
|
"increasing": {
|
|
"fillcolor": "#00ACFF",
|
|
"line": {
|
|
"color": "#00ACFF"
|
|
}
|
|
},
|
|
"type": "candlestick"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#283442"
|
|
}
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#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"
|
|
}
|
|
]
|
|
},
|
|
"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,
|
|
"#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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#ffed00",
|
|
"#ef7d00",
|
|
"#e4003a",
|
|
"#c13246",
|
|
"#822661",
|
|
"#48277c",
|
|
"#005ca9",
|
|
"#00aaff",
|
|
"#9b30d9",
|
|
"#af005f",
|
|
"#5f00af",
|
|
"#af87ff"
|
|
],
|
|
"dragmode": "pan",
|
|
"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",
|
|
"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
|
|
}
|
|
},
|
|
"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,
|
|
"autorange": true,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"rangeslider": {
|
|
"visible": false
|
|
},
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"tick0": 1,
|
|
"tickfont": {
|
|
"size": 14
|
|
},
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"automargin": true,
|
|
"fixedrange": false,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"side": "right",
|
|
"tick0": 0.5,
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
},
|
|
"title": {
|
|
"text": "QQQ - ATM Skew vs 10% OTM Skew",
|
|
"x": 0.5,
|
|
"y": 0.98
|
|
},
|
|
"xaxis": {
|
|
"anchor": "y",
|
|
"domain": [
|
|
0,
|
|
0.94
|
|
],
|
|
"tick0": 0.5,
|
|
"tickformatstops": [
|
|
{
|
|
"dtickrange": [
|
|
null,
|
|
604800000
|
|
],
|
|
"value": "%Y-%m-%d"
|
|
},
|
|
{
|
|
"dtickrange": [
|
|
604800000,
|
|
"M1"
|
|
],
|
|
"value": "%Y-%m-%d"
|
|
},
|
|
{
|
|
"dtickrange": [
|
|
"M1",
|
|
null
|
|
],
|
|
"value": "%Y-%m-%d"
|
|
}
|
|
],
|
|
"title": {
|
|
"text": "Expiration Date"
|
|
},
|
|
"type": "date"
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"domain": [
|
|
0,
|
|
1
|
|
],
|
|
"side": "left",
|
|
"tickfont": {
|
|
"size": 12
|
|
},
|
|
"title": {
|
|
"font": {
|
|
"size": 20
|
|
},
|
|
"text": "ATM IV Skew"
|
|
}
|
|
},
|
|
"yaxis2": {
|
|
"anchor": "x",
|
|
"overlaying": "y",
|
|
"side": "right",
|
|
"tickfont": {
|
|
"size": 12
|
|
},
|
|
"title": {
|
|
"font": {
|
|
"size": 20
|
|
},
|
|
"text": "10% OTM IV Skew"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"skew = ticker.get_skew(moneyness=10)[[\"ATM Skew\", \"IV Skew\"]].rename(columns = {\"IV Skew\": \"10% OTM Skew\"})\n",
|
|
"y1 = pd.DataFrame(skew[\"ATM Skew\"])\n",
|
|
"y2 = pd.DataFrame(skew[\"10% OTM Skew\"])\n",
|
|
"skew_fig = show_plot(y1,y2, external_axes = True)\n",
|
|
"skew_fig.update_layout(\n",
|
|
" xaxis = {'title': 'Expiration Date'},\n",
|
|
" yaxis= {'title': 'ATM IV Skew'},\n",
|
|
" yaxis2 = {'title': '10% OTM IV Skew'},\n",
|
|
" title = f\"{ticker.symbol} - ATM Skew vs 10% OTM Skew\",\n",
|
|
" title_y = 0.98,\n",
|
|
" title_x = 0.5,\n",
|
|
" legend=dict(\n",
|
|
" yanchor=\"bottom\",\n",
|
|
" y=0.1,\n",
|
|
" xanchor=\"right\",\n",
|
|
" x=0.9\n",
|
|
" )\n",
|
|
")\n",
|
|
"skew_fig.update_yaxes(title_font=dict(size=20), tickfont=dict(size=12))\n",
|
|
"skew_fig.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 24,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"No strategy was selected, returning all ATM straddles.\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"displaylogo": false,
|
|
"plotlyServerURL": "https://plot.ly",
|
|
"scrollZoom": true
|
|
},
|
|
"data": [
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"mode": "lines",
|
|
"name": "Cost Percent",
|
|
"type": "scatter",
|
|
"x": [
|
|
"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-14T00:00:00",
|
|
"2023-07-21T00:00:00",
|
|
"2023-07-21T00:00:00",
|
|
"2023-07-28T00:00:00",
|
|
"2023-08-04T00:00:00",
|
|
"2023-08-18T00:00:00",
|
|
"2023-09-15T00:00:00",
|
|
"2023-09-29T00:00:00",
|
|
"2023-10-20T00:00:00",
|
|
"2023-11-17T00:00:00",
|
|
"2023-12-15T00:00:00",
|
|
"2023-12-29T00:00:00",
|
|
"2024-01-19T00:00:00",
|
|
"2024-03-15T00:00:00",
|
|
"2024-03-28T00:00:00",
|
|
"2024-06-21T00:00:00",
|
|
"2024-09-20T00:00:00",
|
|
"2024-12-20T00:00:00",
|
|
"2025-01-17T00:00:00",
|
|
"2025-06-20T00:00:00"
|
|
],
|
|
"xaxis": "x",
|
|
"y": [
|
|
0.9532,
|
|
1.2416,
|
|
1.4943,
|
|
1.6976,
|
|
1.9063,
|
|
2.0794,
|
|
2.2881,
|
|
2.4502,
|
|
2.6397,
|
|
3.3127,
|
|
3.8703,
|
|
3.8703,
|
|
4.6614,
|
|
5.1531,
|
|
5.9992,
|
|
7.5237,
|
|
8.2351,
|
|
9.2515,
|
|
10.559,
|
|
11.677,
|
|
12.1604,
|
|
12.8719,
|
|
14.9567,
|
|
15.3001,
|
|
17.9838,
|
|
20.4038,
|
|
22.5436,
|
|
23.049,
|
|
27.2792
|
|
],
|
|
"yaxis": "y"
|
|
},
|
|
{
|
|
"hovertemplate": "%{y}<extra></extra>",
|
|
"mode": "lines",
|
|
"name": "10% OTM Skew",
|
|
"type": "scatter",
|
|
"x": [
|
|
"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-14T00:00:00",
|
|
"2023-07-21T00:00:00",
|
|
"2023-07-28T00:00:00",
|
|
"2023-08-04T00:00:00",
|
|
"2023-08-18T00:00:00",
|
|
"2023-09-15T00:00:00",
|
|
"2023-09-29T00:00:00",
|
|
"2023-10-20T00:00:00",
|
|
"2023-11-17T00:00:00",
|
|
"2023-12-15T00:00:00",
|
|
"2023-12-29T00:00:00",
|
|
"2024-01-19T00:00:00",
|
|
"2024-03-15T00:00:00",
|
|
"2024-03-28T00:00:00",
|
|
"2024-06-21T00:00:00",
|
|
"2024-09-20T00:00:00",
|
|
"2024-12-20T00:00:00",
|
|
"2025-01-17T00:00:00",
|
|
"2025-06-20T00:00:00"
|
|
],
|
|
"xaxis": "x",
|
|
"xhoverformat": "%Y-%m-%d",
|
|
"y": [
|
|
-0.18009999999999993,
|
|
-0.04580000000000001,
|
|
-0.04930000000000001,
|
|
-0.032999999999999974,
|
|
-0.04400000000000001,
|
|
-0.06620000000000001,
|
|
-0.031899999999999956,
|
|
-0.04599999999999996,
|
|
-0.045999999999999985,
|
|
-0.05880000000000002,
|
|
-0.07100000000000001,
|
|
-0.0759,
|
|
-0.07830000000000001,
|
|
-0.08330000000000001,
|
|
-0.0797,
|
|
-0.07800000000000001,
|
|
-0.0771,
|
|
-0.07499999999999998,
|
|
-0.07080000000000003,
|
|
-0.0675,
|
|
-0.06589999999999999,
|
|
-0.06539999999999999,
|
|
-0.05829999999999999,
|
|
-0.05770000000000003,
|
|
-0.053200000000000025,
|
|
-0.0471,
|
|
-0.04429999999999998,
|
|
-0.04219999999999999,
|
|
-0.04440000000000002
|
|
],
|
|
"yaxis": "y2"
|
|
}
|
|
],
|
|
"layout": {
|
|
"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
|
|
}
|
|
],
|
|
"bargap": 0,
|
|
"bargroupgap": 0,
|
|
"barmode": "overlay",
|
|
"legend": {
|
|
"orientation": "v",
|
|
"x": 0.9,
|
|
"xanchor": "right",
|
|
"y": 0.1,
|
|
"yanchor": "bottom"
|
|
},
|
|
"margin": {
|
|
"b": 80,
|
|
"l": 40,
|
|
"r": 50,
|
|
"t": 50
|
|
},
|
|
"template": {
|
|
"data": {
|
|
"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"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "rgb(17,17,17)",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"candlestick": [
|
|
{
|
|
"decreasing": {
|
|
"fillcolor": "#e4003a",
|
|
"line": {
|
|
"color": "#e4003a"
|
|
}
|
|
},
|
|
"increasing": {
|
|
"fillcolor": "#00ACFF",
|
|
"line": {
|
|
"color": "#00ACFF"
|
|
}
|
|
},
|
|
"type": "candlestick"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#283442"
|
|
}
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
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,
|
|
"#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"
|
|
}
|
|
]
|
|
},
|
|
"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,
|
|
"#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,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
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,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#ffed00",
|
|
"#ef7d00",
|
|
"#e4003a",
|
|
"#c13246",
|
|
"#822661",
|
|
"#48277c",
|
|
"#005ca9",
|
|
"#00aaff",
|
|
"#9b30d9",
|
|
"#af005f",
|
|
"#5f00af",
|
|
"#af87ff"
|
|
],
|
|
"dragmode": "pan",
|
|
"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",
|
|
"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
|
|
}
|
|
},
|
|
"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,
|
|
"autorange": true,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"rangeslider": {
|
|
"visible": false
|
|
},
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"tick0": 1,
|
|
"tickfont": {
|
|
"size": 14
|
|
},
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"automargin": true,
|
|
"fixedrange": false,
|
|
"gridcolor": "#283442",
|
|
"linecolor": "#F5EFF3",
|
|
"mirror": true,
|
|
"showgrid": true,
|
|
"showline": true,
|
|
"side": "right",
|
|
"tick0": 0.5,
|
|
"ticks": "outside",
|
|
"title": {
|
|
"standoff": 20
|
|
},
|
|
"zeroline": false,
|
|
"zerolinecolor": "#283442",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
},
|
|
"title": {
|
|
"text": "QQQ - Cost of ATM Straddle vs 10% OTM Skew",
|
|
"x": 0.5,
|
|
"y": 0.98
|
|
},
|
|
"xaxis": {
|
|
"anchor": "y",
|
|
"domain": [
|
|
0,
|
|
0.94
|
|
],
|
|
"tick0": 0.5,
|
|
"tickformatstops": [
|
|
{
|
|
"dtickrange": [
|
|
null,
|
|
604800000
|
|
],
|
|
"value": "%Y-%m-%d"
|
|
},
|
|
{
|
|
"dtickrange": [
|
|
604800000,
|
|
"M1"
|
|
],
|
|
"value": "%Y-%m-%d"
|
|
},
|
|
{
|
|
"dtickrange": [
|
|
"M1",
|
|
null
|
|
],
|
|
"value": "%Y-%m-%d"
|
|
}
|
|
],
|
|
"title": {
|
|
"text": "Expiration Date"
|
|
},
|
|
"type": "date"
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"domain": [
|
|
0,
|
|
1
|
|
],
|
|
"side": "left",
|
|
"title": {
|
|
"font": {
|
|
"size": 16
|
|
},
|
|
"text": "Cost as % of Stock Price"
|
|
}
|
|
},
|
|
"yaxis2": {
|
|
"anchor": "x",
|
|
"overlaying": "y",
|
|
"side": "right",
|
|
"title": {
|
|
"font": {
|
|
"size": 16
|
|
},
|
|
"text": "10% OTM IV Skew"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"y1 = pd.DataFrame(ticker.get_strategies().set_index(\"Expiration\")[\"Cost Percent\"])\n",
|
|
"y2 = pd.DataFrame(skew[[\"10% OTM Skew\"]])\n",
|
|
"skew_fig2 = show_plot(y1,y2, external_axes = True)\n",
|
|
"skew_fig2.update_layout(\n",
|
|
" xaxis = {'title': 'Expiration Date'},\n",
|
|
" yaxis= {'title': 'Cost as % of Stock Price'},\n",
|
|
" yaxis2 = {'title': '10% OTM IV Skew'},\n",
|
|
" title = f\"{ticker.symbol} - Cost of ATM Straddle vs 10% OTM Skew\",\n",
|
|
" title_y = 0.98,\n",
|
|
" title_x = 0.5,\n",
|
|
" legend=dict(\n",
|
|
" yanchor=\"bottom\",\n",
|
|
" y=0.1,\n",
|
|
" xanchor=\"right\",\n",
|
|
" x=0.9\n",
|
|
" )\n",
|
|
")\n",
|
|
"skew_fig2.update_yaxes(title_font=dict(size=16))\n",
|
|
"skew_fig2.show()"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Basic single-leg strategies can be screened via `get_strategies()`. Values entered for each argument return the closest match. With no parameters specified, all ATM straddles are returned."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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-06-28</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>2.79</td>\n",
|
|
" <td>2.65</td>\n",
|
|
" <td>5.44</td>\n",
|
|
" <td>1.4943</td>\n",
|
|
" <td>369.44</td>\n",
|
|
" <td>1.4806</td>\n",
|
|
" <td>358.56</td>\n",
|
|
" <td>-1.508</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-5.44</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>2023-06-28</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>Long Strangle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>400.0</td>\n",
|
|
" <td>330.0</td>\n",
|
|
" <td>0.02</td>\n",
|
|
" <td>0.03</td>\n",
|
|
" <td>0.05</td>\n",
|
|
" <td>0.0137</td>\n",
|
|
" <td>400.05</td>\n",
|
|
" <td>9.8888</td>\n",
|
|
" <td>329.95</td>\n",
|
|
" <td>-9.3668</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-0.05</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>2023-06-28</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>Bear Call Spread</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>367.0</td>\n",
|
|
" <td>2.28</td>\n",
|
|
" <td>1.51</td>\n",
|
|
" <td>-0.77</td>\n",
|
|
" <td>-0.2115</td>\n",
|
|
" <td>365.77</td>\n",
|
|
" <td>0.5988</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>0.77</td>\n",
|
|
" <td>-1.23</td>\n",
|
|
" <td>0.626</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>2023-06-28</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>Bull Put Spread</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>360.0</td>\n",
|
|
" <td>358.0</td>\n",
|
|
" <td>1.2</td>\n",
|
|
" <td>0.8</td>\n",
|
|
" <td>-0.4</td>\n",
|
|
" <td>0.1099</td>\n",
|
|
" <td>359.6</td>\n",
|
|
" <td>1.2224</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>0.4</td>\n",
|
|
" <td>-1.6</td>\n",
|
|
" <td>0.25</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>2023-07-21</td>\n",
|
|
" <td>28</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>7.72</td>\n",
|
|
" <td>6.37</td>\n",
|
|
" <td>14.09</td>\n",
|
|
" <td>3.8703</td>\n",
|
|
" <td>378.09</td>\n",
|
|
" <td>3.8566</td>\n",
|
|
" <td>349.91</td>\n",
|
|
" <td>-3.8841</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-14.09</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>2023-07-21</td>\n",
|
|
" <td>28</td>\n",
|
|
" <td>Long Strangle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>400.0</td>\n",
|
|
" <td>327.0</td>\n",
|
|
" <td>0.19</td>\n",
|
|
" <td>0.51</td>\n",
|
|
" <td>0.7</td>\n",
|
|
" <td>0.1923</td>\n",
|
|
" <td>400.7</td>\n",
|
|
" <td>10.0673</td>\n",
|
|
" <td>326.3</td>\n",
|
|
" <td>-10.3695</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-0.7</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>2023-07-21</td>\n",
|
|
" <td>28</td>\n",
|
|
" <td>Short Strangle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>435.0</td>\n",
|
|
" <td>291.0</td>\n",
|
|
" <td>0.01</td>\n",
|
|
" <td>0.07</td>\n",
|
|
" <td>-0.08</td>\n",
|
|
" <td>0.022</td>\n",
|
|
" <td>435.08</td>\n",
|
|
" <td>19.5111</td>\n",
|
|
" <td>290.92</td>\n",
|
|
" <td>-20.0879</td>\n",
|
|
" <td>0.08</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>2023-07-21</td>\n",
|
|
" <td>28</td>\n",
|
|
" <td>Bear Call Spread</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>367.0</td>\n",
|
|
" <td>7.14</td>\n",
|
|
" <td>6.12</td>\n",
|
|
" <td>-1.02</td>\n",
|
|
" <td>-0.2802</td>\n",
|
|
" <td>366.02</td>\n",
|
|
" <td>0.5301</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>1.02</td>\n",
|
|
" <td>-0.98</td>\n",
|
|
" <td>1.0408</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>2023-07-21</td>\n",
|
|
" <td>28</td>\n",
|
|
" <td>Bull Put Spread</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>360.0</td>\n",
|
|
" <td>358.0</td>\n",
|
|
" <td>4.8</td>\n",
|
|
" <td>4.18</td>\n",
|
|
" <td>-0.62</td>\n",
|
|
" <td>0.1703</td>\n",
|
|
" <td>359.38</td>\n",
|
|
" <td>1.2828</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>0.62</td>\n",
|
|
" <td>-1.38</td>\n",
|
|
" <td>0.4493</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Expiration DTE Strategy Underlying Price Strike 1 Strike 2 \\\n",
|
|
"0 2023-06-28 5 Long Straddle 364.05 364.0 364.0 \n",
|
|
"1 2023-06-28 5 Long Strangle 364.05 400.0 330.0 \n",
|
|
"2 2023-06-28 5 Bear Call Spread 364.05 365.0 367.0 \n",
|
|
"3 2023-06-28 5 Bull Put Spread 364.05 360.0 358.0 \n",
|
|
"4 2023-07-21 28 Long Straddle 364.05 364.0 364.0 \n",
|
|
"5 2023-07-21 28 Long Strangle 364.05 400.0 327.0 \n",
|
|
"6 2023-07-21 28 Short Strangle 364.05 435.0 291.0 \n",
|
|
"7 2023-07-21 28 Bear Call Spread 364.05 365.0 367.0 \n",
|
|
"8 2023-07-21 28 Bull Put Spread 364.05 360.0 358.0 \n",
|
|
"\n",
|
|
" Strike 1 Premium Strike 2 Premium Cost Cost Percent Breakeven Upper \\\n",
|
|
"0 2.79 2.65 5.44 1.4943 369.44 \n",
|
|
"1 0.02 0.03 0.05 0.0137 400.05 \n",
|
|
"2 2.28 1.51 -0.77 -0.2115 365.77 \n",
|
|
"3 1.2 0.8 -0.4 0.1099 359.6 \n",
|
|
"4 7.72 6.37 14.09 3.8703 378.09 \n",
|
|
"5 0.19 0.51 0.7 0.1923 400.7 \n",
|
|
"6 0.01 0.07 -0.08 0.022 435.08 \n",
|
|
"7 7.14 6.12 -1.02 -0.2802 366.02 \n",
|
|
"8 4.8 4.18 -0.62 0.1703 359.38 \n",
|
|
"\n",
|
|
" Breakeven Upper Percent Breakeven Lower Breakeven Lower Percent Max Profit \\\n",
|
|
"0 1.4806 358.56 -1.508 inf \n",
|
|
"1 9.8888 329.95 -9.3668 inf \n",
|
|
"2 0.5988 NaN NaN 0.77 \n",
|
|
"3 1.2224 NaN NaN 0.4 \n",
|
|
"4 3.8566 349.91 -3.8841 inf \n",
|
|
"5 10.0673 326.3 -10.3695 inf \n",
|
|
"6 19.5111 290.92 -20.0879 0.08 \n",
|
|
"7 0.5301 NaN NaN 1.02 \n",
|
|
"8 1.2828 NaN NaN 0.62 \n",
|
|
"\n",
|
|
" Max Loss Payoff Ratio \n",
|
|
"0 -5.44 inf \n",
|
|
"1 -0.05 inf \n",
|
|
"2 -1.23 0.626 \n",
|
|
"3 -1.6 0.25 \n",
|
|
"4 -14.09 inf \n",
|
|
"5 -0.7 inf \n",
|
|
"6 inf 0.0 \n",
|
|
"7 -0.98 1.0408 \n",
|
|
"8 -1.38 0.4493 "
|
|
]
|
|
},
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"ticker.get_strategies(days = [5,30], straddle_strike = ticker.last_price, strangle_moneyness = [10,-20] , vertical_calls = [365,367], vertical_puts = [360,358])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 26,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"No strategy was selected, returning all ATM straddles.\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<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-06-26</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>1.76</td>\n",
|
|
" <td>1.71</td>\n",
|
|
" <td>3.47</td>\n",
|
|
" <td>0.9532</td>\n",
|
|
" <td>367.47</td>\n",
|
|
" <td>0.9394</td>\n",
|
|
" <td>360.53</td>\n",
|
|
" <td>-0.9669</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-3.47</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>2023-06-27</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>2.31</td>\n",
|
|
" <td>2.21</td>\n",
|
|
" <td>4.52</td>\n",
|
|
" <td>1.2416</td>\n",
|
|
" <td>368.52</td>\n",
|
|
" <td>1.2279</td>\n",
|
|
" <td>359.48</td>\n",
|
|
" <td>-1.2553</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-4.52</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>2023-06-28</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>2.79</td>\n",
|
|
" <td>2.65</td>\n",
|
|
" <td>5.44</td>\n",
|
|
" <td>1.4943</td>\n",
|
|
" <td>369.44</td>\n",
|
|
" <td>1.4806</td>\n",
|
|
" <td>358.56</td>\n",
|
|
" <td>-1.508</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-5.44</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>2023-06-29</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>3.23</td>\n",
|
|
" <td>2.95</td>\n",
|
|
" <td>6.18</td>\n",
|
|
" <td>1.6976</td>\n",
|
|
" <td>370.18</td>\n",
|
|
" <td>1.6838</td>\n",
|
|
" <td>357.82</td>\n",
|
|
" <td>-1.7113</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-6.18</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>2023-06-30</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>3.66</td>\n",
|
|
" <td>3.28</td>\n",
|
|
" <td>6.94</td>\n",
|
|
" <td>1.9063</td>\n",
|
|
" <td>370.94</td>\n",
|
|
" <td>1.8926</td>\n",
|
|
" <td>357.06</td>\n",
|
|
" <td>-1.9201</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-6.94</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>2023-07-03</td>\n",
|
|
" <td>10</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>4.0</td>\n",
|
|
" <td>3.57</td>\n",
|
|
" <td>7.57</td>\n",
|
|
" <td>2.0794</td>\n",
|
|
" <td>371.57</td>\n",
|
|
" <td>2.0657</td>\n",
|
|
" <td>356.43</td>\n",
|
|
" <td>-2.0931</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-7.57</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>2023-07-05</td>\n",
|
|
" <td>12</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>4.41</td>\n",
|
|
" <td>3.92</td>\n",
|
|
" <td>8.33</td>\n",
|
|
" <td>2.2881</td>\n",
|
|
" <td>372.33</td>\n",
|
|
" <td>2.2744</td>\n",
|
|
" <td>355.67</td>\n",
|
|
" <td>-2.3019</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-8.33</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>2023-07-06</td>\n",
|
|
" <td>13</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>4.77</td>\n",
|
|
" <td>4.15</td>\n",
|
|
" <td>8.92</td>\n",
|
|
" <td>2.4502</td>\n",
|
|
" <td>372.92</td>\n",
|
|
" <td>2.4365</td>\n",
|
|
" <td>355.08</td>\n",
|
|
" <td>-2.4639</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-8.92</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>2023-07-07</td>\n",
|
|
" <td>14</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>5.15</td>\n",
|
|
" <td>4.46</td>\n",
|
|
" <td>9.61</td>\n",
|
|
" <td>2.6397</td>\n",
|
|
" <td>373.61</td>\n",
|
|
" <td>2.626</td>\n",
|
|
" <td>354.39</td>\n",
|
|
" <td>-2.6535</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-9.61</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>2023-07-14</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>6.54</td>\n",
|
|
" <td>5.52</td>\n",
|
|
" <td>12.06</td>\n",
|
|
" <td>3.3127</td>\n",
|
|
" <td>376.06</td>\n",
|
|
" <td>3.299</td>\n",
|
|
" <td>351.94</td>\n",
|
|
" <td>-3.3265</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-12.06</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>2023-07-21</td>\n",
|
|
" <td>28</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>7.72</td>\n",
|
|
" <td>6.37</td>\n",
|
|
" <td>14.09</td>\n",
|
|
" <td>3.8703</td>\n",
|
|
" <td>378.09</td>\n",
|
|
" <td>3.8566</td>\n",
|
|
" <td>349.91</td>\n",
|
|
" <td>-3.8841</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-14.09</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>2023-07-21</td>\n",
|
|
" <td>28</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>7.72</td>\n",
|
|
" <td>6.37</td>\n",
|
|
" <td>14.09</td>\n",
|
|
" <td>3.8703</td>\n",
|
|
" <td>378.09</td>\n",
|
|
" <td>3.8566</td>\n",
|
|
" <td>349.91</td>\n",
|
|
" <td>-3.8841</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-14.09</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>2023-07-28</td>\n",
|
|
" <td>35</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>9.35</td>\n",
|
|
" <td>7.62</td>\n",
|
|
" <td>16.97</td>\n",
|
|
" <td>4.6614</td>\n",
|
|
" <td>380.97</td>\n",
|
|
" <td>4.6477</td>\n",
|
|
" <td>347.03</td>\n",
|
|
" <td>-4.6752</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-16.97</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>2023-08-04</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>10.41</td>\n",
|
|
" <td>8.35</td>\n",
|
|
" <td>18.76</td>\n",
|
|
" <td>5.1531</td>\n",
|
|
" <td>382.76</td>\n",
|
|
" <td>5.1394</td>\n",
|
|
" <td>345.24</td>\n",
|
|
" <td>-5.1669</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-18.76</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>2023-08-18</td>\n",
|
|
" <td>56</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>12.28</td>\n",
|
|
" <td>9.56</td>\n",
|
|
" <td>21.84</td>\n",
|
|
" <td>5.9992</td>\n",
|
|
" <td>385.84</td>\n",
|
|
" <td>5.9854</td>\n",
|
|
" <td>342.16</td>\n",
|
|
" <td>-6.0129</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-21.84</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>2023-09-15</td>\n",
|
|
" <td>84</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>15.73</td>\n",
|
|
" <td>11.66</td>\n",
|
|
" <td>27.39</td>\n",
|
|
" <td>7.5237</td>\n",
|
|
" <td>391.39</td>\n",
|
|
" <td>7.51</td>\n",
|
|
" <td>336.61</td>\n",
|
|
" <td>-7.5374</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-27.39</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>2023-09-29</td>\n",
|
|
" <td>98</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>17.17</td>\n",
|
|
" <td>12.81</td>\n",
|
|
" <td>29.98</td>\n",
|
|
" <td>8.2351</td>\n",
|
|
" <td>393.98</td>\n",
|
|
" <td>8.2214</td>\n",
|
|
" <td>334.02</td>\n",
|
|
" <td>-8.2489</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-29.98</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>2023-10-20</td>\n",
|
|
" <td>119</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>19.53</td>\n",
|
|
" <td>14.15</td>\n",
|
|
" <td>33.68</td>\n",
|
|
" <td>9.2515</td>\n",
|
|
" <td>397.68</td>\n",
|
|
" <td>9.2377</td>\n",
|
|
" <td>330.32</td>\n",
|
|
" <td>-9.2652</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-33.68</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>2023-11-17</td>\n",
|
|
" <td>147</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>22.58</td>\n",
|
|
" <td>15.86</td>\n",
|
|
" <td>38.44</td>\n",
|
|
" <td>10.559</td>\n",
|
|
" <td>402.44</td>\n",
|
|
" <td>10.5453</td>\n",
|
|
" <td>325.56</td>\n",
|
|
" <td>-10.5727</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-38.44</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>2023-12-15</td>\n",
|
|
" <td>175</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>25.25</td>\n",
|
|
" <td>17.26</td>\n",
|
|
" <td>42.51</td>\n",
|
|
" <td>11.677</td>\n",
|
|
" <td>406.51</td>\n",
|
|
" <td>11.6632</td>\n",
|
|
" <td>321.49</td>\n",
|
|
" <td>-11.6907</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-42.51</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>2023-12-29</td>\n",
|
|
" <td>189</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>26.29</td>\n",
|
|
" <td>17.98</td>\n",
|
|
" <td>44.27</td>\n",
|
|
" <td>12.1604</td>\n",
|
|
" <td>408.27</td>\n",
|
|
" <td>12.1467</td>\n",
|
|
" <td>319.73</td>\n",
|
|
" <td>-12.1742</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-44.27</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>21</th>\n",
|
|
" <td>2024-01-19</td>\n",
|
|
" <td>210</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>28.07</td>\n",
|
|
" <td>18.79</td>\n",
|
|
" <td>46.86</td>\n",
|
|
" <td>12.8719</td>\n",
|
|
" <td>410.86</td>\n",
|
|
" <td>12.8581</td>\n",
|
|
" <td>317.14</td>\n",
|
|
" <td>-12.8856</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-46.86</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>2024-03-15</td>\n",
|
|
" <td>266</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>33.19</td>\n",
|
|
" <td>21.26</td>\n",
|
|
" <td>54.45</td>\n",
|
|
" <td>14.9567</td>\n",
|
|
" <td>418.45</td>\n",
|
|
" <td>14.943</td>\n",
|
|
" <td>309.55</td>\n",
|
|
" <td>-14.9705</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-54.45</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23</th>\n",
|
|
" <td>2024-03-28</td>\n",
|
|
" <td>279</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>33.43</td>\n",
|
|
" <td>22.27</td>\n",
|
|
" <td>55.7</td>\n",
|
|
" <td>15.3001</td>\n",
|
|
" <td>420.7</td>\n",
|
|
" <td>15.561</td>\n",
|
|
" <td>309.3</td>\n",
|
|
" <td>-15.0391</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-55.7</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>24</th>\n",
|
|
" <td>2024-06-21</td>\n",
|
|
" <td>364</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>364.0</td>\n",
|
|
" <td>40.73</td>\n",
|
|
" <td>24.74</td>\n",
|
|
" <td>65.47</td>\n",
|
|
" <td>17.9838</td>\n",
|
|
" <td>429.47</td>\n",
|
|
" <td>17.9701</td>\n",
|
|
" <td>298.53</td>\n",
|
|
" <td>-17.9975</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-65.47</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>25</th>\n",
|
|
" <td>2024-09-20</td>\n",
|
|
" <td>455</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>46.39</td>\n",
|
|
" <td>27.89</td>\n",
|
|
" <td>74.28</td>\n",
|
|
" <td>20.4038</td>\n",
|
|
" <td>439.28</td>\n",
|
|
" <td>20.6647</td>\n",
|
|
" <td>290.72</td>\n",
|
|
" <td>-20.1428</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-74.28</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>26</th>\n",
|
|
" <td>2024-12-20</td>\n",
|
|
" <td>546</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>51.73</td>\n",
|
|
" <td>30.34</td>\n",
|
|
" <td>82.07</td>\n",
|
|
" <td>22.5436</td>\n",
|
|
" <td>447.07</td>\n",
|
|
" <td>22.8046</td>\n",
|
|
" <td>282.93</td>\n",
|
|
" <td>-22.2827</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-82.07</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>27</th>\n",
|
|
" <td>2025-01-17</td>\n",
|
|
" <td>574</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>52.95</td>\n",
|
|
" <td>30.96</td>\n",
|
|
" <td>83.91</td>\n",
|
|
" <td>23.049</td>\n",
|
|
" <td>448.91</td>\n",
|
|
" <td>23.31</td>\n",
|
|
" <td>281.09</td>\n",
|
|
" <td>-22.7881</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-83.91</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>28</th>\n",
|
|
" <td>2025-06-20</td>\n",
|
|
" <td>728</td>\n",
|
|
" <td>Long Straddle</td>\n",
|
|
" <td>364.05</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>365.0</td>\n",
|
|
" <td>62.81</td>\n",
|
|
" <td>36.5</td>\n",
|
|
" <td>99.31</td>\n",
|
|
" <td>27.2792</td>\n",
|
|
" <td>464.31</td>\n",
|
|
" <td>27.5402</td>\n",
|
|
" <td>265.69</td>\n",
|
|
" <td>-27.0183</td>\n",
|
|
" <td>inf</td>\n",
|
|
" <td>-99.31</td>\n",
|
|
" <td>inf</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Expiration DTE Strategy Underlying Price Strike 1 Strike 2 \\\n",
|
|
"0 2023-06-26 3 Long Straddle 364.05 364.0 364.0 \n",
|
|
"1 2023-06-27 4 Long Straddle 364.05 364.0 364.0 \n",
|
|
"2 2023-06-28 5 Long Straddle 364.05 364.0 364.0 \n",
|
|
"3 2023-06-29 6 Long Straddle 364.05 364.0 364.0 \n",
|
|
"4 2023-06-30 7 Long Straddle 364.05 364.0 364.0 \n",
|
|
"5 2023-07-03 10 Long Straddle 364.05 364.0 364.0 \n",
|
|
"6 2023-07-05 12 Long Straddle 364.05 364.0 364.0 \n",
|
|
"7 2023-07-06 13 Long Straddle 364.05 364.0 364.0 \n",
|
|
"8 2023-07-07 14 Long Straddle 364.05 364.0 364.0 \n",
|
|
"9 2023-07-14 21 Long Straddle 364.05 364.0 364.0 \n",
|
|
"10 2023-07-21 28 Long Straddle 364.05 364.0 364.0 \n",
|
|
"11 2023-07-21 28 Long Straddle 364.05 364.0 364.0 \n",
|
|
"12 2023-07-28 35 Long Straddle 364.05 364.0 364.0 \n",
|
|
"13 2023-08-04 42 Long Straddle 364.05 364.0 364.0 \n",
|
|
"14 2023-08-18 56 Long Straddle 364.05 364.0 364.0 \n",
|
|
"15 2023-09-15 84 Long Straddle 364.05 364.0 364.0 \n",
|
|
"16 2023-09-29 98 Long Straddle 364.05 364.0 364.0 \n",
|
|
"17 2023-10-20 119 Long Straddle 364.05 364.0 364.0 \n",
|
|
"18 2023-11-17 147 Long Straddle 364.05 364.0 364.0 \n",
|
|
"19 2023-12-15 175 Long Straddle 364.05 364.0 364.0 \n",
|
|
"20 2023-12-29 189 Long Straddle 364.05 364.0 364.0 \n",
|
|
"21 2024-01-19 210 Long Straddle 364.05 364.0 364.0 \n",
|
|
"22 2024-03-15 266 Long Straddle 364.05 364.0 364.0 \n",
|
|
"23 2024-03-28 279 Long Straddle 364.05 365.0 365.0 \n",
|
|
"24 2024-06-21 364 Long Straddle 364.05 364.0 364.0 \n",
|
|
"25 2024-09-20 455 Long Straddle 364.05 365.0 365.0 \n",
|
|
"26 2024-12-20 546 Long Straddle 364.05 365.0 365.0 \n",
|
|
"27 2025-01-17 574 Long Straddle 364.05 365.0 365.0 \n",
|
|
"28 2025-06-20 728 Long Straddle 364.05 365.0 365.0 \n",
|
|
"\n",
|
|
" Strike 1 Premium Strike 2 Premium Cost Cost Percent Breakeven Upper \\\n",
|
|
"0 1.76 1.71 3.47 0.9532 367.47 \n",
|
|
"1 2.31 2.21 4.52 1.2416 368.52 \n",
|
|
"2 2.79 2.65 5.44 1.4943 369.44 \n",
|
|
"3 3.23 2.95 6.18 1.6976 370.18 \n",
|
|
"4 3.66 3.28 6.94 1.9063 370.94 \n",
|
|
"5 4.0 3.57 7.57 2.0794 371.57 \n",
|
|
"6 4.41 3.92 8.33 2.2881 372.33 \n",
|
|
"7 4.77 4.15 8.92 2.4502 372.92 \n",
|
|
"8 5.15 4.46 9.61 2.6397 373.61 \n",
|
|
"9 6.54 5.52 12.06 3.3127 376.06 \n",
|
|
"10 7.72 6.37 14.09 3.8703 378.09 \n",
|
|
"11 7.72 6.37 14.09 3.8703 378.09 \n",
|
|
"12 9.35 7.62 16.97 4.6614 380.97 \n",
|
|
"13 10.41 8.35 18.76 5.1531 382.76 \n",
|
|
"14 12.28 9.56 21.84 5.9992 385.84 \n",
|
|
"15 15.73 11.66 27.39 7.5237 391.39 \n",
|
|
"16 17.17 12.81 29.98 8.2351 393.98 \n",
|
|
"17 19.53 14.15 33.68 9.2515 397.68 \n",
|
|
"18 22.58 15.86 38.44 10.559 402.44 \n",
|
|
"19 25.25 17.26 42.51 11.677 406.51 \n",
|
|
"20 26.29 17.98 44.27 12.1604 408.27 \n",
|
|
"21 28.07 18.79 46.86 12.8719 410.86 \n",
|
|
"22 33.19 21.26 54.45 14.9567 418.45 \n",
|
|
"23 33.43 22.27 55.7 15.3001 420.7 \n",
|
|
"24 40.73 24.74 65.47 17.9838 429.47 \n",
|
|
"25 46.39 27.89 74.28 20.4038 439.28 \n",
|
|
"26 51.73 30.34 82.07 22.5436 447.07 \n",
|
|
"27 52.95 30.96 83.91 23.049 448.91 \n",
|
|
"28 62.81 36.5 99.31 27.2792 464.31 \n",
|
|
"\n",
|
|
" Breakeven Upper Percent Breakeven Lower Breakeven Lower Percent Max Profit \\\n",
|
|
"0 0.9394 360.53 -0.9669 inf \n",
|
|
"1 1.2279 359.48 -1.2553 inf \n",
|
|
"2 1.4806 358.56 -1.508 inf \n",
|
|
"3 1.6838 357.82 -1.7113 inf \n",
|
|
"4 1.8926 357.06 -1.9201 inf \n",
|
|
"5 2.0657 356.43 -2.0931 inf \n",
|
|
"6 2.2744 355.67 -2.3019 inf \n",
|
|
"7 2.4365 355.08 -2.4639 inf \n",
|
|
"8 2.626 354.39 -2.6535 inf \n",
|
|
"9 3.299 351.94 -3.3265 inf \n",
|
|
"10 3.8566 349.91 -3.8841 inf \n",
|
|
"11 3.8566 349.91 -3.8841 inf \n",
|
|
"12 4.6477 347.03 -4.6752 inf \n",
|
|
"13 5.1394 345.24 -5.1669 inf \n",
|
|
"14 5.9854 342.16 -6.0129 inf \n",
|
|
"15 7.51 336.61 -7.5374 inf \n",
|
|
"16 8.2214 334.02 -8.2489 inf \n",
|
|
"17 9.2377 330.32 -9.2652 inf \n",
|
|
"18 10.5453 325.56 -10.5727 inf \n",
|
|
"19 11.6632 321.49 -11.6907 inf \n",
|
|
"20 12.1467 319.73 -12.1742 inf \n",
|
|
"21 12.8581 317.14 -12.8856 inf \n",
|
|
"22 14.943 309.55 -14.9705 inf \n",
|
|
"23 15.561 309.3 -15.0391 inf \n",
|
|
"24 17.9701 298.53 -17.9975 inf \n",
|
|
"25 20.6647 290.72 -20.1428 inf \n",
|
|
"26 22.8046 282.93 -22.2827 inf \n",
|
|
"27 23.31 281.09 -22.7881 inf \n",
|
|
"28 27.5402 265.69 -27.0183 inf \n",
|
|
"\n",
|
|
" Max Loss Payoff Ratio \n",
|
|
"0 -3.47 inf \n",
|
|
"1 -4.52 inf \n",
|
|
"2 -5.44 inf \n",
|
|
"3 -6.18 inf \n",
|
|
"4 -6.94 inf \n",
|
|
"5 -7.57 inf \n",
|
|
"6 -8.33 inf \n",
|
|
"7 -8.92 inf \n",
|
|
"8 -9.61 inf \n",
|
|
"9 -12.06 inf \n",
|
|
"10 -14.09 inf \n",
|
|
"11 -14.09 inf \n",
|
|
"12 -16.97 inf \n",
|
|
"13 -18.76 inf \n",
|
|
"14 -21.84 inf \n",
|
|
"15 -27.39 inf \n",
|
|
"16 -29.98 inf \n",
|
|
"17 -33.68 inf \n",
|
|
"18 -38.44 inf \n",
|
|
"19 -42.51 inf \n",
|
|
"20 -44.27 inf \n",
|
|
"21 -46.86 inf \n",
|
|
"22 -54.45 inf \n",
|
|
"23 -55.7 inf \n",
|
|
"24 -65.47 inf \n",
|
|
"25 -74.28 inf \n",
|
|
"26 -82.07 inf \n",
|
|
"27 -83.91 inf \n",
|
|
"28 -99.31 inf "
|
|
]
|
|
},
|
|
"execution_count": 26,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"ticker.get_strategies()"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"It's now easier than ever to analyze equity options. See the introduction guide [here](https://docs.openbb.co/sdk/usage/intros/stocks/options-chains) for more information on using these functions."
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "obb",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.10.8"
|
|
},
|
|
"orig_nbformat": 4
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|