Пример #1
0
    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)
Пример #2
0
    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
                      })
Пример #3
0
    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
Пример #4
0
    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
                      })
Пример #5
0
    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
                      })
Пример #6
0
    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
                      })
Пример #7
0
    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
Пример #8
0
    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
Пример #9
0
    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
Пример #10
0
 def getPgDb(self):
     if self.pgdb == None:
         self.pgdb = PgPool.getInstance()
     return self.pgdb