class_docstr: Keeps and updates the size and price of a position. The object has no
  relationship to any asset. It only keeps size and price.
  
  Member Attributes:
    - size (int): current size of the position
    - price (float): current price of the position
  
  The Position instances can be tested using len(position) to see if size
  is not null
class_docstr_tok: ["Keeps","and","updates","the","size","and","price","of","a","position",".","The","object","has","no","relationship","to","any","asset",".","It","only","keeps","size","and","price",".","Member","Attributes",":","-","size","(","int",")",":","current","size","of","the","position","-","price","(","float",")",":","current","price","of","the","position","The","Position","instances","can","be","tested","using","len","(","position",")","to","see","if","size","is","not","null"]
code: def __str__(self):
      items = list()
      items.append("--- Position Begin")
      items.append("- Size: {}".format(self.size))
      items.append("- Price: {}".format(self.price))
      items.append("- Price orig: {}".format(self.price_orig))
      items.append("- Closed: {}".format(self.upclosed))
      items.append("- Opened: {}".format(self.upopened))
      items.append("- Adjbase: {}".format(self.adjbase))
      items.append("--- Position End")
      return "\n".join(items)
  
file_path: backtrader/backtrader/position.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  from copy import copy
label_desc: Use image node_id 1 for calling the Position obj's underlying member method code with example usage: obj.__str__() and returns: str