paper engine: use the `fqme` for the `bs_mktid`
Instead of stripping the broker part just use the full fqme for all `Transaction.bs_mktid: str` values since it makes indexing the `PpTable` much easier with less key mangling..pre_overruns_ctxcancelled
							parent
							
								
									c44627ab52
								
							
						
					
					
						commit
						44ff2fd60f
					
				| 
						 | 
					@ -249,8 +249,10 @@ class PaperBoi(Struct):
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
            await self.ems_trades_stream.send(msg)
 | 
					            await self.ems_trades_stream.send(msg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # lookup any existing position
 | 
					        # NOTE: for paper we set the "bs_mktid" as just the fqme since
 | 
				
			||||||
        key = fqme.rstrip(f'.{self.broker}')
 | 
					        # we don't actually have any unique backend symbol ourselves
 | 
				
			||||||
 | 
					        # other then this thing, our fqme address.
 | 
				
			||||||
 | 
					        bs_mktid: str = fqme
 | 
				
			||||||
        t = Transaction(
 | 
					        t = Transaction(
 | 
				
			||||||
            fqsn=fqme,
 | 
					            fqsn=fqme,
 | 
				
			||||||
            sym=self._syms[fqme],
 | 
					            sym=self._syms[fqme],
 | 
				
			||||||
| 
						 | 
					@ -259,7 +261,7 @@ class PaperBoi(Struct):
 | 
				
			||||||
            price=price,
 | 
					            price=price,
 | 
				
			||||||
            cost=0,  # TODO: cost model
 | 
					            cost=0,  # TODO: cost model
 | 
				
			||||||
            dt=pendulum.from_timestamp(fill_time_s),
 | 
					            dt=pendulum.from_timestamp(fill_time_s),
 | 
				
			||||||
            bs_mktid=key,
 | 
					            bs_mktid=bs_mktid,
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        tx = t.to_dict()
 | 
					        tx = t.to_dict()
 | 
				
			||||||
| 
						 | 
					@ -270,17 +272,19 @@ class PaperBoi(Struct):
 | 
				
			||||||
        self.ppt.update_from_trans({oid: t})
 | 
					        self.ppt.update_from_trans({oid: t})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # transmit pp msg to ems
 | 
					        # transmit pp msg to ems
 | 
				
			||||||
        pp = self.ppt.pps[key]
 | 
					        pp = self.ppt.pps[bs_mktid]
 | 
				
			||||||
        pp_msg = BrokerdPosition(
 | 
					        pp_msg = BrokerdPosition(
 | 
				
			||||||
            broker=self.broker,
 | 
					            broker=self.broker,
 | 
				
			||||||
            account='paper',
 | 
					            account='paper',
 | 
				
			||||||
            symbol=fqme,
 | 
					            symbol=fqme,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            size=pp.size,
 | 
				
			||||||
 | 
					            avg_price=pp.ppu,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # TODO: we need to look up the asset currency from
 | 
					            # TODO: we need to look up the asset currency from
 | 
				
			||||||
            # broker info. i guess for crypto this can be
 | 
					            # broker info. i guess for crypto this can be
 | 
				
			||||||
            # inferred from the pair?
 | 
					            # inferred from the pair?
 | 
				
			||||||
            currency=key,
 | 
					            # currency=bs_mktid,
 | 
				
			||||||
            size=pp.size,
 | 
					 | 
				
			||||||
            avg_price=pp.ppu,
 | 
					 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        await self.ems_trades_stream.send(pp_msg)
 | 
					        await self.ems_trades_stream.send(pp_msg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue