예제 #1
0
def record_index_kdata():
    run_data_recorder(domain=Index, data_provider="em")
    run_data_recorder(domain=Index1dKdata,
                      data_provider="em",
                      entity_provider="em",
                      codes=IMPORTANT_INDEX,
                      day_data=True)
예제 #2
0
def record_index():
    run_data_recorder(domain=Index, data_provider="exchange")
    # 默认只抓取 国证1000 国证2000 国证成长 国证价值 的组成个股
    index_ids = [
        "index_sz_399311", "index_sz_399303", "index_sz_399370",
        "index_sz_399371"
    ]
    run_data_recorder(domain=IndexStock,
                      data_provider="exchange",
                      entity_provider="exchange",
                      entity_ids=index_ids)
예제 #3
0
파일: kdata_runner.py 프로젝트: zvtvz/zvt
def record_stockhk_data(data_provider="em", entity_provider="em", sleeping_time=2):
    # 港股标的
    run_data_recorder(domain=Stockhk, data_provider=data_provider, force_update=False)
    # 港股后复权行情
    df = Stockhk.query_data(filters=[Stockhk.south == True], index="entity_id")
    run_data_recorder(
        domain=Stockhk1dHfqKdata,
        entity_ids=df.index.tolist(),
        data_provider=data_provider,
        entity_provider=entity_provider,
        day_data=True,
        sleeping_time=sleeping_time,
    )
예제 #4
0
파일: kdata_runner.py 프로젝트: zvtvz/zvt
def record_stock_data(data_provider="em", entity_provider="em", sleeping_time=2):
    # A股标的
    run_data_recorder(domain=Stock, data_provider=data_provider, force_update=False)
    # A股后复权行情
    run_data_recorder(
        domain=Stock1dHfqKdata,
        data_provider=data_provider,
        entity_provider=entity_provider,
        day_data=True,
        sleeping_time=sleeping_time,
    )

    # 板块(概念,行业)
    run_data_recorder(domain=Block, data_provider="eastmoney", force_update=False)
    # 板块行情(概念,行业)
    run_data_recorder(domain=Block1dKdata, data_provider="em", day_data=True, sleeping_time=sleeping_time)

    # 报告新概念和行业
    email_action = EmailInformer()
    list_date = next_date(current_date(), -90)
    df = Block.query_data(
        filters=[Block.category == BlockCategory.concept.value, Block.list_date >= list_date], index="entity_id"
    )

    # add them to eastmoney
    try:
        add_to_eastmoney(codes=df["code"], entity_type="block", group="新概念", over_write=False)
    except Exception as e:
        email_action.send_message(
            zvt_config["email_username"], f"report_concept error", "report_concept error:{}".format(e)
        )
예제 #5
0
def record_stock_data(data_provider="em",
                      entity_provider="em",
                      sleeping_time=2):
    # A股标的
    run_data_recorder(domain=Stock,
                      data_provider=data_provider,
                      force_update=False)
    # A股后复权行情
    run_data_recorder(
        domain=Stock1dHfqKdata,
        data_provider=data_provider,
        entity_provider=entity_provider,
        day_data=True,
        sleeping_time=sleeping_time,
    )

    # 板块(概念,行业)
    run_data_recorder(domain=Block,
                      entity_provider=entity_provider,
                      data_provider=entity_provider,
                      force_update=False)
    # 板块行情(概念,行业)
    run_data_recorder(
        domain=Block1dKdata,
        entity_provider=entity_provider,
        data_provider=entity_provider,
        day_data=True,
        sleeping_time=sleeping_time,
    )

    # 报告新概念和行业
    email_action = EmailInformer()
    df = Block.query_data(
        filters=[Block.category == BlockCategory.concept.value],
        order=Block.list_date.desc(),
        index="entity_id",
        limit=5,
    )

    inform(
        action=email_action,
        entity_ids=df.index.tolist(),
        target_date=current_date(),
        title="report 新概念",
        entity_provider=entity_provider,
        entity_type="block",
        em_group="关注板块",
        em_group_over_write=True,
    )
예제 #6
0
파일: actor_runner.py 프로젝트: zvtvz/zvt
def record_actor_data(data_provider="em", entity_provider="em"):
    run_data_recorder(
        domain=StockInstitutionalInvestorHolder,
        data_provider=data_provider,
        entity_provider=entity_provider,
        day_data=True,
    )
    run_data_recorder(domain=StockTopTenFreeHolder,
                      data_provider=data_provider,
                      entity_provider=entity_provider,
                      day_data=True)
    run_data_recorder(domain=StockActorSummary,
                      data_provider=data_provider,
                      entity_provider=entity_provider,
                      day_data=True)
예제 #7
0
def record_stock_data(data_provider="joinquant", entity_provider="joinquant"):
    # A股标的
    run_data_recorder(domain=Stock,
                      data_provider=data_provider,
                      force_update=False)
    # 交易日
    run_data_recorder(domain=StockTradeDay, data_provider=data_provider)
    # A股后复权行情
    run_data_recorder(
        domain=Stock1dHfqKdata,
        data_provider=data_provider,
        entity_provider=entity_provider,
        day_data=True,
        sleeping_time=0,
    )
예제 #8
0
def record_fund_data(data_provider="joinquant", entity_provider="joinquant"):
    # 基金
    run_data_recorder(domain=Fund,
                      data_provider=data_provider,
                      sleeping_time=0)
    # 基金持仓
    run_data_recorder(domain=FundStock,
                      data_provider=data_provider,
                      entity_provider=entity_provider,
                      sleeping_time=0)
    # 个股估值
    run_data_recorder(
        domain=StockValuation,
        data_provider=data_provider,
        entity_provider=entity_provider,
        sleeping_time=0,
        day_data=True,
    )
예제 #9
0
def record_dragon_tiger(data_provider="em",
                        entity_provider="em",
                        sleeping_time=2):
    # 龙虎榜数据
    run_data_recorder(
        domain=DragonAndTiger,
        data_provider=data_provider,
        entity_provider=entity_provider,
        day_data=True,
        sleeping_time=sleeping_time,
    )

    email_action = EmailInformer()
    # recent year
    start_timestamp = next_date(current_date(), -400)
    # 最近一年牛x的营业部
    players = get_big_players(start_timestamp=start_timestamp)

    # 最近30天有牛x的营业部上榜的个股
    recent_date = next_date(current_date(), -30)
    selected = []
    for player in players:
        filters = [
            or_(
                and_(DragonAndTiger.dep1 == player,
                     DragonAndTiger.dep1_rate >= 5),
                and_(DragonAndTiger.dep2 == player,
                     DragonAndTiger.dep2_rate >= 5),
                and_(DragonAndTiger.dep3 == player,
                     DragonAndTiger.dep3_rate >= 5),
                and_(DragonAndTiger.dep4 == player,
                     DragonAndTiger.dep4_rate >= 5),
                and_(DragonAndTiger.dep5 == player,
                     DragonAndTiger.dep5_rate >= 5),
            )
        ]
        df = DragonAndTiger.query_data(
            start_timestamp=recent_date,
            filters=filters,
            columns=[
                DragonAndTiger.timestamp, DragonAndTiger.entity_id,
                DragonAndTiger.code, DragonAndTiger.name
            ],
            index="entity_id",
        )
        selected = selected + df.index.tolist()

    if selected:
        selected = list(set(selected))

    target_date = get_latest_kdata_date(provider=data_provider,
                                        entity_type="stock",
                                        adjust_type="hfq")
    df = Stock1dHfqKdata.query_data(
        provider=data_provider,
        entity_ids=selected,
        filters=[
            Stock1dHfqKdata.turnover_rate > 0.02,
            Stock1dHfqKdata.timestamp == to_pd_timestamp(target_date),
            Stock1dHfqKdata.turnover > 300000000,
        ],
        index=["entity_id"],
    )
    inform(
        action=email_action,
        entity_ids=df.index.tolist(),
        target_date=current_date(),
        title="report 龙虎榜",
        entity_provider=entity_provider,
        entity_type="stock",
        em_group="重要指数",
        em_group_over_write=False,
    )
예제 #10
0
파일: finance_runner.py 프로젝트: zvtvz/zvt
def record_actor_data(data_provider="eastmoney", entity_provider="eastmoney"):
    run_data_recorder(domain=Stock, data_provider=data_provider)
    run_data_recorder(domain=StockDetail, data_provider=data_provider)
    run_data_recorder(domain=FinanceFactor,
                      data_provider=data_provider,
                      entity_provider=entity_provider,
                      day_data=True)
    run_data_recorder(domain=BalanceSheet,
                      data_provider=data_provider,
                      entity_provider=entity_provider,
                      day_data=True)
    run_data_recorder(domain=IncomeStatement,
                      data_provider=data_provider,
                      entity_provider=entity_provider,
                      day_data=True)
    run_data_recorder(domain=CashFlowStatement,
                      data_provider=data_provider,
                      entity_provider=entity_provider,
                      day_data=True)
예제 #11
0
def record_money_flow():
    run_data_recorder(domain=BlockMoneyFlow,
                      data_provider="sina",
                      entity_provider="sina",
                      day_data=True)
예제 #12
0
def record_block():
    run_data_recorder(domain=Block, data_provider="sina")
    run_data_recorder(domain=Block,
                      data_provider="sina",
                      entity_provider="sina")