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)
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)
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, )
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) )
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, )
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)
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, )
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, )
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, )
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)
def record_money_flow(): run_data_recorder(domain=BlockMoneyFlow, data_provider="sina", entity_provider="sina", day_data=True)
def record_block(): run_data_recorder(domain=Block, data_provider="sina") run_data_recorder(domain=Block, data_provider="sina", entity_provider="sina")