mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-27 20:42:26 +00:00
More sdk enhancements (#3480)
* Combine CA peers to smiliar command * crypto/disc/top into one sdk function * Exchanges into sdk function * delete wrong platforms trail * #3478 sdk crypto load * Options hist 1 sdk function * SDK functions Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
This commit is contained in:
@@ -489,7 +489,7 @@ def load_from_yahoofinance(
|
||||
def load(
|
||||
symbol: str,
|
||||
start_date: datetime | str | None = None,
|
||||
interval: str = "1440",
|
||||
interval: str | int = "1440",
|
||||
exchange: str = "binance",
|
||||
vs_currency: str = "usdt",
|
||||
end_date: datetime | str | None = None,
|
||||
@@ -503,7 +503,7 @@ def load(
|
||||
Coin to get
|
||||
start_date: str or datetime, optional
|
||||
Start date to get data from with. - datetime or string format (YYYY-MM-DD)
|
||||
interval: str
|
||||
interval: str|int
|
||||
The interval between data points in minutes.
|
||||
Choose from: 1, 15, 30, 60, 240, 1440, 10080, 43200
|
||||
exchange: str:
|
||||
@@ -521,7 +521,8 @@ def load(
|
||||
pd.DataFrame
|
||||
Dataframe consisting of price and volume data
|
||||
"""
|
||||
|
||||
if isinstance(interval, int):
|
||||
interval = str(interval)
|
||||
if start_date is None:
|
||||
start_date = (datetime.now() - timedelta(days=1100)).strftime("%Y-%m-%d")
|
||||
|
||||
|
||||
41
openbb_terminal/cryptocurrency/discovery/sdk_helpers.py
Normal file
41
openbb_terminal/cryptocurrency/discovery/sdk_helpers.py
Normal file
@@ -0,0 +1,41 @@
|
||||
"""SDK Helper Functions."""
|
||||
__docfromat__ = "numpy"
|
||||
|
||||
import pandas as pd
|
||||
from openbb_terminal.cryptocurrency.discovery import (
|
||||
coinmarketcap_model,
|
||||
pycoingecko_model,
|
||||
)
|
||||
|
||||
|
||||
def top_coins(source: str = "CoinGecko", limit: int = 10) -> pd.DataFrame:
|
||||
"""Get top cryptp coins.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
source : str, optional
|
||||
Source of data, by default "CoinGecko"
|
||||
limit : int, optional
|
||||
Number of coins to return, by default 10
|
||||
|
||||
Returns
|
||||
-------
|
||||
pd.DataFrame
|
||||
DataFrame with top coins
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb_terminal.sdk import openbb
|
||||
>>> top_coins = openbb.crypto.disc.top_coins()
|
||||
|
||||
To get 30 results from coinmarketcap, use the source parameter and the limit parameter:
|
||||
>>> top_coins = openbb.crypto.disc.top_coins(source="CoinMarketCap", limit=30)
|
||||
|
||||
"""
|
||||
if source.lower() == "coingecko":
|
||||
df = pycoingecko_model.get_coins(limit=limit)
|
||||
return df
|
||||
if source.lower() == "coinmarketcap":
|
||||
df = coinmarketcap_model.get_cmc_top_n()
|
||||
return df
|
||||
return pd.DataFrame()
|
||||
@@ -69,7 +69,7 @@ CONTRACTS_FILTERS = ["id", "type", "active"]
|
||||
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def get_global_market() -> pd.DataFrame:
|
||||
def get_global_info() -> pd.DataFrame:
|
||||
"""Return data frame with most important global crypto statistics like:
|
||||
market_cap_usd, volume_24h_usd, bitcoin_dominance_percentage, cryptocurrencies_number,
|
||||
market_cap_ath_value, market_cap_ath_date, volume_24h_ath_value, volume_24h_ath_date,
|
||||
@@ -308,18 +308,17 @@ def get_list_of_exchanges(
|
||||
"reported_volume_30d",
|
||||
"sessions_per_month",
|
||||
]
|
||||
df.loc[:, "fiats"] = df["fiats"].apply(lambda x: len([i["symbol"] for i in x if x]))
|
||||
df["fiats"] = df["fiats"].apply(lambda x: len([i["symbol"] for i in x if x]))
|
||||
df = df[cols]
|
||||
df = df.applymap(
|
||||
lambda x: "\n".join(textwrap.wrap(x, width=28)) if isinstance(x, str) else x
|
||||
)
|
||||
df.rename(
|
||||
df = df.rename(
|
||||
columns={"adjusted_rank": "Rank", "confidence_score": "confidence"},
|
||||
inplace=True,
|
||||
)
|
||||
df.columns = [x.replace("reported_", "") for x in df.columns]
|
||||
if sortby == "Rank":
|
||||
df = df.sort_values(by=sortby, ascending=not ascend)
|
||||
if sortby.lower() == "rank":
|
||||
df = df.sort_values(by="Rank", ascending=not ascend)
|
||||
else:
|
||||
df = df.sort_values(by=sortby, ascending=ascend)
|
||||
return df
|
||||
|
||||
@@ -83,7 +83,7 @@ def display_global_market(export: str = "") -> None:
|
||||
Export dataframe data to csv,json,xlsx file
|
||||
"""
|
||||
|
||||
df = paprika.get_global_market()
|
||||
df = paprika.get_global_info()
|
||||
df_data = df.copy()
|
||||
df["Value"] = df["Value"].apply( # pylint:disable=unsupported-assignment-operation
|
||||
lambda x: lambda_long_number_format_with_type_check(x)
|
||||
|
||||
70
openbb_terminal/cryptocurrency/overview/sdk_helpers.py
Normal file
70
openbb_terminal/cryptocurrency/overview/sdk_helpers.py
Normal file
@@ -0,0 +1,70 @@
|
||||
"""Crypto OV SDK Helper Functions."""
|
||||
__docformat__ = "numpy"
|
||||
|
||||
import pandas as pd
|
||||
from openbb_terminal.cryptocurrency.overview import pycoingecko_model, coinpaprika_model
|
||||
from openbb_terminal.cryptocurrency.dataframe_helpers import (
|
||||
lambda_long_number_format_with_type_check,
|
||||
)
|
||||
|
||||
|
||||
def globe(source: str = "CoinGecko") -> pd.DataFrame:
|
||||
"""Get global crypto market data.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
source : str, optional
|
||||
Source of data, by default "CoinGecko"
|
||||
|
||||
Returns
|
||||
-------
|
||||
pd.DataFrame
|
||||
DataFrame with global crypto market data
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb_terminal.sdk import openbb
|
||||
>>> global_market_data = openbb.crypto.ov.globals()
|
||||
|
||||
To get data from CoinPaprika, use the source parameter:
|
||||
>>> global_market_data = openbb.crypto.ov.globals(source="coinpaprika")
|
||||
|
||||
"""
|
||||
if source.lower() == "coingecko":
|
||||
df = pycoingecko_model.get_global_info()
|
||||
return df
|
||||
if source.lower() == "coinpaprika":
|
||||
df = coinpaprika_model.get_global_info()
|
||||
return df
|
||||
return pd.DataFrame()
|
||||
|
||||
|
||||
def exchanges(source: str = "CoinGecko") -> pd.DataFrame:
|
||||
"""Show top crypto exchanges.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
source : str, optional
|
||||
Source to get exchanges, by default "CoinGecko"
|
||||
|
||||
Returns
|
||||
-------
|
||||
pd.DataFrame
|
||||
DataFrame with top crypto exchanges
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb_terminal.sdk import openbb
|
||||
>>> exchanges = openbb.crypto.ov.exchanges()
|
||||
"""
|
||||
if source.lower() == "coingecko":
|
||||
df = pycoingecko_model.get_exchanges().sort_values(by="Rank", ascending=True)
|
||||
return df
|
||||
if source.lower() == "coinpaprika":
|
||||
df = coinpaprika_model.get_list_of_exchanges("USD")
|
||||
cols = [col for col in df.columns if col != "Rank"]
|
||||
df[cols] = df[cols].applymap(
|
||||
lambda x: lambda_long_number_format_with_type_check(x)
|
||||
)
|
||||
return df.sort_values(by="Rank", ascending=True).reset_index(drop=True).head(20)
|
||||
return pd.DataFrame()
|
||||
@@ -18,17 +18,17 @@ stocks.ba.queries,openbb_terminal.common.behavioural_analysis.google_model.get_q
|
||||
stocks.ba.regions,openbb_terminal.common.behavioural_analysis.google_model.get_regions,openbb_terminal.common.behavioural_analysis.google_view.display_regions
|
||||
stocks.ba.rise,openbb_terminal.common.behavioural_analysis.google_model.get_rise,
|
||||
stocks.ba.getdd,openbb_terminal.common.behavioural_analysis.reddit_model.get_due_dilligence,
|
||||
stocks.ba.popular,openbb_terminal.common.behavioural_analysis.reddit_model.get_popular_tickers,openbb_terminal.common.behavioural_analysis.reddit_view.display_popular_tickers
|
||||
stocks.ba.redditsent,openbb_terminal.common.behavioural_analysis.reddit_model.get_posts_about,openbb_terminal.common.behavioural_analysis.reddit_view.display_redditsent
|
||||
stocks.ba.popular,openbb_terminal.common.behavioural_analysis.reddit_model.get_popular_tickers,
|
||||
stocks.ba.redditsent,openbb_terminal.common.behavioural_analysis.reddit_model.get_posts_about,
|
||||
stocks.ba.text_sent,openbb_terminal.common.behavioural_analysis.reddit_model.get_sentiment,
|
||||
stocks.ba.spac,openbb_terminal.common.behavioural_analysis.reddit_model.get_spac,
|
||||
stocks.ba.spacc,openbb_terminal.common.behavioural_analysis.reddit_model.get_spac_community,
|
||||
stocks.ba.watchlist,openbb_terminal.common.behavioural_analysis.reddit_model.get_watchlists,openbb_terminal.common.behavioural_analysis.reddit_view.display_watchlist
|
||||
stocks.ba.watchlist,openbb_terminal.common.behavioural_analysis.reddit_model.get_watchlists,
|
||||
stocks.ba.wsb,openbb_terminal.common.behavioural_analysis.reddit_model.get_wsb_community,
|
||||
stocks.ba.hist,openbb_terminal.common.behavioural_analysis.sentimentinvestor_model.get_historical,openbb_terminal.common.behavioural_analysis.sentimentinvestor_view.display_historical
|
||||
stocks.ba.trend,openbb_terminal.common.behavioural_analysis.sentimentinvestor_model.get_trending,openbb_terminal.common.behavioural_analysis.sentimentinvestor_view.display_trending
|
||||
stocks.ba.bullbear,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_bullbear,openbb_terminal.common.behavioural_analysis.stocktwits_view.display_bullbear
|
||||
stocks.ba.messages,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_messages,openbb_terminal.common.behavioural_analysis.stocktwits_view.display_messages
|
||||
stocks.ba.bullbear,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_bullbear,
|
||||
stocks.ba.messages,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_messages,
|
||||
stocks.ba.stalker,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_stalker,
|
||||
stocks.ba.trending,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_trending,
|
||||
stocks.ba.infer,openbb_terminal.common.behavioural_analysis.twitter_model.load_analyze_tweets,openbb_terminal.common.behavioural_analysis.twitter_view.display_inference
|
||||
@@ -101,7 +101,7 @@ crypto.defi.sinfo,openbb_terminal.cryptocurrency.defi.terramoney_fcd_model.get_s
|
||||
crypto.defi.sratio,openbb_terminal.cryptocurrency.defi.terramoney_fcd_model.get_staking_ratio_history,openbb_terminal.cryptocurrency.defi.terramoney_fcd_view.display_staking_ratio_history
|
||||
crypto.defi.sreturn,openbb_terminal.cryptocurrency.defi.terramoney_fcd_model.get_staking_returns_history,openbb_terminal.cryptocurrency.defi.terramoney_fcd_view.display_staking_returns_history
|
||||
crypto.defi.validators,openbb_terminal.cryptocurrency.defi.terramoney_fcd_model.get_validators,openbb_terminal.cryptocurrency.defi.terramoney_fcd_view.display_validators
|
||||
crypto.disc.cmctop,openbb_terminal.cryptocurrency.discovery.coinmarketcap_model.get_cmc_top_n,openbb_terminal.cryptocurrency.discovery.coinmarketcap_view.display_cmc_top_coins
|
||||
crypto.disc.top_coins,openbb_terminal.cryptocurrency.discovery.sdk_helpers.top_coins,
|
||||
crypto.disc.cpsearch,openbb_terminal.cryptocurrency.discovery.coinpaprika_model.get_search_results,openbb_terminal.cryptocurrency.discovery.coinpaprika_view.display_search_results
|
||||
crypto.disc.top_dapps,openbb_terminal.cryptocurrency.discovery.dappradar_model.get_top_dapps,openbb_terminal.cryptocurrency.discovery.dappradar_view.display_top_dapps
|
||||
crypto.disc.top_dexes,openbb_terminal.cryptocurrency.discovery.dappradar_model.get_top_dexes,openbb_terminal.cryptocurrency.discovery.dappradar_view.display_top_dexes
|
||||
@@ -186,23 +186,19 @@ crypto.onchain.whales,openbb_terminal.cryptocurrency.onchain.whale_alert_model.g
|
||||
crypto.ov.altindex,openbb_terminal.cryptocurrency.overview.blockchaincenter_model.get_altcoin_index,openbb_terminal.cryptocurrency.overview.blockchaincenter_view.display_altcoin_index
|
||||
crypto.ov.btcrb,openbb_terminal.cryptocurrency.overview.glassnode_model.get_btc_rainbow,openbb_terminal.cryptocurrency.overview.glassnode_view.display_btc_rainbow
|
||||
crypto.ov.cbpairs,openbb_terminal.cryptocurrency.overview.coinbase_model.get_trading_pairs,openbb_terminal.cryptocurrency.overview.coinbase_view.display_trading_pairs
|
||||
crypto.ov.platforms1,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_all_contract_platforms,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_platforms
|
||||
crypto.ov.platforms,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_all_contract_platforms,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_platforms
|
||||
crypto.ov.info,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_coins_info,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_coins_info
|
||||
crypto.ov.cpmarkets,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_coins_market_info,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_coins_market_info
|
||||
crypto.ov.markets,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_coins_market_info,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_coins_market_info
|
||||
crypto.ov.contracts,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_contract_platform,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_contracts
|
||||
crypto.ov.exmarkets,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_exchanges_market,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_exchange_markets
|
||||
crypto.ov.cpglobal,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_global_market,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_global_market
|
||||
crypto.ov.cpexchanges,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_list_of_exchanges,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_exchanges
|
||||
crypto.ov.news,openbb_terminal.cryptocurrency.overview.cryptopanic_model.get_news,openbb_terminal.cryptocurrency.overview.cryptopanic_view.display_news
|
||||
crypto.ov.cr,openbb_terminal.cryptocurrency.overview.loanscan_model.get_rates,openbb_terminal.cryptocurrency.overview.loanscan_view.display_crypto_rates
|
||||
crypto.ov.derivatives,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_derivatives,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_derivatives
|
||||
crypto.ov.exrates,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_exchange_rates,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_exchange_rates
|
||||
crypto.ov.exchanges,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_exchanges,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_exchanges
|
||||
crypto.ov.exchanges,openbb_terminal.cryptocurrency.overview.sdk_helpers.exchanges,
|
||||
crypto.ov.products,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_finance_products,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_products
|
||||
crypto.ov.platforms,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_financial_platforms,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_platforms
|
||||
crypto.ov.defi,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_defi_info,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_global_defi_info
|
||||
crypto.ov.global_info,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_info,
|
||||
crypto.ov.global,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_markets_info,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_global_market_info
|
||||
crypto.ov.globe,openbb_terminal.cryptocurrency.overview.sdk_helpers.globe,
|
||||
crypto.ov.hold,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_holdings_overview,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_holdings_overview
|
||||
crypto.ov.indexes,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_indexes,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_indexes
|
||||
crypto.ov.stables,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_stable_coins,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_stablecoins
|
||||
@@ -256,9 +252,7 @@ economy.fred,openbb_terminal.economy.fred_model.get_aggregated_series_data,openb
|
||||
economy.fred_ids,openbb_terminal.economy.fred_model.get_series_ids,
|
||||
economy.fred_notes,openbb_terminal.economy.fred_model.get_series_notes,
|
||||
economy.ycrv,openbb_terminal.economy.fred_model.get_yield_curve,openbb_terminal.economy.fred_view.display_yield_curve
|
||||
economy.get_events_countries,openbb_terminal.economy.investingcom_model.get_events_countries,
|
||||
economy.events,openbb_terminal.economy.nasdaq_model.get_economic_calendar,
|
||||
economy.get_ycrv_countries,openbb_terminal.economy.investingcom_model.get_ycrv_countries,
|
||||
economy.country_codes,openbb_terminal.economy.nasdaq_model.get_country_codes,
|
||||
economy.bigmac,openbb_terminal.economy.nasdaq_model.get_big_mac_indices,openbb_terminal.economy.nasdaq_view.display_big_mac_index
|
||||
economy.glbonds,openbb_terminal.economy.wsj_model.global_bonds,
|
||||
@@ -363,15 +357,13 @@ portfolio.po.get_properties,openbb_terminal.portfolio.portfolio_optimization.opt
|
||||
portfolio.po.plot,openbb_terminal.portfolio.portfolio_optimization.po_view.display_plot,openbb_terminal.portfolio.portfolio_optimization.po_view.display_plot
|
||||
stocks.ba.cnews,openbb_terminal.stocks.behavioural_analysis.finnhub_model.get_company_news,
|
||||
stocks.ba.snews,openbb_terminal.stocks.behavioural_analysis.finnhub_model.get_headlines_sentiment,openbb_terminal.stocks.behavioural_analysis.finnhub_view.display_stock_price_headlines_sentiment
|
||||
stocks.ca.similar,openbb_terminal.stocks.comparison_analysis.sdk_helpers.get_similar,
|
||||
stocks.ca.sentiment,openbb_terminal.stocks.comparison_analysis.finbrain_model.get_sentiments,openbb_terminal.stocks.comparison_analysis.finbrain_view.display_sentiment_compare
|
||||
stocks.ca.scorr,openbb_terminal.stocks.comparison_analysis.finbrain_model.get_sentiment_correlation,openbb_terminal.stocks.comparison_analysis.finbrain_view.display_sentiment_correlation
|
||||
stocks.ca.finnhub_peers,openbb_terminal.stocks.comparison_analysis.finnhub_model.get_similar_companies,
|
||||
stocks.ca.screener,openbb_terminal.stocks.comparison_analysis.finviz_compare_model.get_comparison_data,
|
||||
stocks.ca.finviz_peers,openbb_terminal.stocks.comparison_analysis.finviz_compare_model.get_similar_companies,
|
||||
stocks.ca.balance,openbb_terminal.stocks.comparison_analysis.marketwatch_model.get_balance_comparison,
|
||||
stocks.ca.cashflow,openbb_terminal.stocks.comparison_analysis.marketwatch_model.get_cashflow_comparison,
|
||||
stocks.ca.income,openbb_terminal.stocks.comparison_analysis.marketwatch_model.get_income_comparison,openbb_terminal.stocks.comparison_analysis.marketwatch_view.display_income_comparison
|
||||
stocks.ca.polygon_peers,openbb_terminal.stocks.comparison_analysis.polygon_model.get_similar_companies,
|
||||
stocks.ca.hist,openbb_terminal.stocks.comparison_analysis.yahoo_finance_model.get_historical,openbb_terminal.stocks.comparison_analysis.yahoo_finance_view.display_historical
|
||||
stocks.ca.hcorr,openbb_terminal.stocks.comparison_analysis.yahoo_finance_model.get_correlation,openbb_terminal.stocks.comparison_analysis.yahoo_finance_view.display_correlation
|
||||
stocks.ca.volume,openbb_terminal.stocks.comparison_analysis.yahoo_finance_model.get_volume,openbb_terminal.stocks.comparison_analysis.yahoo_finance_view.display_volume
|
||||
@@ -414,7 +406,7 @@ stocks.dd.rot,openbb_terminal.stocks.due_diligence.finnhub_model.get_rating_over
|
||||
stocks.dd.analyst,openbb_terminal.stocks.due_diligence.finviz_model.get_analyst_data,
|
||||
stocks.dd.news,openbb_terminal.stocks.due_diligence.finviz_model.get_news,
|
||||
stocks.dd.rating,openbb_terminal.stocks.due_diligence.fmp_model.get_rating,
|
||||
stocks.dd.sec,openbb_terminal.stocks.due_diligence.marketwatch_model.get_sec_filings,openbb_terminal.stocks.due_diligence.marketwatch_view.sec_filings
|
||||
stocks.dd.sec,openbb_terminal.stocks.due_diligence.marketwatch_model.get_sec_filings,
|
||||
stocks.fa.dupont,openbb_terminal.stocks.fundamental_analysis.av_model.get_dupont,
|
||||
stocks.fa.fraud,openbb_terminal.stocks.fundamental_analysis.av_model.get_fraud_ratios,
|
||||
stocks.fa.income,openbb_terminal.stocks.fundamental_analysis.sdk_helpers.get_income_statement,
|
||||
@@ -468,7 +460,7 @@ stocks.options.unu,openbb_terminal.stocks.options.fdscanner_model.unusual_option
|
||||
stocks.options.screen.check_presets,openbb_terminal.stocks.options.screen.syncretism_model.check_presets,
|
||||
stocks.options.grhist,openbb_terminal.stocks.options.screen.syncretism_model.get_historical_greeks,openbb_terminal.stocks.options.screen.syncretism_view.view_historical_greeks
|
||||
stocks.options.screen.screener_output,openbb_terminal.stocks.options.screen.syncretism_model.get_screener_output,openbb_terminal.stocks.options.screen.syncretism_view.view_screener_output
|
||||
stocks.options.hist_tr,openbb_terminal.stocks.options.tradier_model.get_historical_options,openbb_terminal.stocks.options.tradier_view.display_historical
|
||||
stocks.options.hist,openbb_terminal.stocks.options.options_sdk_helper.hist,
|
||||
stocks.options.chains,openbb_terminal.stocks.options.options_sdk_helper.get_full_option_chain,
|
||||
stocks.options.last_price,openbb_terminal.stocks.options.tradier_model.last_price,
|
||||
stocks.options.expirations,openbb_terminal.stocks.options.options_sdk_helper.get_option_expirations,
|
||||
|
||||
|
171
openbb_terminal/reports/templates/forecast.ipynb
vendored
171
openbb_terminal/reports/templates/forecast.ipynb
vendored
File diff suppressed because one or more lines are too long
51
openbb_terminal/stocks/comparison_analysis/sdk_helpers.py
Normal file
51
openbb_terminal/stocks/comparison_analysis/sdk_helpers.py
Normal file
@@ -0,0 +1,51 @@
|
||||
"""CA SDK Helpers."""
|
||||
__docformat__ = "numpy"
|
||||
|
||||
from typing import List
|
||||
|
||||
|
||||
from openbb_terminal.stocks.comparison_analysis import (
|
||||
finviz_compare_model,
|
||||
polygon_model,
|
||||
finnhub_model,
|
||||
yahoo_finance_model,
|
||||
)
|
||||
|
||||
|
||||
def get_similar(symbol: str, source="Finviz") -> List[str]:
|
||||
"""Find similar tickers to a given symbol.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
symbol : str
|
||||
Symbol to find similar tickers to.
|
||||
source : str, optional
|
||||
Source to get data for, by default "Finviz". Can be "Finviz", "Polygon", "Finnhub", or "TSNE"
|
||||
|
||||
Returns
|
||||
-------
|
||||
List[str]
|
||||
List of similar tickers.
|
||||
|
||||
Examples
|
||||
--------
|
||||
To get similar tickers to AAPL from Finviz:
|
||||
>>> from openbb_terminal.sdk import openbb
|
||||
>>> similar_tickers = openbb.stocks.ca.similar("AAPL)
|
||||
|
||||
To use our custom TSNE model for similar tickers in the SP500:
|
||||
>>> similar_tickers = openbb.stocks.ca.similar("AAPL", source="TSNE")
|
||||
"""
|
||||
if source.lower() == "finviz":
|
||||
return finviz_compare_model.get_similar_companies(symbol)
|
||||
|
||||
if source.lower() == "polygon":
|
||||
return polygon_model.get_similar_companies(symbol)
|
||||
|
||||
if source.lower() == "finnhub":
|
||||
return finnhub_model.get_similar_companies(symbol)
|
||||
|
||||
if source.lower() == "tsne":
|
||||
return yahoo_finance_model.get_sp500_comps_tsne(symbol).index.to_list()[:10]
|
||||
|
||||
return []
|
||||
@@ -1,5 +1,6 @@
|
||||
"""Chartexchange model"""
|
||||
__docformat__ = "numpy"
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
|
||||
@@ -17,7 +18,10 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def get_option_history(
|
||||
symbol: str = "GME", date: str = "2021-02-05", call: bool = True, price: str = "90"
|
||||
symbol: str = "GME",
|
||||
date: str = "2021-02-05",
|
||||
call: bool = True,
|
||||
price: str | int | float = "90",
|
||||
) -> pd.DataFrame:
|
||||
"""Historic prices for a specific option [chartexchange]
|
||||
|
||||
@@ -25,7 +29,7 @@ def get_option_history(
|
||||
----------
|
||||
symbol : str
|
||||
Ticker symbol to get historical data from
|
||||
date : str
|
||||
date : str|int|float
|
||||
Date as a string YYYYMMDD
|
||||
call : bool
|
||||
Whether to show a call or a put
|
||||
|
||||
@@ -743,7 +743,9 @@ class OptionsController(BaseController):
|
||||
ns_parser.export,
|
||||
)
|
||||
|
||||
elif API_TRADIER_TOKEN != "REPLACE_ME": # nosec
|
||||
elif (
|
||||
ns_parser.source == "Tradier" and API_TRADIER_TOKEN != "REPLACE_ME"
|
||||
): # nosec
|
||||
tradier_view.display_historical(
|
||||
symbol=self.ticker,
|
||||
expiry=self.selected_date,
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
"""Options Functions For OpenBB SDK"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
from typing import List, Optional
|
||||
import pandas as pd
|
||||
|
||||
from openbb_terminal.stocks.options import nasdaq_model, tradier_model, yfinance_model
|
||||
from openbb_terminal.stocks.options import (
|
||||
nasdaq_model,
|
||||
tradier_model,
|
||||
yfinance_model,
|
||||
chartexchange_model,
|
||||
)
|
||||
from openbb_terminal.decorators import log_start_end
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -12,7 +18,7 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def get_full_option_chain(
|
||||
symbol: str, source: str = "Nasdaq", expiration: Optional[str] = None
|
||||
symbol: str, source: str = "Nasdaq", expiration: str | None = None
|
||||
) -> pd.DataFrame:
|
||||
"""Get Option Chain For A Stock. No greek data is returned
|
||||
|
||||
@@ -60,7 +66,7 @@ def get_full_option_chain(
|
||||
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def get_option_expirations(symbol: str, source: str = "Nasdaq") -> List:
|
||||
def get_option_expirations(symbol: str, source: str = "Nasdaq") -> list:
|
||||
"""Get Option Chain Expirations
|
||||
|
||||
Parameters
|
||||
@@ -90,3 +96,46 @@ def get_option_expirations(symbol: str, source: str = "Nasdaq") -> List:
|
||||
|
||||
logger.info("Invalid Source")
|
||||
return pd.DataFrame()
|
||||
|
||||
|
||||
def hist(
|
||||
symbol: str,
|
||||
exp: str,
|
||||
strike: int | float | str,
|
||||
call: bool = True,
|
||||
source="ChartExchange",
|
||||
) -> pd.DataFrame:
|
||||
"""Get historical option pricing.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
symbol : str
|
||||
Symbol to get data for
|
||||
exp : str
|
||||
Expiration date
|
||||
strike : int | float | str
|
||||
Strike price
|
||||
call : bool, optional
|
||||
Flag to indicate a call, by default True
|
||||
source : str, optional
|
||||
Source to get data from. Can be ChartExchange or Tradier, by default "ChartExchange"
|
||||
|
||||
Returns
|
||||
-------
|
||||
pd.DataFrame
|
||||
DataFrame of historical option pricing
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb_terminal.sdk import openbb
|
||||
>>> aapl_150_call = openbb.stocks.options.hist("AAPL", "2022-11-18", 150, call=True, source="ChartExchange")
|
||||
|
||||
Because this generates a dataframe, we can easily plot the close price for a SPY put:
|
||||
(Note that Tradier requires an API key)
|
||||
>>> openbb.stocks.options.hist("SPY", "2022-11-18", 400, call=False, source="Tradier").plot(y="close)
|
||||
"""
|
||||
if source.lower() == "chartexchange":
|
||||
return chartexchange_model.get_option_history(symbol, exp, call, strike)
|
||||
if source.lower() == "tradier":
|
||||
return tradier_model.get_historical_options(symbol, exp, strike, not call)
|
||||
return pd.DataFrame()
|
||||
|
||||
Reference in New Issue
Block a user