예제 #1
0
def lowest_today():
    # time_stamp = str(int(time.time()*1000 - 999999))
    # today lowest
    url = "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb04]&p=1&jn=LDGsJsMh&" \
          "ps=40&s=hqzb04&st=-1&r="

    # 3 days lowest
    url3 = 'http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb05(1|3)]&p=1&jn=' \
          'lFnifSXE&ps=40&s=hqzb05(1|3)&st=-1&r=1437009363662'

    # 5days lowest
    url5 = 'http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb05(1|5)]&p=1&jn=' \
          'FbpVPbpk&ps=40&s=hqzb05(1|5)&st=-1&r=1437009283929'

    resp, content = http_request.request(url, "GET")
    result = json.loads(content[13:]).get("Results")
    date = datetime.date.today()
    code_name = []
    codes = []
    for i in result:
        i = i.encode("utf-8").split(",")
        # if "N" or "退" in i[2]:
        #     continue
        line = i[1] + " " + i[2] + "\n"
        codes.append(i[1])
        code_name.append(line)
    if not code_name:
        return False
    codes.sort(key=lambda code: int(code))
예제 #2
0
def lowest_today():
    # time_stamp = str(int(time.time()*1000 - 999999))
    # today lowest
    url = (
        "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb04]&p=1&jn=LDGsJsMh&"
        "ps=40&s=hqzb04&st=-1&r="
    )

    # 3 days lowest
    url3 = (
        "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb05(1|3)]&p=1&jn="
        "lFnifSXE&ps=40&s=hqzb05(1|3)&st=-1&r=1437009363662"
    )

    # 5days lowest
    url5 = (
        "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb05(1|5)]&p=1&jn="
        "FbpVPbpk&ps=40&s=hqzb05(1|5)&st=-1&r=1437009283929"
    )

    resp, content = http_request.request(url, "GET")
    result = json.loads(content[13:]).get("Results")
    date = datetime.date.today()
    code_name = []
    codes = []
    for i in result:
        i = i.encode("utf-8").split(",")
        # if "N" or "退" in i[2]:
        #     continue
        line = i[1] + " " + i[2] + "\n"
        codes.append(i[1])
        code_name.append(line)
    if not code_name:
        return False
    codes.sort(key=lambda code: int(code))
예제 #3
0
def sgcx_tencent():
    url = ['http://smartstock.gtimg.cn/get.php?_func=zhibiao&_default=1&_page=1&_pagesize=30&zhibiao=hs_sgcx', \
           'http://smartstock.gtimg.cn/get.php?_func=zhibiao&_default=1&_page=1&_pagesize=30&zhibiao=hs_cjdx']
    for i in url:
        resp, content = http_request.request(i, "GET")
        content = content[16:]
        json_content = json.loads(content)
        data = json_content.get('data')
        for i in data:
            sgcx_code.append(i['code'][2:])
    print 'sgcx from tencent lenth:', len(sgcx_code)
예제 #4
0
def rise_east():
    url = 'http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb11(1|5)]&p=1&jn' \
          '=AzvrOrMg&ps=40&s=hqzb11(1|5)&st=-1&r=1438007615018'
    url = 'http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb11(1|5)]&p=1&jn=IkyIDTEU&ps=4000&s=hqzb11(1|5)&st=-1&r=1438828990543'
    resp, content = http_request.request(url, "GET")
    json_content = json.loads(content[13:]).get("Results")
    for i in json_content:
        detail = i.split(',')
        code = detail[1]
        fluctuation = detail[3]
        drop[code] = fluctuation
    print 'rise 3 days:', len(drop)
예제 #5
0
def stock_size_sina():
    url = "http://money.finance.sina.com.cn/quotes_service/api/jsonp_v2.php/IO.XSRV2.CallbackList['b4VIm$HArIJ1qfKO']/Market_Center.getHQNodeDataNew?page=1&num=5000&sort=nmc&asc=0&node=hs_a"
    resp, content = http_request.request(url, "GET")
    content = content[42:-1]
    content = re.sub(r":(\w+?):", r"f**k", content)
    content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content)
    content = content.replace("'", '"')
    json_content = json.loads(content)
    for i in json_content:
        code = i["code"]
        nmc = int(float(i["nmc"]) / 10000.0)
        stock_size[code] = nmc
    print "sina stock size: ", len(stock_size)
예제 #6
0
def bull_sina():
    url = "http://vip.stock.finance.sina.com.cn/q/go.php/vIR_Burstout/index.phtml"
    resp, content = http_request.request(url, "GET")
    start = content.find("var STR_HX_CODE = ") + 18
    end = content.find("\n", start) - 1
    content = content[start:end]
    try:
        codes = json.loads(content)
    except Exception as e:
        print "get bull codes error"
    global bull_code
    bull_code = [i[2:] for i in codes if not i[2:].startswith("3")]
    print "bull codes:", len(bull_code)
예제 #7
0
def turn_over_sina():
    url = 'http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=1' \
          '&num=4000&sort=turnoverratio&asc=0&node=hs_a&symbol=&_s_r_a=init'
    resp, content = http_request.request(url, "GET")
    content = re.sub(r":(\w+?):", r"f**k", content)
    content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content)
    content = content.replace("'", "\"")
    json_content = json.loads(content)
    for i in json_content:
        code = i['code']
        ratio = int(i['turnoverratio'])
        turn_over_ratio[code] = ratio
    print 'sina turn over ratio: ', len(turn_over_ratio)
예제 #8
0
def bull_sina():
    url = 'http://vip.stock.finance.sina.com.cn/q/go.php/vIR_Burstout/index.phtml'
    resp, content = http_request.request(url, 'GET')
    start = content.find('var STR_HX_CODE = ') + 18
    end = content.find('\n', start) - 1
    content = content[start:end]
    try:
        codes = json.loads(content)
    except Exception as e:
        print 'get bull codes error'
    global bull_code
    bull_code = [i[2:] for i in codes if not i[2:].startswith('3')]
    print 'bull codes:', len(bull_code)
예제 #9
0
def stock_size_sina():
    url = "http://money.finance.sina.com.cn/quotes_service/api/jsonp_v2.php/IO.XSRV2.CallbackList['b4VIm$HArIJ1qfKO']/Market_Center.getHQNodeDataNew?page=1&num=5000&sort=nmc&asc=0&node=hs_a"
    resp, content = http_request.request(url, "GET")
    content = content[42:-1]
    content = re.sub(r":(\w+?):", r"f**k", content)
    content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content)
    content = content.replace("'", "\"")
    json_content = json.loads(content)
    for i in json_content:
        code = i['code']
        nmc = int(float(i['nmc']) / 10000.0)
        stock_size[code] = nmc
    print 'sina stock size: ', len(stock_size)
예제 #10
0
def sgcx_tencent():
    url = [
        "http://smartstock.gtimg.cn/get.php?_func=zhibiao&_default=1&_page=1&_pagesize=30&zhibiao=hs_sgcx",
        "http://smartstock.gtimg.cn/get.php?_func=zhibiao&_default=1&_page=1&_pagesize=30&zhibiao=hs_cjdx",
    ]
    for i in url:
        resp, content = http_request.request(i, "GET")
        content = content[16:]
        json_content = json.loads(content)
        data = json_content.get("data")
        for i in data:
            sgcx_code.append(i["code"][2:])
    print "sgcx from tencent lenth:", len(sgcx_code)
예제 #11
0
def week_change_163():
    url = "http://quotes.money.163.com/hs/realtimedata/service/rank.php?host=/hs/realtimedata/service/rank.php&page=0&query=LONG_PERIOD_RANK:_exists_&fields=SYMBOL,PRICE,LONG_PERIOD_RANK,PERCENT&sort=LONG_PERIOD_RANK.WEEK_PERCENT&order=asc&count=4000&type=query"
    resp, content = http_request.request(url, "GET")
    json_content = json.loads(content)
    stock_list = json_content.get("list")
    for i in stock_list:
        code = i["SYMBOL"]
        long_change = i["LONG_PERIOD_RANK"]
        we_change = int(long_change.get("WEEK_PERCENT", 10000) * 100)
        mon_change = int(long_change.get("MONTH_PERCENT", 10000) * 100)
        qua_change = int(long_change.get("QUARTER_PERCENT", 10000) * 100)
        week_change[code] = we_change
        month_change[code] = mon_change
        quarter_change[code] = qua_change
예제 #12
0
def rise_east():
    url = (
        "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb11(1|5)]&p=1&jn"
        "=AzvrOrMg&ps=40&s=hqzb11(1|5)&st=-1&r=1438007615018"
    )
    url = "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb11(1|5)]&p=1&jn=IkyIDTEU&ps=4000&s=hqzb11(1|5)&st=-1&r=1438828990543"
    resp, content = http_request.request(url, "GET")
    json_content = json.loads(content[13:]).get("Results")
    for i in json_content:
        detail = i.split(",")
        code = detail[1]
        fluctuation = detail[3]
        drop[code] = fluctuation
    print "rise 3 days:", len(drop)
예제 #13
0
def week_change_163():
    url = 'http://quotes.money.163.com/hs/realtimedata/service/rank.php?host=/hs/realtimedata/service/rank.php&page=0&query=LONG_PERIOD_RANK:_exists_&fields=SYMBOL,PRICE,LONG_PERIOD_RANK,PERCENT&sort=LONG_PERIOD_RANK.WEEK_PERCENT&order=asc&count=4000&type=query'
    resp, content = http_request.request(url, "GET")
    json_content = json.loads(content)
    stock_list = json_content.get('list')
    for i in stock_list:
        code = i['SYMBOL']
        long_change = i['LONG_PERIOD_RANK']
        we_change = int(long_change.get('WEEK_PERCENT', 10000) * 100)
        mon_change = int(long_change.get('MONTH_PERCENT', 10000) * 100)
        qua_change = int(long_change.get('QUARTER_PERCENT', 10000) * 100)
        week_change[code] = we_change
        month_change[code] = mon_change
        quarter_change[code] = qua_change
예제 #14
0
def turn_over_sina():
    url = (
        "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=1"
        "&num=4000&sort=turnoverratio&asc=0&node=hs_a&symbol=&_s_r_a=init"
    )
    resp, content = http_request.request(url, "GET")
    content = re.sub(r":(\w+?):", r"f**k", content)
    content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content)
    content = content.replace("'", '"')
    json_content = json.loads(content)
    for i in json_content:
        code = i["code"]
        ratio = int(i["turnoverratio"])
        turn_over_ratio[code] = ratio
    print "sina turn over ratio: ", len(turn_over_ratio)
예제 #15
0
def short_sina():
    global b_point_code
    urls = ["http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/dxcj/index.phtml?p="]
    #  'http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/kdfp/index.phtml?p=', \
    # 'http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/dpjc/index.phtml?p=']
    for url in urls:
        for i in range(1, 100):
            page_url = url + str(i)
            resp, content = http_request.request(page_url, "GET")
            if "php?q=" not in content:
                break
            code_str = content.split("php?q=")
            for i in code_str[1::2]:
                short_code.append(i[:6])
    print "short line sina:", len(short_code)
예제 #16
0
def b_point_sina():
    global b_point_code
    urls = ['http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/bdmr/index.phtml?p=', \
           'http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/dxcj/index.phtml?p=', \
           'http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/kdfp/index.phtml?p=', \
            'http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/kpjc/index.phtml?p=']
    for url in urls:
        for i in range(1, 100):
            page_url = url + str(i)
            resp, content = http_request.request(page_url, 'GET')
            if 'php?q=' not in content:
                break
            code_str = content.split('php?q=')
            for i in code_str[1::2]:
                b_point_code.append(i[:6])
    print 'b point sina:', len(b_point_code)
예제 #17
0
def runAndSave(serverIds=None, interIds=None):
    """
 执行接口测试,并保存执行结果
    @param  serverIds:服务器id
    @param  interIds:接口id
    """
    log.debug("==============开始执行测试脚本==============")
    total = success = fail = 0
    try:
        (servers, inters) = listServersAndInters(serverIds, interIds)
        for inter in inters:
            for server in servers:
                total += 1
                url = 'http://%s/%s%s' % (server.name, inter.service,
                                          inter.path)
                method = inter.method
                enc = inter.enc
                input = inter.input
                output = inter.output
                begin = time.time()
                response = http_request.request(url=url,
                                                method=method,
                                                body=input)
                res = False
                if compare_util.loosecmp(output, response):
                    log.debug("验证成功")
                    success += 1
                    res = True
                else:
                    log.warn("验证失败")
                    fail += 1
                    res = False
                end = time.time()
                result = models.Result(server=server,
                                       inter=inter,
                                       req=input,
                                       resp=response,
                                       result=res,
                                       spend=(int)((end - begin) * 1000))
                result.save()
                log.debug("已将%s保存到数据库" % result)
        log.debug("==============测试脚本执行结束==============")
        log.info("本次共测试:%d个接口,成功:%d,失败:%d" % (total, success, fail))
        return (total, success, fail)
    except Exception as e:
        log.error("程序遇到异常=>" + traceback.format_exc())
예제 #18
0
def lowest_163():
    url = 'http://quotes.money.163.com/hs/realtimedata/service/marketIndexes.php?host=/hs/realtimedata/service/' \
          'marketIndexes.php&page=0&query=HIGH_LOW_RECENTLY.HIGH_LOW:int_-1&fields=RN,SYMBOL,CODE,NAME,TYPE,PRICE,' \
          'HIGH_LOW_RECENTLY,PERCENT&sort=PRICE&order=ASC&count=9999&type=query&callback=callback_9967058&req=51111'
    url2 ='http://quotes.money.163.com/hs/realtimedata/service/marketIndexes.php?host=/hs/realtimedata/service/' \
         'marketIndexes.php&page=1&query=HIGH_LOW_RECENTLY.HIGH_LOW:int_-1&fields=RN,SYMBOL,CODE,NAME,TYPE,PRICE,' \
         'HIGH_LOW_RECENTLY,PERCENT&sort=PRICE&order=ASC&count=25&type=query&callback=callback_1993377099&req=5112'
    resp, content = http_request.request(url, "GET")
    index = content.index('"list":[') + 7

    json_content = json.loads(content[index:-3])
    codes = []
    for i in json_content:
        code = i['SYMBOL']
        codes.append(code)
    print len(codes)
    return codes
예제 #19
0
def in_flow_sina():
    url = 'http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/MoneyFlow.ssl_bkzj_ssggzj?page=1&num=4000&sort=r0_ratio&asc=0'
    resp, content = http_request.request(url, "GET")
    content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content)
    content = content.replace("'", "\"")
    json_content = json.loads(content)
    for i in json_content:
        code = i['symbol'][2:]
        inflow = int(float(i['r0_ratio']) * 100.0)
        turn_over = int(float(i['turnover'])) / 100.0
        change = int(float(i['changeratio']) * 1000) / 10.0
        price = int(float(i['trade']) * 100) / 100.0
        in_flow_ratio[code] = inflow
        turn_over_ratio[code] = turn_over
        change_ratio[code] = change
        price_now[code] = price
    print 'sina turn over ratio: ', len(turn_over_ratio)
    print 'sina in flow ratio: ', len(in_flow_ratio)
예제 #20
0
def in_flow_sina():
    url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/MoneyFlow.ssl_bkzj_ssggzj?page=1&num=4000&sort=r0_ratio&asc=0"
    resp, content = http_request.request(url, "GET")
    content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content)
    content = content.replace("'", '"')
    json_content = json.loads(content)
    for i in json_content:
        code = i["symbol"][2:]
        inflow = int(float(i["r0_ratio"]) * 100.0)
        turn_over = int(float(i["turnover"])) / 100.0
        change = int(float(i["changeratio"]) * 1000) / 10.0
        price = int(float(i["trade"]) * 100) / 100.0
        in_flow_ratio[code] = inflow
        turn_over_ratio[code] = turn_over
        change_ratio[code] = change
        price_now[code] = price
    print "sina turn over ratio: ", len(turn_over_ratio)
    print "sina in flow ratio: ", len(in_flow_ratio)
예제 #21
0
def lowest_163():
    url = (
        "http://quotes.money.163.com/hs/realtimedata/service/marketIndexes.php?host=/hs/realtimedata/service/"
        "marketIndexes.php&page=0&query=HIGH_LOW_RECENTLY.HIGH_LOW:int_-1&fields=RN,SYMBOL,CODE,NAME,TYPE,PRICE,"
        "HIGH_LOW_RECENTLY,PERCENT&sort=PRICE&order=ASC&count=9999&type=query&callback=callback_9967058&req=51111"
    )
    url2 = (
        "http://quotes.money.163.com/hs/realtimedata/service/marketIndexes.php?host=/hs/realtimedata/service/"
        "marketIndexes.php&page=1&query=HIGH_LOW_RECENTLY.HIGH_LOW:int_-1&fields=RN,SYMBOL,CODE,NAME,TYPE,PRICE,"
        "HIGH_LOW_RECENTLY,PERCENT&sort=PRICE&order=ASC&count=25&type=query&callback=callback_1993377099&req=5112"
    )
    resp, content = http_request.request(url, "GET")
    index = content.index('"list":[') + 7

    json_content = json.loads(content[index:-3])
    codes = []
    for i in json_content:
        code = i["SYMBOL"]
        codes.append(code)
    print len(codes)
    return codes
예제 #22
0
def quantity_relative_ratio_163():
    url ='http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2' \
         'Fdiyrank.php&page=0&query=STYPE%3AEQA&fields=SYMBOL%2CLB&sort=LB&order=desc&count=4000&type=query'
    smal_url = 'http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2' \
         'Fdiyrank.php&page=0&query=SCSTC27_RNG%3AS&fields=NO%2CSYMBOL%2CNAME%2CPRICE%2CPERCENT%2CUPDOWN%2CFIVE_MINUTE%2' \
         'COPEN%2CYESTCLOSE%2CHIGH%2CLOW%2CVOLUME%2CTURNOVER%2CHS%2CLB%2CWB%2CZF%2CPE%2CMCAP%2CTCAP%2CMFSUM%2CMFRATIO' \
         '.MFRATIO2%2CMFRATIO.MFRATIO10%2CSNAME%2CCODE%2CANNOUNMT%2CUVSNEWS&sort=LB&order=desc&count=4000&type=query'
    url = 'http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2Fdiyrank.php&page=0&query=STYPE%3AEQA&fields=NO%2CSYMBOL%2CNAME%2CPRICE%2CPERCENT%2CUPDOWN%2CFIVE_MINUTE%2COPEN%2CYESTCLOSE%2CHIGH%2CLOW%2CVOLUME%2CTURNOVER%2CHS%2CLB%2CWB%2CZF%2CPE%2CMCAP%2CTCAP%2CMFSUM%2CMFRATIO.MFRATIO2%2CMFRATIO.MFRATIO10%2CSNAME%2CCODE%2CANNOUNMT%2CUVSNEWS&sort=LB&order=asc&count=4000&type=query'
    resp, content = http_request.request(url, "GET")
    json_content = json.loads(content)
    stock_list = json_content.get('list')
    print json_content.get('time')
    for i in stock_list:
        code = i['SYMBOL']
        change = i.get('PERCENT')
        if change:
            change = int(change * 1000) / 10.0
        else:
            change = 10000

        turn_over = i.get('HS')
        if turn_over:
            turn_over = int(turn_over * 1000) / 10.0
        else:
            turn_over = 10000

        price = i.get('PRICE')
        if price:
            price = int(price * 10) / 10.0
        else:
            price = 10000

        lb = i.get('LB')
        if lb:
            lb = int(lb * 10) / 10.0
        else:
            lb = 10000

        pe = i.get('PE')
        if pe:
            pe = int(pe)
        else:
            pe = 10000

        size = i.get('MCAP')
        if size:
            size = int(size / 100000000)
        else:
            size = 10000

        open = i.get('OPEN')
        if open:
            open = float(open)
        else:
            open = 10000

        close = i.get('YESTCLOSE')
        if close:
            close = float(close)
        else:
            close = 10000

        if open != 10000 and close != 10000:
            open = int((open - close) / close * 100)

        open_price[code] = open
        stock_size[code] = size
        pe_ratio[code] = pe
        quantity_relative_ratio[code] = lb
        turn_over_ratio[code] = turn_over
        change_ratio[code] = change
        price_now[code] = price
    print '163 query: ', len(quantity_relative_ratio)
예제 #23
0
def quantity_relative_ratio_163():
    url = (
        "http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2"
        "Fdiyrank.php&page=0&query=STYPE%3AEQA&fields=SYMBOL%2CLB&sort=LB&order=desc&count=4000&type=query"
    )
    smal_url = (
        "http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2"
        "Fdiyrank.php&page=0&query=SCSTC27_RNG%3AS&fields=NO%2CSYMBOL%2CNAME%2CPRICE%2CPERCENT%2CUPDOWN%2CFIVE_MINUTE%2"
        "COPEN%2CYESTCLOSE%2CHIGH%2CLOW%2CVOLUME%2CTURNOVER%2CHS%2CLB%2CWB%2CZF%2CPE%2CMCAP%2CTCAP%2CMFSUM%2CMFRATIO"
        ".MFRATIO2%2CMFRATIO.MFRATIO10%2CSNAME%2CCODE%2CANNOUNMT%2CUVSNEWS&sort=LB&order=desc&count=4000&type=query"
    )
    url = "http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2Fdiyrank.php&page=0&query=STYPE%3AEQA&fields=NO%2CSYMBOL%2CNAME%2CPRICE%2CPERCENT%2CUPDOWN%2CFIVE_MINUTE%2COPEN%2CYESTCLOSE%2CHIGH%2CLOW%2CVOLUME%2CTURNOVER%2CHS%2CLB%2CWB%2CZF%2CPE%2CMCAP%2CTCAP%2CMFSUM%2CMFRATIO.MFRATIO2%2CMFRATIO.MFRATIO10%2CSNAME%2CCODE%2CANNOUNMT%2CUVSNEWS&sort=LB&order=asc&count=4000&type=query"
    resp, content = http_request.request(url, "GET")
    json_content = json.loads(content)
    stock_list = json_content.get("list")
    print json_content.get("time")
    for i in stock_list:
        code = i["SYMBOL"]
        change = i.get("PERCENT")
        if change:
            change = int(change * 1000) / 10.0
        else:
            change = 10000

        turn_over = i.get("HS")
        if turn_over:
            turn_over = int(turn_over * 1000) / 10.0
        else:
            turn_over = 10000

        price = i.get("PRICE")
        if price:
            price = int(price * 10) / 10.0
        else:
            price = 10000

        lb = i.get("LB")
        if lb:
            lb = int(lb * 10) / 10.0
        else:
            lb = 10000

        pe = i.get("PE")
        if pe:
            pe = int(pe)
        else:
            pe = 10000

        size = i.get("MCAP")
        if size:
            size = int(size / 100000000)
        else:
            size = 10000

        open = i.get("OPEN")
        if open:
            open = float(open)
        else:
            open = 10000

        close = i.get("YESTCLOSE")
        if close:
            close = float(close)
        else:
            close = 10000

        if open != 10000 and close != 10000:
            open = int((open - close) / close * 100)

        open_price[code] = open
        stock_size[code] = size
        pe_ratio[code] = pe
        quantity_relative_ratio[code] = lb
        turn_over_ratio[code] = turn_over
        change_ratio[code] = change
        price_now[code] = price
    print "163 query: ", len(quantity_relative_ratio)
예제 #24
0
def manager_top(bdlx, days=None):
    # bcjd=2015-07-13&ecjd=2015-07-14
    # cjd:chang day
    # bdlx:1 buy, 2 sale
    # bbdje=10&ebdje=100 range 10 thounsand
    # bzltb: percentage %%
    # titType: sort keyword,0,1:date 3:amount(10thounsand) 5:money 8:percentage
    url = "http://stockdata.stock.hexun.com/ggzjc/data/ChangeHistory.aspx?count=30000&callback=" \
          "hxbase_json5&stateType=up&titType=5"

    url += "&bdlx=" + str(bdlx)
    date = datetime.date.today()
    start_date = str(date - datetime.timedelta(days=41))
    # url += '&bcjd=%s&ecjd=%s'%(start_date,start_date)
    if days:
        url += '&cjd=' + str(days)
        # url += '&bcjd=%s&ecjd=%s'%(start_date,date)
    elif bdlx == 1:
        url += '&cjd=90'
    else:
        url += '&cjd=5'
    ret_list = []
    codes = []
    # for i in range(1, 100):
    # page = '&page=' + str(i)
    # new_url = url + page
    # print new_url
    url += '&page=1'
    print url
    resp, content = http_request.request(url, "GET")
    content = content.replace('\"', '')
    content = content.replace('http:', '')
    content = re.sub(r"<[^<]*>", r"", content)
    content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content)
    content = content.replace("'", "\"")
    result = json.loads(content[13:-1]).get('list')
    # if not len(result):
    #     break
    for i in result:
        # print i['stockName'], i['averagePrice'], i['price'], i['circulationCapitalRatio']
        price = float(i['price'])
        if price > 10 or bdlx == 2:
            code = str(re.sub(r"[^\(]*\(", r"", i['stockName'])[:-1])
            name = i['stockName'].split('(')[0]
            d = {
                'code': code,
                'price': price,
                'ratio': i['circulationCapitalRatio'],
                'name': name
            }
            codes.append(code)
            ret_list.append(d)
            date = i['changeDate'][-5:]
            avgprice = float(i['averagePrice'])
            if bdlx == 1 and (not manager_buy.has_key(code)
                              or manager_buy[code] < avgprice):
                manager_buy[code] = avgprice
            if bdlx == 2 and (not manager_sale.has_key(code)
                              or manager_sale[code] > avgprice):
                manager_sale[code] = avgprice

            # elif ret_dict[code]['total_price'] < price:
            #     ret_dict[code]['total_price'] = price
            #     ret_dict[code]['date'] = date
            #     ret_dict[code]['avg'] = avgprice

    print len(codes)
    return list(set(codes)), manager_buy
예제 #25
0
def manager_top(bdlx, days=None):
    # bcjd=2015-07-13&ecjd=2015-07-14
    # cjd:chang day
    # bdlx:1 buy, 2 sale
    # bbdje=10&ebdje=100 range 10 thounsand
    # bzltb: percentage %%
    # titType: sort keyword,0,1:date 3:amount(10thounsand) 5:money 8:percentage
    url = (
        "http://stockdata.stock.hexun.com/ggzjc/data/ChangeHistory.aspx?count=30000&callback="
        "hxbase_json5&stateType=up&titType=5"
    )

    url += "&bdlx=" + str(bdlx)
    date = datetime.date.today()
    start_date = str(date - datetime.timedelta(days=41))
    # url += '&bcjd=%s&ecjd=%s'%(start_date,start_date)
    if days:
        url += "&cjd=" + str(days)
        # url += '&bcjd=%s&ecjd=%s'%(start_date,date)
    elif bdlx == 1:
        url += "&cjd=90"
    else:
        url += "&cjd=5"
    ret_list = []
    codes = []
    # for i in range(1, 100):
    # page = '&page=' + str(i)
    # new_url = url + page
    # print new_url
    url += "&page=1"
    print url
    resp, content = http_request.request(url, "GET")
    content = content.replace('"', "")
    content = content.replace("http:", "")
    content = re.sub(r"<[^<]*>", r"", content)
    content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content)
    content = content.replace("'", '"')
    result = json.loads(content[13:-1]).get("list")
    # if not len(result):
    #     break
    for i in result:
        # print i['stockName'], i['averagePrice'], i['price'], i['circulationCapitalRatio']
        price = float(i["price"])
        if price > 10 or bdlx == 2:
            code = str(re.sub(r"[^\(]*\(", r"", i["stockName"])[:-1])
            name = i["stockName"].split("(")[0]
            d = {"code": code, "price": price, "ratio": i["circulationCapitalRatio"], "name": name}
            codes.append(code)
            ret_list.append(d)
            date = i["changeDate"][-5:]
            avgprice = float(i["averagePrice"])
            if bdlx == 1 and (not manager_buy.has_key(code) or manager_buy[code] < avgprice):
                manager_buy[code] = avgprice
            if bdlx == 2 and (not manager_sale.has_key(code) or manager_sale[code] > avgprice):
                manager_sale[code] = avgprice

            # elif ret_dict[code]['total_price'] < price:
            #     ret_dict[code]['total_price'] = price
            #     ret_dict[code]['date'] = date
            #     ret_dict[code]['avg'] = avgprice

    print len(codes)
    return list(set(codes)), manager_buy