def __init__(self, **kwargs): super(VCBroker, self).__init__() self.store = vcstore.VCStore(**kwargs) # Account data self._acc_name = None self.startingcash = self.cash = 0.0 self.startingvalue = self.value = 0.0 # Position accounting self._lock_pos = threading.Lock() # sync account updates self.positions = collections.defaultdict(Position) # actual positions # Order storage self._lock_orders = threading.Lock() # control access self.orderbyid = dict() # orders by order id # Notifications self.notifs = collections.deque() # Dictionaries of values for order mapping self._otypes = { Order.Market: self.store.vcctmod.OT_Market, Order.Close: self.store.vcctmod.OT_Market, Order.Limit: self.store.vcctmod.OT_Limit, Order.Stop: self.store.vcctmod.OT_StopMarket, Order.StopLimit: self.store.vcctmod.OT_StopLimit, } self._osides = { Order.Buy: self.store.vcctmod.OS_Buy, Order.Sell: self.store.vcctmod.OS_Sell, } self._otrestriction = { Order.T_None: self.store.vcctmod.TR_NoRestriction, Order.T_Date: self.store.vcctmod.TR_Date, Order.T_Close: self.store.vcctmod.TR_CloseAuction, Order.T_Day: self.store.vcctmod.TR_Session, } self._ovrestriction = { Order.V_None: self.store.vcctmod.VR_NoRestriction, } self._futlikes = ( self.store.vcdsmod.IT_Future, self.store.vcdsmod.IT_Option, self.store.vcdsmod.IT_Fund, )
def __init__(self, **kwargs): self.store = vcstore.VCStore(**kwargs) # Correct a copy past directly from VisualChart dataname = self.p.dataname if dataname[3].isspace(): dataname = dataname[0:2] + dataname[4:] self.p.dataname = dataname self._dataname = '010' + self.p.dataname self._mktcode = self.p.dataname[0:3] self._tradename = tradename = self.p.tradename or self._dataname # Correct a copy past directly from VisualChart if tradename[3].isspace(): tradename = tradename[0:2] + tradename[4:] self._tradename = tradename