Round spread (slap) offset to min tick digits
							parent
							
								
									8d1eb81f16
								
							
						
					
					
						commit
						35b097469b
					
				|  | @ -46,6 +46,7 @@ from ..data._normalize import iterticks | |||
| from ..data._source import ( | ||||
|     unpack_fqsn, | ||||
|     mk_fqsn, | ||||
|     float_digits, | ||||
| ) | ||||
| from ..data.feed import ( | ||||
|     Feed, | ||||
|  | @ -1249,6 +1250,7 @@ async def process_client_order_cmds( | |||
| 
 | ||||
|                 spread_slap: float = 5 | ||||
|                 min_tick = flume.symbol.tick_size | ||||
|                 min_tick_digits = float_digits(min_tick) | ||||
| 
 | ||||
|                 if action == 'buy': | ||||
|                     tickfilter = ('ask', 'last', 'trade') | ||||
|  | @ -1257,12 +1259,18 @@ async def process_client_order_cmds( | |||
|                     # TODO: we probably need to scale this based | ||||
|                     # on some near term historical spread | ||||
|                     # measure? | ||||
|                     abs_diff_away = spread_slap * min_tick | ||||
|                     abs_diff_away = round( | ||||
|                         spread_slap * min_tick, | ||||
|                         ndigits=min_tick_digits, | ||||
|                     ) | ||||
| 
 | ||||
|                 elif action == 'sell': | ||||
|                     tickfilter = ('bid', 'last', 'trade') | ||||
|                     percent_away = -0.005 | ||||
|                     abs_diff_away = -spread_slap * min_tick | ||||
|                     abs_diff_away = round( | ||||
|                         -spread_slap * min_tick, | ||||
|                         ndigits=min_tick_digits, | ||||
|                     ) | ||||
| 
 | ||||
|                 else:  # alert | ||||
|                     tickfilter = ('trade', 'utrade', 'last') | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue