528d9811e3
系统设置可开关五类导航;手续费默认从 CTP 查询同步,本地/AKShare 作离线兜底;补充 FEES.md。 Co-authored-by: Cursor <cursoragent@cursor.com>
100 lines
6.1 KiB
HTML
100 lines
6.1 KiB
HTML
{% extends "base.html" %}
|
||
{% block title %}手续费配置 - 国内期货监控系统{% endblock %}
|
||
{% block content %}
|
||
<div class="card">
|
||
<h2>手续费数据源</h2>
|
||
<div class="card-body">
|
||
<form action="{{ url_for('fees') }}" method="post" class="form-row" style="flex-wrap:wrap;gap:.75rem;align-items:center">
|
||
<input type="hidden" name="action" value="fee_source">
|
||
<label class="text-muted" style="font-size:.85rem">计费依据</label>
|
||
<select name="fee_source_mode" style="min-width:220px">
|
||
<option value="ctp" {% if fee_source_mode == 'ctp' %}selected{% endif %}>CTP 柜台(SimNow/实盘,推荐)</option>
|
||
<option value="local" {% if fee_source_mode == 'local' %}selected{% endif %}>本地 / AKShare 参考表</option>
|
||
</select>
|
||
<button type="submit" class="btn-primary">保存</button>
|
||
</form>
|
||
<p class="hint" style="margin-top:.75rem">
|
||
默认使用 <strong>CTP 柜台</strong> 查询到的开仓/平仓费率(连接 CTP 后自动同步,与 SimNow/期货公司一致)。
|
||
离线或未连接时可改用本地表估算。
|
||
</p>
|
||
<div class="form-row" style="margin-top:.75rem;flex-wrap:wrap;gap:.5rem">
|
||
<form action="{{ url_for('fees') }}" method="post" style="display:inline">
|
||
<input type="hidden" name="action" value="sync_ctp">
|
||
<button type="submit" class="btn-primary" {% if not ctp_connected %}disabled title="请先连接 CTP"{% endif %}>从 CTP 同步费率</button>
|
||
</form>
|
||
{% if ctp_connected %}
|
||
<span class="badge profit">CTP 已连接</span>
|
||
{% else %}
|
||
<span class="badge planned">CTP 未连接 — 请先连接后再同步</span>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<h2>本地参考倍率(仅「本地数据源」时使用)</h2>
|
||
<div class="card-body">
|
||
<form action="{{ url_for('fees') }}" method="post" class="form-row">
|
||
<input type="hidden" name="action" value="multiplier">
|
||
<label class="text-muted" style="font-size:.85rem">第三方标准费率 ×</label>
|
||
<input name="fee_multiplier" type="number" step="0.1" min="0" value="{{ multiplier }}" style="width:100px">
|
||
<button type="submit" class="btn-primary">保存倍率</button>
|
||
</form>
|
||
<div class="form-row" style="margin-top:.75rem">
|
||
<form action="{{ url_for('fees') }}" method="post" style="display:inline">
|
||
<input type="hidden" name="action" value="sync">
|
||
<button type="submit" class="btn-secondary">从 AKShare 同步(本地)</button>
|
||
</form>
|
||
<form action="{{ url_for('fees') }}" method="post" style="display:inline">
|
||
<input type="hidden" name="action" value="reload_json">
|
||
<button type="submit" class="btn-link" style="padding:.5rem 1rem;border:1px solid var(--card-border);border-radius:8px">重载 JSON 默认表</button>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<h2>品种费率表</h2>
|
||
<div class="card-body card-scroll">
|
||
<table class="trade-table">
|
||
<thead>
|
||
<tr>
|
||
<th>品种</th><th>来源</th><th>交易所</th><th>乘数</th>
|
||
<th>开仓(元/手)</th><th>开仓(比例)</th>
|
||
<th>平昨(元/手)</th><th>平昨(比例)</th>
|
||
<th>平今(元/手)</th><th>平今(比例)</th>
|
||
<th>更新</th><th>操作</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{% for r in rates %}
|
||
<tr>
|
||
<form action="{{ url_for('fees') }}" method="post" style="display:contents">
|
||
<input type="hidden" name="action" value="save_row">
|
||
<input type="hidden" name="product" value="{{ r.product }}">
|
||
<td><strong>{{ r.product }}</strong></td>
|
||
<td><span class="badge {% if r.source == 'ctp' %}profit{% else %}planned{% endif %}">{{ r.source or 'local' }}</span></td>
|
||
<td><input name="exchange" value="{{ r.exchange or '' }}" style="width:72px;padding:.3rem"></td>
|
||
<td><input name="mult" type="number" value="{{ r.mult }}" style="width:56px;padding:.3rem"></td>
|
||
<td><input name="open_fixed" type="number" step="0.0001" value="{{ r.open_fixed }}" style="width:72px;padding:.3rem"></td>
|
||
<td><input name="open_ratio" type="number" step="0.0000001" value="{{ r.open_ratio }}" style="width:88px;padding:.3rem"></td>
|
||
<td><input name="close_yesterday_fixed" type="number" step="0.0001" value="{{ r.close_yesterday_fixed }}" style="width:72px;padding:.3rem"></td>
|
||
<td><input name="close_yesterday_ratio" type="number" step="0.0000001" value="{{ r.close_yesterday_ratio }}" style="width:88px;padding:.3rem"></td>
|
||
<td><input name="close_today_fixed" type="number" step="0.0001" value="{{ r.close_today_fixed }}" style="width:72px;padding:.3rem"></td>
|
||
<td><input name="close_today_ratio" type="number" step="0.0000001" value="{{ r.close_today_ratio }}" style="width:88px;padding:.3rem"></td>
|
||
<td class="text-muted" style="font-size:.72rem">{{ (r.updated_at or '')[:16] }}</td>
|
||
<td><button type="submit" class="btn-link">保存</button></td>
|
||
</form>
|
||
</tr>
|
||
{% else %}
|
||
<tr><td colspan="12" class="text-muted">暂无费率,请连接 CTP 后同步</td></tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p class="hint" style="margin-top:.75rem">
|
||
公式:单边手续费 = 固定(元/手)×手数 + 比例×价格×乘数×手数。往返 = 开仓 + 平仓(平今/平昨自动判断)。
|
||
</p>
|
||
</div>
|
||
{% endblock %}
|