Пример #1
0
    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()
Пример #2
0
    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())
Пример #3
0
    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()
Пример #4
0
 def __init__(self):
     self._time_series_ops = Mediator.get_time_series_ops()
     self._util_func = Mediator.get_util_func()
Пример #5
0
    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