class_docstr: Commissions are calculated by ib, but the trades calculations in the
  ```Strategy`` rely on the order carrying a CommInfo object attached for the
  calculation of the operation cost and value.
  
  These are non-critical informations, but removing them from the trade could
  break existing usage and it is better to provide a CommInfo objet which
  enables those calculations even if with approvimate values.
  
  The margin calculation is not a known in advance information with IB
  (margin impact can be gotten from OrderState objects) and therefore it is
  left as future exercise to get it
class_docstr_tok: ["Commissions","are","calculated","by","ib",",","but","the","trades","calculations","in","the","``","`","Strategy","``","rely","on","the","order","carrying","a","CommInfo","object","attached","for","the","calculation","of","the","operation","cost","and","value",".","These","are","non-critical","informations",",","but","removing","them","from","the","trade","could","break","existing","usage","and","it","is","better","to","provide","a","CommInfo","objet","which","enables","those","calculations","even","if","with","approvimate","values",".","The","margin","calculation","is","not","a","known","in","advance","information","with","IB","(","margin","impact","can","be","gotten","from","OrderState","objects",")","and","therefore","it","is","left","as","future","exercise","to","get","it"]
docstr: Returns the needed amount of cash an operation would cost
docstr_tok: ["Returns","the","needed","amount","of","cash","an","operation","would","cost"]
code: def getoperationcost(self, size, price):
      """Returns the needed amount of cash an operation would cost"""
      # Same reasoning as above
      return abs(size) * price
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import collections
  from copy import copy
  from datetime import date, datetime, timedelta
  import threading
  import uuid
  import ib.ext.Order
  import ib.opt
  from backtrader.feed import DataBase
  from backtrader import TimeFrame, num2date, date2num, BrokerBase, Order, OrderBase, OrderData
  from backtrader.utils.py3 import bytes, bstr, with_metaclass, queue, MAXFLOAT
  from backtrader.metabase import MetaParams
  from backtrader.comminfo import CommInfoBase
  from backtrader.position import Position
  from backtrader.stores import ibstore
  from backtrader.utils import AutoDict, AutoOrderedDict
  from backtrader.comminfo import CommInfoBase
label_desc: Use image node_id 2 for calling the IBCommInfo obj's underlying member method code with example usage: obj.getoperationcost(size, price) and returns: unknown