修正统计分析
This commit is contained in:
@@ -919,10 +919,10 @@ ENTRY_REASON_OPTIONS = (
|
||||
)
|
||||
|
||||
STATS_SEGMENT_DEFS = (
|
||||
("all", "全部已平仓", {"segment": "all"}),
|
||||
("manual", "人工·下单监控", {"segment": "manual"}),
|
||||
("all", "全部交易", {"segment": "all"}),
|
||||
("manual", "下单监控", {"segment": "manual"}),
|
||||
("key_box", "关键位箱体突破", {"segment": "key_box"}),
|
||||
("key_conv", "关键位收敛突破", {"segment": "key_conv"}),
|
||||
("key_conv", "关键位收敛结构", {"segment": "key_conv"}),
|
||||
("key_fib618", "关键位斐波0.618", {"segment": "key_fib618"}),
|
||||
("key_fib786", "关键位斐波0.786", {"segment": "key_fib786"}),
|
||||
)
|
||||
|
||||
@@ -715,12 +715,21 @@
|
||||
<div class="stat-item"><div class="label">持仓占用导致错过(累计)</div><div class="value">{{ occupied_miss_total }}</div></div>
|
||||
</div>
|
||||
<div class="sub" style="margin-bottom:12px;color:#8892b0;font-size:.82rem">
|
||||
统计分析按<strong>北京时间 {{ stats_bundle.stats_reset_hour }}:00</strong>切日计入;下列为各品类已平仓。历史总开仓(累计):
|
||||
统计分析按<strong>北京时间 {{ stats_bundle.stats_reset_hour }}:00</strong>切日计入(与顶栏 UTC 列表窗无关)。历史总开仓(累计):
|
||||
<strong style="color:#cfd3ef">{{ stats_bundle.total_opens_all }}</strong> 次
|
||||
</div>
|
||||
<div class="form-row" style="margin-bottom:14px;align-items:center">
|
||||
<label style="display:flex;align-items:center;gap:8px;font-size:.88rem;color:#cfd3ef">
|
||||
统计品类
|
||||
<select id="stats-segment-select" onchange="switchStatsSegment()" style="min-width:200px">
|
||||
{% for seg in stats_bundle.segments %}
|
||||
<option value="{{ seg.key }}">{{ seg.title }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
{% for seg in stats_bundle.segments %}
|
||||
<div class="stats-segment-block">
|
||||
<h2>{{ seg.title }}</h2>
|
||||
<div class="stats-segment-block stats-segment-panel" data-stats-segment="{{ seg.key }}"{% if not loop.first %} style="display:none"{% endif %}>
|
||||
{{ period_stats("日统计", seg.day) }}
|
||||
{{ period_stats("周统计", seg.week) }}
|
||||
{{ period_stats("月统计", seg.month) }}
|
||||
@@ -1276,6 +1285,29 @@ function recomputeJournalRealRr(){
|
||||
}
|
||||
|
||||
|
||||
function switchStatsSegment(){
|
||||
const sel = document.getElementById("stats-segment-select");
|
||||
if(!sel) return;
|
||||
const key = sel.value;
|
||||
document.querySelectorAll(".stats-segment-panel").forEach(p=>{
|
||||
p.style.display = p.getAttribute("data-stats-segment") === key ? "block" : "none";
|
||||
});
|
||||
const q = new URLSearchParams(window.location.search);
|
||||
q.set("stats_segment", key);
|
||||
const qs = q.toString();
|
||||
history.replaceState(null, "", qs ? (window.location.pathname + "?" + qs) : window.location.pathname);
|
||||
}
|
||||
|
||||
function initStatsSegmentFromUrl(){
|
||||
const sel = document.getElementById("stats-segment-select");
|
||||
if(!sel) return;
|
||||
const key = new URLSearchParams(window.location.search).get("stats_segment");
|
||||
if(key && sel.querySelector('option[value="' + key.replace(/"/g, "") + '"]')){
|
||||
sel.value = key;
|
||||
}
|
||||
switchStatsSegment();
|
||||
}
|
||||
|
||||
function toggleStatsCard(){
|
||||
const card = document.getElementById("stats-card");
|
||||
const btn = document.getElementById("stats-toggle-btn");
|
||||
@@ -1286,6 +1318,7 @@ function toggleStatsCard(){
|
||||
|
||||
attachListWindowToExports();
|
||||
toggleListWindowCustom();
|
||||
initStatsSegmentFromUrl();
|
||||
if(document.getElementById("journal-list")) loadJournals();
|
||||
if(document.getElementById("review-list")) loadReviews();
|
||||
const reviewToggle = document.getElementById("review-mode-toggle");
|
||||
|
||||
@@ -99,7 +99,8 @@
|
||||
| 项 | 说明 |
|
||||
|----|------|
|
||||
| 切日 | **北京时间**;交易日边界 = 每日 `TRADING_DAY_RESET_HOUR:00`(`.env` 默认 **8**) |
|
||||
| 分块 | 页内按品类各一块:**全部已平仓**、**人工·下单监控**、**关键位箱体突破**、**关键位收敛突破**、**关键位斐波0.618**、**关键位斐波0.786** |
|
||||
| 品类下拉 | 页顶 **「统计品类」** 下拉切换(默认「全部交易」):全部交易、下单监控、关键位箱体突破、关键位收敛结构、关键位斐波0.618、关键位斐波0.786;一次只显示所选品类的日/周/月 |
|
||||
| URL | 切换后写入 `stats_segment=`(如 `all`、`manual`、`key_box`、`key_conv`、`key_fib618`、`key_fib786`),刷新 `/stats` 可保持选项 |
|
||||
| 每块指标 | 日 / 周 / 月:开单次数、平仓笔数、胜率、净盈亏、回撤、连续亏损等(与原口径一致) |
|
||||
| 开单次数 | 人工块:`monitor_type=下单监控` 且无 `key_signal_type`;关键位块:按 `order_monitors.key_signal_type` 计数 |
|
||||
| 不受 UTC 窗影响 | 统计始终基于库内全部已平仓记录,按北京交易日归类,**不**随顶栏 UTC 列表窗切换 |
|
||||
|
||||
@@ -918,10 +918,10 @@ ENTRY_REASON_OPTIONS = (
|
||||
)
|
||||
|
||||
STATS_SEGMENT_DEFS = (
|
||||
("all", "全部已平仓", {"segment": "all"}),
|
||||
("manual", "人工·下单监控", {"segment": "manual"}),
|
||||
("all", "全部交易", {"segment": "all"}),
|
||||
("manual", "下单监控", {"segment": "manual"}),
|
||||
("key_box", "关键位箱体突破", {"segment": "key_box"}),
|
||||
("key_conv", "关键位收敛突破", {"segment": "key_conv"}),
|
||||
("key_conv", "关键位收敛结构", {"segment": "key_conv"}),
|
||||
("key_fib618", "关键位斐波0.618", {"segment": "key_fib618"}),
|
||||
("key_fib786", "关键位斐波0.786", {"segment": "key_fib786"}),
|
||||
)
|
||||
|
||||
@@ -725,12 +725,21 @@
|
||||
<div class="stat-item"><div class="label">持仓占用导致错过(累计)</div><div class="value">{{ occupied_miss_total }}</div></div>
|
||||
</div>
|
||||
<div class="sub" style="margin-bottom:12px;color:#8892b0;font-size:.82rem">
|
||||
统计分析按<strong>北京时间 {{ stats_bundle.stats_reset_hour }}:00</strong>切日计入;下列为各品类已平仓。历史总开仓(累计):
|
||||
统计分析按<strong>北京时间 {{ stats_bundle.stats_reset_hour }}:00</strong>切日计入(与顶栏 UTC 列表窗无关)。历史总开仓(累计):
|
||||
<strong style="color:#cfd3ef">{{ stats_bundle.total_opens_all }}</strong> 次
|
||||
</div>
|
||||
<div class="form-row" style="margin-bottom:14px;align-items:center">
|
||||
<label style="display:flex;align-items:center;gap:8px;font-size:.88rem;color:#cfd3ef">
|
||||
统计品类
|
||||
<select id="stats-segment-select" onchange="switchStatsSegment()" style="min-width:200px">
|
||||
{% for seg in stats_bundle.segments %}
|
||||
<option value="{{ seg.key }}">{{ seg.title }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
{% for seg in stats_bundle.segments %}
|
||||
<div class="stats-segment-block">
|
||||
<h2>{{ seg.title }}</h2>
|
||||
<div class="stats-segment-block stats-segment-panel" data-stats-segment="{{ seg.key }}"{% if not loop.first %} style="display:none"{% endif %}>
|
||||
{{ period_stats("日统计", seg.day) }}
|
||||
{{ period_stats("周统计", seg.week) }}
|
||||
{{ period_stats("月统计", seg.month) }}
|
||||
@@ -1286,6 +1295,29 @@ function recomputeJournalRealRr(){
|
||||
}
|
||||
|
||||
|
||||
function switchStatsSegment(){
|
||||
const sel = document.getElementById("stats-segment-select");
|
||||
if(!sel) return;
|
||||
const key = sel.value;
|
||||
document.querySelectorAll(".stats-segment-panel").forEach(p=>{
|
||||
p.style.display = p.getAttribute("data-stats-segment") === key ? "block" : "none";
|
||||
});
|
||||
const q = new URLSearchParams(window.location.search);
|
||||
q.set("stats_segment", key);
|
||||
const qs = q.toString();
|
||||
history.replaceState(null, "", qs ? (window.location.pathname + "?" + qs) : window.location.pathname);
|
||||
}
|
||||
|
||||
function initStatsSegmentFromUrl(){
|
||||
const sel = document.getElementById("stats-segment-select");
|
||||
if(!sel) return;
|
||||
const key = new URLSearchParams(window.location.search).get("stats_segment");
|
||||
if(key && sel.querySelector('option[value="' + key.replace(/"/g, "") + '"]')){
|
||||
sel.value = key;
|
||||
}
|
||||
switchStatsSegment();
|
||||
}
|
||||
|
||||
function toggleStatsCard(){
|
||||
const card = document.getElementById("stats-card");
|
||||
const btn = document.getElementById("stats-toggle-btn");
|
||||
@@ -1296,6 +1328,7 @@ function toggleStatsCard(){
|
||||
|
||||
attachListWindowToExports();
|
||||
toggleListWindowCustom();
|
||||
initStatsSegmentFromUrl();
|
||||
if(document.getElementById("journal-list")) loadJournals();
|
||||
if(document.getElementById("review-list")) loadReviews();
|
||||
const reviewToggle = document.getElementById("review-mode-toggle");
|
||||
|
||||
@@ -99,7 +99,8 @@
|
||||
| 项 | 说明 |
|
||||
|----|------|
|
||||
| 切日 | **北京时间**;交易日边界 = 每日 `TRADING_DAY_RESET_HOUR:00`(`.env` 默认 **8**) |
|
||||
| 分块 | 页内按品类各一块:**全部已平仓**、**人工·下单监控**、**关键位箱体突破**、**关键位收敛突破**、**关键位斐波0.618**、**关键位斐波0.786** |
|
||||
| 品类下拉 | 页顶 **「统计品类」** 下拉切换(默认「全部交易」):全部交易、下单监控、关键位箱体突破、关键位收敛结构、关键位斐波0.618、关键位斐波0.786;一次只显示所选品类的日/周/月 |
|
||||
| URL | 切换后写入 `stats_segment=`(如 `all`、`manual`、`key_box`、`key_conv`、`key_fib618`、`key_fib786`),刷新 `/stats` 可保持选项 |
|
||||
| 每块指标 | 日 / 周 / 月:开单次数、平仓笔数、胜率、净盈亏、回撤、连续亏损等(与原口径一致) |
|
||||
| 开单次数 | 人工块:`monitor_type=下单监控` 且无 `key_signal_type`;关键位块:按 `order_monitors.key_signal_type` 计数 |
|
||||
| 不受 UTC 窗影响 | 统计始终基于库内全部已平仓记录,按北京交易日归类,**不**随顶栏 UTC 列表窗切换 |
|
||||
|
||||
Reference in New Issue
Block a user