Пример #1
0
class BrushTrade():
    def __init__(self, queue):
        self.queue = queue
        self.amount = 0
        self.target_exchange = TargetExchange()

    def trade(self):
        try:
            trades = self.queue.get(block=True, timeout=20)  #接收消息
        except Queue.Empty:
            print("Nothing to do!i will go home!")
            return

        try:
            symbol = ''
            for t in trades:
                symbol = t['symbol']
                self.target_exchange.create_deal_order(account.account_list[0],
                                                       t['symbol'], t['side'],
                                                       float(t['amount']),
                                                       float(t['price']))
                self.amount += float(t['amount'])
                time.sleep(0.1)
            print("work finished! %s amount=%s %s" %
                  (symbol, self.amount, datetime.now()))
            self.queue.task_done()  #完成一个任务
            res = self.queue.qsize()  #判断消息队列大小
            if res > 0:
                print("f**k!There are still %d tasks to do" % (res))
        except Exception:
            print(traceback.format_exc())
        return

    def run(self):
        print('BrushTrade run.')
        while True:
            try:
                self.trade()
                print('=================================')
                # 休眠s
                time.sleep(5)
            except Exception:
                print(traceback.format_exc())
                time.sleep(5)
Пример #2
0
 def __init__(self, queue):
     self.queue = queue
     self.amount = 0
     self.target_exchange = TargetExchange()
     self.account_index = 0
Пример #3
0
class LiquidityTrade():
    def __init__(self, queue):
        self.queue = queue
        self.amount = 0
        self.target_exchange = TargetExchange()
        self.account_index = 0

    def trade(self):
        try:
            order_book = self.queue.get(block=True, timeout=10)  #接收消息
        except Queue.Empty:
            print("Nothing to do!i will go home!")
            return

        if len(order_book) == 0:
            print("order_book is null, Nothing to do! i will go home!")
            return
        symbol = order_book[0]['symbol']

        # 10个账号,轮询使用,先取消前一个账号的订单,再下当前账号新订单,依次往复循环。
        account_cur = account.account_list[self.account_index]
        if self.account_index == 0:
            last_index = len(account.account_list) - 1
        else:
            last_index = self.account_index - 1
        account_last = account.account_list[last_index]
        print(
            "account_index=%d, last_index=%d, account_cur=%d, account_last=%d "
            % (self.account_index, last_index, account_cur, account_last))
        self.account_index += 1
        self.account_index = self.account_index % len(account.account_list)

        try:
            # 获取未成交订单,并取消,可以替换成一个取消所有订单接口
            response = self.target_exchange.get_open_orders(
                account_last, symbol, -1)
            if response is not None:
                json_data = response.json()
                if json_data['state'] == '1':
                    orders = json_data['data']['order_info']
                    for o in orders:
                        self.target_exchange.cancel_order(
                            account_last, symbol, o['id'])

            # 下新订单
            for b in order_book:
                self.target_exchange.create_limit_order(
                    account_cur, b['symbol'], b['side'], float(b['amount']),
                    float(b['price']))
                self.amount += float(b['amount'])
                time.sleep(0.1)
            print("work finished! %s amount=%s %s" %
                  (symbol, self.amount, datetime.now()))
            self.queue.task_done()  #完成一个任务
            res = self.queue.qsize()  #判断消息队列大小
            if res > 0:
                print("f**k!There are still %d tasks to do" % (res))
        except Exception:
            print(traceback.format_exc())
        return

    def run(self):
        print('LiquidityTrade run.')
        while True:
            try:
                self.trade()
                print('=================================')
                # 休眠s
                time.sleep(5)
            except Exception:
                print(traceback.format_exc())
                time.sleep(5)
    else:
        exit('time_interval doesn\'t end with m')


def random_side():
    count = random()
    if count < 0.5:
        return 'buy'
    else:
        return 'sell'


if __name__ == "__main__":
    time_interval = '5m'  # 间隔运行时间
    has_exception_occur = False
    target_exchange = TargetExchange()  # 交易所
    symbol = 'CNB/USDT'    # 交易对

    # 账号
    account1 = account.account_list[0]
    # =====导入EOSUSD每一天的5分钟数据
    df = pd.read_csv(
        '../statistics/5MIN_CNBUSDT.csv')
       # skiprows=1)
    print df
    last_close_price = 0
    while True:
        for i in range(df.shape[0]):
            # if i < 144:
            #     continue
            # ===sleep直到运行时间