def get_stock_1d_k_data(provider: Provider, sleep, desc, pc, lock, region, batch): # 日线 Stock1dKdata.record_data(provider=provider, share_para=(desc, pc, lock, True, region), sleeping_time=sleep, batch_size=batch)
def report_vol_up_250(): while True: error_count = 0 email_action = EmailInformer() try: # 抓取k线数据 StockTradeDay.record_data(provider='joinquant') Stock1dKdata.record_data(provider='joinquant') latest_day: StockTradeDay = StockTradeDay.query_data( order=StockTradeDay.timestamp.desc(), limit=1, return_type='domain') if latest_day: target_date = latest_day[0].timestamp else: target_date = now_pd_timestamp() # 计算均线 my_selector = TargetSelector(start_timestamp='2018-01-01', end_timestamp=target_date) # add the factors factor1 = VolumeUpMa250Factor(start_timestamp='2018-01-01', end_timestamp=target_date) my_selector.add_filter_factor(factor1) my_selector.run() long_targets = my_selector.get_open_long_targets( timestamp=target_date) if long_targets: stocks = get_entities(provider='joinquant', entity_schema=Stock, entity_ids=long_targets, return_type='domain') info = [f'{stock.name}({stock.code})' for stock in stocks] msg = ' '.join(info) else: msg = 'no targets' logger.info(msg) email_action.send_message("*****@*****.**", f'{target_date} 放量突破年线选股结果', msg) break except Exception as e: logger.exception('report_vol_up_250 error:{}'.format(e)) time.sleep(60 * 3) error_count = error_count + 1 if error_count == 10: email_action.send_message( "*****@*****.**", f'report_vol_up_250 error', 'report_vol_up_250 error:{}'.format(e))
] df = StockActorSummary.query_data(filters=filters) if pd_is_not_null(df): self.logger.info(f'{df}') self.finish_date = recent_report_date long_df = df[df['change_ratio'] > 0.05] short_df = df[df['change_ratio'] < -0.5] try: self.trade_the_targets( due_timestamp=timestamp, happen_timestamp=timestamp, long_selected=set(long_df['entity_id'].to_list()), short_selected=set(short_df['entity_id'].to_list())) except Exception as e: self.logger.error(e) if __name__ == '__main__': entity_id = 'stock_sh_600519' Stock1dKdata.record_data(entity_id=entity_id, provider='em') StockActorSummary.record_data(entity_id=entity_id, provider='em') FollowIITrader(start_timestamp='2002-01-01', end_timestamp='2021-01-01', entity_ids=[entity_id], provider='em', adjust_type=AdjustType.qfq, profit_threshold=None).run()