行情区增加 3m/10m/20m/30m 与 2h/6h/8h/12h 周期

- hub_ohlcv_lib 扩展 CHART_TIMEFRAMES 与分钟快捷键映射

- 下拉框与 /api/chart/meta 同步新周期列表

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-02 15:21:55 +08:00
parent bb762ceeaa
commit abcda762d8
4 changed files with 88 additions and 5 deletions
+2 -2
View File
@@ -14,7 +14,7 @@ if str(_REPO_ROOT) not in sys.path:
sys.path.insert(0, str(_REPO_ROOT))
from hub_kline_store import format_ohlcv_detail, resolve_chart_bars, retention_days
from hub_ohlcv_lib import CHART_TIMEFRAMES, bar_limit_for_timeframe
from hub_ohlcv_lib import CHART_TIMEFRAME_ORDER, CHART_TIMEFRAMES, bar_limit_for_timeframe
from env_load import load_hub_dotenv
@@ -340,7 +340,7 @@ def _fetch_instance_ohlcv_sync(
@app.get("/api/chart/meta")
def api_chart_meta():
tfs = ["1m", "5m", "15m", "1h", "4h", "1d", "1w"]
tfs = [tf for tf in CHART_TIMEFRAME_ORDER if tf in CHART_TIMEFRAMES]
exchanges = []
for ex in enabled_exchanges(load_settings()):
exchanges.append(
+24
View File
@@ -15,19 +15,35 @@
const MAX_DIV_MARKERS = 4;
const TF_MS = {
"1m": 60_000,
"3m": 3 * 60_000,
"5m": 5 * 60_000,
"10m": 10 * 60_000,
"15m": 15 * 60_000,
"20m": 20 * 60_000,
"30m": 30 * 60_000,
"1h": 60 * 60_000,
"2h": 2 * 60 * 60_000,
"4h": 4 * 60 * 60_000,
"6h": 6 * 60 * 60_000,
"8h": 8 * 60 * 60_000,
"12h": 12 * 60 * 60_000,
"1d": 24 * 60 * 60_000,
"1w": 7 * 24 * 60 * 60_000,
};
const TF_BY_MINUTES = {
"1": "1m",
"3": "3m",
"5": "5m",
"10": "10m",
"15": "15m",
"20": "20m",
"30": "30m",
"60": "1h",
"120": "2h",
"240": "4h",
"360": "6h",
"480": "8h",
"720": "12h",
"1440": "1d",
"10080": "1w",
};
@@ -36,10 +52,18 @@
});
const TF_CN_LABEL = {
"1m": "1分钟",
"3m": "3分钟",
"5m": "5分钟",
"10m": "10分钟",
"15m": "15分钟",
"20m": "20分钟",
"30m": "30分钟",
"1h": "1小时",
"2h": "2小时",
"4h": "4小时",
"6h": "6小时",
"8h": "8小时",
"12h": "12小时",
"1d": "日线",
"1w": "周线",
};
+18 -2
View File
@@ -60,7 +60,7 @@
<div id="page-market" class="page hidden">
<div class="page-head">
<h1><span class="head-tag">MKT</span> 行情区</h1>
<p class="page-desc">按需拉取 K 线,本地库保留 15 天(无后台自动更新)。快捷键:<kbd>F</kbd> 切换 K 线全屏/退出(全屏时 <kbd>Esc</kbd> 退出);数字键切换周期分钟):1/5/15/60/240/1440/10080(多数字连按,如 1 再 5 为 15m)。</p>
<p class="page-desc">按需拉取 K 线,本地库保留 15 天(无后台自动更新)。快捷键:<kbd>F</kbd> 切换 K 线全屏/退出(全屏时 <kbd>Esc</kbd> 退出);数字键周期分钟数(如 15→15m、120→2h、720→12h、1440→1d,多键连按后 Enter 或稍停确认)。</p>
</div>
<details class="hint-box">
<summary>数据说明</summary>
@@ -82,10 +82,18 @@
<span>周期</span>
<select id="market-timeframe">
<option value="1m">1m</option>
<option value="3m">3m</option>
<option value="5m">5m</option>
<option value="10m">10m</option>
<option value="15m">15m</option>
<option value="20m">20m</option>
<option value="30m">30m</option>
<option value="1h">1h</option>
<option value="2h">2h</option>
<option value="4h">4h</option>
<option value="6h">6h</option>
<option value="8h">8h</option>
<option value="12h">12h</option>
<option value="1d" selected>1d</option>
<option value="1w">1w</option>
</select>
@@ -137,10 +145,18 @@
<span>周期</span>
<select id="market-fs-timeframe">
<option value="1m">1m</option>
<option value="3m">3m</option>
<option value="5m">5m</option>
<option value="10m">10m</option>
<option value="15m">15m</option>
<option value="20m">20m</option>
<option value="30m">30m</option>
<option value="1h">1h</option>
<option value="2h">2h</option>
<option value="4h">4h</option>
<option value="6h">6h</option>
<option value="8h">8h</option>
<option value="12h">12h</option>
<option value="1d">1d</option>
<option value="1w">1w</option>
</select>
@@ -240,7 +256,7 @@
<div id="toast"></div>
<script src="https://unpkg.com/lightweight-charts@4.2.0/dist/lightweight-charts.standalone.production.js"></script>
<script src="/assets/chart.js?v=20260528-hub-fs-f"></script>
<script src="/assets/chart.js?v=20260528-hub-tf-h"></script>
<script src="/assets/app.js?v=20260528-hub-tpsl-fix"></script>
</body>
</html>