def __init__(self, tables_dict={}, scalar=1, round_figures_by=None): self._tables_dict = tables_dict self._scalar = scalar self._round_figures_by = round_figures_by self._time_series_ops = Mediator.get_time_series_ops() self._util_func = Mediator.get_util_func()
def keys(self): """Returns the names of all the market or trades/orders stored internally. Returns ------- str (list) """ return Mediator.get_util_func().dict_key_list(self._df_dict.keys())
def __init__(self, trade_order_list=None, metric_name=None, aggregate_by_field=None, aggregation_metric='mean', tag_value_combinations={}): if not(isinstance(trade_order_list, list)) and trade_order_list is not None: trade_order_list = [trade_order_list] self._trade_order_list = trade_order_list self._metric_name = metric_name self._aggregate_by_field = aggregate_by_field self._aggregation_metric = aggregation_metric self._results_summary = ResultsSummary() self._tag_value_combinations = tag_value_combinations self._trade_order_filter_tag = TradeOrderFilterTag() self._util_func = Mediator.get_util_func() self._time_series_ops = Mediator.get_time_series_ops()
def __init__(self): self._time_series_ops = Mediator.get_time_series_ops() self._util_func = Mediator.get_util_func()
def get_dataframe_by_key(self, key, combined=True, start_date=None, finish_date=None): """Gets a specific trade/order and combine it into a single DataFrame. Parameters ---------- key : str Which market data ticker or trades/order to return combined : True Should we combine all the market data for a specific ticker or trades (or orders) into a single DataFrame before returning? Returns ------- DataFrame """ if key in self._df_dict.keys(): dataframe_key_list = self._df_dict[key] if 'df' in key: try: df = Mediator.get_volatile_cache( version=tcapy_version).get_dataframe_handle( Mediator.get_util_func().flatten_list_of_lists( dataframe_key_list), burn_after_reading=True) except Exception as e: # print("DATAFRAMEHOLDER ERROR" + str(e)) df = dataframe_key_list if combined: df = Mediator.get_time_series_ops().concat_dataframe_list( df) if df is not None: if not (df.empty): df = df.sort_index() if start_date is not None and finish_date is not None: df = Mediator.get_time_series_ops( ).filter_start_finish_dataframe(df, start_date, finish_date) return df # elif 'fig' in key: # try: # df = self._volatile_cache.get_dataframe_handle( # self._util_func.flatten_list_of_lists(dataframe_key_list), burn_after_reading=True) # except: # df = dataframe_key_list # # if combined: # # xy_dict = {} # # for fig in df: # for trace in fig['data']: # name = trace['name'] # # xy_dict[name + '_x'] = [] # xy_dict[name + '_y'] = [] # xy_dict['trace_name_list'] = [] # # for fig in df: # for trace in fig['data']: # name = trace['name'] # # xy_dict[name + '_x'].append(trace['x']) # xy_dict[name + '_y'].append(trace['y']) # # if name not in xy_dict['trace_name_list']: # xy_dict['trace_name_list'].append(name) # # fig = df[0] # # # aggregate all the x & y values # for i in range(0, len(fig['data'])): # name = fig['data'][i]['name'] # # for j in range(1, len(xy_dict[name + '_x'])): # fig['data'][i]['x'].extend(xy_dict[name + '_x']) # fig['data'][i]['y'].extend(xy_dict[name + '_y']) # # return fig else: # otherwise different type of metadata (don't attempt to combine it) try: df = Mediator.get_volatile_cache( version=tcapy_version).get_dataframe_handle( Mediator.get_util_func().flatten_list_of_lists( dataframe_key_list), burn_after_reading=True) except Exception as e: print(e) df = dataframe_key_list if isinstance(df, list): return df[0] return df return None