量化开发手册 | 麦语言函数库
量化交易基础
量化交易是利用数学模型和计算机算法进行交易决策的一种方法。它通过分析历史数据、市场趋势和各种金融指标,构建交易策略并执行交易。
核心概念
交易函数
价格类型常量
| 含义 | 常量值 | 
|---|---|
| 最新价 | 0 | 
| 买一 | 1 | 
| 买二 | 2 | 
| 买三 | 3 | 
| 卖一 | 4 | 
| 卖二 | 5 | 
| 卖三 | 6 | 
| 对手价 | 7 | 
| 市价 | 8 | 
| 限价 | 'limit' | 
示例:BK(CROSS(MA2,MA1),1,5) 中的 5 表示“卖二价”挂单
交易函数用于执行开仓、平仓、加仓等操作,是构建交易策略的核心组件。
BK
开多函数,满足条件时开多仓
SK
开空函数,满足条件时开空仓
BP
平多函数,满足条件时平多仓
SP
平空函数,满足条件时平空仓
BPK
平空开多函数,满足条件时平空仓并开多
SPK
平多开空函数,满足条件时平多仓并开空
ADDLONG
条件加仓多单函数,满足条件时加仓多单
ADDSHORT
条件加仓空单函数,满足条件时加仓空单
SUBLONG
条件减仓多单函数,满足条件时减仓多单
SUBSHORT
条件减仓空单函数,满足条件时减仓空单
TPMR
移动止盈百分比平仓函数
TPPR
移动止盈价格波幅平仓函数
SLM
浮亏金额平仓函数
TPM
浮盈金额平仓函数
SLR
浮亏比例平仓函数
TPR
浮盈百分比平仓函数
SLP
浮亏点差平仓函数
TPP
浮盈点差平仓函数
条件函数
条件函数用于判断市场状态和触发交易信号,是策略逻辑的核心组成部分。
CROSS
上穿函数,判断A是否从下向上穿过B
CROSSDOWN
下穿函数,判断A是否从上向下穿过B
CROSSUP
上穿函数,判断A是否从下向上穿过B
EXIST
存在函数,判断N周期内是否存在满足条件的情况
EVERY
一直存在函数,判断N周期内是否一直满足条件
LAST
持续存在函数,判断从A周期到B周期是否一直满足条件
IF
条件判断函数,根据条件返回不同值
IFF
条件判断函数,根据条件返回不同值
IFN
条件判断函数,条件不满足时返回指定值
ISVALID
判断是否为有效数值
数学函数
数学函数用于进行各种数学计算和统计分析,是策略开发中不可或缺的工具。
AMA
自适应均线函数
DMA
动态移动平均函数
EMA
指数移动平均函数
EXPMA
指数移动平均函数
EXPMEMA
指数平滑移动平均函数
MA
简单移动平均函数
MEMA
平滑移动平均函数
SMA
移动平均函数
SUM
求和函数
WMA
加权移动平均函数
ABS
绝对值函数
MAX
最大值函数
MIN
最小值函数
SQRT
平方根函数
LN
自然对数函数
EXP
指数函数
MAX6
6个参数中的最大值函数
MIN6
6个参数中的最小值函数
INTPART
取整函数
FRACPART
小数部分函数
CEILING
向上取整函数
FLOOR
向下取整函数
MOD
取模函数
BETWEEN
判断A是否在B和C之间
ROUND
四舍五入函数
ROUND2
四舍五入到N位小数函数
SIGN
符号函数,X>0返回1,X=0返回0,X<0返回-1
AVEDEV
平均绝对偏差函数
BETA
贝塔系数函数
COVAR
协方差函数
DEVSQ
数据偏差平方和函数
FORCAST
线性回归预测值函数
RELATE
相关系数函数
SLOPE
线性回归斜率函数
STD
标准差函数
STDP
总体标准差函数
VAR
方差函数
VARP
总体方差函数
COST
成本分布函数
WINNER
获利盘比例函数
ZIG
之字转向函数
COSTEX
区间成本函数
LWINNER
近期获利盘比例函数
时间函数
时间函数用于处理与时间和日期相关的操作,在策略的时间周期管理中非常重要。
OPENTIME
获取当前时间距离开盘的时间(秒)
CLOSETIME
获取当前距离收盘的时间(秒)
CLOSEMINUTE
获取距离收盘(15:00)的分钟数
DATE
获取当前周期的年月日
MONTH
获取当前周期的月份
YEAR
获取当前周期的年份
TIME
获取当前周期的时分
TIME2
获取当前周期的时分秒
WEEKOFYEAR
获取当前周期在年内的周数
DATETODAY
获取指定日期到1990.12.19的天数
DAYTODATE
获取1990.12.19后第N天的日期
TIMETOSEC
将时间转换为秒数
SECTOTIME
将秒数转换为时间
FROMOPEN
获取当前品种已开盘的分钟数
TOTALFZNUM
获取当前品种每天的总交易分钟数
BARPOS
获取从第一根K线开始到当前的周期数
BARSCOUNT
获取从第一个有效数据到当前的周期数
BARSSINCE
获取条件成立到当前的周期数
BARSSINCEN
获取N周期内条件成立到当前的周期数
COUNT
统计N周期内满足条件的周期数
DAYSTOTODAY
获取当前周期距离今天的天数
LLV
获取N周期内的最低值(不包含当前K线)
LLVBARS
获取上一低点到当前的周期数
LOD
获取当前值在N周期内的低值名次
MEMA
平滑移动平均
FINDHIGH
获取N周期前的M周期内的第T个最大值
FINDLOW
获取N周期前的M周期内的第T个最小值
FINDLOWBARS
获取N周期前的M周期内的第T个最小值到当前的周期数
FINDHIGHBARS
获取N周期前的M周期内的第T个最大值到当前的周期数
ZTPRICE
获取涨停价
DTPRICE
获取跌停价
BACKSET
将当前位置到N周期前的数据设为1
PRICEAT
返回条件满足时的价格(O,H,L,C)
HHVBTW
返回相邻条件满足区间内的最高价
LLVBTW
返回相邻条件满足区间内的最低价
ALIGNRIGHT
将有效数据右对齐
TRMA
三角移动平均
HARMEAN
调和平均值
CODE
获取品种代码
CODELIKE
模糊匹配品种代码
NAMELIKE
模糊匹配品种名称
NAMEINCLUDE
判断品种名称中是否包含指定字符串
STRCAT
连接两个字符串
CON2STR
将数值转换为字符串
VAR2STR
将序列转换为字符串
STRSPACE
在字符串后添加空格
VARCAT
连接两个字符串
FINDSTR
在字符串A中查找字符串B
STRLEN
获取字符串长度
STRCMP
比较两个字符串是否相等
LONGCROSS
判断A在N周期内是否一直小于B,且本周期从下向上穿过B
NDAY
判断N周期内是否一直满足X>Y
DOWNNDAY
											判断N周期内是否一直满足X
UPNDAY
判断N周期内是否一直满足X>Y
LAST
判断从A周期到B周期是否一直满足条件X
EXISTR
判断从A周期到B周期是否存在满足条件X的情况
ISVALID
判断X是否为有效数值
IF
条件判断,条件满足返回trueValue,否则返回falseValue
IFF
条件判断,条件满足返回trueValue,否则返回falseValue
IFN
条件判断,条件不满足返回trueValue,否则返回falseValue
IFC
条件判断,条件满足执行trueAction,否则执行falseAction
VALUEWHEN
当条件满足时返回X的当前值,否则返回上次的值
TESTSKIP
条件满足时直接返回,不再计算后续表达式
ABS
返回X的绝对值
ACOS
返回X的反余弦值
ASIN
返回X的反正弦值
ATAN
返回X的反正切值
COS
返回X的余弦值
EXP
返回e的X次幂
LN
返回X的自然对数
LOG
返回X的常用对数(以10为底)
MAX
返回A和B中的较大值
MAX6
返回6个参数中的最大值
MIN
返回A和B中的较小值
MIN6
返回6个参数中的最小值
SIN
返回X的正弦值
SQRT
返回X的平方根
TAN
返回X的正切值
绘图函数
绘图函数用于在图表上绘制各种图形和文字,帮助直观展示策略逻辑和市场状态。
DRAWTEXT
在满足条件时在指定位置绘制文字
DRAWTEXTABS
在指定像素坐标位置绘制文字
DRAWCOLORKLINE
根据条件绘制K线
DRAWKLINE
根据指定价格绘制K线
DRAWBAND
根据条件填充颜色
DRAWCHANNEL
绘制通道
DRAWTABLE
绘制表格
DRAWPIE
绘制饼图
DRAWRADAR
绘制雷达图
变量函数
变量函数用于获取各种市场数据和变量值,是策略开发的基础数据来源。
CLOSE
获取当前周期收盘价
VOL
获取当前周期成交量
OPEN
获取当前周期开盘价
HIGH
获取当前周期最高价
LOW
获取当前周期最低价
AMOUNT
获取当前周期成交金额
VOLINSTK
获取当前周期持仓量
QHJSJ
获取当前周期结算价
ZSTJJ
获取当前周期分时图均价线
ISUP
判断当前周期是否收阳
ISDOWN
判断当前周期是否收阴
ISEQUAL
判断当前周期是否平盘
PERIOD
获取当前周期类型
MACHINEDATE
获取当前客户端机器的日期
MACHINETIME
获取当前客户端机器的时间
MACHINEWEEK
获取当前客户端机器的星期几
DAYSTOTODAY
获取当前周期距离今天的天数
通知函数
SENDMES
发送信号通知
SENDEMAIL
发送邮件通知
板块操作函数
AddSymbolToBank
将合约添加到指定板块
RemoveSymbolOutBank
将合约从指定板块中移除