FennEdge Learn · 编程

DAS Trader Advanced Hotkey Script Course

读懂代码,检查状态,验证结果。 从语言与数据结构,到订单对象、事件工作流和完整项目,系统学习 Advanced Script 编程。

按约 1046 分钟安排,已包含阅读、算例和每课练习;实际用时因人而异。

36节课程≈1046预计分钟—登录后保存进度
10
第 10/36 课 · 约 24 分钟

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。记录中应把“观察时间、图表配置、值”放在一起,不能只贴一个数字。