Files
finance-talk/振幅锁仓策略/策略说明.html
T

357 lines
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>振幅锁仓策略 · 操作流程</title>
<style>
:root {
--bg: #fff; --fg: #1e293b; --sub: #64748b;
--th-bg: #f1f5f9; --th-fg: #334155; --th-border: #cbd5e1;
--td-border: #e2e8f0; --td-even: #f8fafc;
--code-bg: #f1f5f9; --blockquote-bg: #f8fafc; --blockquote-border: #e2e8f0;
--hr-color: #e2e8f0; --link: #3b82f6;
--tag-bg: #dbeafe; --tag-fg: #1e40af;
--red-tag-bg: #fee2e2; --red-tag-fg: #991b1b;
--green-tag-bg: #dcfce7; --green-tag-fg: #166534;
}
[data-theme="dark"] {
--bg: #0f172a; --fg: #e2e8f0; --sub: #94a3b8;
--th-bg: #1e293b; --th-fg: #cbd5e1; --th-border: #334155;
--td-border: #1e293b; --td-even: #1a2332;
--code-bg: #1e293b; --blockquote-bg: #1a2332; --blockquote-border: #334155;
--hr-color: #334155; --link: #60a5fa;
--tag-bg: #1e3a5f; --tag-fg: #93c5fd;
--red-tag-bg: #3b1c1c; --red-tag-fg: #fca5a5;
--green-tag-bg: #1c3b1c; --green-tag-fg: #86efac;
}
body {
font-family: -apple-system, 'Segoe UI', system-ui, sans-serif;
padding: 24px; max-width: 860px; margin: 0 auto;
color: var(--fg); background: var(--bg); line-height: 1.75;
}
h1 { font-size: 1.5rem; margin-bottom: 4px; }
h2 { font-size: 1.2rem; margin: 36px 0 14px; padding-bottom: 6px; border-bottom: 1px solid var(--hr-color); }
h3 { font-size: 1.05rem; margin: 24px 0 10px; color: var(--th-fg); }
p { margin: 12px 0; }
a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; }
.subtitle {
color: var(--sub); font-size: 0.88rem; margin-bottom: 28px;
padding: 8px 14px; background: var(--blockquote-bg);
border-left: 3px solid var(--blockquote-border); border-radius: 0 4px 4px 0;
}
hr { border: none; border-top: 1px solid var(--hr-color); margin: 28px 0; }
/* tables */
table {
border-collapse: collapse; width: 100%; font-size: 0.88rem;
margin: 14px 0 20px;
}
th {
background: var(--th-bg); color: var(--th-fg); font-weight: 600;
padding: 8px 12px; border: 1px solid var(--th-border); text-align: center; white-space: nowrap;
}
td {
padding: 7px 12px; border: 1px solid var(--td-border); text-align: center;
}
tr:nth-child(even) td { background: var(--td-even); }
td:first-child { font-weight: 500; }
/* code */
code {
background: var(--code-bg); padding: 2px 6px; border-radius: 3px;
font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; font-size: 0.85em;
}
pre {
background: var(--code-bg); padding: 14px 18px; border-radius: 6px;
overflow-x: auto; font-size: 0.84rem; line-height: 1.6;
border: 1px solid var(--td-border);
}
pre code { background: none; padding: 0; }
/* blockquote */
blockquote {
margin: 12px 0; padding: 10px 18px;
background: var(--blockquote-bg); border-left: 3px solid var(--blockquote-border);
border-radius: 0 4px 4px 0; color: var(--sub); font-size: 0.9rem;
}
blockquote p { margin: 4px 0; }
/* ordered & unordered lists */
ol, ul { padding-left: 24px; margin: 10px 0; }
li { margin: 6px 0; }
/* condition tags */
.tag { display: inline-block; padding: 2px 8px; border-radius: 3px; font-size: 0.82rem; font-weight: 600; }
.tag-ok { background: var(--green-tag-bg); color: var(--green-tag-fg); }
.tag-no { background: var(--red-tag-bg); color: var(--red-tag-fg); }
/* event emoji labels */
.label-win { color: #16a34a; }
.label-lock { color: #d97706; }
.label-cut { color: #dc2626; }
/* theme toggle */
.toggle-btn {
position: fixed; top: 16px; right: 24px;
background: var(--th-bg); border: 1px solid var(--th-border); color: var(--th-fg);
padding: 6px 14px; border-radius: 6px; cursor: pointer; font-size: 0.82rem; z-index: 10;
}
.toggle-btn:hover { opacity: 0.8; }
/* responsive */
@media (max-width: 600px) {
body { padding: 16px; }
pre { padding: 10px 12px; font-size: 0.78rem; }
table { font-size: 0.78rem; }
}
</style>
</head>
<body>
<button class="toggle-btn" id="themeToggle">🌙 暗夜</button>
<h1>振幅锁仓策略 · 操作流程</h1>
<p class="subtitle">
玻璃期货 FG 主力合约 · 每日累仓做空 + 振幅止盈 + 3 锁熔断
</p>
<!-- ═══════════════════════════════════════════════ -->
<h2>一、策略思想</h2>
<p>
玻璃期货受地产下行拖累,长期空头趋势明确。不做方向判断,<strong>默认每天做空</strong>
用近 5 日均振幅作为动态止盈/锁仓阈值。回调是利润,反弹锁仓扛,连扛 3 次认输出局。
</p>
<hr>
<!-- ═══════════════════════════════════════════════ -->
<h2>二、核心参数</h2>
<table>
<tr><th>参数</th><th>取值</th><th>说明</th></tr>
<tr><td>交易方向</td><td></td><td>每天开盘无条件做空</td></tr>
<tr><td>每日手数</td><td>1 手(20 吨)</td><td>可等比放大至 N 手/天</td></tr>
<tr><td>每点价值</td><td>20 元</td><td>玻璃期货合约规格</td></tr>
<tr><td>振幅阈值</td><td>近 5 日 (最高−最低) 均值</td><td>每日盘前重新计算</td></tr>
<tr><td>锁仓上限</td><td>3 次</td><td>累计触发后清仓重来</td></tr>
</table>
<blockquote>
<p><strong>多手缩放</strong>:单合约每日开 N 手时,止盈阈值等比放大为 <strong>N × A</strong>,保持触发难度不变。锁仓阈值和熔断规则不受手数影响——每手空单仍按各自开仓时的 A 独立判断锁仓,累计 3 锁熔断不变。</p>
</blockquote>
<h3>仓位管理</h3>
<p>
<strong>总手数</strong><code>N = ⌊权益金(万元)⌋</code>,向下取整。
</p>
<p>
<strong>分配规则</strong>:按沉淀资金从大到小取前三个合约(假设 FG09 &gt; FG11 &gt; FG01),轮询分配 N 手:
</p>
<table>
<tr><th>N</th><th>FG09</th><th>FG11</th><th>FG01</th></tr>
<tr><td>1</td><td>1</td><td></td><td></td></tr>
<tr><td>2</td><td>1</td><td>1</td><td></td></tr>
<tr><td>3</td><td>1</td><td>1</td><td>1</td></tr>
<tr><td>4</td><td>2</td><td>1</td><td>1</td></tr>
<tr><td>5</td><td>2</td><td>2</td><td>1</td></tr>
<tr><td>6</td><td>2</td><td>2</td><td>2</td></tr>
<tr><td>7</td><td>3</td><td>2</td><td>2</td></tr>
<tr><td></td><td></td><td></td><td></td></tr>
</table>
<blockquote>
<p>合约 p(按沉淀资金降序,p=1,2,3)分配 ⌊(N + 3 − p) / 3⌋ 手。各合约独立运行策略(独立 A、独立锁仓计数器),一轮熔断不影响其他合约。</p>
</blockquote>
<hr>
<!-- ═══════════════════════════════════════════════ -->
<h2>三、每日操作流程</h2>
<h3>盘前(1 分钟)</h3>
<ol>
<li>取前 5 个交易日的 (最高 − 最低),计算均值 → <strong>当日振幅阈值 A</strong></li>
<li>检查当前持仓状态:
<ul>
<li>无持仓 → 新轮次开始</li>
<li>有活跃空单 → 继续累仓</li>
<li>有锁仓 → 继续累仓(锁仓不阻止开新空单)</li>
</ul>
</li>
</ol>
<h3>开盘</h3>
<p><strong>无条件开 N 手空单</strong>(N = 每日手数,默认 1),记录开仓价和该手对应的锁仓阈值(= 当日振幅阈值 A)。</p>
<pre><code>第 N 手空单: 开仓价 = 今日开盘价, 锁仓阈值 = 当日 A</code></pre>
<h3>盘中监控</h3>
<p>用日内最高价、最低价判断触发:</p>
<table>
<tr><th>条件</th><th>触发</th><th>动作</th></tr>
<tr>
<td><strong>总浮盈 ≥ N × A 点</strong>N = 每日手数)</td>
<td><span class="label-win">🟢 止盈</span></td>
<td>全部清仓(活跃空单 + 锁仓对),获利了结,轮次结束</td>
</tr>
<tr>
<td><strong>某空单亏损 ≥ 该手开仓时的振幅阈值</strong></td>
<td><span class="label-lock">🔒 锁仓</span></td>
<td>对该手开多单锁仓,冻结亏损。该手从"活跃"移入"锁仓"</td>
</tr>
<tr>
<td><strong>累计锁仓 ≥ 3 次</strong></td>
<td><span class="label-cut">🔴 3 锁熔断</span></td>
<td>全部清仓(活跃空单按结算价平仓 + 锁仓对平仓),认输重来</td>
</tr>
<tr>
<td>以上均未触发</td>
<td>— 持仓</td>
<td>所有活跃空单和锁仓对继续持有至次日</td>
</tr>
</table>
<h3>盘中判断细节</h3>
<ul>
<li>如果止盈和锁仓同时可能触发(日内振幅足够大),用<strong>收盘方向</strong>判断哪个先触发:收盘 &gt; 开盘 → 锁仓先触发,反之止盈先触发。</li>
<li>当天新开的空单和昨天留下的活跃空单<strong>平等对待</strong>——任何一笔活跃空单亏损达到它自己的锁仓阈值,就锁那一笔。</li>
</ul>
<hr>
<!-- ═══════════════════════════════════════════════ -->
<h2>四、锁仓机制</h2>
<p>锁仓 = 对亏损达到阈值的空单,<strong>额外开一手多单</strong>,形成锁仓对。</p>
<pre><code>锁仓对 = 空单@开仓价 + 多单@(开仓价 + 阈值)
锁仓对盈亏 = (开仓价 − 现价) + (现价 − (开仓价 + 阈值))
= −阈值 (固定,不再随价格变动)</code></pre>
<p><strong>一旦锁仓,该笔亏损被冻结,不会扩大。</strong> 但锁仓对也不贡献利润——只有活跃空单才能在价格下跌时产生收益。</p>
<p>锁仓对在两种情况下平仓:</p>
<ol>
<li>后续总浮盈触发止盈 → 和所有头寸一起清仓</li>
<li>累计 3 锁触发熔断 → 和所有头寸一起清仓</li>
</ol>
<hr>
<!-- ═══════════════════════════════════════════════ -->
<h2>五、清仓规则</h2>
<h3><span class="label-win">🟢</span> 止盈清仓</h3>
<p><strong>触发条件</strong>:当日最低价对应的总浮盈 ≥ N × 当日振幅阈值 A(N = 每日手数)</p>
<p>总浮盈 = 所有活跃空单浮盈 + 所有锁仓对冻结盈亏</p>
<ul>
<li>清仓所有活跃空单(按 trigger 价格平仓)</li>
<li>清仓所有锁仓对(空单和多单同时平仓)</li>
<li>轮次结束,锁仓计数器归零,次日重新开始</li>
</ul>
<h3><span class="label-cut">🔴</span> 3 锁熔断</h3>
<p><strong>触发条件</strong>:累计锁仓次数 ≥ 3(跨日累计,不清零直到轮次结束)</p>
<ul>
<li>活跃空单按当日结算价平仓</li>
<li>锁仓对同步平仓</li>
<li>认输出局,轮次结束,计数器归零</li>
</ul>
<hr>
<!-- ═══════════════════════════════════════════════ -->
<h2>六、适用条件</h2>
<table>
<tr><th>条件</th><th>说明</th></tr>
<tr><td><span class="tag tag-ok"></span> 长期空头趋势</td><td>每日默认做空有正期望</td></tr>
<tr><td><span class="tag tag-ok"></span> 日均振幅 &gt; 15 点</td><td>阈值足够覆盖交易成本</td></tr>
<tr><td><span class="tag tag-ok"></span> 无极端单边上涨</td><td>连续锁仓是最怕的场景</td></tr>
<tr><td><span class="tag tag-no"></span> 趋势反转(熊→牛)</td><td>会连续 3 锁出局,建议暂停</td></tr>
<tr><td><span class="tag tag-no"></span> 振幅 &lt; 10 点</td><td>利润不够覆盖滑点</td></tr>
</table>
<hr>
<!-- ═══════════════════════════════════════════════ -->
<h2>七、操作示例</h2>
<blockquote><p>以下示例均假设每点价值 20 元。</p></blockquote>
<h3>示例 1:顺利止盈(N=1</h3>
<table>
<tr><th>时间</th><th>操作</th><th>价格</th><th>说明</th></tr>
<tr><td>第 1 天开盘</td><td>开空 1 手</td><td>1300</td><td>A=18,开仓</td></tr>
<tr><td>第 1 天收盘</td><td>持仓</td><td>1285</td><td>浮盈 15 点 &lt; 18,不触发,留仓</td></tr>
<tr><td>第 2 天开盘</td><td>开空 1 手</td><td>1280</td><td>A=20</td></tr>
<tr><td>第 2 天盘中</td><td></td><td>1260</td><td>手1浮盈=40,手2浮盈=20,总浮盈=60 ≥ 20,<span class="label-win">🟢 止盈!</span></td></tr>
</table>
<p><strong>结果</strong>:利润 = 60 点 × 20 = <strong>+1,200 元</strong>。即使没锁仓,两手持仓让总浮盈更快达到阈值。</p>
<h3>示例 2:锁仓后止盈</h3>
<table>
<tr><th>时间</th><th>操作</th><th>价格</th><th>说明</th></tr>
<tr><td>第 1 天开盘</td><td>开空 1 手</td><td>1300</td><td>A=18</td></tr>
<tr><td>第 1 天盘中</td><td>价格反弹</td><td>1318</td><td>空单浮亏 = 18 ≥ 18<span class="label-lock">🔒 锁仓!</span> 多单 @1318,冻结亏损 −18 点</td></tr>
<tr><td>第 2 天开盘</td><td>开空 1 手</td><td>1315</td><td>A=20,新活跃空单</td></tr>
<tr><td>第 2 天盘中</td><td></td><td>1277</td><td>活跃浮盈 = 13151277 = 38,总浮盈 = 38+(18) = 20 ≥ 20<span class="label-win">🟢 止盈!</span></td></tr>
</table>
<p><strong>结果</strong>:利润 = 20 点 × 20 = <strong>+400 元</strong>。锁仓冻结了 18 点亏损,活跃空单多跌了 20 点覆盖亏损后触发。</p>
<h3>示例 33 锁熔断</h3>
<table>
<tr><th>时间</th><th>操作</th><th>价格</th><th>说明</th></tr>
<tr><td>第 1 天</td><td>开空 → 锁仓</td><td>1300 → 1318</td><td>A=18,锁仓 1,冻结 18</td></tr>
<tr><td>第 2 天</td><td>开空 → 锁仓</td><td>1315 → 1337</td><td>A=22,锁仓 2,冻结 22</td></tr>
<tr><td>第 3 天</td><td>开空 → 锁仓</td><td>1330 → 1350</td><td>A=20,锁仓 3<span class="label-cut">🔴 熔断!</span></td></tr>
</table>
<p><strong>结果</strong>:全部清仓。亏损 = (18)+(−22)+(20)+(活跃空单结算亏损) ≈ <strong>1,200 元以上</strong>。连续 3 天反弹,认输出局。</p>
<h3>示例 4:多手缩放(N=2</h3>
<table>
<tr><th>时间</th><th>操作</th><th>价格</th><th>说明</th></tr>
<tr><td>第 1 天开盘</td><td>开空 2 手</td><td>1300</td><td>A=18,止盈阈值 = 2×18 = 36 点</td></tr>
<tr><td>第 1 天盘中</td><td></td><td>1282</td><td>每手浮盈 = 18,总浮盈 = 36 ≥ 36<span class="label-win">🟢 止盈!</span></td></tr>
</table>
<p><strong>结果</strong>:利润 = 36 点 × 20 = <strong>+720 元</strong>。相比 N=1(利润 360 元),翻倍但触发难度不变——每手仍只需跌 18 点。</p>
<h3>关键公式速查</h3>
<table>
<tr><th>场景</th><th>止盈阈值</th><th>触发时利润(恰卡阈值)</th></tr>
<tr><td>N 手/天,无锁仓</td><td>N × A</td><td>N × A × 20</td></tr>
<tr><td>N 手/天,K 个锁仓对</td><td>N × A</td><td>N × A × 20(锁仓亏损已内嵌在总浮盈中)</td></tr>
</table>
<hr>
<script>
// ── 暗夜模式 ──
var themeBtn = document.getElementById('themeToggle');
function setTheme(dark) {
if (dark) {
document.documentElement.setAttribute('data-theme', 'dark');
themeBtn.textContent = '☀️ 日间';
} else {
document.documentElement.removeAttribute('data-theme');
themeBtn.textContent = '🌙 暗夜';
}
try { localStorage.setItem('ft-strategy-theme', dark ? 'dark' : 'light'); } catch(e) {}
}
themeBtn.addEventListener('click', function() {
setTheme(document.documentElement.getAttribute('data-theme') !== 'dark');
});
(function() {
try {
var s = localStorage.getItem('ft-strategy-theme');
if (s === 'dark' || (!s && matchMedia('(prefers-color-scheme: dark)').matches)) setTheme(true);
} catch(e) {}
})();
</script>
</body>
</html>