Ejemplo n.º 1
0
    pool = gevent.pool.Pool(pool_size)
    for i in range(len(stocks) // pool_size + 1):
        start = i * pool_size
        end = (i + 1) * pool_size
        lst = stocks[start:end]
        logger.debug(f'download delta data for stock list: {lst}')
        for stock in lst:
            pool.spawn(bdt.TsHisData.download_one_delta_data, stock)
        pool.join(timeout=30)


if __name__ == '__main__':
    # make sure the library exists
    models.get_or_create_library(conf.CN_STOCK_LIBNAME)

    # download_delta_data(['000651', '000001'])

    # hs300s = ts.get_hs300s()
    # stock_pools = hs300s['code'].tolist() if 'code' in hs300s else []

    # 查询当前所有正常上市交易的股票列表
    data = pro.stock_basic(exchange='SZSE', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
    stock_pools = data['ts_code'].tolist() if 'ts_code' in data else []

    # stock_pools = ['600000.SH','600036.SH']

    if not stock_pools:
        logger.warning('can not stock pools return empty.')
        stock_pools = models.get_cn_stocks()
    download_delta_data(stock_pools)
Ejemplo n.º 2
0
def test_get_cn_stocks():
    stocks = models.get_cn_stocks()
    assert isinstance(stocks, list)
Ejemplo n.º 3
0
    )

    drawdown_points = result.get('drawdown_points')
    logger.debug('Draw down points:')
    for drawdown_point in drawdown_points:
        drawdown_point_dt = drawdown_point.get("datetime").isoformat()
        drawdown = drawdown_point.get('drawdown')
        drawdownlen = drawdown_point.get('drawdownlen')
        logger.debug(
            f'stock: {stock_id}, drawdown_point: {drawdown_point_dt}, '
            f'drawdown: {drawdown:.2f}, drawdownlen: {drawdownlen}'
        )


def main(stock_pools):
    """
    Get all stocks and run back test.
    :param stock_pools: list, the stock code list.
    :return: None
    """

    pool = multiprocessing.Pool()
    for stock in stock_pools:
        pool.apply_async(back_test, args=(stock, ))
    pool.close()
    pool.join()


if __name__ == '__main__':
    cn_stocks = models.get_cn_stocks()
    main(cn_stocks)