mirror of
https://ghfast.top/https://github.com/aeroxw/easy_tdx_max.git
synced 2026-09-12 13:24:18 +08:00
Merge pull request #9 from awayings/fix/bars-dialog-pagination
fix: K线取数翻页浪费——弹窗只取近2年 + fetchBars 停页判断取错端点
This commit is contained in:
+4
-2
@@ -113,9 +113,11 @@ export async function fetchBars(
|
||||
|
||||
allBars = allBars.concat(pageBars)
|
||||
|
||||
// 若已覆盖到 startDate(本页最早一根 ≤ startDate),停止翻页
|
||||
// 若已覆盖到 startDate(本页最早一根 ≤ startDate),停止翻页。
|
||||
// 页内升序:首根才是本页最早(此前取末根=最新根,判断恒假,每个带
|
||||
// startDate 的请求都多翻一页)
|
||||
if (startDate && pageBars.length > 0) {
|
||||
const oldest = pageBars[pageBars.length - 1].datetime.slice(0, 10)
|
||||
const oldest = pageBars[0].datetime.slice(0, 10)
|
||||
if (oldest <= startDate) break
|
||||
}
|
||||
// 不足 800 根说明已到数据起点
|
||||
|
||||
@@ -74,7 +74,11 @@ async function loadMinute() {
|
||||
async function loadDaily() {
|
||||
dailyError.value = ''
|
||||
try {
|
||||
const bars = await fetchBars('SH', props.code, 'DAY', undefined, undefined)
|
||||
// 日K只展示最近 250 根:取近 2 年(/bars 单页 800 根即可覆盖,避免全历史分页);
|
||||
// 长期停牌取不到再退回全历史。
|
||||
const since = new Date(Date.now() - 2 * 365 * 86400_000).toISOString().slice(0, 10)
|
||||
let bars = await fetchBars('SH', props.code, 'DAY', since, undefined)
|
||||
if (bars.length === 0) bars = await fetchBars('SH', props.code, 'DAY', undefined, undefined)
|
||||
if (bars.length === 0) throw new Error('该板块无日K数据')
|
||||
dailyBars.value = bars.slice(-250)
|
||||
} catch (e) {
|
||||
|
||||
@@ -106,7 +106,11 @@ watch(minuteDays, loadMinute)
|
||||
async function loadDaily() {
|
||||
dailyError.value = ''
|
||||
try {
|
||||
let bars = await fetchBars(props.market, props.code, 'DAY', undefined, undefined)
|
||||
// 日K只展示最近 250 根:取近 2 年(/bars 单页 800 根即可覆盖,避免全历史
|
||||
// 分页 5+ 页 + 深层 QFQ 负价重算);长期停牌取不到再退回全历史。
|
||||
const since = new Date(Date.now() - 2 * 365 * 86400_000).toISOString().slice(0, 10)
|
||||
let bars = await fetchBars(props.market, props.code, 'DAY', since, undefined)
|
||||
if (bars.length === 0) bars = await fetchBars(props.market, props.code, 'DAY', undefined, undefined)
|
||||
// 指数(或 /bars 空数据的服务器)回退指数接口
|
||||
if (bars.length === 0) bars = await fetchIndexBars(props.market, props.code, 250)
|
||||
if (bars.length === 0) throw new Error('无日K数据(可能为新股或代码有误)')
|
||||
|
||||
Reference in New Issue
Block a user