FennEdge Learn · 编程

DAS Trader Advanced Hotkey Script Course

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

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

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

综合练习:只读的 DAS 检查工具

把明确依赖、条件检查和可观察结果连接起来。

先定义契约

为命名 Montage 做一次性价差检查器:读取两个价格,拒绝非正值或颠倒输入,显示差值。它不选择交易,不改订单输入,也不请求 Locate。

Advanced Script · 读取与显示 · FennEdge 尚未在客户端实测。 需要开启 Advanced Script、存在 feMontage 窗口且行情可用。先完成第 1 课对象检查;本示例的条件没有覆盖“对象不存在”的行为。

$feWindow = GetWindowObj("feMontage");
$feBid = $feWindow.BID;
$feAsk = $feWindow.ASK;
$feSpread = 0;
if ($feBid > 0) {
    if ($feAsk > 0) {
        if ($feAsk < $feBid) {
            MsgBox("Inverted quote: inspect feed");
            return;
        }
        $feSpread = $feAsk - $feBid;
        MsgBox($feSpread);
    } else {
        MsgBox("Ask unavailable");
        return;
    }
} else {
    MsgBox("Bid unavailable");
    return;
}

执行之前先逐行推演

假设 Bid 为 12.40、Ask 为 12.43,数学结果是 0.03;两个正价格相等,结果为零;Bid 或 Ask 为零,显示信息并停止;Ask 小于 Bid,提示报价颠倒后停止。这些是练习的输入规则,不是对所有市场状态的通用分类。

两次属性读取不是原子的行情快照。中间报价可能变化;脚本也不证明新鲜度、订阅质量或成交价。把这些限制与结果一起记在练习记录里。

验收清单

  1. 确认准确 build、模拟环境、窗口与股票。
  2. 读取实际行情前,先用假设数字推演每个分支。
  3. 检查没有写订单字段、提交、撤单、Locate 或辅助脚本调用。
  4. 单次运行,记录观察时间,与可见报价对照。
  5. 改变焦点,再改变股票,分别重试并解释结果。

与自己的工作区连接

在研究中查看带来源的股票证据,在复盘里整理自己的复盘。脚本观察值应和时间、配置放在一起,不自动变成 FennEdge 的市场结论。分享笔记时去掉私有账户标识。

把单次检查变成可交接的作品

交付物不仅是代码,还包括窗口命名说明、依赖清单、输入与输出字段、预期样例、错误分支和停止方式。让另一位读者只凭这些说明在自己的模拟环境准备相同对象,才算完成本课的可复现目标。

检查器输出应该包含本次是否有效,不能在失败时保留上次价差作为当前值。若想保留历史,使用单独的历史记录字段,并把它清楚标为历史。记录一次 Bid/Ask 不意味着跨字段原子采样。

综合项目路线

项目 新增的编程能力 核心验收
多股票观察簿 集合、记录结构、逐行校验 两条记录独立,失败不沿用旧值
事件观察器 Timer、状态机、滞回、启停 同一区间不重复触发,回退时钟可处理
订单审计台 精确查询、数量核对、证据分类 查询身份明确,请求与终态分开

练习解答

当 Ask 小于 Bid 时,本课不输出一个“有效负价差”。先标记本次无效,保留输入用于调查。名称缺失时修复对象依赖;它不是一个可以用数字零替代的正常行情场景。完成后才能把读取器接入更频繁的事件入口。