updates SDK trail map and crypto ta_controller

This commit is contained in:
Danglewood
2023-02-22 11:09:42 -08:00
parent f45d3a4428
commit f6f978ba8d
4 changed files with 116 additions and 10 deletions

View File

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

View File

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

View File

@@ -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,
1 trail model view
539 ta.vwap openbb_terminal.common.technical_analysis.overlap_model.vwap openbb_terminal.common.technical_analysis.overlap_view.view_vwap
540 ta.wma openbb_terminal.common.technical_analysis.overlap_model.wma
541 ta.zlma openbb_terminal.common.technical_analysis.overlap_model.zlma
542 ta.cones openbb_terminal.common.technical_analysis.volatility_model.rvol openbb_terminal.common.technical_analysis.volatility_view.display_rvol
543 whoami openbb_terminal.session.sdk_session.whoami

View File

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