mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-06-20 14:46:02 +08:00
updates SDK trail map and crypto ta_controller
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
"""Crypto Technical Analysis Controller Module"""
|
||||
__docformat__ = "numpy"
|
||||
# pylint:disable=too-many-lines
|
||||
# pylint:disable=too-many-lines,R0904,C0201
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
@@ -38,6 +38,9 @@ from openbb_terminal.rich_config import MenuText, console
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def no_ticker_message():
|
||||
"""Print message when no ticker is loaded"""
|
||||
console.print("[red]No data loaded. Use 'load' command to load a symbol[/red]")
|
||||
|
||||
class TechnicalAnalysisController(CryptoBaseController):
|
||||
"""Technical Analysis Controller class"""
|
||||
@@ -66,6 +69,9 @@ class TechnicalAnalysisController(CryptoBaseController):
|
||||
"obv",
|
||||
"fib",
|
||||
"tv",
|
||||
"atr",
|
||||
"demark",
|
||||
"cones",
|
||||
]
|
||||
|
||||
PATH = "/crypto/ta/"
|
||||
@@ -128,22 +134,24 @@ class TechnicalAnalysisController(CryptoBaseController):
|
||||
mt.add_raw("\n")
|
||||
mt.add_info("_overlap_")
|
||||
mt.add_cmd("ema")
|
||||
mt.add_cmd("sma")
|
||||
mt.add_cmd("wma")
|
||||
mt.add_cmd("hma")
|
||||
mt.add_cmd("zlma")
|
||||
mt.add_cmd("sma")
|
||||
mt.add_cmd("vwap")
|
||||
mt.add_cmd("wma")
|
||||
mt.add_cmd("zlma")
|
||||
mt.add_info("_momentum_")
|
||||
mt.add_cmd("cci")
|
||||
mt.add_cmd("cg")
|
||||
mt.add_cmd("demark")
|
||||
mt.add_cmd("fisher")
|
||||
mt.add_cmd("macd")
|
||||
mt.add_cmd("rsi")
|
||||
mt.add_cmd("stoch")
|
||||
mt.add_cmd("fisher")
|
||||
mt.add_cmd("cg")
|
||||
mt.add_info("_trend_")
|
||||
mt.add_cmd("adx")
|
||||
mt.add_cmd("aroon")
|
||||
mt.add_info("_volatility_")
|
||||
mt.add_cmd("atr")
|
||||
mt.add_cmd("bbands")
|
||||
mt.add_cmd("donchian")
|
||||
mt.add_cmd("kc")
|
||||
@@ -1371,3 +1379,98 @@ class TechnicalAnalysisController(CryptoBaseController):
|
||||
if ns_parser.sheet_name
|
||||
else None,
|
||||
)
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def call_demark(self, other_args: List[str]):
|
||||
"""Process demark command"""
|
||||
parser = argparse.ArgumentParser(
|
||||
add_help=False,
|
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
||||
prog="demark",
|
||||
description="Calculates the Demark sequential indicator.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-m",
|
||||
"--min",
|
||||
help="Minimum value of indicator to show (declutters plot).",
|
||||
dest="min_to_show",
|
||||
type=check_positive,
|
||||
default=5,
|
||||
)
|
||||
|
||||
ns_parser = self.parse_known_args_and_warn(
|
||||
parser, other_args, EXPORT_BOTH_RAW_DATA_AND_FIGURES
|
||||
)
|
||||
if ns_parser:
|
||||
if not self.coin:
|
||||
no_ticker_message()
|
||||
return
|
||||
momentum_view.display_demark(
|
||||
self.stock,
|
||||
self.coin.upper(),
|
||||
min_to_show=ns_parser.min_to_show,
|
||||
export=ns_parser.export,
|
||||
sheet_name=" ".join(ns_parser.sheet_name)
|
||||
if ns_parser.sheet_name
|
||||
else None,
|
||||
)
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def call_atr(self, other_args: List[str]):
|
||||
"""Process atr command"""
|
||||
parser = argparse.ArgumentParser(
|
||||
add_help=False,
|
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
||||
prog="atr",
|
||||
description="""
|
||||
Averge True Range is used to measure volatility, especially volatility caused by
|
||||
gaps or limit moves.
|
||||
""",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-l",
|
||||
"--length",
|
||||
action="store",
|
||||
dest="n_length",
|
||||
type=check_positive,
|
||||
default=14,
|
||||
help="Window length",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-m",
|
||||
"--mamode",
|
||||
action="store",
|
||||
dest="s_mamode",
|
||||
default="ema",
|
||||
choices=volatility_model.MAMODES,
|
||||
help="mamode",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-o",
|
||||
"--offset",
|
||||
action="store",
|
||||
dest="n_offset",
|
||||
type=int,
|
||||
default=0,
|
||||
help="offset",
|
||||
)
|
||||
|
||||
ns_parser = self.parse_known_args_and_warn(
|
||||
parser, other_args, EXPORT_BOTH_RAW_DATA_AND_FIGURES
|
||||
)
|
||||
|
||||
if ns_parser:
|
||||
if not self.coin:
|
||||
no_ticker_message()
|
||||
return
|
||||
volatility_view.display_atr(
|
||||
data=self.stock,
|
||||
symbol=self.coin.upper(),
|
||||
window=ns_parser.n_length,
|
||||
mamode=ns_parser.s_mamode,
|
||||
offset=ns_parser.n_offset,
|
||||
export=ns_parser.export,
|
||||
sheet_name=" ".join(ns_parser.sheet_name)
|
||||
if ns_parser.sheet_name
|
||||
else None,
|
||||
)
|
||||
|
||||
2
openbb_terminal/miscellaneous/i18n/en.yml
vendored
2
openbb_terminal/miscellaneous/i18n/en.yml
vendored
@@ -641,6 +641,7 @@ en:
|
||||
crypto/ta/vwap: volume weighted average price
|
||||
crypto/ta/_momentum_: Momentum
|
||||
crypto/ta/cci: commodity channel index
|
||||
crypto/ta/demark: Tom Demark's sequential indicator
|
||||
crypto/ta/macd: moving average convergence/divergence
|
||||
crypto/ta/rsi: relative strength index
|
||||
crypto/ta/stoch: stochastic oscillator
|
||||
@@ -650,6 +651,7 @@ en:
|
||||
crypto/ta/adx: average directional movement index
|
||||
crypto/ta/aroon: aroon indicator
|
||||
crypto/ta/_volatility_: Volatility
|
||||
crypto/ta/atr: average true range
|
||||
crypto/ta/bbands: bollinger bands
|
||||
crypto/ta/donchian: donchian channels
|
||||
crypto/ta/kc: keltner channels
|
||||
|
||||
@@ -539,4 +539,5 @@ ta.stoch,openbb_terminal.common.technical_analysis.momentum_model.stoch,openbb_t
|
||||
ta.vwap,openbb_terminal.common.technical_analysis.overlap_model.vwap,openbb_terminal.common.technical_analysis.overlap_view.view_vwap
|
||||
ta.wma,openbb_terminal.common.technical_analysis.overlap_model.wma,
|
||||
ta.zlma,openbb_terminal.common.technical_analysis.overlap_model.zlma,
|
||||
ta.cones,openbb_terminal.common.technical_analysis.volatility_model.rvol,openbb_terminal.common.technical_analysis.volatility_view.display_rvol
|
||||
whoami,openbb_terminal.session.sdk_session.whoami,
|
||||
|
||||
|
@@ -46,8 +46,8 @@ class TaRoot(Category):
|
||||
`obv_chart`: Plots OBV technical indicator\n
|
||||
`rsi`: Relative strength index\n
|
||||
`rsi_chart`: Plots RSI Indicator\n
|
||||
`rvol`: Realized Volatility Cones\n
|
||||
`rvol_chart`: Plots Realized Volatility Cones\n
|
||||
`cones`: Realized Volatility Cones\n
|
||||
`cones_chart`: Plots Realized Volatility Cones\n
|
||||
`sma`: Gets simple moving average (SMA) for stock\n
|
||||
`stoch`: Stochastic oscillator\n
|
||||
`stoch_chart`: Plots stochastic oscillator signal\n
|
||||
@@ -99,8 +99,8 @@ class TaRoot(Category):
|
||||
self.obv_chart = lib.common_ta_volume_view.display_obv
|
||||
self.rsi = lib.common_ta_momentum_model.rsi
|
||||
self.rsi_chart = lib.common_ta_momentum_view.display_rsi
|
||||
self.rvol = lib.common_ta_volatility_model.rvol
|
||||
self.rvol_chart = lib.common_ta_volatility_view.display_rvol
|
||||
self.cones = lib.common_ta_volatility_model.rvol
|
||||
self.cones_chart = lib.common_ta_volatility_view.display_rvol
|
||||
self.sma = lib.common_ta_overlap_model.sma
|
||||
self.stoch = lib.common_ta_momentum_model.stoch
|
||||
self.stoch_chart = lib.common_ta_momentum_view.display_stoch
|
||||
|
||||
Reference in New Issue
Block a user