DAS 脚本行情、图表与账户数据的语义
每个值都带上股票、窗口、周期和单位。
报价不是成交价
Bid、Ask、Last 表示不同的市场观察,不能保证下一笔订单的成交价格或数量。记录股票、连接状态和观察时间;缺少上下文的数字不是完整证据。
Advanced Script · 只读检查。 先打开示例股票的行情,再检查对象。MSFT 只是示例标识,不是交易推荐。
$feQuote = GetQuoteObj("MSFT");
$feQuote.ShowObject();
官方手册把报价数据标为只读。数据缺失、订阅限制、行情断线,都应在使用数值计算前处理。
读取命名指标
Advanced Script · 读取与显示。 把 Chart 命名为 feChart,添加所需 VWAP 指标,再把这个指标命名为 feVwap。
$feChart = GetWindowObj("feChart");
$feStudyValue = $feChart.GetStudyVal("feVwap");
MsgBox($feStudyValue);
文档里的调用读取指标最新的数值。先确认图表股票、周期、交易时段与指标配置,不把仍在变化的值悄悄当成已收盘 K 线的值。
同一手册用 GetBar(-5) 演示读取倒数第 5 根已显示 K 线。先检查返回对象的字段再读取;不推测未记录的索引或缺失 K 线会返回什么。
Advanced Script · 检查 K 线对象。 保持同一个命名图表,并确认已显示至少 5 根 K 线。对照屏幕位置,检查返回对象暴露的字段。
$feChart = GetWindowObj("feChart");
$feBar = $feChart.GetBar(-5);
$feBar.ShowObject();
几种数量不能混用
| 数量 | 含义 |
|---|---|
| 持仓数量 | 账户当前报告的持有数量 |
| 委托数量 | 一笔订单请求的数量 |
| 已成交数量 | 这笔订单已经执行的部分 |
| 剩余数量 | 这笔订单还未执行的部分 |
| Buying power | 账户约束,不是风险预算 |
动手练习:数值旁边放上下文
记录股票、图表名、周期、时段、指标名、build 和观察时间,只改变周期再做一次。结果不同时先查配置,而不是马上判断 API 错了。使用 GetAccountObj(account) 时明确指定已确认的模拟账户,检查暴露的属性后再建立依赖。
同一个数字需要不同的时间标签
脚本的读取时间不是交易所事件时间,也不是“最后一根已完成 K 线”的时间。先读取 Bid 再读取 Ask,这两个读取之间市场可能已经变化;它们组成的价差是一次顺序采样结果,不是原子行情快照。GetSecond() 可以记录本地日内观察时刻,但不是 UTC 时间戳,也不能证明行情新鲜。
只读行情与可写附加数据
官方的只读说明针对 BID、ASK 等行情字段。Quote 对象另有可写的 .data 槽位,可放自定义状态;这不意味着你能修改真实 Bid。多个脚本如果共用同一对象的 .data,还可能互相覆盖。详见 行情状态与账户。
练习解答
只改周期后 VWAP 或 Bar 不同,首先检查该 study 的计算配置、session 和图表加载范围。GetBar(-5) 表示倒数第五根显示中的 Bar,不自动等于倒数第五根已收盘 Bar。记录中应把“观察时间、图表配置、值”放在一起,不能只贴一个数字。