Files
OpenBB/sdk/data-available/forecast.html
github-actions[bot] 349e1f554c deploy: 3d34e56ca7
2024-02-27 19:11:45 +00:00

19 lines
165 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-sdk/data-available/forecast" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.3">
<title data-rh="true">Forecast - Intros - Usage | OpenBB SDK Docs</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://docs.openbb.co/img/banner.png"><meta data-rh="true" name="twitter:image" content="https://docs.openbb.co/img/banner.png"><meta data-rh="true" property="og:url" content="https://docs.openbb.co/sdk/data-available/forecast"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Forecast | OpenBB Docs"><meta data-rh="true" name="description" content="This documentation page describes the forecast module which provides programmatic access to state-of-the-art forecasting from Nixtla and u8darts."><meta data-rh="true" property="og:description" content="This documentation page describes the forecast module which provides programmatic access to state-of-the-art forecasting from Nixtla and u8darts."><meta data-rh="true" name="keywords" content="forecasting,prediction,modeling,modelling,nixtla,u8darts,arima,ets,nhits,regression,rnn,lstm,gru,theta,transformer,moving average"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.openbb.co/sdk/data-available/forecast"><link data-rh="true" rel="alternate" href="https://docs.openbb.co/sdk/data-available/forecast" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.openbb.co/sdk/data-available/forecast" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://7D1HQ0IXAS-dsn.algolia.net" crossorigin="anonymous"><link rel="search" type="application/opensearchdescription+xml" title="OpenBB Docs" href="/opensearch.xml">
<link rel="stylesheet" href="/katex/katex.min.css"><link rel="stylesheet" href="/assets/css/styles.22849d6d.css">
<link rel="preload" href="/assets/js/runtime~main.c0e31297.js" as="script">
<link rel="preload" href="/assets/js/main.b1ae2b5f.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"dark")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav class="border-b border-grey-600 lg:px-12 header_docs_sdk navbar navbar--fixed-top"><div class="navbar__inner items-center"><div class="navbar__items"><div class="items-center ml-2 flex"><a href="/"><svg viewBox="0 0 271 19" width="271" height="19" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M126.316.99V14.33l-1.144-1.11-1.142-1.113-1.144-1.11-1.142-1.114-1.144-1.11-1.145-1.113-1.141-1.11-1.145-1.114-1.142-1.113-1.144-1.11-1.142-1.11-1.144-1.114H110.311v17.788H112.597V4.323l1.144 1.113 1.142 1.113 1.144 1.11 1.142 1.114 1.145 1.11 1.141 1.113 1.145 1.11 1.144 1.114 1.142 1.11 1.144 1.113 1.142 1.113 1.144 1.11 1.142 1.111h1.145V.989h-2.287ZM163.123 7.66h-2.286V.99H147.12v17.79h18.294V7.65h-2.286l-.005.01ZM149.406 6.54V3.213h9.144V7.66h-9.144V6.54Zm13.717 4.447v5.566h-13.717V9.886h13.717v1.102ZM201.057 7.66h-3.427V.99h-13.72v17.79h18.289V7.65l-1.142.01ZM186.196 6.54V3.213h9.148V7.66h-9.148V6.54Zm13.72 4.447v5.566h-13.72V9.886h13.72v1.102ZM89.662.99H73.656v17.787H91.942v-2.22H75.945V12.106H89.656V9.883H75.945V3.213H91.942V.99H89.661ZM16.02.99H.018v17.79h18.291V.99H16.02Zm0 3.336v12.23H2.301V3.213h13.72v1.113ZM52.862.99H36.86v17.79h2.286v-6.673h16.003V.977h-2.287V.99Zm0 3.336v5.565H39.146V3.213h13.716v1.113ZM226.316 10.14h-6.117v8.64h6.141l.992-1v-7l-1.016-.64Zm-.002 1.62v5.94h-5.1v-6.48h5.1v.54ZM240.447 10.14h-7.115v8.64h8.133v-8.64h-1.018Zm0 1.62v5.94h-6.1v-6.48h6.1v.54ZM254.9 10.14H247.465v8.64H255.959V17.7H248.528V11.22H255.959v-1.08H254.9ZM269.404 10.14h-7.444V15h7.448v2.701h-5.853l-1.596.005.001.535v.539h8.505V17.7h-1.061.004H263.555l6.913.066.002-.607-.002-.41-.003-.67.005-1.08h-6.248 6.248l-.002-1.08H263.024v-2.7h7.441v-1.08h-1.061Z"></path></svg></a></div></div><div class="navbar__items navbar__items--right hidden sm:block"><div class="flex items-center"><div class="flex gap-4 mr-12 md:mr-0 ml-4"><button type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="" data-state="closed" class="bg-grey-900 radix-state-open:text-white hover:border-grey-200 hover:text-grey-200 radix-state-open:border-white border -mt-[0.6px] h-[34px] w-[34px] text-grey-400 border-grey-400 rounded flex items-center justify-center"><svg viewBox="0 0 24 24" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg" class="w-4 h-4"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><div class="searchBox_ZlJk"><div class="flex gap-2"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button><a href="https://my.openbb.co/" class="_btn-dark text-xs hover:text-black"><span class="md:hidden">Hub</span><span class="hidden md:inline">OpenBB Hub</span></a></div></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav class="menu thin-scrollbar !px-10 text-sm !pb-10 mt-[40px] menu_Y1UP"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/platform">OpenBB Platform</a><button aria-label="Toggle the collapsible sidebar category &#x27;OpenBB Platform&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/terminal">OpenBB Terminal</a><button aria-label="Toggle the collapsible sidebar category &#x27;OpenBB Terminal&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/bot">OpenBB Bot</a><button aria-label="Toggle the collapsible sidebar category &#x27;OpenBB Bot&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><span class="sidebar-divider"></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menuHtmlItem_PEWV menu__list-item sidebar-title">LEGACY</li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/sdk">OpenBB SDK</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk">Introduction</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk/installation">Installation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/sdk/usage">Usage</a><button aria-label="Toggle the collapsible sidebar category &#x27;Usage&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/sdk/data-available">Data Available</a><button aria-label="Toggle the collapsible sidebar category &#x27;Data Available&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/sdk/data-available/stocks">Stocks</a><button aria-label="Toggle the collapsible sidebar category &#x27;Stocks&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/sdk/data-available/crypto">Crypto</a><button aria-label="Toggle the collapsible sidebar category &#x27;Crypto&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/sdk/data-available/portfolio">Portfolio</a><button aria-label="Toggle the collapsible sidebar category &#x27;Portfolio&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk/data-available/alternative">Alternative</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk/data-available/econometrics">Econometrics</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk/data-available/economy">Economy</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk/data-available/etf">ETF</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk/data-available/fixedincome">Fixed Income</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/sdk/data-available/forecast">Forecast</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk/data-available/forex">Forex</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk/data-available/futures">Futures</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk/data-available/quantitative-analysis">Quantitative Analysis</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk/data-available/ta">Technical Analysis</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/sdk/reference">Reference</a><button aria-label="Toggle the collapsible sidebar category &#x27;Reference&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/sdk/faqs">FAQs</a><button aria-label="Toggle the collapsible sidebar category &#x27;FAQs&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/sdk/showcase">Showcase</a></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">OpenBB SDK</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/sdk/data-available"><span itemprop="name">Data Available</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Forecast</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_bxCs"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Forecast</h1></header><p>The Forecast module provides programmatic access to the same commands found in the OpenBB Terminal Forecast menu. The extensive library of models, built on top of the <a href="https://unit8co.github.io/darts/" target="_blank" rel="noopener noreferrer">u8darts</a> library, are easily tuned with hyper-parameters.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-use">How to Use<a href="#how-to-use" class="hash-link" aria-label="Direct link to How to Use" title="Direct link to How to Use">​</a></h2><p>The Forecast menu was designed specifically for the CLI application, and consequently, the operation of these commands do not mirror the workflow of the OpenBB Terminal. This will be improved in the future to more closely resemble it, and this guide will highlight some notable differences.</p><p>Commands within the <code>forecast</code> module are representatives from three broad categories:</p><ul><li>Exploration</li><li>Feature Engineering</li><li>Model</li></ul><p>Each command is listed below with a short description. A majority of functions will also have an additional syntax, <code>_chart</code>, for displaying the generated charts inline. For ease of use, we recommend using the <code>_chart</code> version for Model functions.</p><table><thead><tr><th align="left">Path</th><th align="center">Type</th><th align="right">Description</th></tr></thead><tbody><tr><td align="left">openbb.forecast.atr</td><td align="center">Feature Engineering</td><td align="right">Add a Column for the Average True Range</td></tr><tr><td align="left">openbb.forecast.autoces</td><td align="center">Model</td><td align="right">Automatic Complex Exponential Smoothing Model</td></tr><tr><td align="left">openbb.forecast.autoets</td><td align="center">Model</td><td align="right">Automatic ETS (Error, Trend, Seasonality) Model</td></tr><tr><td align="left">openbb.forecast.autoselect</td><td align="center">Model</td><td align="right">Automatically Selects the Best Statistical Model From AutoARIMA, AutoETS, AutoCES, MSTL, etc.</td></tr><tr><td align="left">openbb.forecast.brnn</td><td align="center">Model</td><td align="right">Block Recurrent Neural Network (RNN, LSTM, GRU) (feat. Past covariates)</td></tr><tr><td align="left">openbb.forecast.clean</td><td align="center">Exploration</td><td align="right">Fill or Drop NaN Values</td></tr><tr><td align="left">openbb.forecast.combine</td><td align="center">Exploration</td><td align="right">Combine Columns From Different Datasets</td></tr><tr><td align="left">openbb.forecast.corr</td><td align="center">Exploration</td><td align="right">Correlation Coefficients Between Columns of a Dataset</td></tr><tr><td align="left">openbb.forecast.delete</td><td align="center">Exploration</td><td align="right">Delete Columns From a Dataset</td></tr><tr><td align="left">openbb.forecast.delta</td><td align="center">Feature Engineering</td><td align="right">Add a Column for % Change</td></tr><tr><td align="left">openbb.forecast.desc</td><td align="center">Exploration</td><td align="right">Show Descriptive Statistics for a Dataset</td></tr><tr><td align="left">openbb.forecast.ema</td><td align="center">Feature Engineering</td><td align="right">Add a Column for Exponentially Weighted Moving Average</td></tr><tr><td align="left">openbb.forecast.expo</td><td align="center">Model</td><td align="right">Probabilistic Exponential Smoothing</td></tr><tr><td align="left">openbb.forecast.export</td><td align="center">Export</td><td align="right">Export a Processed Dataset as a CSV or XLSX File</td></tr><tr><td align="left">openbb.forecast.linregr</td><td align="center">Model</td><td align="right">Probabilistic Linear Regression (feat. Past covariates and Explainability)</td></tr><tr><td align="left">openbb.forecast.load</td><td align="center">Import</td><td align="right">Import a Local CSV or XLSX File</td></tr><tr><td align="left">openbb.forecast.mom</td><td align="center">Feature Engineering</td><td align="right">Add a Column for Momentum</td></tr><tr><td align="left">openbb.forecast.nbeats</td><td align="center">Model</td><td align="right">Neural Bayesian Estimation (feat. Past covariates)</td></tr><tr><td align="left">openbb.forecast.nhits</td><td align="center">Model</td><td align="right">Neural Hierarchical Interpolation (feat. Past covariates)</td></tr><tr><td align="left">openbb.forecast.plot</td><td align="center">Exploration</td><td align="right">Plots Specific Columns From a Loaded Dataset</td></tr><tr><td align="left">openbb.forecast.regr</td><td align="center">Model</td><td align="right">Regression (feat. Past covariates and Explainability)</td></tr><tr><td align="left">openbb.forecast.rename</td><td align="center">Exploration</td><td align="right">Rename Columns in a Dataset</td></tr><tr><td align="left">openbb.forecast.rnn</td><td align="center">Model</td><td align="right">Probabilistic Recurrent Neural Network (RNN, LSTM, GRU)</td></tr><tr><td align="left">openbb.forecast.roc</td><td align="center">Feature Engineering</td><td align="right">Add a Column for Rate of Change</td></tr><tr><td align="left">openbb.forecast.rsi</td><td align="center">Feature Engineering</td><td align="right">Add a Column for Relative Strength Index</td></tr><tr><td align="left">openbb.forecast.rwd</td><td align="center">Model</td><td align="right">Random Walk with Drift Model</td></tr><tr><td align="left">openbb.forecast.season</td><td align="center">Exploration</td><td align="right">Plot Seasonality of a Column in a Dataset</td></tr><tr><td align="left">openbb.forecast.seasonalnaive</td><td align="center">Model</td><td align="right">Seasonal Naive Model</td></tr><tr><td align="left">openbb.forecast.signal</td><td align="center">Feature Engineering</td><td align="right">Add a Column for Price Signal (Short vs. Long Term)</td></tr><tr><td align="left">openbb.forecast.sto</td><td align="center">Feature Engineering</td><td align="right">Add a Column for Stochastic Oscillator %K and %D</td></tr><tr><td align="left">openbb.forecast.tcn</td><td align="center">Model</td><td align="right">Temporal Convolutional Neural Network (feat. Past covariates)</td></tr><tr><td align="left">openbb.forecast.tft</td><td align="center">Model</td><td align="right">Temporal Fusion Transformer Network(feat. Past covariates)</td></tr><tr><td align="left">openbb.forecast.theta</td><td align="center">Model</td><td align="right">Theta Method</td></tr><tr><td align="left">openbb.forecast.trans</td><td align="center">Model</td><td align="right">Transformer Network (feat. Past covariates)</td></tr></tbody></table><p>Alternatively, the contents of the menu is printed with:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token builtin" style="color:rgb(86, 156, 214)">help</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Type hints and code completion will be activated upon entering the <code>.</code>, after, <code>openbb.forecast</code>. The first step is always going to involve loading some data. Let&#x27;s walk through a procedure for procuring a DataFrame with some examples below.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="examples">Examples<a href="#examples" class="hash-link" aria-label="Direct link to Examples" title="Direct link to Examples">​</a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="import-statements">Import Statements<a href="#import-statements" class="hash-link" aria-label="Direct link to Import Statements" title="Direct link to Import Statements">​</a></h3><p>The examples provided below will assume that the following import block is included at the beginning of the Python script or Notebook file:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">from</span><span class="token plain"> openbb_terminal</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">sdk </span><span class="token keyword" style="color:rgb(86, 156, 214)">import</span><span class="token plain"> openbb</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token keyword" style="color:rgb(86, 156, 214)">import</span><span class="token plain"> pandas </span><span class="token keyword" style="color:rgb(86, 156, 214)">as</span><span class="token plain"> pd</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token comment" style="color:rgb(106, 153, 85)"># %matplotlib inline (uncomment if using a Jupyter Interactive Terminal or Notebook)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="loading-data">Loading Data<a href="#loading-data" class="hash-link" aria-label="Direct link to Loading Data" title="Direct link to Loading Data">​</a></h3><p>This library of models are specifically for time-series, and consequently, the data must follow some formatting guidelines:</p><ul><li>If the index is not a date, it must be sequentially ordered and evenly spaced - i.e., it can&#x27;t be indexed like: <code>[1,2,5,11,50]</code></li><li>A datetime index must be spaced evenly - i.e., monthly data is better handled when the interval date is the first of the month.</li><li>If the datetime index is a weekly interval, use a Monday-Friday format.</li><li>Intraday data is not officially supported at this time.</li></ul><p>The equities market revolves around the S&amp;P 500, so let&#x27;s take a look at the ETF, <code>SPY</code>, from inception:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">stocks</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">load</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;SPY&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> start_date </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;1990-01-01&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-console codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Loading Daily data for SPY with starting period 1993-01-29.</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The printed message indicates that the first day of available data is not the same as the requested start date. <a href="https://en.wikipedia.org/wiki/SPDR_S%26P_500_Trust_ETF" target="_blank" rel="noopener noreferrer">Wikipedia</a> shows the fund was launched on January 22, 1993. The product was marketed and sold to liquidity providers prior to trading on a public exchange, so this DataFrame is pretty darn close to the inception date. We can confirm that this data arrived as expected by printing the created DataFrame.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">head</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token number" style="color:rgb(181, 206, 168)">5</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><table><thead><tr><th align="left">date</th><th align="right">Open</th><th align="right">High</th><th align="right">Low</th><th align="right">Close</th><th align="right">Adj Close</th><th align="right">Volume</th></tr></thead><tbody><tr><td align="left">1993-01-29 00:00:00</td><td align="right">43.9688</td><td align="right">43.9688</td><td align="right">43.75</td><td align="right">43.9375</td><td align="right">25.334</td><td align="right">1.0032e+06</td></tr><tr><td align="left">1993-02-01 00:00:00</td><td align="right">43.9688</td><td align="right">44.25</td><td align="right">43.9688</td><td align="right">44.25</td><td align="right">25.5142</td><td align="right">480500</td></tr><tr><td align="left">1993-02-02 00:00:00</td><td align="right">44.2188</td><td align="right">44.375</td><td align="right">44.125</td><td align="right">44.3438</td><td align="right">25.5683</td><td align="right">201300</td></tr><tr><td align="left">1993-02-03 00:00:00</td><td align="right">44.4062</td><td align="right">44.8438</td><td align="right">44.375</td><td align="right">44.8125</td><td align="right">25.8385</td><td align="right">529400</td></tr><tr><td align="left">1993-02-04 00:00:00</td><td align="right">44.9688</td><td align="right">45.0938</td><td align="right">44.4688</td><td align="right">45</td><td align="right">25.9467</td><td align="right">531500</td></tr></tbody></table><h3 class="anchor anchorWithStickyNavbar_LWe7" id="plot">Plot<a href="#plot" class="hash-link" aria-label="Direct link to Plot" title="Direct link to Plot">​</a></h3><p>The data can also be inspected visually, <code>openbb.forecast.plot</code>:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">plot</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">data</span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> columns </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><img loading="lazy" src="https://user-images.githubusercontent.com/85772166/203671651-e7d5776f-c2ab-4a2a-8600-a5f6b6f2aa93.png" alt="openbb.forecast.plot" title="openbb.forecast.plot" class="img_ev3q"></p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="theta">Theta<a href="#theta" class="hash-link" aria-label="Direct link to Theta" title="Direct link to Theta">​</a></h3><p>Data consisting of a numeric value and a datetime index is sufficient enough for feeding the inputs to a forecast model. One important distinction between the Terminal and SDK is that the <code>target_column</code> must be explicitly declared when using the SDK, if it is not labeled as &quot;close&quot;. It is case-sensitive.</p><p>To use a forecast model with default parameters, all that is required in the syntax is:</p><ul><li>The name of the dataset.</li><li>The target column for the forecast.</li></ul><p>A basic, default, syntax will look like:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">theta_chart</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">data </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The default number of days to predict for all models is five. If the interval of the time-series is not daily, days equates to the interval of the index.</p><div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-console codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Theta Model obtains MAPE: 1.91%</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><img loading="lazy" src="https://user-images.githubusercontent.com/85772166/203897200-f2d3938c-f3a9-4ee4-bf67-0398d8d3bce6.png" alt="openbb.forecast.theta_chart" class="img_ev3q"></p><table><thead><tr><th align="left">Datetime</th><th align="right">Prediction</th></tr></thead><tbody><tr><td align="left">2022-11-24</td><td align="right">402.62</td></tr><tr><td align="left">2022-11-25</td><td align="right">402.92</td></tr><tr><td align="left">2022-11-28</td><td align="right">403.14</td></tr><tr><td align="left">2022-11-29</td><td align="right">403.38</td></tr><tr><td align="left">2022-11-30</td><td align="right">403.59</td></tr></tbody></table><p>Refer to the docstrings to learn about each model&#x27;s unique set of arguments.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token builtin" style="color:rgb(86, 156, 214)">help</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">theta_chart</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="feature-engineering">Feature Engineering<a href="#feature-engineering" class="hash-link" aria-label="Direct link to Feature Engineering" title="Direct link to Feature Engineering">​</a></h2><p>This category of functions are for adding columns to a dataset that are the results of calculations, like technical and quantitative analysis. Individual parameters will vary slightly between functions, but syntax construction will be similar.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="ema">EMA<a href="#ema" class="hash-link" aria-label="Direct link to EMA" title="Direct link to EMA">​</a></h3><p>A moving average provides an indication of the trend of the price movement by cutting down the amount of &quot;noise&quot; in a price chart.</p><div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-console codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">help(openbb.forecast.ema)</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Parameters</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> ----------</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> dataset : pd.DataFrame</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> The dataset you wish to clean</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> target_column : str</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> The column you wish to add the EMA to</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> period : int</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Time Span</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Returns</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> -------</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> pd.DataFrame</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Dataframe with added EMA column</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The example below adds a column to the <code>spy</code> dataset for the 150-day exponential moving average of the adjusted-close price.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">ema</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> period </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token number" style="color:rgb(181, 206, 168)">150</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">tail</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token number" style="color:rgb(181, 206, 168)">3</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><table><thead><tr><th align="right"></th><th align="left">date</th><th align="right">Open</th><th align="right">High</th><th align="right">Low</th><th align="right">Close</th><th align="right">Adj Close</th><th align="right">Volume</th><th align="right">EMA_150</th></tr></thead><tbody><tr><td align="right">7508</td><td align="left">2022-11-21</td><td align="right">394.64</td><td align="right">395.82</td><td align="right">392.66</td><td align="right">394.59</td><td align="right">394.59</td><td align="right">51243200</td><td align="right">394.923</td></tr><tr><td align="right">7509</td><td align="left">2022-11-22</td><td align="right">396.63</td><td align="right">400.07</td><td align="right">395.15</td><td align="right">399.9</td><td align="right">399.9</td><td align="right">60429000</td><td align="right">394.989</td></tr><tr><td align="right">7510</td><td align="left">2022-11-23</td><td align="right">399.55</td><td align="right">402.93</td><td align="right">399.31</td><td align="right">402.42</td><td align="right">402.42</td><td align="right">68161400</td><td align="right">395.087</td></tr></tbody></table><p>Additional columns can be added for each desired period length of the calculation:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">ema</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> period </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token number" style="color:rgb(181, 206, 168)">20</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">tail</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token number" style="color:rgb(181, 206, 168)">3</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><table><thead><tr><th align="right"></th><th align="left">date</th><th align="right">Open</th><th align="right">High</th><th align="right">Low</th><th align="right">Close</th><th align="right">Adj Close</th><th align="right">Volume</th><th align="right">EMA_150</th><th align="right">EMA_20</th></tr></thead><tbody><tr><td align="right">7508</td><td align="left">2022-11-21</td><td align="right">394.64</td><td align="right">395.82</td><td align="right">392.66</td><td align="right">394.59</td><td align="right">394.59</td><td align="right">51243200</td><td align="right">394.923</td><td align="right">387.237</td></tr><tr><td align="right">7509</td><td align="left">2022-11-22</td><td align="right">396.63</td><td align="right">400.07</td><td align="right">395.15</td><td align="right">399.9</td><td align="right">399.9</td><td align="right">60429000</td><td align="right">394.989</td><td align="right">388.443</td></tr><tr><td align="right">7510</td><td align="left">2022-11-23</td><td align="right">399.55</td><td align="right">402.93</td><td align="right">399.31</td><td align="right">402.42</td><td align="right">402.42</td><td align="right">68161400</td><td align="right">395.087</td><td align="right">389.775</td></tr></tbody></table><p>The process can be repeated as required.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="rsi">RSI<a href="#rsi" class="hash-link" aria-label="Direct link to RSI" title="Direct link to RSI">​</a></h3><p>Similar to <code>ema</code>, <code>rsi</code> adds a column for the Relative Strength Index. The three variables are the same here as above. A period of ten equates to ten trading days, or two-weeks.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">rsi</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> period </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token number" style="color:rgb(181, 206, 168)">10</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">tail</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token number" style="color:rgb(181, 206, 168)">3</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><table><thead><tr><th align="right"></th><th align="left">date</th><th align="right">Open</th><th align="right">High</th><th align="right">Low</th><th align="right">Close</th><th align="right">Adj Close</th><th align="right">Volume</th><th align="right">EMA_150</th><th align="right">EMA_20</th><th align="right">RSI_10_Adj Close</th></tr></thead><tbody><tr><td align="right">7508</td><td align="left">2022-11-21</td><td align="right">394.64</td><td align="right">395.82</td><td align="right">392.66</td><td align="right">394.59</td><td align="right">394.59</td><td align="right">51243200</td><td align="right">394.923</td><td align="right">387.237</td><td align="right">58.837</td></tr><tr><td align="right">7509</td><td align="left">2022-11-22</td><td align="right">396.63</td><td align="right">400.07</td><td align="right">395.15</td><td align="right">399.9</td><td align="right">399.9</td><td align="right">60429000</td><td align="right">394.989</td><td align="right">388.443</td><td align="right">63.7145</td></tr><tr><td align="right">7510</td><td align="left">2022-11-23</td><td align="right">399.55</td><td align="right">402.93</td><td align="right">399.31</td><td align="right">402.42</td><td align="right">402.42</td><td align="right">68161400</td><td align="right">395.087</td><td align="right">389.775</td><td align="right">65.8484</td></tr></tbody></table><p>Let&#x27;s add another column for a twelve-week period:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">rsi</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> period </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token number" style="color:rgb(181, 206, 168)">60</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">tail</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token number" style="color:rgb(181, 206, 168)">3</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><table><thead><tr><th align="right"></th><th align="left">date</th><th align="right">Open</th><th align="right">High</th><th align="right">Low</th><th align="right">Close</th><th align="right">Adj Close</th><th align="right">Volume</th><th align="right">EMA_150</th><th align="right">EMA_20</th><th align="right">RSI_10_Adj Close</th><th align="right">RSI_60_Adj Close</th></tr></thead><tbody><tr><td align="right">7508</td><td align="left">2022-11-21</td><td align="right">394.64</td><td align="right">395.82</td><td align="right">392.66</td><td align="right">394.59</td><td align="right">394.59</td><td align="right">51243200</td><td align="right">394.923</td><td align="right">387.237</td><td align="right">58.837</td><td align="right">50.5453</td></tr><tr><td align="right">7509</td><td align="left">2022-11-22</td><td align="right">396.63</td><td align="right">400.07</td><td align="right">395.15</td><td align="right">399.9</td><td align="right">399.9</td><td align="right">60429000</td><td align="right">394.989</td><td align="right">388.443</td><td align="right">63.7145</td><td align="right">51.4456</td></tr><tr><td align="right">7510</td><td align="left">2022-11-23</td><td align="right">399.55</td><td align="right">402.93</td><td align="right">399.31</td><td align="right">402.42</td><td align="right">402.42</td><td align="right">68161400</td><td align="right">395.087</td><td align="right">389.775</td><td align="right">65.8484</td><td align="right">51.8685</td></tr></tbody></table><h3 class="anchor anchorWithStickyNavbar_LWe7" id="sto">STO<a href="#sto" class="hash-link" aria-label="Direct link to STO" title="Direct link to STO">​</a></h3><p>Some of the Feature Engineering commands require multiple columns, <code>openbb.forecast.sto</code> is one of them.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token builtin" style="color:rgb(86, 156, 214)">help</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">sto</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-console codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Stochastic Oscillator %K and %D : A stochastic oscillator is a momentum indicator comparing a particular closing price of a security to a range of its prices over a certain period of time. %K and %D are slow and fast indicators.</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Requires Low/High/Close columns.</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Note: This will drop first rows equal to period due to how this metric is calculated.</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Parameters</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">----------</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">close_column: str</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Column name for closing price</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">high_column: str</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Column name for high price</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">low_column: str</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Column name for low price</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">dataset : pd.DataFrame</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> The dataset you wish to calculate for</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">period : int</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Span</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Returns</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> -------</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">pd.DataFrame</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Dataframe with added STO K &amp; D columns</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The results of these calculations appends the dataset with two additional columns.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">sto</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> dataset </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> high_column</span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;High&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> low_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Low&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> close_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> period </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token number" style="color:rgb(181, 206, 168)">20</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">tail</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token number" style="color:rgb(181, 206, 168)">3</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><table><thead><tr><th align="left">date</th><th align="right">Open</th><th align="right">High</th><th align="right">Low</th><th align="right">Close</th><th align="right">Adj Close</th><th align="right">Volume</th><th align="right">EMA_150</th><th align="right">EMA_20</th><th align="right">RSI_10_Adj Close</th><th align="right">RSI_60_Adj Close</th><th align="right">SO%K_20</th><th align="right">SO%D_20</th></tr></thead><tbody><tr><td align="left">2022-11-21 00:00:00</td><td align="right">394.64</td><td align="right">395.82</td><td align="right">392.66</td><td align="right">394.59</td><td align="right">394.59</td><td align="right">5.12432e+07</td><td align="right">394.923</td><td align="right">387.237</td><td align="right">58.837</td><td align="right">50.5453</td><td align="right">76.969</td><td align="right">79.1396</td></tr><tr><td align="left">2022-11-22 00:00:00</td><td align="right">396.63</td><td align="right">400.07</td><td align="right">395.15</td><td align="right">399.9</td><td align="right">399.9</td><td align="right">6.0429e+07</td><td align="right">394.989</td><td align="right">388.443</td><td align="right">63.7145</td><td align="right">51.4456</td><td align="right">92.8102</td><td align="right">83.6814</td></tr><tr><td align="left">2022-11-23 00:00:00</td><td align="right">399.55</td><td align="right">402.93</td><td align="right">399.31</td><td align="right">402.42</td><td align="right">402.42</td><td align="right">6.81614e+07</td><td align="right">395.087</td><td align="right">389.775</td><td align="right">65.8484</td><td align="right">51.8685</td><td align="right">98.5062</td><td align="right">89.4285</td></tr></tbody></table><h2 class="anchor anchorWithStickyNavbar_LWe7" id="exploration">Exploration<a href="#exploration" class="hash-link" aria-label="Direct link to Exploration" title="Direct link to Exploration">​</a></h2><p>As made evident by the composite dataset created, the name of a column can be undesirable. The exploration functions provide some tools for managing and maintaining the dataset.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="rename">Rename<a href="#rename" class="hash-link" aria-label="Direct link to Rename" title="Direct link to Rename">​</a></h3><p>Column names can be altered with <code>openbb.forecast.rename</code>. One column can be changed:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">rename</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;RSI_10_Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;RSI_10&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">tail</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token number" style="color:rgb(181, 206, 168)">1</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><table><thead><tr><th align="left">date</th><th align="right">Open</th><th align="right">High</th><th align="right">Low</th><th align="right">Close</th><th align="right">Adj Close</th><th align="right">Volume</th><th align="right">EMA_150</th><th align="right">EMA_20</th><th align="right">RSI_10</th><th align="right">RSI_60_Adj Close</th><th align="right">SO%K_20</th><th align="right">SO%D_20</th></tr></thead><tbody><tr><td align="left">2022-11-23 00:00:00</td><td align="right">399.55</td><td align="right">402.93</td><td align="right">399.31</td><td align="right">402.42</td><td align="right">402.42</td><td align="right">6.81614e+07</td><td align="right">395.087</td><td align="right">389.775</td><td align="right">65.8484</td><td align="right">51.8685</td><td align="right">98.5062</td><td align="right">89.4285</td></tr></tbody></table><p>Let&#x27;s rename a few more to make working with them a little easier, this time using the Python-method:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">rename</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">columns </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(212, 212, 212)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;RSI_60_Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;RSI_60&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;SO%K_20&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;STO_Slow&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;SO%D_20&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;STO_Fast&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">}</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> inplace </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token boolean">True</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Verify the names were updated as intended with a console print:</p><div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-console codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy.columns</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Index([&#x27;Open&#x27;, &#x27;High&#x27;, &#x27;Low&#x27;, &#x27;Close&#x27;, &#x27;Adj Close&#x27;, &#x27;Volume&#x27;, &#x27;EMA_150&#x27;, &#x27;EMA_20&#x27;, &#x27;RSI_10&#x27;, &#x27;RSI_60&#x27;, STO_Slow&#x27;, &#x27;STO_Fast&#x27;], dtype=&#x27;object&#x27;)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="delete">Delete<a href="#delete" class="hash-link" aria-label="Direct link to Delete" title="Direct link to Delete">​</a></h3><p>Say, for example, that we would like to eliminate the <code>Close</code> column in favour of the adjusted-close values. First, delete the desired column:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">delete</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Then, let&#x27;s rename, &#x27;Adj Close&#x27;, as, &#x27;Close&#x27;, and verify the results:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">rename</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">tail</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token number" style="color:rgb(181, 206, 168)">1</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><table><thead><tr><th align="left">date</th><th align="right">Open</th><th align="right">High</th><th align="right">Low</th><th align="right">Close</th><th align="right">Volume</th><th align="right">EMA_150</th><th align="right">EMA_20</th><th align="right">RSI_10</th><th align="right">RSI_60</th><th align="right">STO_Slow</th><th align="right">STO_Fast</th></tr></thead><tbody><tr><td align="left">2022-11-23 00:00:00</td><td align="right">399.55</td><td align="right">402.93</td><td align="right">399.31</td><td align="right">402.42</td><td align="right">6.81614e+07</td><td align="right">395.087</td><td align="right">389.775</td><td align="right">65.8484</td><td align="right">51.8685</td><td align="right">98.5062</td><td align="right">89.4285</td></tr></tbody></table><h2 class="anchor anchorWithStickyNavbar_LWe7" id="models">Models<a href="#models" class="hash-link" aria-label="Direct link to Models" title="Direct link to Models">​</a></h2><p>Some models are more taxing on system resources than others, and some take considerably longer to run. Changes to parameters can have dramatic effects on the forecast, be sure to make note of the changes while tuning the hyper-parameters. There are also two distinct types of models:</p><ul><li>Those with the ability to target past-covariates.</li><li>Those without the ability to target past-covarites.</li></ul><p>We currently recommend using the <code>_chart</code> version for every model.</p><p>Models of the former type are:</p><ul><li><code>linregr</code></li><li><code>regr</code></li><li><code>brnn</code></li><li><code>nbeats</code></li><li><code>nhits</code></li><li><code>tcn</code></li><li><code>trans</code></li><li><code>tft</code></li></ul><p>All models default to <code>past-covariates = None</code>, and targets for past covariates are selected with a comma-separated list of names, as demonstrated below.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="regr_chart">regr_chart<a href="#regr_chart" class="hash-link" aria-label="Direct link to regr_chart" title="Direct link to regr_chart">​</a></h3><p><code>openbb.forecast.regr_chart</code> is a regression model which can forecast with, or without, past-covariates. The first example below is without.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">regr_chart</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-console codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Predicting Regression for 5 days</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Regression model obtains MAPE: 1.90%</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><img loading="lazy" src="https://user-images.githubusercontent.com/85772166/203897290-330de1a6-056b-475b-9206-44658ebe5239.png" alt="openbb.forecast.regr_chart" title="openbb.forecast.regr_chart" class="img_ev3q"></p><table><thead><tr><th align="left">Datetime</th><th align="right">Prediction</th></tr></thead><tbody><tr><td align="left">2022-11-24</td><td align="right">403.06</td></tr><tr><td align="left">2022-11-25</td><td align="right">401.95</td></tr><tr><td align="left">2022-11-28</td><td align="right">402.69</td></tr><tr><td align="left">2022-11-29</td><td align="right">402.55</td></tr><tr><td align="left">2022-11-30</td><td align="right">399.84</td></tr></tbody></table><p>Then, targeting both EMA columns as past-covariates:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">regr_chart</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> past_covariates</span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&quot;EMA_150,EMA_20&quot;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-console codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Warning: when using past covariates n_predict must equal output_chunk_length. We have changed your output_chunk_length to 5 to match your n_predict</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Covariate #0: EMA_150</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Covariate #1: EMA_20</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Predicting Regression for 5 days</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Regression model obtains MAPE: 1.85%</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><img loading="lazy" src="https://user-images.githubusercontent.com/85772166/203897358-1111b8f6-e907-4ac6-a97d-327c87e07f1e.png" alt="openbb.forecast.regr_chart" title="openbb.forecast.regr_chart" class="img_ev3q"></p><table><thead><tr><th align="left">Datetime</th><th align="right">Prediction</th></tr></thead><tbody><tr><td align="left">2022-11-24</td><td align="right">403.20</td></tr><tr><td align="left">2022-11-25</td><td align="right">401.95</td></tr><tr><td align="left">2022-11-28</td><td align="right">402.15</td></tr><tr><td align="left">2022-11-29</td><td align="right">400.99</td></tr><tr><td align="left">2022-11-30</td><td align="right">398.01</td></tr></tbody></table><p>Adding these past-covariates has improved the MAPE by 0.05%, which is a good thing; like golf, a lower score is better.</p><p>A second chart displayed by a regression model is for &quot;explainability&quot;, SHAP values. It is an illustration of which past-covariates have the most impact on the model output.</p><p><img loading="lazy" src="https://user-images.githubusercontent.com/85772166/203897584-37898fee-611f-47c1-abd0-23e2ef21613a.png" alt="Explainability" title="Explainability" class="img_ev3q"></p><p>Targeting the <code>Volume</code> column as a past-covariate reveals it to be negatively impacting the forecast, in this particular instance and application.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">regr_chart</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> past_covariates</span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token string" style="color:rgb(206, 145, 120)">&quot;Volume&quot;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><img loading="lazy" src="https://user-images.githubusercontent.com/85772166/203897625-9a71960a-29a1-40e1-8c5e-2950bddd1a9c.png" alt="openbb.forecast.regr_chart" title="openbb.forecast.regr_chart" class="img_ev3q"></p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="combine">Combine<a href="#combine" class="hash-link" aria-label="Direct link to Combine" title="Direct link to Combine">​</a></h3><p>Let&#x27;s add another potential past-covariate to the dataset by taking the adjusted-close value of <code>XOM</code>, and using <code>combine</code> to join the column with our existing DataFrame.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">xom </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">stocks</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">load</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token string" style="color:rgb(206, 145, 120)">&quot;XOM&quot;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> start_date </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;1993-01-29&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">combine</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">df1 </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> df2 </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> xom</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> dataset </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;XOM&#x27;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">rename</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">columns </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(212, 212, 212)">{</span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;XOM_Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;XOM&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">}</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> inplace </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token boolean">True</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="corr">Corr<a href="#corr" class="hash-link" aria-label="Direct link to Corr" title="Direct link to Corr">​</a></h3><p><code>openbb.forecast.corr</code> calculates the correlation between all columns in a dataset.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">corr</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><table><thead><tr><th align="left"></th><th align="right">Open</th><th align="right">High</th><th align="right">Low</th><th align="right">Close</th><th align="right">Volume</th><th align="right">EMA_150</th><th align="right">EMA_20</th><th align="right">RSI_10_Adj Close</th><th align="right">RSI_60</th><th align="right">STO_Slow</th><th align="right">STO_Fast</th><th align="right">XOM</th></tr></thead><tbody><tr><td align="left">Open</td><td align="right">1</td><td align="right">0.999928</td><td align="right">0.999907</td><td align="right">0.996296</td><td align="right">0.102601</td><td align="right">0.990844</td><td align="right">0.995626</td><td align="right">0.0485853</td><td align="right">0.0685473</td><td align="right">0.631412</td><td align="right">0.635814</td><td align="right">0.725111</td></tr><tr><td align="left">High</td><td align="right">0.999928</td><td align="right">1</td><td align="right">0.999845</td><td align="right">0.996388</td><td align="right">0.105301</td><td align="right">0.991371</td><td align="right">0.995819</td><td align="right">0.0468199</td><td align="right">0.0648085</td><td align="right">0.63298</td><td align="right">0.637221</td><td align="right">0.724806</td></tr><tr><td align="left">Low</td><td align="right">0.999907</td><td align="right">0.999845</td><td align="right">1</td><td align="right">0.996337</td><td align="right">0.0988936</td><td align="right">0.990313</td><td align="right">0.995387</td><td align="right">0.0548303</td><td align="right">0.0740719</td><td align="right">0.630126</td><td align="right">0.634485</td><td align="right">0.725668</td></tr><tr><td align="left">Close</td><td align="right">0.996296</td><td align="right">0.996388</td><td align="right">0.996337</td><td align="right">1</td><td align="right">0.115854</td><td align="right">0.995506</td><td align="right">0.99931</td><td align="right">0.0544362</td><td align="right">0.0708491</td><td align="right">0.62215</td><td align="right">0.626235</td><td align="right">0.725945</td></tr><tr><td align="left">Volume</td><td align="right">0.102601</td><td align="right">0.105301</td><td align="right">0.0988936</td><td align="right">0.115854</td><td align="right">1</td><td align="right">0.143554</td><td align="right">0.125322</td><td align="right">-0.255959</td><td align="right">-0.3392</td><td align="right">0.387554</td><td align="right">0.384561</td><td align="right">0.470041</td></tr><tr><td align="left">EMA_150</td><td align="right">0.990844</td><td align="right">0.991371</td><td align="right">0.990313</td><td align="right">0.995506</td><td align="right">0.143554</td><td align="right">1</td><td align="right">0.997117</td><td align="right">0.00795085</td><td align="right">0.00294935</td><td align="right">0.63139</td><td align="right">0.635393</td><td align="right">0.737946</td></tr><tr><td align="left">EMA_20</td><td align="right">0.995626</td><td align="right">0.995819</td><td align="right">0.995387</td><td align="right">0.99931</td><td align="right">0.125322</td><td align="right">0.997117</td><td align="right">1</td><td align="right">0.0295848</td><td align="right">0.0530582</td><td align="right">0.621829</td><td align="right">0.625925</td><td align="right">0.726945</td></tr><tr><td align="left">RSI_10_Adj Close</td><td align="right">0.0485853</td><td align="right">0.0468199</td><td align="right">0.0548303</td><td align="right">0.0544362</td><td align="right">-0.255959</td><td align="right">0.00795085</td><td align="right">0.0295848</td><td align="right">1</td><td align="right">0.707723</td><td align="right">0.00550661</td><td align="right">0.00475805</td><td align="right">0.0316687</td></tr><tr><td align="left">RSI_60</td><td align="right">0.0685473</td><td align="right">0.0648085</td><td align="right">0.0740719</td><td align="right">0.0708491</td><td align="right">-0.3392</td><td align="right">0.00294935</td><td align="right">0.0530582</td><td align="right">0.707723</td><td align="right">1</td><td align="right">-0.203022</td><td align="right">-0.201585</td><td align="right">0.00254247</td></tr><tr><td align="left">STO_Slow</td><td align="right">0.631412</td><td align="right">0.63298</td><td align="right">0.630126</td><td align="right">0.62215</td><td align="right">0.387554</td><td align="right">0.63139</td><td align="right">0.621829</td><td align="right">0.00550661</td><td align="right">-0.203022</td><td align="right">1</td><td align="right">0.991231</td><td align="right">0.609652</td></tr><tr><td align="left">STO_Fast</td><td align="right">0.635814</td><td align="right">0.637221</td><td align="right">0.634485</td><td align="right">0.626235</td><td align="right">0.384561</td><td align="right">0.635393</td><td align="right">0.625925</td><td align="right">0.00475805</td><td align="right">-0.201585</td><td align="right">0.991231</td><td align="right">1</td><td align="right">0.613626</td></tr><tr><td align="left">XOM</td><td align="right">0.725111</td><td align="right">0.724806</td><td align="right">0.725668</td><td align="right">0.725945</td><td align="right">0.470041</td><td align="right">0.737946</td><td align="right">0.726945</td><td align="right">0.0316687</td><td align="right">0.00254247</td><td align="right">0.609652</td><td align="right">0.613626</td><td align="right">1</td></tr></tbody></table><p>Let&#x27;s see how Exxon impacts our previous forecast.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">regr_chart</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">data </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&quot;Close&quot;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> dataset_name </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;SPY&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> past_covariates </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&quot;EMA_20,EMA_150,XOM&quot;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-console codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Warning: when using past covariates n_predict must equal output_chunk_length. We have changed your output_chunk_length to 5 to match your n_predict</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Covariate #0: EMA_20</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Covariate #1: EMA_150</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Covariate #2: XOM</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Predicting Regression for 5 days</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Regression model obtains MAPE: 1.80%</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><table><thead><tr><th align="left">Datetime</th><th align="right">Prediction</th></tr></thead><tbody><tr><td align="left">2022-11-24</td><td align="right">401.70</td></tr><tr><td align="left">2022-11-25</td><td align="right">402.02</td></tr><tr><td align="left">2022-11-26</td><td align="right">402.25</td></tr><tr><td align="left">2022-11-27</td><td align="right">401.48</td></tr><tr><td align="left">2022-11-28</td><td align="right">397.16</td></tr></tbody></table><p><img loading="lazy" src="https://user-images.githubusercontent.com/85772166/203897681-e2bfb592-c832-477a-8f24-2604e5ed8254.png" alt="openbb.forecast.regr_chart" title="openbb.forecast.regr_chart" class="img_ev3q"></p><p>To include pan/zoom functionality for charts, substitute <code>%matplotlib widget</code> in the import statement block. The code block below will recreate the DataFrame as shown in the examples above:</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">from</span><span class="token plain"> openbb_terminal</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">sdk </span><span class="token keyword" style="color:rgb(86, 156, 214)">import</span><span class="token plain"> openbb</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token keyword" style="color:rgb(86, 156, 214)">import</span><span class="token plain"> pandas </span><span class="token keyword" style="color:rgb(86, 156, 214)">as</span><span class="token plain"> pd</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token comment" style="color:rgb(106, 153, 85)"># %matplotlib widget (uncomment if using a Jupyter Interactive Terminal or Notebook)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain">pd</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">DataFrame </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">stocks</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">load</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;SPY&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> start_date </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;1990-01-01&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">ema</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> period </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token number" style="color:rgb(181, 206, 168)">150</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">ema</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> period </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token number" style="color:rgb(181, 206, 168)">20</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">rsi</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> period </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token number" style="color:rgb(181, 206, 168)">10</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">rsi</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> target_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> period </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token number" style="color:rgb(181, 206, 168)">60</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">sto</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> dataset </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> high_column</span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;High&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> low_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Low&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> close_column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> period </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token number" style="color:rgb(181, 206, 168)">20</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">delete</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">rename</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">columns </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(212, 212, 212)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;RSI_60_Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;RSI_10&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;RSI_60_Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;RSI_60&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;SO%K_20&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;STO_Slow&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;SO%D_20&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;STO_Fast&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">}</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> inplace </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token boolean">True</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">xom </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">stocks</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">load</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token string" style="color:rgb(206, 145, 120)">&quot;XOM&quot;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> start_date </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;1993-01-29&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">combine</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">df1 </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> df2 </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> xom</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> column </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> dataset </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;XOM&#x27;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">rename</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">columns </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(212, 212, 212)">{</span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;XOM_Adj Close&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(206, 145, 120)">&#x27;XOM&#x27;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">}</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> inplace </span><span class="token operator" style="color:rgb(212, 212, 212)">=</span><span class="token plain"> </span><span class="token boolean">True</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">spy</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="hyper-parameters">Hyper-Parameters<a href="#hyper-parameters" class="hash-link" aria-label="Direct link to Hyper-Parameters" title="Direct link to Hyper-Parameters">​</a></h2><p>Hyper-parameters are the fine-tune dials for each model. Refer to the docstrings for the extensive list. The parameters below are the ways in which the regression model can be altered. Each model will be different, and their responses will vary. The demonstrated workflow is a simple way to begin experimenting with the functions. The same general processes can be applied for all models. The purpose of this guide is to help users get going with using the Forecast module, some assembly required.</p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-python codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#9CDCFE"><span class="token builtin" style="color:rgb(86, 156, 214)">help</span><span class="token punctuation" style="color:rgb(212, 212, 212)">(</span><span class="token plain">openbb</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">regr_chart</span><span class="token punctuation" style="color:rgb(212, 212, 212)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain">Help on Operation </span><span class="token keyword" style="color:rgb(86, 156, 214)">in</span><span class="token plain"> module openbb_terminal</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">core</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">library</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">operation</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"></span><span class="token operator" style="color:rgb(212, 212, 212)">&lt;</span><span class="token plain">openbb_terminal</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">core</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">library</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">operation</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">Operation </span><span class="token builtin" style="color:rgb(86, 156, 214)">object</span><span class="token operator" style="color:rgb(212, 212, 212)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Display Regression Forecasting</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Parameters</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token operator" style="color:rgb(212, 212, 212)">-</span><span class="token operator" style="color:rgb(212, 212, 212)">-</span><span class="token operator" style="color:rgb(212, 212, 212)">-</span><span class="token operator" style="color:rgb(212, 212, 212)">-</span><span class="token operator" style="color:rgb(212, 212, 212)">-</span><span class="token operator" style="color:rgb(212, 212, 212)">-</span><span class="token operator" style="color:rgb(212, 212, 212)">-</span><span class="token operator" style="color:rgb(212, 212, 212)">-</span><span class="token operator" style="color:rgb(212, 212, 212)">-</span><span class="token operator" style="color:rgb(212, 212, 212)">-</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> data</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> Union</span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token plain">pd</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">Series</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> pd</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">DataFrame</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Input Data</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> target_column</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">str</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Target column to forecast</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> Defaults to </span><span class="token string" style="color:rgb(206, 145, 120)">&quot;close&quot;</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> dataset_name</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">str</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> The name of the ticker to be predicted</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> n_predict</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">int</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Days to predict</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> Defaults to </span><span class="token number" style="color:rgb(181, 206, 168)">5.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> train_split</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">float</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Train</span><span class="token operator" style="color:rgb(212, 212, 212)">/</span><span class="token plain">val split</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> Defaults to </span><span class="token number" style="color:rgb(181, 206, 168)">0.85</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> past_covariates</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">str</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Multiple secondary columns to factor </span><span class="token keyword" style="color:rgb(86, 156, 214)">in</span><span class="token plain"> when forecasting</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> Defaults to </span><span class="token boolean">None</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> forecast_horizon</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">int</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Forecast horizon when performing historical forecasting</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> Defaults to </span><span class="token number" style="color:rgb(181, 206, 168)">5.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> output_chunk_length</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">int</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> The length of the forecast of the model</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> Defaults to </span><span class="token number" style="color:rgb(181, 206, 168)">1.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> lags</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> Union</span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token builtin" style="color:rgb(86, 156, 214)">int</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> List</span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token builtin" style="color:rgb(86, 156, 214)">int</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> lagged target values to predict the </span><span class="token builtin" style="color:rgb(86, 156, 214)">next</span><span class="token plain"> time step</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> export</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">str</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Format to export data</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> residuals</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">bool</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Whether to show residuals </span><span class="token keyword" style="color:rgb(86, 156, 214)">for</span><span class="token plain"> the model</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> Defaults to </span><span class="token boolean">False</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> forecast_only</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">bool</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Whether to only show dates </span><span class="token keyword" style="color:rgb(86, 156, 214)">in</span><span class="token plain"> the forecasting </span><span class="token builtin" style="color:rgb(86, 156, 214)">range</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> Defaults to </span><span class="token boolean">False</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> start_date</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> Optional</span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token plain">datetime</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> The starting date to perform analysis</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> data before this </span><span class="token keyword" style="color:rgb(86, 156, 214)">is</span><span class="token plain"> trimmed</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> Defaults to </span><span class="token boolean">None</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> end_date</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> Optional</span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token plain">datetime</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> The ending date to perform analysis</span><span class="token punctuation" style="color:rgb(212, 212, 212)">,</span><span class="token plain"> data after this </span><span class="token keyword" style="color:rgb(86, 156, 214)">is</span><span class="token plain"> trimmed</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> Defaults to </span><span class="token boolean">None</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> naive</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(86, 156, 214)">bool</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Whether to show the naive baseline</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> This just assumes the closing price will be the same</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token keyword" style="color:rgb(86, 156, 214)">as</span><span class="token plain"> the previous day&#x27;s closing price</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"> Defaults to </span><span class="token boolean">False</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> external_axes</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</span><span class="token plain"> Optional</span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token plain">List</span><span class="token punctuation" style="color:rgb(212, 212, 212)">[</span><span class="token plain">plt</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span class="token plain">axes</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token punctuation" style="color:rgb(212, 212, 212)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#9CDCFE"><span class="token plain"> External axes to plot on</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/OpenBB-finance/OpenBBTerminal/edit/main/website/content/sdk/data-available/forecast.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2024-02-27T18:46:50.000Z">Feb 27, 2024</time></b> by <b>James Maslek</b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/sdk/data-available/fixedincome"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Fixed Income</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/sdk/data-available/forex"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Forex</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_jeP5 thin-scrollbar text-sm mt-[48px] xl:max-w-[216px] theme-doc-toc-desktop"><p class="uppercase text-sm font-bold text-grey-600 dark:text-grey-200 tracking-widest mb-2">On this page</p><ul class="border-l border-grey-300 dark:border-grey-600 list-none pl-4"><li class="pb-1"><a href="#how-to-use" class="text-grey-400 capitalize !no-underline">How to Use</a></li><li class="py-1"><a href="#examples" class="text-grey-400 capitalize !no-underline">Examples</a><ul class="list-none ml-1 border-l border-grey-300 dark:border-grey-600 mt-2"><li class="pb-1 pl-3"><a href="#import-statements" class="text-grey-400 capitalize !no-underline">Import Statements</a></li><li class="py-1 pl-3"><a href="#loading-data" class="text-grey-400 capitalize !no-underline">Loading Data</a></li><li class="py-1 pl-3"><a href="#plot" class="text-grey-400 capitalize !no-underline">Plot</a></li><li class="py-1 pl-3"><a href="#theta" class="text-grey-400 capitalize !no-underline">Theta</a></li></ul></li><li class="py-1"><a href="#feature-engineering" class="text-grey-400 capitalize !no-underline">Feature Engineering</a><ul class="list-none ml-1 border-l border-grey-300 dark:border-grey-600 mt-2"><li class="pb-1 pl-3"><a href="#ema" class="text-grey-400 capitalize !no-underline">EMA</a></li><li class="py-1 pl-3"><a href="#rsi" class="text-grey-400 capitalize !no-underline">RSI</a></li><li class="py-1 pl-3"><a href="#sto" class="text-grey-400 capitalize !no-underline">STO</a></li></ul></li><li class="py-1"><a href="#exploration" class="text-grey-400 capitalize !no-underline">Exploration</a><ul class="list-none ml-1 border-l border-grey-300 dark:border-grey-600 mt-2"><li class="pb-1 pl-3"><a href="#rename" class="text-grey-400 capitalize !no-underline">Rename</a></li><li class="py-1 pl-3"><a href="#delete" class="text-grey-400 capitalize !no-underline">Delete</a></li></ul></li><li class="py-1"><a href="#models" class="text-grey-400 capitalize !no-underline">Models</a><ul class="list-none ml-1 border-l border-grey-300 dark:border-grey-600 mt-2"><li class="pb-1 pl-3"><a href="#regr_chart" class="text-grey-400 capitalize !no-underline">regr_chart</a></li><li class="py-1 pl-3"><a href="#combine" class="text-grey-400 capitalize !no-underline">Combine</a></li><li class="py-1 pl-3"><a href="#corr" class="text-grey-400 capitalize !no-underline">Corr</a></li></ul></li><li class="py-1"><a href="#hyper-parameters" class="text-grey-400 capitalize !no-underline">Hyper-Parameters</a></li></ul></div></div></div></div></main></div></div><footer class="px-4 border-t dark:border-grey-600/50 lg:px-12 py-14 bg-white dark:bg-grey-850 z-10 overflow-hidden flex flex-col gap-10 items-center justify-center"><div class="flex w-full justify-between md:flex-row"><div class="md:items-start mt-2"><a aria-label="Home" class="hover:text-grey-700 dark:text-white dark:hover:text-gray-50" href="/"><svg viewBox="0 0 170 17" width="170" height="17" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-[14px] w-[140px]"><path d="M106.107 1.889v11.334l-.961-.946-.959-.945-.962-.943-.959-.946-.961-.943-.962-.945-.959-.944-.961-.945-.96-.943-.961-.946-.96-.943-.96-.945H92.66V17H94.582V4.723l.96.943.96.945.961.944.96.945.961.943.959.946.962.943.961.945.959.946.962.943.959.945.961.944.96.945h.961V1.889H106.107ZM137.03 7.557h-1.921V1.889h-11.524V17h15.37V7.546h-1.92l-.005.01Zm-11.524-.946V3.773h7.683v3.78h-7.683V6.61Zm11.524 3.778v4.727h-11.524v-5.67h11.524v.943ZM168.901 7.557h-2.88V1.889h-11.526V0h-1.921v1.889h1.921V17h15.365V7.546l-.959.01Zm-12.485-.946V3.773h7.684v3.78h-7.684V6.61Zm11.526 3.778v4.727h-11.526v-5.67h11.526v.943ZM75.314 1.889H61.867V17H77.23V15.111H63.787V11.332h11.521V9.443H63.788V3.777H77.23V1.89h-1.916ZM13.444 1.889H0V17h15.367V1.889h-1.922Zm0 2.834V15.11H1.918V3.773h11.527v.95ZM44.397 1.889H30.952V17h1.92v-5.666h13.445V1.88h-1.92v.009Zm0 2.834V9.45H32.873V3.773h11.524v.95Z" fill="currentColor"></path></svg></a></div><div class="justify-end"><a class="flex h-[32px] w-[172px] rounded-md border border-grey-300 hover:bg-grey-100 dark:border-white bg-grey-100 dark:bg-white text-xs hover:no-underline" href="https://github.com/OpenBB-finance/OpenBBTerminal" target="_blank" rel="noreferrer"><span class="inline-flex w-[60%] items-center gap-x-[6px] px-3 py-2 text-grey-800"><svg viewBox="0 0 24 24" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg" style="margin-bottom:3px" class="h-[14.67px] w-[14.67px]"><path d="m12 1 3.263 7.439L23 9.403l-5.72 5.562L18.798 23 12 18.999 5.202 23l1.518-8.035L1 9.403l7.737-.964L12 1Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"></path></svg>Star us</span><span class="inline-flex w-[40%] items-center justify-center rounded-r-md bg-grey-850 text-grey-200">0</span></a></div></div><div class="flex w-full flex-col items-center justify-between gap-4 md:flex-row md:gap-0"><div class="flex flex-col items-start justify-end gap-4 self-start font-light text-grey-500 md:flex-row md:items-center"><p class="text-sm">© 2024 OpenBB</p><div class="_divider-x hidden h-[20px] border-[0.5px] md:block"></div><a href="https://openbb.co/legal/privacy-policy" target="_blank" rel="noopener noreferrer" class="text-sm dark:hover:text-white">Privacy Policy</a><div class="_divider-x hidden h-[20px] border-[0.5px] md:block"></div><a href="https://openbb.co/legal/terms-of-service" target="_blank" rel="noopener noreferrer" class="text-sm dark:hover:text-white">Terms</a></div><div class="mt-4 mb-10 grid grid-cols-4 gap-4 self-start md:my-0 md:grid-cols-7 md:self-end"><a aria-label="GitHub Link" class="h-8 w-8 dark:hover:!text-white hover:text-grey-700" target="_blank" rel="noreferrer" href="https://github.com/OpenBB-finance/OpenBBTerminal"><svg width="15" height="16" viewBox="0 0 15 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-4 w-4"><path d="M6 12.76c-3.333 1-3.333-1.667-4.667-2l4.667 2Zm4.667 2v-2.58a2.246 2.246 0 0 0-.627-1.74c2.094-.233 4.294-1.027 4.294-4.667 0-.93-.359-1.825-1-2.5a3.38 3.38 0 0 0-.06-2.513s-.787-.233-2.607.987a8.92 8.92 0 0 0-4.667 0C4.18.527 3.393.76 3.393.76a3.38 3.38 0 0 0-.06 2.513 3.627 3.627 0 0 0-1 2.52c0 3.614 2.2 4.407 4.294 4.667A2.248 2.248 0 0 0 6 12.18v2.58" fill="currentColor"></path><path d="M10.667 14.76v-2.58a2.246 2.246 0 0 0-.627-1.74c2.094-.233 4.294-1.027 4.294-4.667 0-.93-.359-1.825-1-2.5a3.38 3.38 0 0 0-.06-2.513s-.787-.233-2.607.987a8.92 8.92 0 0 0-4.667 0C4.18.527 3.393.76 3.393.76a3.38 3.38 0 0 0-.06 2.513 3.627 3.627 0 0 0-1 2.52c0 3.614 2.2 4.407 4.294 4.667A2.248 2.248 0 0 0 6 12.18v2.58m0-2c-3.333 1-3.333-1.667-4.667-2l4.667 2Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a aria-label="LinkedIn Link" class="h-8 w-8 dark:hover:!text-white hover:text-grey-700" target="_blank" rel="noreferrer" href="https://www.linkedin.com/company/openbb-finance/"><svg viewBox="0 0 24 24" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-4 w-4"><path d="M13 21H9V9h4v2a4.618 4.618 0 0 1 3.525-1.763A4.5 4.5 0 0 1 21 13.75V21h-4v-6.75a2.265 2.265 0 0 0-2.247-1.944A1.815 1.815 0 0 0 13 14.25V21Zm-6 0H3V9h4v12ZM5 7a2 2 0 1 1 0-4 2 2 0 0 1 0 4Z" fill="currentColor"></path></svg></a><a aria-label="Twitter Link" class="h-8 w-8 dark:hover:!text-white hover:text-grey-700" target="_blank" rel="noreferrer" href="https://twitter.com/openbb_finance"><svg viewBox="0 0 24 24" width="10" height="10" xmlns="http://www.w3.org/2000/svg" class="h-4 w-4"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" fill="#E7E9EA"></path></svg></a><a aria-label="Tiktok Link" class="h-8 w-8 dark:hover:!text-white hover:text-grey-700" target="_blank" rel="noreferrer" href="https://www.tiktok.com/@openbb"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round" class="h-5 w-5 pl-[2.5px]"><path d="M0 0h24v24H0z" stroke="none"></path><path d="M9 12a4 4 0 1 0 4 4V4a5 5 0 0 0 5 5"></path></svg></a><a aria-label="Reddit Link" class="h-8 w-8 dark:hover:!text-white hover:text-grey-700" target="_blank" rel="noreferrer" href="https://www.reddit.com/r/openbb/"><svg viewBox="0 0 16 16" width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-4 w-4"><path d="M8 14.667A6.667 6.667 0 1 1 14.667 8 6.674 6.674 0 0 1 8 14.667ZM4.538 7.029a.973.973 0 0 0-.405 1.858 1.707 1.707 0 0 0 0 .292c0 1.494 1.743 2.708 3.886 2.708 2.142 0 3.886-1.214 3.886-2.708a1.857 1.857 0 0 0 0-.292.96.96 0 0 0-.432-1.825h-.035a.97.97 0 0 0-.638.271 4.744 4.744 0 0 0-2.567-.82l.434-2.08 1.425.3a.667.667 0 0 0 .735.591A.667.667 0 1 0 10.685 4a.667.667 0 0 0-.506.328L8.547 4a.207.207 0 0 0-.244.158l-.499 2.315a4.749 4.749 0 0 0-2.6.82.967.967 0 0 0-.666-.264Zm3.582 3.987h-.225a2.568 2.568 0 0 1-1.534-.515.18.18 0 0 1 .139-.294.18.18 0 0 1 .114.04c.374.274.825.421 1.289.42h.216c.457 0 .903-.143 1.274-.41a.187.187 0 0 1 .267 0 .19.19 0 0 1-.003.267v-.027a2.557 2.557 0 0 1-1.537.518v.001Zm1.418-1.63h-.01l.005-.025a.626.626 0 1 1 .49-.188.659.659 0 0 1-.462.214h-.024.001Zm-3.091-.053a.667.667 0 1 1 0-1.333.667.667 0 0 1 0 1.333Z" fill="currentColor"></path></svg></a><a aria-label="Discord Link" class="h-8 w-8 dark:hover:!text-white hover:text-grey-700" target="_blank" rel="noreferrer" href="https://discord.gg/xPHTuHCmuV"><svg viewBox="0 0 16 12" width="16" height="12" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-4 w-4"><path d="M13.38 8.836a4.375 4.375 0 0 1-2.474 1.507c.407.481.897 1.025.901 1.03 1.655.033 3.221-.688 4.193-1.929-.05-2.572-.724-5.1-1.973-7.397A7.139 7.139 0 0 0 10.194.71h-.016l-.192.203a9.52 9.52 0 0 1 3.412 1.61 11.875 11.875 0 0 0-4.125-1.217 12.415 12.415 0 0 0-2.766.025c-.065.001-.13.008-.193.019h-.04a10.98 10.98 0 0 0-3.11.801c-.493.21-.796.362-.809.368-.013.005 0 0 0-.01A10.022 10.022 0 0 1 5.96.866L5.815.714h-.009a7.142 7.142 0 0 0-3.833 1.335A16.003 16.003 0 0 0 0 9.447c.96 1.249 2.528 1.972 4.182 1.929 0 0 .517-.583.92-1.054a4.307 4.307 0 0 1-2.405-1.496c.01.006.153.096.384.213a.17.17 0 0 0 .056.04.409.409 0 0 0 .058.031 8.043 8.043 0 0 0 1.064.462c.653.24 1.33.423 2.019.548.604.106 1.217.16 1.832.16.576 0 1.15-.049 1.717-.146a9.64 9.64 0 0 0 1.986-.546 8.203 8.203 0 0 0 1.566-.752Zm-2.94-.57c-.627.05-1.224-.26-1.502-.784a1.335 1.335 0 0 1 .244-1.581 1.612 1.612 0 0 1 1.68-.363c.586.212.973.735.973 1.319.032.745-.592 1.374-1.396 1.41h.001Zm-5.001 0c-.79-.064-1.395-.676-1.395-1.41 0-.733.606-1.345 1.395-1.408.363 0 .71.138.963.38.286.276.442.645.433 1.027.033.747-.59 1.378-1.396 1.411Z" fill="currentColor"></path></svg></a><a aria-label="Youtube Link" class="h-8 w-8 dark:hover:!text-white hover:text-grey-700" target="_blank" rel="noreferrer noopener" href="https://www.youtube.com/channel/UCaeFEx-W16IuxRsHlM1ywBQ"><svg viewBox="0 0 24 24" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-4 w-4"><path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2c.313-1.732.467-3.49.46-5.25a29.005 29.005 0 0 0-.46-5.33v0Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="m9.75 15.017 5.75-3.27-5.75-3.27v6.54Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></div></footer></div>
<script src="/assets/js/runtime~main.c0e31297.js"></script>
<script src="/assets/js/main.b1ae2b5f.js"></script>
</body>
</html>