class_docstr: VisualChart Data Feed.
  
  Params:
  
    - ``qcheck`` (default: ``0.5``)
      Default timeout for waking up to let a resampler/replayer that the
      current bar can be check for due delivery
  
      The value is only used if a resampling/replaying filter has been
      inserted in the data
  
    - ``historical`` (default: ``False``)
      If no ``todate`` parameter is supplied (defined in the base class),
      this will force a historical only download if set to ``True``
  
      If ``todate`` is supplied the same effect is achieved
  
    - ``milliseconds`` (default: ``True``)
      The bars constructed by *Visual Chart* have this aspect:
      HH:MM:59.999000
  
      If this parameter is ``True`` a millisecond will be added to this time
      to make it look like: HH::MM + 1:00.000000
  
    - ``tradename`` (default: ``None``)
      Continous futures cannot be traded but are ideal for data tracking. If
      this parameter is supplied it will be the name of the current future
      which will be the trading asset. Example:
  
      - 001ES -> ES-Mini continuous supplied as ``dataname``
  
      - ESU16 -> ES-Mini 2016-09. If this is supplied in ``tradename`` it
        will be the trading asset.
  
    - ``usetimezones`` (default: ``True``)
      For most markets the time offset information provided by *Visual Chart*
      allows for datetime to be converted to market time (*backtrader* choice
      for representation)
  
      Some markets are special (``096``) and need special internal coverage
      and timezone support to display in the user expected market time.
  
      If this parameter is set to ``True`` importing ``pytz`` will be
      attempted to use timezones (default)
  
      Disabling it will remove timezone usage (may help if the load is
      excesive)
docstr: Returns the default output timezone for the data
  
  This defaults to be the timezone in which the market is traded
docstr_tok: ["Returns","the","default","output","timezone","for","the","data","This","defaults","to","be","the","timezone","in","which","the","market","is","traded"]
code: def _gettz(self, tzin=False):
      """Returns the default output timezone for the data
  
      This defaults to be the timezone in which the market is traded
      """
      # If no object has been provided by the user and a timezone can be
      # found via contractdtails, then try to get it from pytz, which may or
      # may not be available.
  
      # The timezone specifications returned by TWS seem to be abbreviations
      # understood by pytz, but the full list which TWS may return is not
      # documented and one of the abbreviations may fail
      ptz = self.p.tz
      tzstr = isinstance(ptz, string_types)
      if ptz is not None and not tzstr:
          return bt.utils.date.Localizer(ptz)
  
      if self._state == self._ST_NOTFOUND:
          return None  # nothing else can be done
  
      if not self.p.usetimezones:
          return None
  
      try:
          import pytz  # keep the import very local
      except ImportError:
          return None  # nothing can be done
  
      # dataname 010ABCXXXXX -> ABC (3, 4 and 5) is market code
      if tzstr:
          tzs = ptz
      else:
          tzs = None
  
          if not tzin:
              if self.p.dataname in self._TZOUT:
                  tzs = self._TZOUT[self.p.dataname]
  
          if tzs is None:
              for mktz, mktcodes in self._TZS.items():
                  if self._mktcode in mktcodes:
                      tzs = mktz
                      break
  
          if tzs is None:
              return None
  
          if isinstance(tzs, tzinfo):
              return bt.utils.date.Localizer(tzs)
  
      if tzs:
          try:
              tz = pytz.timezone(tzs)
          except pytz.UnknownTimeZoneError:
              return None  # nothing can be done
      else:
          return None
  
      # contractdetails there, import ok, timezone found, return it
      return tz
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  from datetime import datetime, timedelta, tzinfo
  import backtrader
  from backtrader import TimeFrame, date2num, num2date
  from backtrader.feed import DataBase
  from backtrader.metabase import MetaParams
  from backtrader.utils.py3 import integer_types, queue, string_types, with_metaclass
  from backtrader.stores import vcstore
label_desc: Use image node_id 3 for calling the VCData obj's underlying member method code with example usage: obj._gettz(tzin) and returns: tz, bt, None, None, None, None, None, bt, None