数据类型
这些是 iframe URL、cacheCandle 与 postMessage 事件共用的载荷结构。
核心 K 线类型
Candle
用于 cacheCandle、回放载荷与所选图表窗口。
interface Candle {
o: number; // open
h: number; // high
l: number; // low
c: number; // close
timestamp: number; // unix 秒
}
| 字段 | 类型 | 说明 |
|---|---|---|
o | number | 开盘价 |
h | number | 最高价 |
l | number | 最低价 |
c | number | 收盘价 |
timestamp | number | K 线时间,单位 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;
}
| 字段 | 类型 | 说明 |
|---|---|---|
isReplay | boolean | 是否处于回放模式 |
predictCandles | Candle[] | null | 要叠加显示的生成 / 预测 K 线 |
playEndTimestamp | number | null | 回放应停止的 unix 秒时间戳 |
selectedCandles | Candle[] | 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;
}
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 事件标识符 |
timestamp | number | 事件时间,单位 unix 毫秒 |
event_name | string | 可读事件名称 |
metric | string | 指标名称 |
forecast | string | 预测值 |
actual | string | 实际值 |
previous | string | 前值 |
currency | string | 对应币种 |
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;
};
下一步
参见 窗口消息 了解完整路由目录与集成建议。