FennEdge Learn · 编程

DAS Trader Advanced Hotkey Script Course

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

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

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

DAS 组合提醒、变量条件与回调设计

分离条件计算、触发策略与回调副作用。

提醒系统的三层

前置知识:Alert 基础、Timer、状态机。组合提醒包含条件计算、触发规则和回调。连续写两次 AddItem,不能据此假定所有 build 的 AND/OR 分组与求值时机。应检查保存后的 Alert 设置并验证真值表。要明确表达合取,可在短观察脚本中计算全局条件,再在 Alert 界面绑定该变量。

显式计算组合条件

Advanced Script · 仅使用假设输入并写本地变量。本例条件为 value>10 且 count>=3。在配置观察它的 Alert 之前,先初始化 feComposite。

条件代码

$feValue = 11;
$feCountForAlert = 3;
$feComposite = 0;
if ($feValue > 10) {
    if ($feCountForAlert >= 3) {
        $feComposite = 1;
    }
}
MsgBox($feComposite);

将条件连接到 Alert 界面

在 Alerts & Triggers 中选择全局变量条件,与 1 比较。手册确认支持变量驱动条件,但没有提供任意变量名对应的通用 AddItem 字段 token,因此这里通过界面配置。Script 字段起初只放消息正文,记录重复、自动删除和启用选项。Save 后继续执行的代码不等于触发回调。

回调正文与观察规则

MsgBox("FE composite condition became eligible");

真值表与中间状态

value count 发布条件
9 3 0
11 2 0
10 3 0
11 3 1

这个实现先写零,再算出一。变量观察器是否看到中间写入取决于调度。对重复敏感的逻辑,应使用综合项目中的边沿状态回调,并在客户端验证调度,不能把顺序赋值说成原子发布。

练习与参考解答

不使用未经核对的布尔运算符,将条件改为 value>10 或 count>=3。参考解答:结果初始化为零,用两个独立 if,任一个满足就设为一。验证四种组合。创建、观察、清理分别组织;仅对仍然持有引用的练习 Alert 使用 Reset 后 Save。