76 lines
3.8 KiB
HTML
76 lines
3.8 KiB
HTML
{% include 'strategy_subnav.html' %}
|
|
<div class="card" style="grid-column:1/-1">
|
|
<h2 style="margin:0 0 8px">顺势加仓(滚仓)</h2>
|
|
<div class="rule-tip">
|
|
<strong>仅人工加仓</strong>,程序不会自动触发。须先在「实盘下单」有同向持仓。<br>
|
|
做多最多滚仓 <strong>3</strong> 次;止盈<strong>锁定首仓</strong>不变;每次填写<strong>新统一止损</strong>,总风险%按「合并持仓打到新止损≈账户风险」反推张数。<br>
|
|
斐波限价:上沿 H、下沿 L 仅用于算 0.618/0.786 加仓价(多:下沿=止损侧;空:上沿=止损侧)。<br>
|
|
{% if roll_trend_active %}<span style="color:#ff8f8f">当前有运行中的趋势回调计划,请先结束后再滚仓。</span>{% endif %}
|
|
</div>
|
|
<form action="{{ url_for('strategy_roll_execute') }}" method="post" class="form-row">
|
|
<select name="symbol" required>
|
|
<option value="">选择持仓币种</option>
|
|
{% for o in roll_monitors %}
|
|
<option value="{{ o.symbol }}">{{ o.symbol }} {{ '多' if o.direction=='long' else '空' }} #{{ o.id }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
<select name="direction">
|
|
<option value="long">做多</option>
|
|
<option value="short">做空</option>
|
|
</select>
|
|
<select name="add_mode">
|
|
<option value="market">市价加仓</option>
|
|
<option value="fib_618">限价 斐波0.618</option>
|
|
<option value="fib_786">限价 斐波0.786</option>
|
|
</select>
|
|
<input name="fib_upper" step="any" placeholder="上沿 H">
|
|
<input name="fib_lower" step="any" placeholder="下沿 L">
|
|
<input name="new_stop_loss" step="any" placeholder="新统一止损" required>
|
|
<input name="risk_percent" type="number" min="0.1" step="0.1" value="{{ default_risk_percent }}" placeholder="总风险%">
|
|
<button type="submit" {% if roll_trend_active %}disabled style="opacity:.5"{% endif %} onclick="return confirm('确认按预览逻辑实盘加仓并更新止损?')">执行滚仓</button>
|
|
</form>
|
|
<p class="rule-tip" style="margin-top:8px">执行前可用开发者工具 POST <code>/strategy/roll/preview</code> 查看 JSON 预览。</p>
|
|
</div>
|
|
|
|
<div class="card" style="grid-column:1/-1">
|
|
<h3 style="margin:0 0 8px">活跃滚仓组</h3>
|
|
<div class="table-wrap">
|
|
<table>
|
|
<tr><th>ID</th><th>币种</th><th>方向</th><th>腿数</th><th>首仓TP</th><th>当前SL</th></tr>
|
|
{% for g in roll_groups %}
|
|
<tr>
|
|
<td>{{ g.id }}</td>
|
|
<td>{{ g.symbol }}</td>
|
|
<td>{{ g.direction }}</td>
|
|
<td>{{ g.leg_count }}</td>
|
|
<td>{% if price_fmt %}{{ price_fmt(g.symbol, g.initial_take_profit) }}{% else %}{{ g.initial_take_profit }}{% endif %}</td>
|
|
<td>{% if price_fmt %}{{ price_fmt(g.symbol, g.current_stop_loss) }}{% else %}{{ g.current_stop_loss }}{% endif %}</td>
|
|
</tr>
|
|
{% else %}
|
|
<tr><td colspan="6" style="color:#8892b0">暂无</td></tr>
|
|
{% endfor %}
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card" style="grid-column:1/-1">
|
|
<h3 style="margin:0 0 8px">最近滚仓腿</h3>
|
|
<div class="table-wrap">
|
|
<table>
|
|
<tr><th>#</th><th>组</th><th>方式</th><th>张数</th><th>新SL</th><th>状态</th></tr>
|
|
{% for leg in roll_legs %}
|
|
<tr>
|
|
<td>{{ leg.leg_index }}</td>
|
|
<td>{{ leg.roll_group_id }}</td>
|
|
<td>{{ leg.add_mode }}</td>
|
|
<td>{{ leg.amount }}</td>
|
|
<td>{{ leg.new_stop_loss }}</td>
|
|
<td>{{ leg.status }}</td>
|
|
</tr>
|
|
{% else %}
|
|
<tr><td colspan="6" style="color:#8892b0">暂无</td></tr>
|
|
{% endfor %}
|
|
</table>
|
|
</div>
|
|
</div>
|