交易工具 · 12 分钟
DAS Trader 热键入门:按下快捷键之前,先读懂脚本
DAS Trader 热键怎么学?结合官方文档,讲清 Load 与 Send、变量、窗口对象、Timer、Exec 和 Order Objects V2,用价差练习建立可检查的脚本学习流程。

同一条热键,昨天改的是左边的订单窗口,今天却作用在右边;同一段简写订单,换一个默认模板,数量和账户也跟着变了。学 DAS Trader 热键,真正需要弄清楚的是:它从哪里取值、改动哪个窗口,以及在哪一步把指令发送出去。
DAS 的基础热键可以把重复操作放到一个按键上;Advanced Hotkey Script 则能加入计算、条件、对象和事件。这篇文章按实际使用时会遇到的问题解释两者,不要求你先学会编程。你可以把它当作进入 FennEdge DAS 热键课程 前的一张阅读地图。
三份官方指南,分别用来解决什么问题?
| 文档 | 本次核对的版本 | 适合查什么 |
|---|---|---|
| Hotkeys Guide | 2025-10-13 · 28 页 | 基础命令、窗口操作与热键设置 |
| Advanced Hotkey Guide | 2025-06-27 · 40 页 | 变量、条件、对象、事件与图表函数 |
| DAS Order Objects V2 | 2025-06-27 · 5 页 | 简写订单、默认模板与属性补充 |
这些是 2026-10-02 从 DAS 官方文档目录及 PDF 核对的版本。目录页面更新于 2026-07-06,不代表每份 PDF 同日更新;基础指南封面仍写着 “Updated May 2025”,这里采用其页脚的 Last Updated 日期。文档日期也不是客户端最低版本号。
建议先查基础命令,再读 Advanced 的对象和状态,最后接触 V2。直接从最短的订单字符串开始,容易漏掉它背后的默认设置。本文为独立教学解读;练习未在 DAS 客户端或券商环境执行验证。
先分清 Load、Send,以及省略的字段
Montage 是日常查看报价和准备订单的重要窗口。官方 Order Script Wizard 说明区分了 BUY=Load 与 BUY=Send:前者先载入订单信息,之后在 Montage 按 Enter 才发送;后者直接发送。Load 已经改变了订单窗口,不能把它当成纯粹“看一眼”。
同一说明还指出,未填写的字段会使用 Montage 中的现有信息。因此,审查一条热键时,不只看写出来的 Price、Share,还要看股票、账户、方向、Route 和 TIF 最终来自哪里。一个按钮名字叫“预览”,也不能证明它的内容只有预览。
如果 Market、Limit、Stop 还容易混淆,先读 三类订单的区别,再做 从预填到发送 这一课。会写字段之前,先知道字段约束的是什么。
用一个价差练习,读懂变量和条件
先暂时不连接行情、不操作订单。假设 Bid 为 12.40 美元、Ask 为 12.46 美元,价差就是 0.06 美元。下面是我们根据官方语法编写的教学练习:只给全局变量赋值并弹出结果;运行前需按 Advanced 指南第 3 页启用高级脚本。
$DASIntroBid = 12.40;
$DASIntroAsk = 12.46;
if ($DASIntroBid <= 0) {
MsgBox("Check bid");
return;
}
if ($DASIntroAsk < $DASIntroBid) {
MsgBox("Check quote order");
return;
}
$DASIntroSpread = $DASIntroAsk - $DASIntroBid;
MsgBox(Round($DASIntroSpread, 2));带 $ 的名字保存值;= 是赋值;if 决定是否执行一段语句;return 提前结束。每次练习先重新赋值,目的是不沿用上一次的输入。这里的两道检查只适用于这组已知数字;接入真实行情后,还需要处理缺失、来源、时间和报价变化。
先手算 12.46 − 12.40,再看结果是否为 0.06;将 Ask 改成 12.39,应该提示检查报价顺序;把 Bid 改成 0,应该在计算前停止。你验证的是三条具体路径,而不是“弹窗出现了,所以脚本没问题”。
进一步比较不同股价的价差时,还要说明分母。例如以 Bid 为基准,这组数字约为 0.48%;以中间价为基准,口径又不同。为什么这会影响交易观察,见 Bid、Ask 与 Spread;变量与状态的细节见 条件与共享状态。
对象:指定的是哪只股票、哪个窗口、哪个账户?
对象可以理解为一份带有属性和操作入口的引用。DAS 提供窗口、行情和账户等对象:GetWindowObj 找窗口,GetQuoteObj 取指定股票的行情对象,GetAccountObj 取账户对象。相关入口见 Advanced 第 10–17 页。
设想桌面上同时打开两只股票。你想读 A 的报价,但刚刚点击的是 B 的窗口。依赖当前焦点的命令,与明确指向一个命名窗口的操作,目标可能不同。给窗口起稳定的名字很有用;不过窗口名字固定,也不代表里面的股票永远不变。
做一份检查记录时,应把股票代码、窗口名、账户和观察时间放在数值旁边。仅记录“BP 是多少”或“Ask 是多少”,事后很难判断读错了目标,还是行情本来就变了。可接着学习 窗口与执行上下文。
图表函数读到的值,也有时间和设置
GetStudyVal 可以读取已配置、已命名的图表指标值;GetBar 用于访问图表显示的 K 线。入口和示例见 Advanced 第 36 页。函数名并不能替你确认股票、周期和指标设置。
例如,同一只股票的一分钟图和五分钟图,最近一根 K 线代表的区间不同;正在形成的 K 线还会变化。把“刚刚读到的值”当成“上一根已收盘的值”,会让复盘和实际观察对不上。若依次读取几个字段,也不要默认它们来自完全相同的一瞬间。
练习时先写清:哪张图、什么周期、是否包含盘前盘后、哪一个 Study 名称,再记录读取结果。K 线与指标观察练习专门讨论这些口径;时段本身的区别可以参照 盘前与盘后交易。
Timer 和循环:重复检查,也要知道何时停止
官方指南把 Timer Event 描述为每秒运行一次的脚本入口,并不建议用 while 配合等待来模拟它。循环适合处理有限的一组项目;Timer 更适合分次观察。依据见 Advanced 第 18–19 页。
以价差提醒为例,假设你自定的练习阈值为 0.10 美元,连续三次读到 0.12。条件三次都成立,不意味着你希望收到三次提醒。需要单独决定:只在首次越过阈值时提醒,还是隔一段时间再提醒;回落后什么时候允许重新提醒。这里的阈值只用于说明程序行为。
开始做事件脚本时,先写初始化、一次检查、停止与重置,再考虑自动重复。不要把每秒一次理解为精确计时、行情一定新鲜,或后台一定持续运行。Timer 与时间边界和 价差观察器项目可以接着练习这些状态变化。
Exec、ExecHotkey、GetHotkeyScript:读取不等于执行
| 入口 | 它做什么 | 阅读脚本时要追问 |
|---|---|---|
| GetHotkeyScript | 取得指定热键的脚本文本 | 取到的内容是什么? |
| Exec | 执行传入的脚本文本 | 文本由谁生成,里面包含什么操作? |
| ExecHotkey | 执行指定名称的热键 | 被调用热键有哪些输入和副作用? |
以上区别见 Advanced 第 37–38 页。实际维护时,一条只有一行的调用,可能把大量操作藏在另一个热键里。审查必须沿着名字继续读;尤其要确认它有没有改账户、改数量、发送或撤销订单。
比较容易维护的做法是按职责拆分:准备输入、检查数据、展示结果,各自有明确名字和预期结果。修改被复用的热键之后,再检查所有调用它的入口。脚本模块与调用约定会进一步解释这种组织方式。
Order Objects V2:写得短,检查仍要完整
订单对象把构建订单与发送分开。V2 增加了简写形式,但会从默认 Order Template 补入部分省略信息;官方还列明了省略方向、类型时的默认行为。详情见 V2 第 1–2 页。这意味着,把别人的短脚本复制到自己的配置里,不一定得到同一张订单。
检查时把完整订单意图展开:账户、股票、买卖方向、数量、路由、订单类型、相关价格和有效期。一项也不要只用“应该是默认值”带过。构建出对象后,发送之前修改账户,与发送以后再改账户,含义完全不同;V2 第 5 页明确要求先设置账户再调用发送。
这一部分可以从 V2 与模板继承继续学。还要把“已发送”“已收到确认”“部分成交”“全部成交”分别核对;脚本走到最后一行,并不能证明成交或关联保护单已经生效,详见 订单生命周期。
热键能简化操作,不能消除交易条件
学习下单脚本时,容易把所有失败都归为语法错误。实际上,还可能涉及时段、路由、账户权限、借股、价格限制或停牌。先查返回信息,再判断是哪一层出了问题。
做空相关的准备,可以把 Locate与 SSR放在一起读:有借股安排,不代表任何价格都能成交;能够写出卖出指令,也不代表账户具备所需条件。遇到 LU、LD 或波动暂停,则参照 LULD 价带与暂停,不要仅靠反复触发热键排查。
这些概念也能在 FennEdge 术语表中快速查找。它们解释交易背景,具体订单接受与否仍以当时的券商和交易系统返回为准。
把 DAS 放回完整的交易工作流程
准备热键之前,先回答“我为什么在看这只股票”。可以从 FennEdge Scanner找需要进一步研究的标的,再到 FennEdge Research核对新闻、披露与公司背景。把事实、来源时间和待确认问题放在一起,避免让一个快捷键替代研究。
在 FennEdge Desk整理观察内容时,也可以保留这次使用的脚本名称、版本与关键设置。DAS 侧负责实际订单操作;事后再对照券商记录,判断问题来自研究判断、订单参数,还是执行过程。
复盘可以沿着 FennEdge Journal的交易记录与回顾思路进行,使用当前支持的数据入口。本文不表示 FennEdge 已与 DAS 自动同步,也不表示它会替你执行这些脚本。不同工具各自负责什么,可参照 日内交易工作流程。
第一周怎么学,才能留下可用的东西?
第一次只完成上面的固定数字练习,记录正常输入和两种异常输入。第二次给窗口命名,检查对象指向的股票。第三次在模拟账户研究预填字段,逐项对照预期结果。之后再加入一个可停止的观察事件,最后才考虑订单对象。每次只增加一种会改变行为的因素。
保存一份简短实验记录:客户端版本、账户环境、脚本内容、依赖设置、预期结果、实际结果。测试还应包含切换窗口、重复运行和重新启动后的行为。这样遇到问题时,你能定位是哪一步开始偏离,而不是从头重写。
接下来从 搭好脚本学习环境开始,或用 DAS API 参考查具体入口。FennEdge 课程前两课可直接阅读,其余完整内容需要登录。先做出一个自己能解释、能检查的小工具,再逐渐扩展。
本文用于解释常见概念;示例不构成交易建议。

