K 线与行情函数
行情数据是所有模型的原始输入。麦语言把它们分成两类:K 线数据引用(当前主图 K 线的开高低收量) 和行情报价引用(任意合约的盘口、最新价等)。本章把最常用的列清楚,配示例。
一、K 线数据引用
这类函数直接取当前 K 线图上每一根 K 线的行情数据,是写指标和模型用得最多的一组。
基础 OHLCV
| 函数 | 简写 | 含义 |
|---|---|---|
CLOSE | C | 收盘价(盘中 K 线未走完时取最新价) |
OPEN | O | 开盘价 |
HIGH | H | 最高价 |
LOW | L | 最低价 |
VOL | V | 成交量 |
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 怎么写。