量化开发手册 | 麦语言函数库

量化交易基础

量化交易是利用数学模型和计算机算法进行交易决策的一种方法。它通过分析历史数据、市场趋势和各种金融指标,构建交易策略并执行交易。

核心概念

量化交易的核心概念包括:

  • 策略:交易规则的集合,用于决定何时买入和卖出。
  • 回测:在历史数据上测试策略的表现。
  • 优化:调整策略参数以提高性能。
  • 执行:在实际市场中执行交易。

函数分类

TCQuant提供了全面的量化交易函数库,涵盖交易、条件判断、数学运算、时间处理、绘图等多个方面。

交易函数

用于执行开仓、平仓、加仓等交易操作的函数

条件函数

用于判断市场条件和触发交易信号的函数

数学函数

用于数据计算和统计分析的数学函数

时间函数

用于处理时间和日期相关操作的函数

绘图函数

用于在图表上绘制图形和文字的函数

变量函数

用于获取市场数据和变量值的函数

通知函数

用于发送交易信号和通知的函数

板块操作函数

用于管理股票板块和成分股的函数

交易函数

交易函数用于执行开仓、平仓、加仓等操作,是构建交易策略的核心组件。

BK

BK(condition, vol, price)

开多函数,满足条件时开多仓

BK(CROSS(MA2,MA1),1,5); 均线上穿时,开多一手,对手价

SK

SK(condition, vol, price)

开空函数,满足条件时开空仓

SK(CROSS(MA2,MA1),1,5); 均线上穿时,开空一手,对手价

BP

BP(condition, price)

平多函数,满足条件时平多仓

BP(CROSS(MA2,MA1),4); 均线上穿时,全平多单,跌停价

SP

SP(condition, price)

平空函数,满足条件时平空仓

SP(CROSS(MA2,MA1),4); 均线上穿时,全平空单,涨停价

BPK

BPK(condition, vol, price)

平空开多函数,满足条件时平空仓并开多仓

BPK(CROSS(MA2,MA1),1,5); 均线上穿时,平空仓并开多一手

SPK

SPK(condition, vol, price)

平多开空函数,满足条件时平多仓并开空仓

SPK(CROSS(MA2,MA1),1,5); 均线上穿时,平多仓并开空一手

BKA

BKA(condition, amount, price)

根据金额开多函数,满足条件时开多仓

BKA(CROSS(MA2,MA1),10000,5); 均线上穿时,使用1w保证金开多,对手价

SKA

SKA(condition, amount, price)

根据金额开多函数,满足条件时开空仓

SKA(CROSS(MA2,MA1),10000,5); 均线上穿时,使用1w保证金开空,对手价

ADDLONG

ADDLONG(condition, vol, maxVol)

条件加仓多单函数,满足条件时加仓多单

ADDLONG(CROSS(MA2,MA1),1,5); 均线上穿时,加仓开多1手,最多开仓5手

ADDSHORT

ADDSHORT(condition, vol, maxVol)

条件加仓空单函数,满足条件时加仓空单

ADDSHORT(CROSS(MA2,MA1),1,5); 均线上穿时,加仓开空1手,最多开仓5手

SUBLONG

SUBLONG(condition, vol)

条件减仓多单函数,满足条件时减仓多单

SUBLONG(CROSS(MA2,MA1),1); 均线上穿时,减多仓1手

SUBSHORT

SUBSHORT(condition, vol)

条件减仓空单函数,满足条件时减仓空单

SUBSHORT(CROSS(MA2,MA1),1); 均线上穿时,减空仓1手

TPMR

TPMR(radio, bc)

移动止盈百分比平仓函数,浮盈超过指定百分比后回撤一定比例平仓

TPMR(10, 3); 当浮盈比例达到10%,从最大浮盈比例回撤3%平仓

TPPR

TPPR(radio, bc)

当盈利价格波幅达到10%,从最大价格盈利比例回撤3%平仓,根据最新价和开仓均价计算

TPMR(10, 3); 当浮盈比例达到10%,从最大浮盈比例回撤3%平仓

SLM

SLM(money, price)

浮亏金额平仓函数,浮亏达到指定金额时平仓

SLM(200, 5); 当浮亏金额达到200,执行对手价平仓

TPM

TPM(money, price)

浮盈金额平仓函数,浮盈金额到指定百分比时平仓

TPM(200, 5); 当盈利比例达到200,执行对手价平仓

SLR

SLR(radio, price)

浮亏比例平仓函数,浮亏达到指定百分比时平仓

SLR(2, 5); 当浮亏比例达到2%,执行对手价平仓

TPR

TPR(radio, price)

浮盈百分比平仓函数,浮盈达到指定百分比时平仓

TPR(10, 5); 当浮盈比例达到10%,对手价平仓

SLP

SLP(radio, price)

浮亏点差平仓函数,浮亏达到指定点差时平仓

SLP(100, 5); 当亏损达到100个点平仓

TPP

TPP(radio, price)

浮盈点差平仓函数,浮盈达到指定点差时平仓

TPP(100, 5); 当盈利达到100个点平仓

条件函数

条件函数用于判断市场状态和触发交易信号,是策略逻辑的核心组成部分。

CROSS

CROSS(A, B)

上穿函数,判断A是否从下向上穿过B

CROSS(MA2, MA1); 判断MA2是否上穿MA1

CROSSDOWN

CROSSDOWN(A, B)

下穿函数,判断A是否从上向下穿过B

CROSSDOWN(MA2, MA1); 判断MA2是否下穿MA1

CROSSUP

CROSSUP(A, B)

上穿函数,判断A是否从下向上穿过B

CROSSUP(MA2, MA1); 判断MA2是否上穿MA1

EXIST

EXIST(condition, N)

存在函数,判断N周期内是否存在满足条件的情况

EXIST(CLOSE > OPEN, 10); 判断前10日内是否存在阳线

EVERY

EVERY(condition, N)

一直存在函数,判断N周期内是否一直满足条件

EVERY(CLOSE > OPEN, 10); 判断前10日内是否一直为阳线

LAST

LAST(condition, A, B)

持续存在函数,判断从A周期到B周期是否一直满足条件

LAST(CLOSE > OPEN, 10, 5); 判断从前10日到前5日是否一直为阳线

IF

IF(condition, trueValue, falseValue)

条件判断函数,根据条件返回不同值

IF(CLOSE > OPEN, HIGH, LOW); 收阳返回最高价,否则返回最低价

IFF

IFF(condition, trueValue, falseValue)

条件判断函数,根据条件返回不同值

IFF(CLOSE > OPEN, HIGH, LOW); 收阳返回最高价,否则返回最低价

IFN

IFN(condition, trueValue, falseValue)

条件判断函数,条件不满足时返回指定值

IFN(CLOSE > OPEN, HIGH, LOW); 收阴返回最高价,否则返回最低价

ISVALID

ISVALID(value)

判断是否为有效数值

ISVALID(CLOSE); 判断收盘价是否为有效数值

数学函数

数学函数用于进行各种数学计算和统计分析,是策略开发中不可或缺的工具。

AMA

AMA(X, A)

自适应均线函数

AMA(CLOSE, 0.5); 计算收盘价的自适应均线

DMA

DMA(X, A)

动态移动平均函数

DMA(CLOSE, 0.5); 计算收盘价的动态移动平均

EMA

EMA(X, N)

指数移动平均函数

EMA(CLOSE, 10); 计算收盘价的10日指数移动平均

EXPMA

EXPMA(X, N)

指数移动平均函数

EXPMA(CLOSE, 10); 计算收盘价的10日指数移动平均

EXPMEMA

EXPMEMA(X, N)

指数平滑移动平均函数

EXPMEMA(CLOSE, 10); 计算收盘价的10日指数平滑移动平均

MA

MA(X, N)

简单移动平均函数

MA(CLOSE, 10); 计算收盘价的10日简单移动平均

MEMA

MEMA(X, N)

平滑移动平均函数

MEMA(CLOSE, 10); 计算收盘价的10日平滑移动平均

SMA

SMA(X, N, M)

移动平均函数

SMA(CLOSE, 10, 2); 计算收盘价的10日移动平均

SUM

SUM(X, N)

求和函数

SUM(VOL, 10); 计算10日成交量总和

WMA

WMA(X, N)

加权移动平均函数

WMA(CLOSE, 10); 计算收盘价的10日加权移动平均

ABS

ABS(X)

绝对值函数

ABS(-34); 返回34

MAX

MAX(A, B)

最大值函数

MAX(CLOSE, OPEN); 返回收盘价和开盘价中的较大值

MIN

MIN(A, B)

最小值函数

MIN(CLOSE, OPEN); 返回收盘价和开盘价中的较小值

SQRT

SQRT(X)

平方根函数

SQRT(CLOSE); 计算收盘价的平方根

LN

LN(X)

自然对数函数

LN(CLOSE); 计算收盘价的自然对数

EXP

EXP(X)

指数函数

EXP(CLOSE); 计算e的收盘价次幂

MAX6

MAX6(A, B, C, D, E, F)

6个参数中的最大值函数

MAX6(A, B, C, D, E, F); 返回6个参数中的最大值

MIN6

MIN6(A, B, C, D, E, F)

6个参数中的最小值函数

MIN6(A, B, C, D, E, F); 返回6个参数中的最小值

INTPART

INTPART(X)

取整函数

INTPART(12.3); 返回12

FRACPART

FRACPART(X)

小数部分函数

FRACPART(12.3); 返回0.3

CEILING

CEILING(X)

向上取整函数

CEILING(12.3); 返回13

FLOOR

FLOOR(X)

向下取整函数

FLOOR(12.3); 返回12

MOD

MOD(M, N)

取模函数

MOD(5, 3); 返回2

BETWEEN

BETWEEN(A, B, C)

判断A是否在B和C之间

BETWEEN(CLOSE, MA(CLOSE,5), MA(CLOSE,10)); 判断收盘价是否在5日均线和10日均线之间

ROUND

ROUND(X)

四舍五入函数

ROUND(3.1415); 返回3

ROUND2

ROUND2(X, N)

四舍五入到N位小数函数

ROUND2(3.1415, 2); 返回3.14

SIGN

SIGN(X)

符号函数,X>0返回1,X=0返回0,X<0返回-1

SIGN(-5); 返回-1

AVEDEV

AVEDEV(X, N)

平均绝对偏差函数

AVEDEV(CLOSE, 10); 计算收盘价的10日平均绝对偏差

BETA

BETA(N)

贝塔系数函数

BETA(10); 计算10日贝塔系数

COVAR

COVAR(X, Y, N)

协方差函数

COVAR(CLOSE, VOL, 10); 计算收盘价和成交量的10日协方差

DEVSQ

DEVSQ(X, N)

数据偏差平方和函数

DEVSQ(CLOSE, 10); 计算收盘价的10日数据偏差平方和

FORCAST

FORCAST(X, N)

线性回归预测值函数

FORCAST(CLOSE, 10); 计算收盘价的10日线性回归预测值

RELATE

RELATE(X, Y, N)

相关系数函数

RELATE(CLOSE, VOL, 10); 计算收盘价和成交量的10日相关系数

SLOPE

SLOPE(X, N)

线性回归斜率函数

SLOPE(CLOSE, 10); 计算收盘价的10日线性回归斜率

STD

STD(X, N)

标准差函数

STD(CLOSE, 10); 计算收盘价的10日标准差

STDP

STDP(X, N)

总体标准差函数

STDP(CLOSE, 10); 计算收盘价的10日总体标准差

VAR

VAR(X, N)

方差函数

VAR(CLOSE, 10); 计算收盘价的10日方差

VARP

VARP(X, N)

总体方差函数

VARP(CLOSE, 10); 计算收盘价的10日总体方差

COST

COST(percentage)

成本分布函数

COST(10); 计算10%获利盘的价格

WINNER

WINNER(price)

获利盘比例函数

WINNER(CLOSE); 计算当前收盘价的获利盘比例

ZIG

ZIG(K, N)

之字转向函数

ZIG(3, 5); 计算收盘价的5%之字转向

COSTEX

COSTEX(price1, price2)

区间成本函数

COSTEX(CLOSE, REF(CLOSE,1)); 计算昨日收盘价到今日收盘价的区间成本

LWINNER

LWINNER(days, price)

近期获利盘比例函数

LWINNER(5, CLOSE); 计算最近5天内收盘价的获利盘比例

时间函数

时间函数用于处理与时间和日期相关的操作,在策略的时间周期管理中非常重要。

OPENTIME

OPENTIME()

获取当前时间距离开盘的时间(秒)

OPENTIME(); 获取当前距离开盘的时间

CLOSETIME

CLOSETIME()

获取当前距离收盘的时间(秒)

CLOSETIME(); 获取当前距离收盘的时间

CLOSEMINUTE

CLOSEMINUTE()

获取距离收盘(15:00)的分钟数

CLOSEMINUTE(); 获取距离收盘的分钟数

DATE

DATE()

获取当前周期的年月日

DATE(); 获取当前周期的年月日

MONTH

MONTH()

获取当前周期的月份

MONTH(); 获取当前周期的月份

YEAR

YEAR()

获取当前周期的年份

YEAR(); 获取当前周期的年份

TIME

TIME()

获取当前周期的时分

TIME(); 获取当前周期的时分

TIME2

TIME2()

获取当前周期的时分秒

TIME2(); 获取当前周期的时分秒

WEEKOFYEAR

WEEKOFYEAR()

获取当前周期在年内的周数

WEEKOFYEAR(); 获取当前周期在年内的周数

DATETODAY

DATETODAY(date)

获取指定日期到1990.12.19的天数

DATETODAY(901219); 获取1990.12.19到1990.12.19的天数

DAYTODATE

DAYTODATE(N)

获取1990.12.19后第N天的日期

DAYTODATE(0); 获取1990.12.19后第0天的日期

TIMETOSEC

TIMETOSEC(time)

将时间转换为秒数

TIMETOSEC(93000); 将9:30:00转换为秒数

SECTOTIME

SECTOTIME(seconds)

将秒数转换为时间

SECTOTIME(34200); 将34200秒转换为9:30:00

FROMOPEN

FROMOPEN()

获取当前品种已开盘的分钟数

FROMOPEN(); 获取当前品种已开盘的分钟数

TOTALFZNUM

TOTALFZNUM()

获取当前品种每天的总交易分钟数

TOTALFZNUM(); 获取当前品种每天的总交易分钟数

BARPOS

BARPOS()

获取从第一根K线开始到当前的周期数

BARPOS(); 获取从第一根K线开始到当前的周期数

BARSCOUNT

BARSCOUNT()

获取从第一个有效数据到当前的周期数

BARSCOUNT(); 获取从第一个有效数据到当前的周期数

BARSSINCE

BARSSINCE(condition)

获取条件成立到当前的周期数

BARSSINCE(HIGH > 10); 获取最高价超过10元到当前的周期数

BARSSINCEN

BARSSINCEN(condition, N)

获取N周期内条件成立到当前的周期数

BARSSINCEN(HIGH > 10, 20); 获取20周期内最高价超过10元到当前的周期数

COUNT

COUNT(condition, N)

统计N周期内满足条件的周期数

COUNT(CLOSE > OPEN, 20); 统计20周期内收阳的周期数

DAYSTOTODAY

DAYSTOTODAY()

获取当前周期距离今天的天数

DAYSTOTODAY(); 获取当前周期距离今天的天数

LLV

LLV(X, N)

获取N周期内的最低值(不包含当前K线)

LLV(LOW, 10); 获取前10根K线的最低点

LLVBARS

LLVBARS(X, N)

获取上一低点到当前的周期数

LLVBARS(LOW, 10); 获取前10根K线的最低点到当前的周期数

LOD

LOD(X, N)

获取当前值在N周期内的低值名次

LOD(LOW, 10); 获取当前最低价在前10周期内的低值名次

MEMA

MEMA(X, N)

平滑移动平均

MEMA(CLOSE, 10); 计算收盘价的10日平滑移动平均

FINDHIGH

FINDHIGH(VAR, N, M, T)

获取N周期前的M周期内的第T个最大值

FINDHIGH(HIGH, 5, 10, 1); 获取5日前的10天内的最高高点

FINDLOW

FINDLOW(VAR, N, M, T)

获取N周期前的M周期内的第T个最小值

FINDLOW(LOW, 5, 10, 1); 获取5日前的10天内的最低低点

FINDLOWBARS

FINDLOWBARS(VAR, N, M, T)

获取N周期前的M周期内的第T个最小值到当前的周期数

FINDLOWBARS(LOW, 5, 10, 1); 获取5日前的10天内的最低低点到当前的周期数

FINDHIGHBARS

FINDHIGHBARS(VAR, N, M, T)

获取N周期前的M周期内的第T个最大值到当前的周期数

FINDHIGHBARS(HIGH, 5, 10, 1); 获取5日前的10天内的最高高点到当前的周期数

ZTPRICE

ZTPRICE(price, ratio)

获取涨停价

ZTPRICE(REF(CLOSE,1), 0.1); 按10%计算涨停价

DTPRICE

DTPRICE(price, ratio)

获取跌停价

DTPRICE(REF(CLOSE,1), 0.1); 按10%计算跌停价

BACKSET

BACKSET(X, N)

将当前位置到N周期前的数据设为1

BACKSET(CLOSE > OPEN, 2); 如果收盘价大于开盘价,则将当前和前一周期的数据设为1

PRICEAT

PRICEAT(X, C)

返回条件满足时的价格(O,H,L,C)

PRICEAT(CLOSE > OPEN, C); 如果收盘价大于开盘价,则返回那时候的收盘价

HHVBTW

HHVBTW(condition, prices)

返回相邻条件满足区间内的最高价

HHVBTW(CLOSE > OPEN, HIGH); 当收盘价大于开盘价时,返回该区间内的最高价(HIGH)

LLVBTW

LLVBTW(condition, prices)

返回相邻条件满足区间内的最低价

LLVBTW(CLOSE < OPEN, LOW); 当收盘价小于开盘价时,返回该区间内的最低价(LOW)

ALIGNRIGHT

ALIGNRIGHT(X)

将有效数据右对齐

ALIGNRIGHT(CLOSE); 将收盘价数据右对齐

TRMA

TRMA(X, N)

三角移动平均

TRMA(CLOSE, 10); 计算收盘价的10日三角移动平均

HARMEAN

HARMEAN(X, N)

调和平均值

HARMEAN(CLOSE, 5); 计算收盘价的5日调和平均值

CODE

CODE

获取品种代码

CODE; 获取当前品种代码

CODELIKE

CODELIKE(pattern)

模糊匹配品种代码

CODELIKE("600"); 判断品种代码是否以"600"开头

NAMELIKE

NAMELIKE(pattern)

模糊匹配品种名称

NAMELIKE("ST"); 判断品种名称是否以"ST"开头

NAMEINCLUDE

NAMEINCLUDE(pattern)

判断品种名称中是否包含指定字符串

NAMEINCLUDE("文化"); 判断品种名称中是否包含"文化"

STRCAT

STRCAT(A, B)

连接两个字符串

STRCAT("多头", "开仓"); 连接"多头"和"开仓"为"多头开仓"

CON2STR

CON2STR(A, N)

将数值转换为字符串

CON2STR(CLOSE, 2); 将收盘价转换为保留2位小数的字符串

VAR2STR

VAR2STR(A, N)

将序列转换为字符串

VAR2STR(CLOSE, 2); 将收盘价序列转换为保留2位小数的字符串

STRSPACE

STRSPACE(A)

在字符串后添加空格

STRSPACE("测试"); 返回"测试 "

VARCAT

VARCAT(A, B)

连接两个字符串

VARCAT("多头", "开仓"); 连接"多头"和"开仓"为"多头开仓"

FINDSTR

FINDSTR(A, B)

在字符串A中查找字符串B

FINDSTR("多头开仓", "开仓"); 在"多头开仓"中查找"开仓", 返回1

STRLEN

STRLEN(S)

获取字符串长度

STRLEN("通达信"); 返回3

STRCMP

STRCMP(A, B)

比较两个字符串是否相等

STRCMP("通达信", "通达信"); 返回1

LONGCROSS

LONGCROSS(A, B, N)

判断A在N周期内是否一直小于B,且本周期从下向上穿过B

LONGCROSS(MA2, MA1, 10); 判断MA2在10周期内是否一直小于MA1,且本周期上穿MA1

NDAY

NDAY(X, Y, N)

判断N周期内是否一直满足X>Y

NDAY(CLOSE, OPEN, 3); 判断3周期内是否一直收阳

DOWNNDAY

DOWNNDAY(X, Y, N)

判断N周期内是否一直满足X

DOWNNDAY(CLOSE, OPEN, 3); 判断3周期内是否一直收阴

UPNDAY

UPNDAY(X, Y, N)

判断N周期内是否一直满足X>Y

UPNDAY(CLOSE, OPEN, 3); 判断3周期内是否一直收阳

LAST

LAST(X, A, B)

判断从A周期到B周期是否一直满足条件X

LAST(CLOSE > OPEN, 10, 5); 判断从前10日到前5日是否一直为阳线

EXISTR

EXISTR(X, A, B)

判断从A周期到B周期是否存在满足条件X的情况

EXISTR(CLOSE > OPEN, 10, 5); 判断从前10日到前5日是否存在阳线

ISVALID

ISVALID(X)

判断X是否为有效数值

ISVALID(CLOSE); 判断收盘价是否为有效数值

IF

IF(condition, trueValue, falseValue)

条件判断,条件满足返回trueValue,否则返回falseValue

IF(CLOSE > OPEN, HIGH, LOW); 收阳返回最高价,否则返回最低价

IFF

IFF(condition, trueValue, falseValue)

条件判断,条件满足返回trueValue,否则返回falseValue

IFF(CLOSE > OPEN, HIGH, LOW); 收阳返回最高价,否则返回最低价

IFN

IFN(condition, trueValue, falseValue)

条件判断,条件不满足返回trueValue,否则返回falseValue

IFN(CLOSE > OPEN, HIGH, LOW); 收阴返回最高价,否则返回最低价

IFC

IFC(condition, trueAction, falseAction)

条件判断,条件满足执行trueAction,否则执行falseAction

IFC(CLOSE > OPEN, HIGH, TESTSKIP(1)); 收阳执行HIGH,否则退出公式计算

VALUEWHEN

VALUEWHEN(condition, X)

当条件满足时返回X的当前值,否则返回上次的值

VALUEWHEN(CLOSE > OPEN, HIGH); 当收阳时返回最高价,否则返回上次的值

TESTSKIP

TESTSKIP(condition)

条件满足时直接返回,不再计算后续表达式

TESTSKIP(CLOSE > OPEN); 当收阳时直接返回

ABS

ABS(X)

返回X的绝对值

ABS(-34); 返回34

ACOS

ACOS(X)

返回X的反余弦值

ACOS(0.5); 返回60度的反余弦值

ASIN

ASIN(X)

返回X的反正弦值

ASIN(0.5); 返回30度的反正弦值

ATAN

ATAN(X)

返回X的反正切值

ATAN(1); 返回45度的反正切值

COS

COS(X)

返回X的余弦值

COS(0); 返回1

EXP

EXP(X)

返回e的X次幂

EXP(1); 返回e的1次幂

LN

LN(X)

返回X的自然对数

LN(e); 返回1

LOG

LOG(X)

返回X的常用对数(以10为底)

LOG(100); 返回2

MAX

MAX(A, B)

返回A和B中的较大值

MAX(CLOSE, OPEN); 返回收盘价和开盘价中的较大值

MAX6

MAX6(A, B, C, D, E, F)

返回6个参数中的最大值

MAX6(A, B, C, D, E, F); 返回6个参数中的最大值

MIN

MIN(A, B)

返回A和B中的较小值

MIN(CLOSE, OPEN); 返回收盘价和开盘价中的较小值

MIN6

MIN6(A, B, C, D, E, F)

返回6个参数中的最小值

MIN6(A, B, C, D, E, F); 返回6个参数中的最小值

SIN

SIN(X)

返回X的正弦值

SIN(0); 返回0

SQRT

SQRT(X)

返回X的平方根

SQRT(16); 返回4

TAN

TAN(X)

返回X的正切值

TAN(45); 返回1

绘图函数

绘图函数用于在图表上绘制各种图形和文字,帮助直观展示策略逻辑和市场状态。

DRAWTEXT

DRAWTEXT(condition, price, text)

在满足条件时在指定位置绘制文字

DRAWTEXT(CLOSE > OPEN, LOW, "大阳线"); 在收阳时在最低价位置绘制"大阳线"

DRAWTEXTABS

DRAWTEXTABS(x, y, text)

在指定像素坐标位置绘制文字

DRAWTEXTABS(50, 50, "注意:前方高能!!!!!"); 在(50, 50)像素位置绘制文字

DRAWCOLORKLINE

DRAWCOLORKLINE(condition, color, empty)

根据条件绘制K线

DRAWCOLORKLINE(CLOSE > OPEN, "COLORBLUE", 0); 收阳时绘制蓝色实心K线

DRAWKLINE

DRAWKLINE(high, open, low, close)

根据指定价格绘制K线

DRAWKLINE(HIGH, OPEN, LOW, CLOSE); 根据最高价、开盘价、最低价、收盘价绘制K线

DRAWBAND

DRAWBAND(val1, color1, val2, color2)

根据条件填充颜色

DRAWBAND(OPEN, "RGB(0,224,224)", CLOSE, "RGB(255,96,96)"); 根据

开盘价和收盘价填充颜色

DRAWBAND(OPEN, "RGB(0,224,224)", CLOSE, "RGB(255,96,96)"); 根据开盘价和收盘价填充颜色

DRAWCHANNEL

DRAWCHANNEL(condition, data, data2, borderColor, borderWidth, dotted, areaColor)

绘制通道

DRAWCHANNEL(1,7.5,8.0, RGB(255,94,102), 1 ,‘5,3’, RGBA(58,20,62,0.3)); 绘制通道

DRAWTABLE

DRAWTABLE(row1, row2, ...)

绘制表格

DRAWTABLE(ROW1, ROW2); 绘制表格

DRAWPIE

DRAWPIE(radius, sector1, sector2, ...)

绘制饼图

DRAWPIE(80, PIECELL1); 绘制饼图

DRAWRADAR

DRAWRADAR(radius, indicator1, indicator2, ...)

绘制雷达图

DRAWRADAR(50, CELL1); 绘制雷达图

变量函数

变量函数用于获取各种市场数据和变量值,是策略开发的基础数据来源。

CLOSE

CLOSE

获取当前周期收盘价

CLOSE; 获取当前周期收盘价

VOL

VOL

获取当前周期成交量

VOL; 获取当前周期成交量

OPEN

OPEN

获取当前周期开盘价

OPEN; 获取当前周期开盘价

HIGH

HIGH

获取当前周期最高价

HIGH; 获取当前周期最高价

LOW

LOW

获取当前周期最低价

LOW; 获取当前周期最低价

AMOUNT

AMOUNT

获取当前周期成交金额

AMOUNT; 获取当前周期成交金额

VOLINSTK

VOLINSTK

获取当前周期持仓量

VOLINSTK; 获取当前周期持仓量

QHJSJ

QHJSJ

获取当前周期结算价

QHJSJ; 获取当前周期结算价

ZSTJJ

ZSTJJ

获取当前周期分时图均价线

ZSTJJ; 获取当前周期分时图均价线

ISUP

ISUP

判断当前周期是否收阳

ISUP; 判断当前周期是否收阳

ISDOWN

ISDOWN

判断当前周期是否收阴

ISDOWN; 判断当前周期是否收阴

ISEQUAL

QUALISE

判断当前周期是否平盘

ISEQUAL; 判断当前周期是否平盘

PERIOD

PERIOD

获取当前周期类型

PERIOD; 获取当前周期类型

MACHINEDATE

MACHINEDATE

获取当前客户端机器的日期

MACHINEDATE; 获取当前客户端机器的日期

MACHINETIME

MACHINETIME

获取当前客户端机器的时间

MACHINETIME; 获取当前客户端机器的时间

MACHINEWEEK

MACHINEWEEK

获取当前客户端机器的星期几

MACHINEWEEK; 获取当前客户端机器的星期几

DAYSTOTODAY

DAYSTOTODAY

获取当前周期距离今天的天数

DAYSTOTODAY; 获取当前周期距离今天的天数

DYNAINFO(3)

DYNAINFO(3)

获取昨日结算价,反映前一交易日的收盘价格水平,常用于期货或股票等金融市场的连续交易分析

DYNAINFO(3); 获取昨日结算价

DYNAINFO(4)

DYNAINFO(4)

获取开盘价,表示当前交易日开始时的第一笔成交价格,用于分析日内价格波动趋势

DYNAINFO(4); 获取开盘价

DYNAINFO(5)

DYNAINFO(5)

获取当日最高价,反映当前交易日内价格达到的最高点,是技术分析中的重要参考指标

DYNAINFO(5); 获取最高价

DYNAINFO(6)

DYNAINFO(6)

获取当日最低价,显示当前交易日内价格跌至的最低点,对判断支撑位和价格走势有重要意义

DYNAINFO(6); 获取最低价

DYNAINFO(8)

DYNAINFO(8)

获取总成交量,统计当前交易日内的所有成交手数,反映市场的活跃度和交易参与情况

DYNAINFO(8); 获取总成交量

DYNAINFO(9)

DYNAINFO(9)

获取昨日成交量,获取前一交易日的总成交手数,用于对比分析成交量变化趋势

DYNAINFO(9); 获取昨日成交量

DYNAINFO(10)

DYNAINFO(10)

获取总金额,计算当前交易日内所有成交的总价值,综合反映市场交易规模

DYNAINFO(10); 获取总金额

DYNAINFO(11)

DYNAINFO(11)

获取均价,根据总金额和总成交量计算得出的平均成交价格,反映整体交易成本水平

DYNAINFO(11); 获取均价

DYNAINFO(12)

DYNAINFO(12)

获取日涨跌,计算当前价格与前一交易日收盘价的差值,直观显示价格变动绝对值

DYNAINFO(12); 获取日涨跌

DYNAINFO(14)

DYNAINFO(14)

获取日涨幅,计算当前价格较前一交易日收盘价的百分比变化,用于衡量价格波动幅度

DYNAINFO(14); 获取日涨幅

DYNAINFO(20)

DYNAINFO(20)

获取最新买价(买价一),显示当前市场中最高的买入委托价格,反映买家的即时购买意愿

DYNAINFO(20); 获取最新买价

DYNAINFO(21)

DYNAINFO(21)

获取最新卖价(卖价一),显示当前市场中最低的卖出委托价格,体现卖家的即时出售意向

DYNAINFO(21); 获取最新卖价

通知函数

通知函数用于发送交易信号和通知,帮助及时获取策略执行情况。

SENDMES

SENDMES(condition, message)

发送信号通知

SENDMES(CROSS(MA2, MA1), "均线交叉"); 当MA2上穿MA1时,发出通知

SENDEMAIL

SENDEMAIL(condition, message)

发送邮件通知

SENDEMAIL(CROSS(MA2, MA1), "均线交叉"); 当MA2上穿MA1时,发送邮件通知

板块操作函数

板块操作函数用于管理股票板块和成分股,方便进行板块分析和选股。

AddSymbolToBank

AddSymbolToBank(condition, bankName)

将合约添加到指定板块

AddSymbolToBank(CROSS(MA2, MA1), "自选"); 当MA2上穿MA1时,将合约添加到自选板块

RemoveSymbolOutBank

RemoveSymbolOutBank(condition, bankName)

将合约从指定板块中移除

RemoveSymbolOutBank(CROSS(MA2, MA1), "自选"); 当MA2上穿MA1时,将合约从自选板块中移除

不同形态指标转量化课程

第一期图标提示类指标转量化

第二期文字提示类指标转量化.mp4

第三期k线颜色变化指标转量化

第四期高能线条穿插类指标全自动

第五期.双均线跨周期MCAD共振开仓

第六期.副图CCI指标开仓平仓

量化交易系列课程

课程一:量化交易入门基础

课程二:策略开发与回测

课程三:高级函数应用

课程四

课程五

课程六

课程七