FennEdge Learn · 编程

DAS Trader Advanced Hotkey Script Course

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

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

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

DAS 脚本参考线与图表标注

画价格与指标参考线,读取鼠标价格,明确图表上下文与清理范围。

从读取价格到画一条线

上一课读取了报价、指标和 K 线。这一课把一个数值变成图表上的参考线。线的位置表示你选择记录的价格,不是交易信号,也不会创建挂单或止损单。

DrawHorzLineWithPrice(price, color) 在 Chart 上画水平线:第一个参数是价格,第二个参数通过 Color(...) 指定颜色。先在练习桌面打开一张图表,确认股票、周期和价格坐标,再让该 Chart 获得焦点后执行热键。全局变量保存价格,不会自动指定绘图目标。

第一条固定价格参考线

Advanced Script · 修改图表绘图。 在专用练习 Chart 中执行;12.50 是虚构练习值,可改成当前图表可见范围内的数值。本段不读取行情,也不修改订单。

$feLinePrice = 12.50;
DrawHorzLineWithPrice($feLinePrice, Color(100, 100, 100));

第一句只写入全局变量;第二句才改变图表。灰色来自 RGB 参数。官方也记录了 Color("RED") 这样的命名颜色。DAS 图表自己的配色独立于本网页主题,练习时要在你的图表背景上检查线条可见性。

执行后核对价格轴上的位置。看不见时,先查价格是否超出显示范围、窗口是否正确和颜色是否可见,不要连续按热键。重复运行可能增加重复线条;本例没有更新某条已存在的线,也没有实现去重。

把指标的当前值画成参考线

Advanced Script · 读取指标并修改当前 Chart。 将目标 Chart 命名为 feChart,把 VWAP 指标命名为 feVwap。保持这个 Chart 为当前执行窗口,确认指标已加载。条件检查不涵盖窗口或指标不存在的情况。

$feChart = GetWindowObj("feChart");
$feLinePrice = $feChart.GetStudyVal("feVwap");
if ($feLinePrice <= 0) {
    MsgBox("Check the study value before drawing");
    return;
}
DrawHorzLineWithPrice($feLinePrice, Color(100, 100, 100));

GetStudyVal 的接收对象决定从哪里读取数据,裸调用的绘图命令依赖当前 Chart 上下文。二者必须是同一张图表,不能因为变量叫 $feChart 就认为后续所有命令会自动切到它。

这里画的是执行当时的数值快照。VWAP 继续变化时,已画出的线不应被当作实时 VWAP。不要直接把这个例子放进 Chart Update Script 或 Timer Event;先解决重复绘制、更新目标和清理范围,再讨论自动刷新。

用鼠标位置选择参考价格

官方的 GetMousePtPrice() 用于取得鼠标指向的图表价格,应绑定到热键,在指针位于图表区域时触发。移动到编辑器里点击执行,会改变这个输入条件。

Advanced Script · 读取鼠标对应价格并显示。 在 Chart 上触发;先做读取练习,再考虑把确认过的值交给绘图函数。

$feMousePrice = GetMousePtPrice();
MsgBox($feMousePrice);

鼠标在标题栏、坐标轴外或另一窗口时会返回什么,本课程没有实测。不要把这类未知返回值当作合法价格,也不要把它直接写进订单。

清理与保护已有标注

官方提供 RemoveAllTrendLines; 清理趋势线。它的名称包含 All,不是“只撤销本例最后画的那一条”。清理前保存布局,并在只包含练习线的 Chart 上确认全局线/关联图表的影响范围。

传统 Chart 命令 · 删除图表标注。 仅在确认可以清空的练习图表中单独执行,不与绘图例子连在同一个热键里。

RemoveAllTrendLines;

动手练习:给每条线留下解释

先画固定值,再记录一次指标值,最后读取鼠标价格。为每次操作记下股票、周期、数值来源、执行时间和目标 Chart。改变周期后观察旧线是否仍在原价格;在没有实测自动更新前,将它标记为快照。完成后只清理专用练习图表。

辅助线的所有权与清理

把练习放在独立 Chart,记录每次画线的输入价格与原因。固定线、鼠标线和 study 快照线都只是图形;没有证据表明它们自动拥有订单关系。若重复执行后出现多条线,应先停止重复入口,再清理,而不是在 Timer 中不断 RemoveAllTrendLines。

本课程没有为水平线虚构句柄、更新 API 或按名称删除 API。若需求是“只维护我自己的那条线”,先确认客户端是否提供对应契约;全删再画会影响用户的其他图形,不能作为等价实现。

练习解答与进阶

画一条当前 VWAP 参考线后,VWAP 继续变化而线不动,这是快照绘制的预期;不是脚本失效。鼠标价格应在图表绘图区内触发并与坐标轴核对。清理前记录已有图形数,确认清理范围是否包含关联图表或全局线。

下一步在 Chart 数据实验 中先验证数据来源,再决定画什么线。颜色只能表达辅助分类,不能替代价格和时间标签。