def update_eod_date(start_date_str=EODDateConfig.eod_start_date, end_date_str=DateTimeUtils.date2str(date.today()), eod_cutoff_time=EODDateConfig.eod_cutoff_time): end_date = DateTimeUtils.str2date(end_date_str) start_date = DateTimeUtils.str2date(start_date_str) # 获取节假日信息 db_session = create_db_session() # TODO: 需要从配置文件读取 if not TradingDayService.is_trading_day(db_session, end_date): # 如果当天不是交易日则直接计算上一个交易日的值 end_date = TradingDayService.go_trading_day(db_session, end_date, 1, -1) else: # 如果是交易日,小于cutoff time还是返回上一个交易日 if datetime.now().time() < DateTimeUtils.str2time(eod_cutoff_time): end_date = TradingDayService.go_trading_day(db_session, end_date, 1, -1) else: end_date = end_date # 设置变量到airflow variable AirflowVariableUtils.set_eod_start_date(start_date) AirflowVariableUtils.set_eod_end_date(end_date)
def eod_vol_surface_update_run(): eod_end_date = AirflowVariableUtils.get_eod_manual_date() process_num = AirflowVariableUtils.get_fair_vol_marking_process_num() VolSurfaceService.update_all_vol_surface(eod_end_date, eod_end_date, process_num)
def eod_realized_vol_update_run(): eod_end_date = AirflowVariableUtils.get_eod_manual_date() RealizedVolService.update_days_instrument_realized_vol(eod_end_date, eod_end_date, force_update=True)
def eod_otc_position_update_run(): eod_end_date = AirflowVariableUtils.get_eod_manual_date() eod_start_date = eod_end_date - timedelta(days=7) ROTCPositionService.update_implied_vol(eod_start_date, eod_end_date, force_update=False)
def eod_otc_future_contract_update_run(): eod_end_date = AirflowVariableUtils.get_eod_manual_date() eod_start_date = eod_end_date - timedelta(days=7) FutureContractInfoService.update_all_future_contract_info(eod_start_date, eod_end_date, force_update=True)
def eod_otc_trade_snapshot_update_run(): eod_end_date = AirflowVariableUtils.get_eod_manual_date() eod_start_date = eod_end_date - timedelta(days=7) OTCTradeSnapshotsService.import_otc_trade_snapshots(eod_start_date, eod_end_date, force_update=False)
def eod_wind_market_data_update_run(): eod_end_date = AirflowVariableUtils.get_eod_manual_date() eod_start_date = eod_end_date - timedelta(days=7) OTCMarketDataService.backfill_otc_market_data(eod_start_date, eod_end_date, force_update=False)
def manual_vol_surface_update_run(): eod_start_date = AirflowVariableUtils.get_eod_manual_date() eod_end_date = AirflowVariableUtils.get_eod_manual_date() VolSurfaceService.update_all_vol_surface(eod_start_date, eod_end_date)
def manual_otc_position_update_run(): eod_start_date = AirflowVariableUtils.get_eod_manual_date() eod_end_date = AirflowVariableUtils.get_eod_manual_date() ROTCPositionService.update_implied_vol(eod_start_date, eod_end_date, force_update=True)
def manual_otc_trade_snapshot_update_run(): eod_start_date = AirflowVariableUtils.get_eod_manual_date() eod_end_date = AirflowVariableUtils.get_eod_manual_date() OTCTradeSnapshotsService.import_otc_trade_snapshots(eod_start_date, eod_end_date, force_update=True)
def manual_wind_market_data_update_run(): eod_start_date = AirflowVariableUtils.get_eod_manual_date() eod_end_date = AirflowVariableUtils.get_eod_manual_date() OTCMarketDataService.backfill_otc_market_data(eod_start_date, eod_end_date, force_update=True)