async def _refresh_data(self, time_frame, symbol, limit=None, notify=True): evaluator_task_manager_to_notify = self.evaluator_task_manager_by_time_frame_by_symbol[ time_frame][symbol] numpy_candle_data = copy.deepcopy( await evaluator_task_manager_to_notify.exchange.get_symbol_prices( evaluator_task_manager_to_notify.symbol, evaluator_task_manager_to_notify.time_frame, limit=limit, return_list=False)) if self.in_backtesting: # dev tool: # can be used to stop backtesting on a given candle before technical evaluators update # (set target_candle_date to the date of the wanted candle in web interface in %d/%m/%y %H:%M format) # ex: target_candle_date = "8/04/19 06" target_candle_date = "" if target_candle_date: from tools.timestamp_util import convert_timestamp_to_datetime if target_candle_date in convert_timestamp_to_datetime( numpy_candle_data[0][-1]): print("found candle") evaluator_task_manager_to_notify.evaluator.set_data(numpy_candle_data) self.refreshed_times[time_frame][symbol] += 1 if notify: await evaluator_task_manager_to_notify.notify( self.__class__.__name__)
def trade_pretty_printer(trade): currency = trade.currency market = trade.market try: order_type_name = trade.order_type.name except AttributeError: try: order_type_name = OrderConstants.TraderOrderTypeClasses[ trade.order_type].__name__ except KeyError: order_type_name = trade.order_type.__class__.__name__ return "{0}: {1} {2} at {3} {4} on {5}: {6} ".format( order_type_name, PrettyPrinter.get_min_string_from_number(trade.quantity), currency, PrettyPrinter.get_min_string_from_number(trade.price), market, trade.exchange.get_name(), convert_timestamp_to_datetime(trade.filled_time))
def open_order_pretty_printer(order): currency, market = order.get_currency_and_market() try: order_type_name = order.get_order_type().name except AttributeError: try: order_type_name = OrderConstants.TraderOrderTypeClasses[ order.get_order_type()].__name__ except KeyError: order_type_name = order.get_order_type().__class__.__name__ return "{0}: {1} {2} at {3} {4} on {5}: {6} ".format( order_type_name, PrettyPrinter.get_min_string_from_number( order.get_origin_quantity()), currency, PrettyPrinter.get_min_string_from_number(order.get_origin_price()), market, order.get_exchange().get_name(), convert_timestamp_to_datetime(order.get_creation_time()))
def _format_trades(trade_history): trade_time_key = "time" trade_price_key = "price" trade_description_key = "trade_description" trade_order_side_key = "order_side" trades = { trade_time_key: [], trade_price_key: [], trade_description_key: [], trade_order_side_key: [] } for trade in trade_history: trades[trade_time_key].append(convert_timestamp_to_datetime(trade.filled_time, time_format="%y-%m-%d %H:%M:%S")) trades[trade_price_key].append(trade.price) trades[trade_description_key].append(f"{trade.order_type.name}: {trade.quantity}") trades[trade_order_side_key].append(trade.side.value) return trades
def _format_trades(trade_history): trade_time_key = "time" trade_price_key = "price" trade_description_key = "trade_description" trade_order_side_key = "order_side" trades = { trade_time_key: [], trade_price_key: [], trade_description_key: [], trade_order_side_key: [] } for trades_per_trader in trade_history: for trade in trades_per_trader: trades[trade_time_key].append(convert_timestamp_to_datetime(trade.get_filled_time(), time_format="%y-%m-%d %H:%M:%S")) trades[trade_price_key].append(trade.get_price()) trades[trade_description_key].append(f"{trade.get_order_type().name}: {trade.get_quantity()}") trades[trade_order_side_key].append(trade.get_side().value) return trades
def command_ping(_, update): update.message.reply_text("I'm alive since {0}.".format( convert_timestamp_to_datetime(get_bot().get_start_time(), '%Y-%m-%d %H:%M:%S')))