def __init__(self, orderInfo=None): self.pgpool = PgPool.getInstance() self.pkey = None #exchange order id self.ref_id = None #id this trade is associated with self.assoc_id = None self.order_type = None self.created_by = None self.created_ts = None self.exchange = None self.market = None self.rate = 0 self.qty = 0 self.status = 0 self.meta = {} #temp data self.upforsale = None if orderInfo is not None: self.dbdata = orderInfo self.deserialize(orderInfo)
def findById(val): orders = [] res = PgPool.getInstance().select( """SELECT * FROM markets.orders WHERE id=%s """, [val]) for order in res: orders.append(Order.create(order)) return Result(len(orders) > 0, data={ "found": len(orders), "results": orders })
def load_by_id(val): pg = PgPool.getInstance() cur = pg.get_dict_cursor() cur.execute("""SELECT * FROM markets.trades WHERE id=%s """, [val]) res = cur.fetchall() cur.close() newTrades = [] for trade in res: newTrades += [Trade(trade)] return newTrades
def findAll(val): orders = [] res = PgPool.getInstance().select( """SELECT * FROM markets.orders WHERE not disabled and status!=%s""", [Order.COMPLETED]) for order in res: orders.append(Order.create(order)) return Result(len(orders) > 0, data={ "found": len(orders), "results": orders })
def findByBotActive(botname, market, exchange): orders = [] res = PgPool.getInstance().select( """SELECT * FROM markets.orders WHERE created_by=%s AND market=%s AND exchange=%s AND status < %s""", [botname, market, exchange, Order.COMPLETED]) for order in res: orders.append(Order.create(order)) return Result(len(orders) > 0, data={ "found": len(orders), "results": orders })
def findByBotStatus(botname, market, status): orders = [] res = PgPool.getInstance().select( """SELECT * FROM markets.orders WHERE created_by=%s AND market=%s AND status=%s""", [botname, market, status]) for order in res: orders.append(Order.create(order)) return Result(len(orders) > 0, data={ "found": len(orders), "results": orders })
def load_by_manager(manager, market, active=True): pg = PgPool.getInstance() cur = pg.get_dict_cursor() cur.execute( """SELECT * FROM markets.trades WHERE managed_by=%s and market=%s and active=%s """, [manager, market, active]) res = cur.fetchall() cur.close() newTrades = [] for trade in res: newTrades += [Trade(trade)] return newTrades
def load_by_status(status, active=True): pg = PgPool.getInstance() cur = pg.get_dict_cursor() cur.execute( """SELECT * FROM markets.trades WHERE active=%s and status=%s """, [active, status]) res = cur.fetchall() cur.close() newTrades = [] for trade in res: newTrades += [Trade(trade)] return newTrades
def __init__(self, tdata={}): self.demo = False self.log = logging.getLogger('crypto') self.exchange = Exchange.getInstance() self.dbdata = tdata self.unserialize(tdata) self.exman = ExchangeManager() self.pgpool = PgPool.getInstance() #protections self.max_trade_quantity = 0.01 self.max_trade_frequency = 120 #seconds self.increase_goal = 0.01 self.hold = False
def getPgDb(self): if self.pgdb == None: self.pgdb = PgPool.getInstance() return self.pgdb