K 线与行情函数

行情数据是所有模型的原始输入。麦语言把它们分成两类:K 线数据引用(当前主图 K 线的开高低收量) 和行情报价引用(任意合约的盘口、最新价等)。本章把最常用的列清楚,配示例。

一、K 线数据引用

这类函数直接取当前 K 线图上每一根 K 线的行情数据,是写指标和模型用得最多的一组。

基础 OHLCV

函数简写含义
CLOSEC收盘价(盘中 K 线未走完时取最新价)
OPENO开盘价
HIGHH最高价
LOWL最低价
VOLV成交量
OPI持仓量(股票合约上返回成交额)
AVPRICE单根 K 线均价
SETTLE结算价(日线收盘后取交易所结算价;分钟线取当日累计均价)
YCLOSE昨收盘价(主要用于股票合约)
YSETTLE昨结算价

示例:

MA5: MA(CLOSE, 5);           // 5 周期收盘均线
HH: HHV(H, 20);             // 20 周期最高价的最大值
CROSS(C, SETTLE);            // 收盘价上穿结算价
OPI >= REF(OPI, 1);          // 持仓量较上根增加

历史引用:REF

REF(X, N) 引用 X 在 N 个周期前的值,是回看历史的核心函数:

REF(CLOSE, 1);   // 上一根 K 线的收盘价(昨日收盘)
REF(V, 1);       // 上一根 K 线的成交量
C > REF(C, 1);   // 今天收盘高于昨天收盘(收阳的近似)

注意:当前 K 线数不足 N 根时返回空值;N 可以为变量。

二、行情报价引用:GETPRICE

GETPRICE报价列表窗口里某个合约的实时行情数据,能拿到当前 K 线之外的盘口信息。

基本用法

GETPRICE(CODE, 'OPEN');   // 指定文华码合约的开盘价
GETPRICE('NEW');           // 当前主图数据合约的最新价
GETPRICE(8606, 'AVPRICE'); // 文华码 8606 合约的均价

可取的字段

字段含义字段含义
'OPEN'开盘价'NEW'最新价
'HIGH'最高价'LOW'最低价
'AVPRICE'均价'YCLOSE'昨收盘价
'YSETTLE'昨结算价'BID1'买 1 价
'BIDVOL1'买 1 量'ASK1'卖 1 价
'ASKVOL1'卖 1 量'VOLUME'成交量
'TURNOVER'成交额'OPI'持仓量
'DELTAVOL'现手'DELTAOPI'增仓
'RISELIMIT'涨停价'FALLLIMIT'跌停价

重要限制:GETPRICE 在清盘时间收不到数据返回 0,且不支持回测——它只在加载后的实时行情中生效。 因此它适合实盘监测,不适合写进需要历史验证的策略主体。

三、实战:一个突破模型的数据基础

下面这个突破模型综合用到了高低收、历史引用和最高值函数:

// 20 周期高点突破买开,10 周期低点跌破卖平
HH20 := HV(HIGH, 20);      // 20 周期最高价(不含当前)
LL10 := LV(LOW, 10);       // 10 周期最低价(不含当前)
C > HH20, BK;              // 突破高点买开
C < LL10, SP;              // 跌破低点卖平
AUTOFILTER;

可以看到:行情函数是模型的「眼睛」,模型靠它们读取市场状态,再决定发什么指令。

小结

  • K 线数据用 CLOSE/OPEN/HIGH/LOW/VOL/OPI/SETTLE,简写 C/O/H/L/V
  • 看历史用 REF(X, N),当前 K 线不足 N 根返回空值。
  • 取盘口和任意合约实时数据用 GETPRICE,但它不支持回测,只适合实盘。

下一步

行情数据会取了,下一步看 均线指标详解,掌握最常用的趋势指标 MA / EMA / SMA 怎么写。