麦语言语法入门
麦语言是文华财经 WT8 用来写指标和交易模型的公式语言。它的特点是逐 K 线计算: 每来一根新 K 线,整段公式从头到尾跑一遍,所有变量都是「当前这根 K 线」视角下的值。 理解了这一点,后面的语法都很好懂。
赋值与输出::= 与 :
这是麦语言最关键的一组区别:
MA5 := MA(CLOSE, 5); // 赋值:算出来存到 MA5,但不画线
MA20: MA(CLOSE, 20); // 输出:算出来,并且画一条线在主图/副图上
:=只计算、不画线,用于中间变量。:计算且画线,用于你想看到的指标线。- 每条语句以
;结尾。
数据引用
行情数据是公式最原始的输入:
| 写法 | 含义 |
|---|---|
CLOSE / C | 收盘价 |
OPEN / O | 开盘价 |
HIGH / H | 最高价 |
LOW / L | 最低价 |
VOL / V | 成交量 |
引用历史用 REF,例如 REF(CLOSE, 1) 是上一根 K 线的收盘价(昨日收盘)。
运算符
算术: + - * /
比较: > < >= <= = <>
逻辑: AND OR NOT (也支持 && || !)
比较和逻辑运算的结果是「条件」——成立为 1,不成立为 0。
控制流:IF 语句
麦语言里有两种「IF」:
// 1. 函数式 IF(三元):条件成立取 A,否则取 B
结果 := IF(CLOSE > OPEN, CLOSE, OPEN);
// 2. 语句式 IF...THEN...(控制是否执行)
IF (CROSS(MA5, MA20)) THEN
BEGIN
BK; // 满足条件时买开
END
- 简单的二选一用函数
IF; - 需要按条件执行一段动作(如下单)用
IF...THEN...BEGIN...END。
注释
// 单行注释
{ 多行注释,用大括号包起来 }
第一个完整模型
把上面的拼起来,写一个最简单的双均线模型:
// 定义两条均线
MA5 := MA(CLOSE, 5);
MA20 := MA(CLOSE, 20);
// 金叉买开,死叉卖平
BK(CROSS(MA5, MA20)); // 短期上穿长期 → 买开
SP(CROSS(MA20, MA5)); // 短期下穿长期 → 卖平
BK= 买开仓,SP= 卖平仓(卖出平掉多头)。CROSS(A, B)判断 A 是否上穿 B,是个高频函数。
小结
:=赋值不画线,:输出并画线;语句以;结尾。- 行情数据用
CLOSE/OPEN/HIGH/LOW/VOL,历史用REF。 - 条件用比较/逻辑运算,分支用
IF函数或IF...THEN语句。 - 模型靠
BK/SK/SP/BP等指令发信号。
能看懂上面这个双均线模型,你就入门了。
下一步
语法会写了,接下来要把公式喂进去的「数据」和「指令」搞清楚。先看 K 线与行情函数,掌握开高低收量和盘口报价的引用方式。