44import pandas as pd
55from sqlalchemy import or_ , and_
66
7- from zvt .api .kdata import default_adjust_type , get_kdata_schema , get_latest_kdata_date
7+ from zvt .api .kdata import default_adjust_type , get_kdata_schema , get_latest_kdata_date , get_recent_trade_dates
88from zvt .contract import IntervalLevel , AdjustType
99from zvt .contract .api import get_entity_ids
1010from zvt .domain import DragonAndTiger , Stock1dHfqKdata , Stock , LimitUpInfo , StockQuote , StockQuoteLog
@@ -375,11 +375,20 @@ def get_limit_down_today():
375375 return df ["entity_id" ].to_list ()
376376
377377
378- def get_high_days_count (entity_ids = None , target_date = current_date (), days = 10 ):
379- recent_days = date_time_by_interval (target_date , - days )
378+ def get_high_days_count (entity_ids = None , target_date = current_date (), days_count = 10 , high_days_count = None ):
379+ recent_days = get_recent_trade_dates (target_date = target_date , days_count = days_count )
380+
381+ if recent_days :
382+ filters = [LimitUpInfo .timestamp >= recent_days [0 ]]
383+ else :
384+ filters = [LimitUpInfo .timestamp >= target_date ]
385+
386+ if high_days_count :
387+ filters = filters + [LimitUpInfo .high_days_count >= high_days_count ]
388+
380389 df = LimitUpInfo .query_data (
381390 entity_ids = entity_ids ,
382- start_timestamp = recent_days ,
391+ filters = filters ,
383392 columns = [LimitUpInfo .timestamp , LimitUpInfo .entity_id , LimitUpInfo .high_days , LimitUpInfo .high_days_count ],
384393 )
385394 df_sorted = df .sort_values (by = ["entity_id" , "timestamp" ])
@@ -392,7 +401,9 @@ def get_high_days_count(entity_ids=None, target_date=current_date(), days=10):
392401if __name__ == "__main__" :
393402 # stocks = get_top_vol(entity_ids=None, provider="em")
394403 # assert len(stocks) == 500
395- print (get_high_days_count ())
404+ # Index1dKdata.record_data(provider="em",sleeping_time=0)
405+ # print(get_recent_trade_dates(days_count=10))
406+ print (get_high_days_count (days_count = 3 , high_days_count = 3 ))
396407
397408
398409# the __all__ is generated
0 commit comments