跳到主要内容

数据类型

这些是 iframe URL、cacheCandle 与 postMessage 事件共用的载荷结构。

核心 K 线类型​

Candle​

用于 cacheCandle、回放载荷与所选图表窗口。

interface Candle {
o: number; // open
h: number; // high
l: number; // low
c: number; // close
timestamp: number; // unix 秒
}
字段类型说明
onumber开盘价
hnumber最高价
lnumber最低价
cnumber收盘价
timestampnumberK 线时间,单位 unix 秒

cacheCandle 请求​

type CacheCandleRequest = {
candles: Candle[];
};

示例:

{
"candles": [
{ "o": 1.08, "h": 1.09, "l": 1.07, "c": 1.085, "timestamp": 1719878400 }
]
}

认证类型​

auth.signIn​

iframe 登录成功后发出的消息:

type AuthSignInMessage = {
name: "auth.signIn";
data: {
idToken: string;
};
};

如果宿主需要调用 cacheCandle 或其他相关 API,请将 data.idToken 存为 iccandle_token。

加载类型​

type SelectorLoadingMessage = {
name: "selector.loading";
data: {
isLoading: boolean;
};
};

true 表示扫描或 AI 准备正在进行中。

回放类型​

ChartReplayData​

用于 chart.play 与 chart.stop。

interface ChartReplayData {
isReplay: boolean;
predictCandles?: Candle[] | null;
playEndTimestamp: number | null; // unix 秒
selectedCandles: Candle[] | null;
}
字段类型说明
isReplayboolean是否处于回放模式
predictCandlesCandle[] | null要叠加显示的生成 / 预测 K 线
playEndTimestampnumber | null回放应停止的 unix 秒时间戳
selectedCandlesCandle[] | null用于回放或分析的源 K 线

chart.play​

type ChartPlayMessage = {
name: "chart.play";
data: ChartReplayData;
};

chart.stop​

type ChartStopMessage =
| {
name: "chart.stop";
data: ChartReplayData;
}
| {
name: "chart.stop";
data: null;
};

导航类型​

type NavClickMessage = {
name: "nav.click";
data: {
href: string;
};
};

href 是用户在嵌入端选择的路由或路径。

新闻与事件类型​

NewsEvent​

用于事件点击消息与所选新闻载荷。

interface NewsEvent {
id: string;
timestamp: number; // unix ms
event_name: string;
metric: string;
forecast: string;
actual: string;
previous: string;
currency: string;
}
字段类型说明
idstring事件标识符
timestampnumber事件时间,单位 unix 毫秒
event_namestring可读事件名称
metricstring指标名称
forecaststring预测值
actualstring实际值
previousstring前值
currencystring对应币种

news.eventClicked​

type NewsEventClickedMessage = {
name: "news.eventClicked";
data: {
event: NewsEvent;
similarDetails: object | null;
};
};

similarDetails 是相似事件流程所用的实现细节元数据。除非你检查了实时载荷并确实需要使用,否则可将其视为不透明对象。

news.selectedEventPayloads​

type NewsSelectedEventPayloadsMessage = {
name: "news.selectedEventPayloads";
data: NewsEvent[];
};

返回与生命周期消息​

type NewsBackMessage = {
name: "news.back";
data: null;
};

type NewsBackToSimilarEventsMessage = {
name: "news.backToSimilarEvents";
data: null;
};

type NewsIframeReadyMessage = {
name: "news.iframeReady";
data: null;
};

type NewsAnalyzeImpactMessage = {
name: "news.analyzeImpact";
data: null;
};

形态选择类型​

形态载荷目前除了最外层消息包裹外,还没有完全规范化。宿主通常只需要对比区间,因此在把实时字段映射到图表 API 之前,可将 pattern 视为不透明对象。

经典 / 通用形态​

type ClassicPatternSelectedMessage = {
name: "pattern.classicPatternSelected";
data: {
pattern: object;
};
};

type ClearClassicPatternSelectedMessage = {
name: "pattern.clearClassicPatternSelected";
data: null;
};

追踪形态​

type CustomPatternSelectedMessage = {
name: "pattern.custom_pattern_selected";
data: {
pattern: object;
};
};

type ClearCustomPatternSelectedMessage = {
name: "pattern.clear_custom_pattern_selected";
data: null;
};

父页面到嵌入端的类型​

type ParentOriginMessage = {
type: "parent-origin";
origin: string;
};

type PaymentSuccessMessage = {
type: "payment-success";
};

包裹类型​

如果你想先用一个宽泛的解析结构,再缩窄到具体消息类型,可使用:

type EmbedMessageEnvelope = {
name?: string;
data?: unknown;
pattern?: unknown;
};

下一步​

参见 窗口消息 了解完整路由目录与集成建议。