class_docstr: Support for `Visual Chart <www.visualchart.com>`_ binary on-disk files for
  both daily and intradaily formats.
  
  Note:
  
    - ``dataname``: to file or open file-like object
  
      If a file-like object is passed, the ``timeframe`` parameter will be
      used to determine which is the actual timeframe.
  
      Else the file extension (``.fd`` for daily and ``.min`` for intraday)
      will be used.
class_docstr_tok: ["Support","for","`","Visual","Chart","<","www.visualchart.com",">","`","_","binary","on-disk","files","for","both","daily","and","intradaily","formats",".","Note",":","-","``","dataname","``",":","to","file","or","open","file-like","object","If","a","file-like","object","is","passed",",","the","``","timeframe","``","parameter","will","be","used","to","determine","which","is","the","actual","timeframe",".","Else","the","file","extension","(","``",".fd","``","for","daily","and","``",".min","``","for","intraday",")","will","be","used","."]
code: def start(self):
      super(VChartData, self).start()
  
      # Not yet known if a extension is needed
      self.ext = ""
  
      if not hasattr(self.p.dataname, "read"):
          # assume is a string because it has no write method
  
          if self.p.dataname.endswith(".fd"):
              self.p.timeframe = TimeFrame.Days
          elif self.p.dataname.endswith(".min"):
              self.p.timeframe = TimeFrame.Minutes
          else:
              # Neither fd nor min ... just the code, assign extension
              if self.p.timeframe == TimeFrame.Days:
                  self.ext = ".fd"
              else:
                  self.ext = ".min"
  
      if self.p.timeframe >= TimeFrame.Days:
          self.barsize = 28
          self.dtsize = 1
          self.barfmt = "IffffII"
      else:
          self.dtsize = 2
          self.barsize = 32
          self.barfmt = "IIffffII"
  
      self.f = None
      if hasattr(self.p.dataname, "read"):
          # A file has been passed in (ex: from a GUI)
          self.f = self.p.dataname
      else:
          dataname = self.p.dataname + self.ext
          # Let an exception propagate
          self.f = open(dataname, "rb")
  
file_path: backtrader/backtrader/feeds/vchart.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import datetime
  import struct
  import os.path
  from ..None import feed
  from ..None import TimeFrame
  from ..utils import date2num
label_desc: Use image node_id 1 for calling the VChartData obj's underlying member method code with example usage: obj.start() without return types