FennEdge Learn · 编程

DAS Trader Advanced Hotkey Script Course

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

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

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

DAS 脚本 NewUserObj:自定义对象与结构化状态

用对象组织配置、观察结果和状态,理解初始化与替换。

从零散变量到一条记录

前置知识:对象访问与共享变量。NewUserObj 创建可自定义属性的对象,把属于同一件事的数据组织在一起。它不会自动验证结构、定义类或持久保存内容。先指定对象所有者,再写出结构约定。

创建完整的观察记录

Advanced Script · 仅修改本地对象状态。整段手动执行,数值均为虚构测试输入。

示例代码

$feObservation = NewUserObj();
$feObservation.schema = 1;
$feObservation.symbol = "MSFT";
$feObservation.bid = 20.10;
$feObservation.ask = 20.14;
$feObservation.valid = 0;
$feObservation.spread = 0;
if ($feObservation.bid > 0) {
    if ($feObservation.ask >= $feObservation.bid) {
        $feObservation.spread = $feObservation.ask - $feObservation.bid;
        $feObservation.valid = 1;
    }
}
$feObservation.ShowObject();

读取、写入与替换

schema 是我们定义的记录结构版本,不是 DAS 版本开关。依赖字段填好后,valid 才变为 1;读取者先检查 valid,再使用 spread。给变量重新赋 NewUserObj 是替换它所指向的对象,不代表其他旧引用同步消失。手册未完整说明别名与深拷贝,不应把 $b=$a 当成已记录的对象克隆方法。

方法与结构演进

固定字段用 obj.field 易读;键名本身是数据时用 Set/Get。Del(key) 删除某项,Del("*") 清空对象属性。将 spread 改为 spreadDollars 时,应同时更新使用者或增加结构版本;不能靠缺失属性的未知行为完成迁移。配置和实时观察的重置时机不同,适合分成两个对象。

练习与参考解答

为假设价格 8.25、数量 40 的记录增加 notional。参考解答:先设 valid=0、notional=0,检查价格与数量为正,计算 330,再发布 valid=1。第二次输入无效时不能将上次 330 保持为有效状态。分别测试整体重新初始化和只更新单个字段。