搭好脚本学习环境
分清运行入口、配置模拟环境,从一条可观察的脚本开始。
你要学的是什么
Hotkey 是触发入口,Script 是被执行的内容,Hot Button 则让你从窗口按钮启动脚本。Advanced Script 在传统命令之上加入变量、表达式、条件和对象。它运行在 DAS Trader Pro 客户端里,不是外部 Python 或 JavaScript 程序。
这套课程围绕三个问题展开:输入来自哪里、代码改变了什么、怎样确认结果。FennEdge 提供学习内容;这里的页面不连接券商,也不执行 DAS 代码。
准备可复现的工作区
- 记录 DAS 的具体 build、券商连接与模拟账户。修改前备份桌面布局和热键配置。
- 2025 年 6 月版手册通过 Setup → Other Configuration → Hotkey Advanced Script 开启高级脚本。不同 build 的菜单文字可能不同,以对应帮助为准。
- 打开 Montage、Chart、Orders 和 Positions。在 Montage 标题栏菜单里,把窗口唯一命名为
feMontage,再保存桌面。 - 在 Setup → Hotkeys/Scripts → Hotkeys 新建独立练习热键,避开已有的交易执行键位。
第一段脚本:检查对象
Advanced Script · 对象检查 · 不发送订单。 前提是已经存在上述命名窗口。
$feWindow = GetWindowObj("feMontage");
$feWindow.ShowObject();
第一行取得窗口对象,第二行打开对象检查视图。把暴露出来的属性和窗口实际内容对照起来。看到一个属性名后,还要确认它的含义、是否可写,以及它依赖哪个上下文。
动手练习:留下证据
记录脚本文本、build、窗口名、预期结果和实际结果。把焦点移到 Chart 后再试一次,观察命名目标是否保持一致。这样可以先建立明确的目标,再学习依赖焦点的命令。对象检查通过,不代表账户已经拥有订单权限。
先建立四层执行模型
把一次按键拆开:入口 → 脚本求值 → DAS 窗口或对象 → 外部系统。Hotkey、Hot Button、Alert 回调、Timer 都可能成为入口,但上下文与重复频率不同。计算成功只说明第二层完成;出现窗口变化说明第三层发生了某种变化;订单接受、成交或借股结果需要第四层的独立证据。
| 层 | 本课怎样观察 | 常见误判 |
|---|---|---|
| 入口 | 手动触发一次,记录绑定名称 | 同一脚本在 Timer 中也只执行一次 |
| 求值 | 用固定输入和 MsgBox 检查结果 | 弹窗出现就代表交易成功 |
| 窗口 / 对象 | ShowObject 与实际窗口对照 | 名称相同就一定是原来的对象 |
| 外部系统 | 在后续课程核对回报 | 下一行执行就代表上一项已完成 |
练习文件怎样组织
保留一份可恢复的原始配置,再按用途建立 FE_Practice_ 前缀的绑定。这个前缀只是人为命名约定;DAS 不会因此为你创建私有命名空间。一个练习先只有一个入口,先用固定数据,之后才接入行情,最后才增加事件入口。
记录表至少有:脚本版本、DAS build、账户、连接环境、窗口名称、触发入口、输入、预期、实际、清理步骤。配置中不要记录密码。恢复桌面后重新核对窗口名称,不要把保存桌面等同于保存所有运行时变量。
动手练习与解答
把 feMontage 改名后,原脚本为什么不能继续当作成功?**解答:**名字是查找依赖,旧名称不再指向已确认的窗口;先修复名称,再观察返回行为。不要自创 null 检测来掩盖尚未验证的缺失对象契约。
再把相同的读取脚本从 Chart 焦点触发。若命名对象读取保持一致,证明的是这次显式目标解析;它不能证明后面的裸 Price= 也会写到同一个窗口。下一课开始区分变量、字段与函数。