FennEdge Learn · 编程

DAS Trader Advanced Hotkey Script Course

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

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

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

DAS 脚本变量、表达式与命令

逐句读懂赋值、计算、函数与传统命令。

同一行里可能是三种操作

$fePrice = 12.5; 给用户变量赋值;Price=12.5; 写入对应上下文里的 Montage 字段;MsgBox($fePrice); 调用函数。看起来相似的文字,副作用可能完全不同。

语句用分号分隔,字符串使用 ASCII 直引号,注释用 //。从 PDF 复制时,排版引号可能混入代码,造成解析错误。

先做一个能手算核对的计算

Advanced Script · 仅计算和弹窗。 数字都是教学假设值。

$feUnits = 24;
$feUnitPrice = 7.5;
$feNotional = $feUnits * $feUnitPrice;
MsgBox($feNotional);

预期结果是 180。只把 $feUnits 改成 32,结果应为 240。这样先验证算术,不混入行情和订单输入。

写法 含义 检查重点
$feUnits = 24 赋一个整数值 新值覆盖旧值
$feUnitPrice = 7.5 赋一个小数值 区分美元和美分
"feMontage" 字符串字面值 名称需要引号
$feWindow.BID 读取对象属性 先取得对象
MsgBox(...) 显示数值 弹窗需要人工交互

手册列出了整数、浮点数、字符串、对象四类值,并说明乘除优先于加减。只要分组影响含义,就把括号写出来。

动手练习:分清变量与字段

指出开头三种写法里,哪一种会修改 Montage。再先手算 (24 + 8) * 7.5,然后写成表达式。把平台命令和纯计算分开组织,便于逐块审查副作用。

按求值过程读代码

对 $feNotional = $feUnits * $feUnitPrice;,先读取右侧两个当前值,再相乘,最后覆盖左侧。赋值不是永久建立公式依赖:之后改 $feUnits,不会自动重算已经存下的 $feNotional。如果需要新结果,必须再次执行计算。

Advanced Script · 固定数值、消息,无窗口写入。

$feUnits = 24;
$feUnitPrice = 7.5;
$feNotional = $feUnits * $feUnitPrice;
$feUnits = 32;
MsgBox("Stored: ", $feNotional);
$feNotional = $feUnits * $feUnitPrice;
MsgBox("Recomputed: ", $feNotional);

预期先显示 180,再显示 240。这也是“保存行情快照”和“重新读取行情”的区别:一个旧数字不会自己跟着行情更新。

字符串、数字和对象的边界

"24" 是文本字面量,24 是整数;不要依赖未经验证的隐式转换。窗口对象也不是窗口名称字符串:"feMontage" 是查找参数,GetWindowObj("feMontage") 才执行查找。ShowObject() 的展示行为不意味着它返回原对象。

布尔判断、数值取整和字符串输入都有自己的语义。先使用官方已展示的运算符;不要因为 DAS 有大括号,就粘贴 JavaScript 的数组、箭头函数、try/catch、=== 或 Math.floor。稍后使用 输入与验证、数值模型 和 NewUserObj 学习 DAS 自己的写法。

练习解答

开头三个例子中,只有 Price=12.5; 写入 Montage 字段。(24 + 8) * 7.5 等于 240;去掉括号变成 24 + 8 * 7.5,结果是 84。练习时先写预期,再运行,不能只看“没有报错”。