Example #1
0
def get_more_bid_price(code, b_p):
    new = b_p
    for i in range(15):
        r = random.randint(0, 6)  # 每一单1,2,3,4,5中随机跳
        precis = cons.get_precision(code, 'price')
        tick = 1 / (pow(10, precis))
        p = b_p[-1] - r * tick

        p = round(p, cons.get_precision(code, 'price'))
        new.append(p)
    return new
Example #2
0
def get_more_bid_vol(code, b_v):
    new = b_v
    for i in range(15):
        r = random.uniform(0.5, 10)  # 量也随机
        v = (b_v[0] + b_v[1] + b_v[2]) * r
        v = round(v, cons.get_precision(code, 'volume'))
        new.append(v)
    return new
Example #3
0
def get_bid_price(code, a_p):
    r = random.uniform(0.004, 0.005)
    new = []
    for tem in a_p:
        p = tem * (1 - r)  # bid订单的price*[1-(0.01-0.015)随机数]
        p = round(p, cons.get_precision(code, 'price'))
        new.append(p)
    return new
Example #4
0
def get_ask_price(code, a_p):
    r = random.uniform(0.004, 0.005)
    new = []
    for tem in a_p:
        p = tem * (1 + r)  # ask订单的price*[1+(0.01-0.015)]随机数,
        p = round(p, cons.get_precision(code, 'price'))
        new.append(p)
    return new
Example #5
0
def get_more_ask_vol(code, a_v):
    new = a_v
    for i in range(15):
        r = random.uniform(0.5, 10)  # 量也随机, 根据买一卖一量进行扩大
        v = (a_v[0] + a_v[1] + a_v[2]) * r

        v = round(v, cons.get_precision(code, 'volume'))
        new.append(v)
    return new
Example #6
0
def get_bid_vol(code, b_v):
    r = float(Ratio_byHuobi * random.uniform(0.8, 1.2))

    new = []
    for tem in b_v:
        v = float(tem * r)  # amount*(0.015-0.05)的范围随机数
        precis = cons.get_precision(code, 'volume')

        v = round(v, precis)

        if v == 0.0:
            v = tick = 1 / (pow(10, precis))

        new.append(v)
    return new
Example #7
0
    # 以下是正常触发交易情况
    if now >= _trading_time[0]: # 触发交易

        quota = hbs.get_depth(_coin, 'step0')
        # if quota['msg'] != 'suc':
        #     print('获取行情失败,重新开始运行')
        #     continue

        # 自成交相关数据
        ask_p = float(quota['tick']['asks'][0][0])
        bid_p = float(quota['tick']['bids'][0][0])
        base_p = (ask_p + bid_p)/2  # 基准价格

        # 计算一跳的价格
        precis = cons.get_precision(_coin, 'price')
        one_step = 1 / (pow(10, precis))  # 一跳

        # 在基准价格上下2跳内,随机取价格
        r = random.randint(-2, 2)
        p = base_p + r * one_step
        _price = round(p, precis) # 最终下单价格

        # 这一单内要交易的金额, usdt
        _amount = _trading_amount[0]

        # 数量计算
        _volume = 0

        # 解析code,分为 usdt/btc/eth
        if _coin[-3:] == 'btc':
Example #8
0
        ask_p = float(quota['tick']['asks'][0][0])
        bid_p = float(quota['tick']['bids'][0][0])
        base_p = (ask_p + bid_p) / 2  # 基准价格

        # 自成交数量数据
        try:
            t = hbs.get_kline(symbol=_code, period='1min', size=2)
            huobiAmount = t['data'][1]['amount']
        except Exception as e:
            print('----><获取k线>: %s' % (_code), e)
            huobiAmount = 0

        _amount_byHB = _trade_time / 60 * huobiAmount * _huobi_ratio

        # 计算一跳的价格
        precis = cons.get_precision(_code, 'price')
        one_step = 1 / (pow(10, precis))  # 一跳
        # if _code == 'ltcusdt':
        #     print(one_step)

        # 在基准价格上下2跳内,随机取价格
        r = random.randint(-4, 4)
        p = base_p + r * one_step
        # if _code == 'ltcusdt':
        #     print(p)

        _price = round(p, precis)  # 最终下单价格

        # if _code == 'ltcusdt':
        #     print(_price)
        # 这一单内要交易的金额, usdt
Example #9
0
            quota_uni = uds.market_dept(code, 'step0')

            # 如果没有盘口 就不做报单
            if len(quota_uni['data']['tick']['asks']) < 6:
                break

            if len(quota_uni['data']['tick']['bids']) < 6:
                break

            vol1 = quota_uni['data']['tick']['asks'][0][1]
            vol2 = quota_uni['data']['tick']['bids'][0][1]
            r = random.uniform(0, 1)
            vol = (vol1 + vol2) * r

            # 把价格和量格式化
            v = round(vol, cons.get_precision(code, 'volume'))
            p = round(price, cons.get_precision(code, 'price'))

            # 报买单
            mmu.do_trading(code, p, v, 'BUY')

            # 稍微等一下 避免报单过快
            time.sleep(0.01)

            # 报卖单
            mmu.do_trading(code, p, v, 'SELL')

            # 报单后等随机时间,以使得各合约成交时间不同
            # 等待时间根据‘一轮报单时间’参数确定
            count = len(stock_list)
            each_time = int(turn_total_time / count)