code: def logdata(self):
      txt = []
      txt.append("{}".format(len(self)))
      txt.append(
          "{}".format(self.data.datetime.datetime(0).isoformat())
      )
      txt.append(" open BID: " + "{}".format(self.datas[0].open[0]))
      txt.append(" open ASK: " + "{}".format(self.datas[1].open[0]))
      txt.append(" high BID: " + "{}".format(self.datas[0].high[0]))
      txt.append(" high ASK: " + "{}".format(self.datas[1].high[0]))
      txt.append(" low BID: " + "{}".format(self.datas[0].low[0]))
      txt.append(" low ASK: " + "{}".format(self.datas[1].low[0]))
      txt.append(" close BID: " + "{}".format(self.datas[0].close[0]))
      txt.append(" close ASK: " + "{}".format(self.datas[1].close[0]))
      txt.append(" volume: " + "{:.2f}".format(self.data.volume[0]))
      print(",".join(txt))
  
file_path: backtrader/samples/ib-cash-bid-ask/ib-cash-bid-ask.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import backtrader
  import datetime
label_desc: Use image node_id 1 for calling the St obj's underlying member method code with example usage: obj.logdata() without return types