class_docstr: # Watchlist Class (** This is subject to change! **)
  A simple Class to load/download financial market data and automatically
  apply Technical Analysis indicators with a Pandas TA Strategy.
  
  Default Strategy: pandas_ta.CommonStrategy
  
  ## Package Support:
  ### Data Source (Default: AlphaVantage)
  - AlphaVantage (pip install alphaVantage-api).
  - Python Binance (pip install python-binance). # Future Support
  - Yahoo Finance (pip install yfinance). # Almost Supported
  
  # Technical Analysis:
  - Pandas TA (pip install pandas_ta)
  
  ## Required Arguments:
  - tickers: A list of strings containing tickers. Example: ["SPY", "AAPL"]
class_docstr_tok: ["#","Watchlist","Class","(","*","*","This","is","subject","to","change","!","*","*",")","A","simple","Class","to","load\/download","financial","market","data","and","automatically","apply","Technical","Analysis","indicators","with","a","Pandas","TA","Strategy",".","Default","Strategy",":","pandas_ta.CommonStrategy","#","#","Package","Support",":","#","#","#","Data","Source","(","Default",":","AlphaVantage",")","-","AlphaVantage","(","pip","install","alphaVantage-api",")",".","-","Python","Binance","(","pip","install","python-binance",")",".","#","Future","Support","-","Yahoo","Finance","(","pip","install","yfinance",")",".","#","Almost","Supported","#","Technical","Analysis",":","-","Pandas","TA","(","pip","install","pandas_ta",")","#","#","Required","Arguments",":","-","tickers",":","A","list","of","strings","containing","tickers",".","Example",":","[","``","SPY","''",",","``","AAPL","''","]"]
code: def _plot(
      self, df, mas: bool = True, constants: bool = False, **kwargs
  ) -> None:
      if constants:
          chart_lines = npAppend(
              npArange(-5, 6, 1), npArange(-100, 110, 10)
          )
          df.ta.constants(
              True, chart_lines
          )  # Adding the constants for the charts
          df.ta.constants(
              False, npArray([-60, -40, 40, 60])
          )  # Removing some constants from the DataFrame
          if self.verbose:
              print(f"[i] {df.ticker} constants added.")
  
      if ta.Imports["matplotlib"]:
          _exchange = kwargs.pop("exchange", "NYSE")
          _time = ta.get_time(_exchange, to_string=True)
          _kind = kwargs.pop("plot_kind", None)
          _figsize = kwargs.pop("figsize", (16, 10))
          _colors = kwargs.pop(
              "figsize", ["black", "green", "orange", "red", "maroon"]
          )
          _grid = kwargs.pop("grid", True)
          _alpha = kwargs.pop("alpha", 1)
          _last = kwargs.pop("last", 252)
          _title = kwargs.pop(
              "title", f"{df.ticker}   {_time}   [{self.ds_name}]"
          )
  
          col = kwargs.pop("close", "close")
          if mas:
              # df.ta.strategy(self.strategy, append=True)
              price = df[[col, "SMA_10", "SMA_20", "SMA_50", "SMA_200"]]
          else:
              price = df[col]
  
          if _kind is None:
              price.tail(_last).plot(
                  figsize=_figsize,
                  color=_colors,
                  linewidth=2,
                  title=_title,
                  grid=_grid,
                  alpha=_alpha,
              )
          else:
              print(f"[X] Plot kind not implemented")
              return
  
imports: import datetime
  from pathlib import Path
  from random import random
  from typing import Tuple
  import pandas
  from pandas_datareader import data
  import yfinance
  from numpy import arange
  from numpy import append
  from numpy import array
  import alphaVantageAPI
  import pandas_ta
label_desc: Use image node_id 5 for calling the Watchlist obj's underlying member method code with example usage: obj._plot(df, mas, constants) without return types