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:
James Maslek
2022-11-21 16:58:32 -05:00
committed by GitHub
parent 659c214520
commit cfe41ef7a9
11 changed files with 264 additions and 194 deletions

View File

@@ -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")

View 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()

View File

@@ -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

View File

@@ -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)

View 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()

View File

@@ -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,
1 trail model view
18 stocks.ba.regions openbb_terminal.common.behavioural_analysis.google_model.get_regions openbb_terminal.common.behavioural_analysis.google_view.display_regions
19 stocks.ba.rise openbb_terminal.common.behavioural_analysis.google_model.get_rise
20 stocks.ba.getdd openbb_terminal.common.behavioural_analysis.reddit_model.get_due_dilligence
21 stocks.ba.popular openbb_terminal.common.behavioural_analysis.reddit_model.get_popular_tickers openbb_terminal.common.behavioural_analysis.reddit_view.display_popular_tickers
22 stocks.ba.redditsent openbb_terminal.common.behavioural_analysis.reddit_model.get_posts_about openbb_terminal.common.behavioural_analysis.reddit_view.display_redditsent
23 stocks.ba.text_sent openbb_terminal.common.behavioural_analysis.reddit_model.get_sentiment
24 stocks.ba.spac openbb_terminal.common.behavioural_analysis.reddit_model.get_spac
25 stocks.ba.spacc openbb_terminal.common.behavioural_analysis.reddit_model.get_spac_community
26 stocks.ba.watchlist openbb_terminal.common.behavioural_analysis.reddit_model.get_watchlists openbb_terminal.common.behavioural_analysis.reddit_view.display_watchlist
27 stocks.ba.wsb openbb_terminal.common.behavioural_analysis.reddit_model.get_wsb_community
28 stocks.ba.hist openbb_terminal.common.behavioural_analysis.sentimentinvestor_model.get_historical openbb_terminal.common.behavioural_analysis.sentimentinvestor_view.display_historical
29 stocks.ba.trend openbb_terminal.common.behavioural_analysis.sentimentinvestor_model.get_trending openbb_terminal.common.behavioural_analysis.sentimentinvestor_view.display_trending
30 stocks.ba.bullbear openbb_terminal.common.behavioural_analysis.stocktwits_model.get_bullbear openbb_terminal.common.behavioural_analysis.stocktwits_view.display_bullbear
31 stocks.ba.messages openbb_terminal.common.behavioural_analysis.stocktwits_model.get_messages openbb_terminal.common.behavioural_analysis.stocktwits_view.display_messages
32 stocks.ba.stalker openbb_terminal.common.behavioural_analysis.stocktwits_model.get_stalker
33 stocks.ba.trending openbb_terminal.common.behavioural_analysis.stocktwits_model.get_trending
34 stocks.ba.infer openbb_terminal.common.behavioural_analysis.twitter_model.load_analyze_tweets openbb_terminal.common.behavioural_analysis.twitter_view.display_inference
101 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
102 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
103 crypto.defi.validators openbb_terminal.cryptocurrency.defi.terramoney_fcd_model.get_validators openbb_terminal.cryptocurrency.defi.terramoney_fcd_view.display_validators
104 crypto.disc.cmctop crypto.disc.top_coins openbb_terminal.cryptocurrency.discovery.coinmarketcap_model.get_cmc_top_n openbb_terminal.cryptocurrency.discovery.sdk_helpers.top_coins openbb_terminal.cryptocurrency.discovery.coinmarketcap_view.display_cmc_top_coins
105 crypto.disc.cpsearch openbb_terminal.cryptocurrency.discovery.coinpaprika_model.get_search_results openbb_terminal.cryptocurrency.discovery.coinpaprika_view.display_search_results
106 crypto.disc.top_dapps openbb_terminal.cryptocurrency.discovery.dappradar_model.get_top_dapps openbb_terminal.cryptocurrency.discovery.dappradar_view.display_top_dapps
107 crypto.disc.top_dexes openbb_terminal.cryptocurrency.discovery.dappradar_model.get_top_dexes openbb_terminal.cryptocurrency.discovery.dappradar_view.display_top_dexes
186 crypto.ov.altindex openbb_terminal.cryptocurrency.overview.blockchaincenter_model.get_altcoin_index openbb_terminal.cryptocurrency.overview.blockchaincenter_view.display_altcoin_index
187 crypto.ov.btcrb openbb_terminal.cryptocurrency.overview.glassnode_model.get_btc_rainbow openbb_terminal.cryptocurrency.overview.glassnode_view.display_btc_rainbow
188 crypto.ov.cbpairs openbb_terminal.cryptocurrency.overview.coinbase_model.get_trading_pairs openbb_terminal.cryptocurrency.overview.coinbase_view.display_trading_pairs
189 crypto.ov.platforms1 crypto.ov.platforms openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_all_contract_platforms openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_platforms
190 crypto.ov.info openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_coins_info openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_coins_info
191 crypto.ov.cpmarkets crypto.ov.markets openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_coins_market_info openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_coins_market_info
192 crypto.ov.contracts openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_contract_platform openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_contracts
193 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
194 crypto.ov.news openbb_terminal.cryptocurrency.overview.cryptopanic_model.get_news openbb_terminal.cryptocurrency.overview.cryptopanic_view.display_news
195 crypto.ov.cr openbb_terminal.cryptocurrency.overview.loanscan_model.get_rates openbb_terminal.cryptocurrency.overview.loanscan_view.display_crypto_rates
196 crypto.ov.derivatives openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_derivatives openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_derivatives
197 crypto.ov.exrates openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_exchange_rates openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_exchange_rates
198 crypto.ov.exchanges openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_exchanges openbb_terminal.cryptocurrency.overview.sdk_helpers.exchanges openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_exchanges
199 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
200 crypto.ov.defi openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_defi_info openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_global_defi_info
201 crypto.ov.global_info crypto.ov.globe openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_info openbb_terminal.cryptocurrency.overview.sdk_helpers.globe
crypto.ov.global openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_markets_info openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_global_market_info
202 crypto.ov.hold openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_holdings_overview openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_holdings_overview
203 crypto.ov.indexes openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_indexes openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_indexes
204 crypto.ov.stables openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_stable_coins openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_stablecoins
252 economy.fred_ids openbb_terminal.economy.fred_model.get_series_ids
253 economy.fred_notes openbb_terminal.economy.fred_model.get_series_notes
254 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
255 economy.events openbb_terminal.economy.nasdaq_model.get_economic_calendar
economy.get_ycrv_countries openbb_terminal.economy.investingcom_model.get_ycrv_countries
256 economy.country_codes openbb_terminal.economy.nasdaq_model.get_country_codes
257 economy.bigmac openbb_terminal.economy.nasdaq_model.get_big_mac_indices openbb_terminal.economy.nasdaq_view.display_big_mac_index
258 economy.glbonds openbb_terminal.economy.wsj_model.global_bonds
357 portfolio.po.plot openbb_terminal.portfolio.portfolio_optimization.po_view.display_plot openbb_terminal.portfolio.portfolio_optimization.po_view.display_plot
358 stocks.ba.cnews openbb_terminal.stocks.behavioural_analysis.finnhub_model.get_company_news
359 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
360 stocks.ca.similar openbb_terminal.stocks.comparison_analysis.sdk_helpers.get_similar
361 stocks.ca.sentiment openbb_terminal.stocks.comparison_analysis.finbrain_model.get_sentiments openbb_terminal.stocks.comparison_analysis.finbrain_view.display_sentiment_compare
362 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
363 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
364 stocks.ca.balance openbb_terminal.stocks.comparison_analysis.marketwatch_model.get_balance_comparison
365 stocks.ca.cashflow openbb_terminal.stocks.comparison_analysis.marketwatch_model.get_cashflow_comparison
366 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
367 stocks.ca.hist openbb_terminal.stocks.comparison_analysis.yahoo_finance_model.get_historical openbb_terminal.stocks.comparison_analysis.yahoo_finance_view.display_historical
368 stocks.ca.hcorr openbb_terminal.stocks.comparison_analysis.yahoo_finance_model.get_correlation openbb_terminal.stocks.comparison_analysis.yahoo_finance_view.display_correlation
369 stocks.ca.volume openbb_terminal.stocks.comparison_analysis.yahoo_finance_model.get_volume openbb_terminal.stocks.comparison_analysis.yahoo_finance_view.display_volume
406 stocks.dd.analyst openbb_terminal.stocks.due_diligence.finviz_model.get_analyst_data
407 stocks.dd.news openbb_terminal.stocks.due_diligence.finviz_model.get_news
408 stocks.dd.rating openbb_terminal.stocks.due_diligence.fmp_model.get_rating
409 stocks.dd.sec openbb_terminal.stocks.due_diligence.marketwatch_model.get_sec_filings openbb_terminal.stocks.due_diligence.marketwatch_view.sec_filings
410 stocks.fa.dupont openbb_terminal.stocks.fundamental_analysis.av_model.get_dupont
411 stocks.fa.fraud openbb_terminal.stocks.fundamental_analysis.av_model.get_fraud_ratios
412 stocks.fa.income openbb_terminal.stocks.fundamental_analysis.sdk_helpers.get_income_statement
460 stocks.options.screen.check_presets openbb_terminal.stocks.options.screen.syncretism_model.check_presets
461 stocks.options.grhist openbb_terminal.stocks.options.screen.syncretism_model.get_historical_greeks openbb_terminal.stocks.options.screen.syncretism_view.view_historical_greeks
462 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
463 stocks.options.hist_tr stocks.options.hist openbb_terminal.stocks.options.tradier_model.get_historical_options openbb_terminal.stocks.options.options_sdk_helper.hist openbb_terminal.stocks.options.tradier_view.display_historical
464 stocks.options.chains openbb_terminal.stocks.options.options_sdk_helper.get_full_option_chain
465 stocks.options.last_price openbb_terminal.stocks.options.tradier_model.last_price
466 stocks.options.expirations openbb_terminal.stocks.options.options_sdk_helper.get_option_expirations

File diff suppressed because one or more lines are too long

View 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 []

View File

@@ -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

View File

@@ -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,

View File

@@ -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()