麦语言语法入门

麦语言是文华财经 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 线与行情函数,掌握开高低收量和盘口报价的引用方式。