fix stock evaluation end date by using latest trading date from database
This commit is contained in:
parent
8f7738d8b4
commit
16e877e191
@ -14,6 +14,26 @@ from app.utils.data_access import DataBroker
|
|||||||
from app.utils.db import db_session
|
from app.utils.db import db_session
|
||||||
|
|
||||||
|
|
||||||
|
def _get_latest_trading_date() -> datetime.date:
|
||||||
|
"""获取数据库中的最新交易日期"""
|
||||||
|
with db_session() as session:
|
||||||
|
# 获取当前日期的上一个有效交易日
|
||||||
|
result = session.execute(
|
||||||
|
"""
|
||||||
|
SELECT trade_date
|
||||||
|
FROM daily_basic
|
||||||
|
WHERE trade_date <= :today
|
||||||
|
GROUP BY trade_date
|
||||||
|
ORDER BY trade_date DESC
|
||||||
|
LIMIT 1
|
||||||
|
""",
|
||||||
|
{"today": datetime.now().strftime("%Y%m%d")}
|
||||||
|
).fetchone()
|
||||||
|
|
||||||
|
if result and result[0]:
|
||||||
|
return datetime.strptime(str(result[0]), "%Y%m%d").date()
|
||||||
|
return datetime.now().date() - timedelta(days=1) # 如果查询失败才返回昨天
|
||||||
|
|
||||||
def render_stock_evaluation() -> None:
|
def render_stock_evaluation() -> None:
|
||||||
"""渲染股票筛选与评估页面。"""
|
"""渲染股票筛选与评估页面。"""
|
||||||
st.subheader("股票筛选与评估")
|
st.subheader("股票筛选与评估")
|
||||||
@ -21,9 +41,10 @@ def render_stock_evaluation() -> None:
|
|||||||
# 1. 时间范围选择
|
# 1. 时间范围选择
|
||||||
col1, col2 = st.columns(2)
|
col1, col2 = st.columns(2)
|
||||||
with col1:
|
with col1:
|
||||||
|
latest_date = _get_latest_trading_date()
|
||||||
end_date = st.date_input(
|
end_date = st.date_input(
|
||||||
"评估截止日期",
|
"评估截止日期",
|
||||||
value=datetime.now().date() - timedelta(days=1),
|
value=latest_date,
|
||||||
help="选择评估的截止日期"
|
help="选择评估的截止日期"
|
||||||
)
|
)
|
||||||
with col2:
|
with col2:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user