Files
OpenBB/assets/js/fba878cd.77651f4e.js
github-actions[bot] a1886ebd0b deploy: 5b1d7d95c0
2022-11-29 15:01:20 +00:00

1 line
25 KiB
JavaScript

"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[37518],{3905:(t,e,a)=>{a.d(e,{Zo:()=>g,kt:()=>k});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?i(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function p(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},i=Object.keys(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var o=n.createContext({}),d=function(t){var e=n.useContext(o),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},g=function(t){var e=d(t.components);return n.createElement(o.Provider,{value:e},t.children)},m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,o=t.parentName,g=p(t,["components","mdxType","originalType","parentName"]),s=d(a),k=r,h=s["".concat(o,".").concat(k)]||s[k]||m[k]||i;return a?n.createElement(h,l(l({ref:e},g),{},{components:a})):n.createElement(h,l({ref:e},g))}));function k(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=s;var p={};for(var o in e)hasOwnProperty.call(e,o)&&(p[o]=e[o]);p.originalType=t,p.mdxType="string"==typeof t?t:r,l[1]=p;for(var d=2;d<i;d++)l[d]=a[d];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},70876:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>o,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>p,toc:()=>d});var n=a(87462),r=(a(67294),a(3905));const i={title:"Basics",sidebar_position:1},l=void 0,p={unversionedId:"guides/basics/index",id:"guides/basics/index",title:"Basics",description:"Importing the SDK",source:"@site/content/sdk/guides/basics/index.md",sourceDirName:"guides/basics",slug:"/guides/basics/",permalink:"/sdk/guides/basics/",draft:!1,editUrl:"https://github.com/OpenBB-finance/OpenBBTerminal/edit/main/website/content/sdk/guides/basics/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Basics",sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"FAQ",permalink:"/sdk/quickstart/faq"},next:{title:"Alternative",permalink:"/sdk/guides/intros/alternative"}},o={},d=[{value:"Importing the SDK",id:"importing-the-sdk",level:3},{value:"Navigation",id:"navigation",level:3},{value:"Docstrings",id:"docstrings",level:3},{value:"How to use the SDK",id:"how-to-use-the-sdk",level:2},{value:"Your First Function",id:"your-first-function",level:3},{value:"Passing Results to Another Function",id:"passing-results-to-another-function",level:3},{value:"Displaying Charts",id:"displaying-charts",level:3}],g={toc:d};function m(t){let{components:e,...a}=t;return(0,r.kt)("wrapper",(0,n.Z)({},g,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"importing-the-sdk"},"Importing the SDK"),(0,r.kt)("p",null,"Now that you have the SDK installed, the first step is to import the OpenBB SDK in your preferred code editor. Nearly everything required to interact with any function from the OpenBB Terminal gets imported in one line. Begin a Python script or Notebook file with:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"from openbb_terminal.sdk import openbb\n")),(0,r.kt)("p",null,"Example snippets used in the remainder of this guide will assume the code block above is used."),(0,r.kt)("h3",{id:"navigation"},"Navigation"),(0,r.kt)("p",null,"In the same way as operating the OpenBB Terminal, functions are divided into menus which are scrollable after importing into a jupyter notebook. Entering a period, ",(0,r.kt)("inlineCode",{parentName:"p"},"."),", after ",(0,r.kt)("inlineCode",{parentName:"p"},"openbb"),", will display the Sub-menus available."),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/85772166/202795900-5f1cb00a-a0ff-4899-b6e2-c5af54b653d1.png",alt:"Navigation",title:"Navigation"})),(0,r.kt)("p",null,"An alternate way to view the contents of a menu is to use Python's built-in help."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"help(openbb.stocks.dd)\n")),(0,r.kt)("h3",{id:"docstrings"},"Docstrings"),(0,r.kt)("p",null,"In addition to Python's built-in help, docstrings are also displayed in the Contextual Help window, within a Jupyter environment or by running ",(0,r.kt)("inlineCode",{parentName:"p"},"help(openbb.economy.events)")," in your code editor."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"help(openbb.economy.events)\n\nHelp on Operation in module openbb_terminal.core.library.operation:\n\n<openbb_terminal.core.library.operation.Operation object>\n Get economic calendar for countries between specified dates\n\n Parameters\n ----------\n countries : [List[str],str]\n List of countries to include in calendar. Empty returns all\n start_date : str\n Start date for calendar\n end_date : str\n End date for calendar\n\n Returns\n -------\n pd.DataFrame\n Economic calendar\n")),(0,r.kt)("h2",{id:"how-to-use-the-sdk"},"How to use the SDK"),(0,r.kt)("h3",{id:"your-first-function"},"Your First Function"),(0,r.kt)("p",null,"To get started using the OpenBB SDK you can try the below code for your first function."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"openbb.economy.events()\n")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"right"}),(0,r.kt)("th",{parentName:"tr",align:"left"},"Time (GMT)"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Country"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Event"),(0,r.kt)("th",{parentName:"tr",align:"left"},"actual"),(0,r.kt)("th",{parentName:"tr",align:"left"},"consensus"),(0,r.kt)("th",{parentName:"tr",align:"left"},"previous"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Date"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"right"},"0"),(0,r.kt)("td",{parentName:"tr",align:"left"},"01:30"),(0,r.kt)("td",{parentName:"tr",align:"left"},"France"),(0,r.kt)("td",{parentName:"tr",align:"left"},"French Unemployment Rate"),(0,r.kt)("td",{parentName:"tr",align:"left"},"7.3%"),(0,r.kt)("td",{parentName:"tr",align:"left"},"7.3%"),(0,r.kt)("td",{parentName:"tr",align:"left"},"7.4%"),(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"right"},"1"),(0,r.kt)("td",{parentName:"tr",align:"left"},"02:00"),(0,r.kt)("td",{parentName:"tr",align:"left"},"United Kingdom"),(0,r.kt)("td",{parentName:"tr",align:"left"},"Average Earnings ex Bonus"),(0,r.kt)("td",{parentName:"tr",align:"left"},"5.7%"),(0,r.kt)("td",{parentName:"tr",align:"left"},"5.5%"),(0,r.kt)("td",{parentName:"tr",align:"left"},"5.5%"),(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"right"},"2"),(0,r.kt)("td",{parentName:"tr",align:"left"},"02:00"),(0,r.kt)("td",{parentName:"tr",align:"left"},"United Kingdom"),(0,r.kt)("td",{parentName:"tr",align:"left"},"Average Earnings Index +Bonus"),(0,r.kt)("td",{parentName:"tr",align:"left"},"6.0%"),(0,r.kt)("td",{parentName:"tr",align:"left"},"5.9%"),(0,r.kt)("td",{parentName:"tr",align:"left"},"6.1%"),(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"right"},"3"),(0,r.kt)("td",{parentName:"tr",align:"left"},"02:00"),(0,r.kt)("td",{parentName:"tr",align:"left"},"United Kingdom"),(0,r.kt)("td",{parentName:"tr",align:"left"},"Claimant Count Change"),(0,r.kt)("td",{parentName:"tr",align:"left"},"3.3K"),(0,r.kt)("td",{parentName:"tr",align:"left"},"17.3K"),(0,r.kt)("td",{parentName:"tr",align:"left"},"3.9K"),(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"right"},"4"),(0,r.kt)("td",{parentName:"tr",align:"left"},"02:00"),(0,r.kt)("td",{parentName:"tr",align:"left"},"United Kingdom"),(0,r.kt)("td",{parentName:"tr",align:"left"},"Employment Change 3M/3M"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-52K"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-25K"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-109K"),(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15")))),(0,r.kt)("admonition",{title:"- The results from data functions are not stored to memory unless explicitly instructed to. Most functions returning data are presented as a Pandas DataFrame.",type:"note"}),(0,r.kt)("p",null,"Modify the syntax slightly to deliver the output into a DataFrame:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"economic_calendar = openbb.economy.events()\n")),(0,r.kt)("p",null,"Defined as a variable, interacting with the results becomes a matter of manipulating tables. For example, the code block below will filter the results of the events function to display only events scheduled at a specific time."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"economic_calendar = openbb.economy.events()\neconomic_calendar.set_index(keys = ['Time (GMT)'], append = True, inplace = True)\nevents = economic_calendar.filter(like = '9:00', axis = 0)\n\nevents\n")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"}),(0,r.kt)("th",{parentName:"tr",align:"left"},"Country"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Event"),(0,r.kt)("th",{parentName:"tr",align:"left"},"actual"),(0,r.kt)("th",{parentName:"tr",align:"left"},"consensus"),(0,r.kt)("th",{parentName:"tr",align:"left"},"previous"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Date"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"09:00"),(0,r.kt)("td",{parentName:"tr",align:"left"},"United States"),(0,r.kt)("td",{parentName:"tr",align:"left"},"Fed Governor Cook Speaks"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-"),(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"09:00"),(0,r.kt)("td",{parentName:"tr",align:"left"},"Germany"),(0,r.kt)("td",{parentName:"tr",align:"left"},"German Buba Balz Speaks"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-"),(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"09:00"),(0,r.kt)("td",{parentName:"tr",align:"left"},"Germany"),(0,r.kt)("td",{parentName:"tr",align:"left"},"German Buba Vice President Buch Speaks"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-"),(0,r.kt)("td",{parentName:"tr",align:"left"},"-"),(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15")))),(0,r.kt)("h3",{id:"passing-results-to-another-function"},"Passing Results to Another Function"),(0,r.kt)("p",null,"Let's take a look at another example where the input to a function is a list. It may be desirable to derive that list from a different function. This can be useful for screening tickers, or analyzing particular industries or sectors. The Comparison Analysis sub-module, within Stocks, is one set of functions that can benefit from this kind of workflow. Instead of something like:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"openbb.stocks.ca.screener(similar = ['AAPL', 'NFLX', 'META', 'AMZN', 'MSFT', 'GOOGL', 'DIS', 'TSLA'], data_type = 'valuation')\n")),(0,r.kt)("p",null,"Try, ",(0,r.kt)("inlineCode",{parentName:"p"},"openbb.etf.holdings"),", to populate a list dynamically:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"symbols = openbb.etf.holdings('DIA')\ndia_symbols = list(symbols.index.drop(['N/A']))\ndia_valuation = openbb.stocks.ca.screener(similar = dia_symbols, data_type = 'valuation')\ndia_valuation = dia_valuation.sort_values(by = ['Price'], ascending = False).convert_dtypes()\n\ndia_valuation.head(5)\n")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"right"}),(0,r.kt)("th",{parentName:"tr",align:"left"},"Ticker"),(0,r.kt)("th",{parentName:"tr",align:"right"},"Market Cap"),(0,r.kt)("th",{parentName:"tr",align:"right"},"P/E"),(0,r.kt)("th",{parentName:"tr",align:"right"},"Fwd P/E"),(0,r.kt)("th",{parentName:"tr",align:"left"},"PEG"),(0,r.kt)("th",{parentName:"tr",align:"right"},"P/S"),(0,r.kt)("th",{parentName:"tr",align:"left"},"P/B"),(0,r.kt)("th",{parentName:"tr",align:"right"},"P/C"),(0,r.kt)("th",{parentName:"tr",align:"right"},"P/FCF"),(0,r.kt)("th",{parentName:"tr",align:"right"},"EPS this Y"),(0,r.kt)("th",{parentName:"tr",align:"right"},"EPS next Y"),(0,r.kt)("th",{parentName:"tr",align:"right"},"EPS past 5Y"),(0,r.kt)("th",{parentName:"tr",align:"right"},"EPS next 5Y"),(0,r.kt)("th",{parentName:"tr",align:"right"},"Sales past 5Y"),(0,r.kt)("th",{parentName:"tr",align:"right"},"Price"),(0,r.kt)("th",{parentName:"tr",align:"right"},"Change"),(0,r.kt)("th",{parentName:"tr",align:"right"},"Volume"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"right"},"25"),(0,r.kt)("td",{parentName:"tr",align:"left"},"UNH"),(0,r.kt)("td",{parentName:"tr",align:"right"},"5.0033e+11"),(0,r.kt)("td",{parentName:"tr",align:"right"},"25.17"),(0,r.kt)("td",{parentName:"tr",align:"right"},"20.61"),(0,r.kt)("td",{parentName:"tr",align:"left"},"1.77"),(0,r.kt)("td",{parentName:"tr",align:"right"},"1.59"),(0,r.kt)("td",{parentName:"tr",align:"left"},"6.43"),(0,r.kt)("td",{parentName:"tr",align:"right"},"12.88"),(0,r.kt)("td",{parentName:"tr",align:"right"},"19.61"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.128"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.1315"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.201"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.1422"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.092"),(0,r.kt)("td",{parentName:"tr",align:"right"},"503.01"),(0,r.kt)("td",{parentName:"tr",align:"right"},"-0.0209"),(0,r.kt)("td",{parentName:"tr",align:"right"},"5007787")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"right"},"10"),(0,r.kt)("td",{parentName:"tr",align:"left"},"GS"),(0,r.kt)("td",{parentName:"tr",align:"right"},"1.282e+11"),(0,r.kt)("td",{parentName:"tr",align:"right"},"10.18"),(0,r.kt)("td",{parentName:"tr",align:"right"},"10.17"),(0,r.kt)("td",{parentName:"tr",align:"left"},"N/A"),(0,r.kt)("td",{parentName:"tr",align:"right"},"2.08"),(0,r.kt)("td",{parentName:"tr",align:"left"},"1.24"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.45"),(0,r.kt)("td",{parentName:"tr",align:"right"},"2.98"),(0,r.kt)("td",{parentName:"tr",align:"right"},"1.403"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.0976"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.296"),(0,r.kt)("td",{parentName:"tr",align:"right"},"-0.0912"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.113"),(0,r.kt)("td",{parentName:"tr",align:"right"},"382.88"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.0014"),(0,r.kt)("td",{parentName:"tr",align:"right"},"3184768")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"right"},"11"),(0,r.kt)("td",{parentName:"tr",align:"left"},"HD"),(0,r.kt)("td",{parentName:"tr",align:"right"},"3.1097e+11"),(0,r.kt)("td",{parentName:"tr",align:"right"},"18.86"),(0,r.kt)("td",{parentName:"tr",align:"right"},"17.86"),(0,r.kt)("td",{parentName:"tr",align:"left"},"1.2"),(0,r.kt)("td",{parentName:"tr",align:"right"},"2"),(0,r.kt)("td",{parentName:"tr",align:"left"},"1334.43"),(0,r.kt)("td",{parentName:"tr",align:"right"},"247"),(0,r.kt)("td",{parentName:"tr",align:"right"},"89.72"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.301"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.0361"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.192"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.157"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.098"),(0,r.kt)("td",{parentName:"tr",align:"right"},"311.93"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.0163"),(0,r.kt)("td",{parentName:"tr",align:"right"},"9239159")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"right"},"1"),(0,r.kt)("td",{parentName:"tr",align:"left"},"AMGN"),(0,r.kt)("td",{parentName:"tr",align:"right"},"1.5543e+11"),(0,r.kt)("td",{parentName:"tr",align:"right"},"22.86"),(0,r.kt)("td",{parentName:"tr",align:"right"},"15.4"),(0,r.kt)("td",{parentName:"tr",align:"left"},"3.38"),(0,r.kt)("td",{parentName:"tr",align:"right"},"5.9"),(0,r.kt)("td",{parentName:"tr",align:"left"},"41.77"),(0,r.kt)("td",{parentName:"tr",align:"right"},"13.54"),(0,r.kt)("td",{parentName:"tr",align:"right"},"32.04"),(0,r.kt)("td",{parentName:"tr",align:"right"},"-0.165"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.0486"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.001"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.0677"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.025"),(0,r.kt)("td",{parentName:"tr",align:"right"},"283.6"),(0,r.kt)("td",{parentName:"tr",align:"right"},"-0.006"),(0,r.kt)("td",{parentName:"tr",align:"right"},"2761083")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"right"},"18"),(0,r.kt)("td",{parentName:"tr",align:"left"},"MCD"),(0,r.kt)("td",{parentName:"tr",align:"right"},"2.0272e+11"),(0,r.kt)("td",{parentName:"tr",align:"right"},"34.3"),(0,r.kt)("td",{parentName:"tr",align:"right"},"26.01"),(0,r.kt)("td",{parentName:"tr",align:"left"},"5.14"),(0,r.kt)("td",{parentName:"tr",align:"right"},"8.71"),(0,r.kt)("td",{parentName:"tr",align:"left"},"N/A"),(0,r.kt)("td",{parentName:"tr",align:"right"},"71.67"),(0,r.kt)("td",{parentName:"tr",align:"right"},"118.65"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.591"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.0522"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.13"),(0,r.kt)("td",{parentName:"tr",align:"right"},"0.0667"),(0,r.kt)("td",{parentName:"tr",align:"right"},"-0.012"),(0,r.kt)("td",{parentName:"tr",align:"right"},"267.84"),(0,r.kt)("td",{parentName:"tr",align:"right"},"-0.0163"),(0,r.kt)("td",{parentName:"tr",align:"right"},"5421817")))),(0,r.kt)("h3",{id:"displaying-charts"},"Displaying Charts"),(0,r.kt)("p",null,"The OpenBB SDK has built-in charting libraries for Matplotlib, for any chart available from the Terminal. User style sheets can be added to the folder (more on this in ",(0,r.kt)("a",{parentName:"p",href:"/sdk/guides/advanced/data"},"Importing and Exporting Data"),"), ",(0,r.kt)("inlineCode",{parentName:"p"},"~/OpenBBUserData/styles/user"),". Styles are shared properties between the OpenBB Terminal and the SDK."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("mdxAdmonitionTitle",{parentName:"admonition"},"Displaying charts in Jupyter Notebooks requires an additional line of code. You can either render a static image with ",(0,r.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"%matplotlib inline")," or add in pan/zoom functionality with ",(0,r.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"%matplotlib widget"),".")),(0,r.kt)("p",null,"Functions, such as ",(0,r.kt)("inlineCode",{parentName:"p"},"candle"),", exist to display charts. Others, like those within the Technical Analysis module, have the option to return either, a chart or raw data. The next examples will outline a few different scenarios. First, let's get some data:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"spy_daily = openbb.stocks.load(\n symbol = 'SPY',\n start_date = '1993-11-01',\n monthly = True)\n")),(0,r.kt)("p",null,"Data from the previous example, ",(0,r.kt)("inlineCode",{parentName:"p"},"spy_daily"),", can be used in the ",(0,r.kt)("inlineCode",{parentName:"p"},"openbb.stocks.candle")," function, for example:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"openbb.stocks.candle(\n data = spy_daily,\n asset_type = 'SPY - Monthly Chart from November, 1993',\n symbol = ''\n)\n")),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/85772166/202801049-083ec045-7038-440b-8a54-7a02269e4a40.png",alt:"openbb.stocks.candle",title:"openbb.stocks.candle"})),(0,r.kt)("p",null,"The function will also respond to individual tickers without saving the data first as done with ",(0,r.kt)("inlineCode",{parentName:"p"},"load"),":"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"openbb.stocks.candle('SPY')\n")),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/85772166/203477909-6a97175b-b3e3-4236-9753-609895c6aa69.png",alt:"openbb.stocks.candle",title:"openbb.stocks.candle"})),(0,r.kt)("p",null,"Where functions in the Terminal display either a chart or raw data, the command will have an additional ",(0,r.kt)("inlineCode",{parentName:"p"},"_chart")," component. For example, Donchian Channels:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"openbb.ta.donchian(openbb.stocks.load('SPY', interval = 15))\n")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"date"),(0,r.kt)("th",{parentName:"tr",align:"right"},"DCL_20_20"),(0,r.kt)("th",{parentName:"tr",align:"right"},"DCM_20_20"),(0,r.kt)("th",{parentName:"tr",align:"right"},"DCU_20_20"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15 14:45:00"),(0,r.kt)("td",{parentName:"tr",align:"right"},"394.49"),(0,r.kt)("td",{parentName:"tr",align:"right"},"398.33"),(0,r.kt)("td",{parentName:"tr",align:"right"},"402.17")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15 15:00:00"),(0,r.kt)("td",{parentName:"tr",align:"right"},"394.49"),(0,r.kt)("td",{parentName:"tr",align:"right"},"398.195"),(0,r.kt)("td",{parentName:"tr",align:"right"},"401.9")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15 15:15:00"),(0,r.kt)("td",{parentName:"tr",align:"right"},"394.49"),(0,r.kt)("td",{parentName:"tr",align:"right"},"398.195"),(0,r.kt)("td",{parentName:"tr",align:"right"},"401.9")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15 15:30:00"),(0,r.kt)("td",{parentName:"tr",align:"right"},"394.49"),(0,r.kt)("td",{parentName:"tr",align:"right"},"398.105"),(0,r.kt)("td",{parentName:"tr",align:"right"},"401.72")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"2022-11-15 15:45:00"),(0,r.kt)("td",{parentName:"tr",align:"right"},"394.49"),(0,r.kt)("td",{parentName:"tr",align:"right"},"398.027"),(0,r.kt)("td",{parentName:"tr",align:"right"},"401.565")))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"openbb.ta.donchian_chart(\n data = openbb.stocks.load('SPY', interval = 15),\n symbol = 'SPY 15 Minute Data'\n)\n")),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/85772166/202802907-40fa97c8-055d-4ef5-bbc2-7f01a5c5b738.png",alt:"openbb.ta.donchian",title:"openbb.ta.donchian"})),(0,r.kt)("p",null,"Futures curves are another example where this syntax is applied:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"openbb.futures.curve_chart('GE')\n")),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/85772166/201583945-18364efa-c305-4c1a-a032-f779e28894c8.png",alt:"openbb.futures.curve",title:"openbb.futures.curve"})),(0,r.kt)("p",null,"The intros section for each module explore further functionality and provide sample code snippets. For example, an introduction to Stocks can be found ",(0,r.kt)("a",{parentName:"p",href:"/sdk/guides/intros/stocks"},"here"),"."))}m.isMDXComponent=!0}}]);