合约列表新增次日振幅字段

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-07-26 10:08:37 +08:00
parent 5e9d9f00e8
commit 5670e5138c
2 changed files with 24 additions and 2 deletions
+15
View File
@@ -59,6 +59,20 @@ def contract_index(request: Request, db: Session = Depends(get_db)):
if bar.contract not in contract_bars:
contract_bars[bar.contract] = bar
# Next-day amplitude: mean of latest 5 diffs per contract
contract_next_amp = {}
for code in all_codes:
diffs = [
r[0] for r in
db.query(DailyBar.high - DailyBar.low)
.filter(DailyBar.contract == code)
.order_by(DailyBar.date.desc())
.limit(5)
.all()
]
if len(diffs) >= 5:
contract_next_amp[code] = round(sum(diffs) / 5)
template = request.app.state.templates.get_template("index.html")
return HTMLResponse(
template.render(
@@ -66,6 +80,7 @@ def contract_index(request: Request, db: Session = Depends(get_db)):
active_nav="contracts",
product_groups=product_groups,
contract_bars=contract_bars,
contract_next_amp=contract_next_amp,
)
)
+9 -2
View File
@@ -17,7 +17,7 @@
</div>
<div class="product-body">
<table>
<tr><th>合约</th><th>日期</th><th>开盘</th><th>收盘</th><th>最高</th><th>最低</th><th>振幅</th><th>操作</th></tr>
<tr><th>合约</th><th>日期</th><th>开盘</th><th>收盘</th><th>最高</th><th>最低</th><th>振幅</th><th>次日振幅</th><th>操作</th></tr>
{% for c in pg.contracts %}
<tr>
<td><strong>{{ c }}</strong></td>
@@ -34,8 +34,15 @@
<span class="na"></span>
{% endif %}
</td>
<td>
{% if c in contract_next_amp %}
<span class="badge badge-warn">{{ contract_next_amp[c] }}</span>
{% else %}
<td colspan="6" class="na">暂无数据</td>
<span class="na"></span>
{% endif %}
</td>
{% else %}
<td colspan="7" class="na">暂无数据</td>
{% endif %}
<td><a href="/contracts/{{ c }}" style="color:var(--accent);text-decoration:none;">详情 →</a></td>
</tr>