迅投量化投研平台编辑器提供完备的下单交易函数,可以完成下单、监控以及控制一系列的交易逻辑。

下单函数

PASSORDER函数

提示

该函数的参数值与内置python的passorder一致,具体值请参考内置python文档

passorder(opType, orderType, accountID , orderCode, prType, price, volume)
[, orderCode, prType, price, volume] 不是必填,默认值分别是, "", -1, 0.0, 0

参数数据类型

opType:数字型(int)

orderType:数字型(int)

accountID:字符串型(string)

orderCode:字符串型(string)

prType:数字型(int)

price:数字型(double)

volume:数字型(double)

一个发出套利单的例子:
stockAccountID:='6000000255';
futureAccountID:='039427';
basketName:='testStock';//预先建立好的股票篮子
futureName:='IF1703';
operateType:=25;//股票篮子买入
orderType:=2333;//按账号可用方式下单并套利
priceType:=5;//以最新价
model_price:=1;//套利比例 100%,这里对 modelprice 这个字段进行了重用作 套利比例用
volume:=0.05;//以账号可用资金的 5%买入篮子

AccountID:=stockAccountID+','+futureAccountID;
orderCode:=basketName+','+futureName;

doit:=0;
if c>o then //是阳线就套利
begin
//下套利单
orderType=2333
passorder(operateType,orderType,AccountID,orderCode,priceType,model_price,volume)
;
doit:=1;
end
single:doit;

passorder支持融资融券

holding :返回持仓数量

调用:holding(AccountID , MarketID, StockID,Direction);

AccountID, MarketID, StockID 为字符串;Direction 为整型(1 多,2 空)

例 :
ho:=holding(‘037055’,’IF’,’IF06’,2);

holdings:返回持仓信息

调用:holdings(Account);

1
xxx:= holdings(‘037055’);


2
统计某个账号所有品种做多方向的持仓
xxx := holdings('037055');
loh := 0;
for x in xxx do begin if
x.direction = 48 then loh:=
loh + x.volume;
end
longhold:loh;

xxx 为一个 positiondetail 结构体,含有如下项:

exchangeid 证券市场,交易所代码
exchangename 市场名字
productid 品种代码
productname 品种名称
instrumentid 证券代码,合约代码
instrumentname 证券名称,合约名称
hedgeflag 投保
direction 买卖
opendate 成交日期
tradeid 最初开仓位的成交
volume 持仓量 当前拥股
openprice 开仓价
tradingday 交易日
margin 使用的保证金 历史的直接用 ctp 的,新的自己用成本价*存量*系数算 股票不需要
opencost 开仓成本 等于股票的成本价*第一次建仓的量,后续减持不影响,不算手续费 股票不需要
settlementprice /结算价 对于股票的当前价
closevolume 平仓量 等于股票已经卖掉的 股票不需要
closeamount 平仓额 等于股票每次卖出的量*卖出价*合约乘数(股票为 1)的累加 股票不需要
dloatprofit 浮动盈亏 当前量*(当前价-开仓价)*合约乘数(股票为 1
closeprofit 平仓盈亏 平仓额 - 开仓价*平仓量*合约乘数(股票为 1) 股票不需要
marketvalue 市值 合约价值
positioncost 持仓成本 股票不需要
positionprofit 持仓盈亏 股票不需要
lastsettlementprice 最新结算价 股票不需要
instrumentvalue 合约价值 股票不需要
istoday 是否今仓
xttag 迅投量化投研平台标签
stockholder 股东账号
frozenvolume 期货不用这个字段,冻结数量
canusevolume 期货不用这个字段,股票的可用数量
onroadvolume 期货不用这个字段,股票的在途数量
yesterdayvolume 期货不用这个字段,股票的股份余额
lastprice 结算价 对于股票的当前价
profitrate 持仓盈亏比例
futuretradetype 成交类型
expiredate 到期日,逆回购用
comtradeid 套利成交 Id
legid 组合 Id
totalcost 自定义累计成本 股票信用用到
singlecost 自定义单股成本 股票信用用到
coveredvolume 用于个股期权
sideflag 用于个股期权,标记 '0' - 权利,'1' - 义务,'2' - '备兑'
referencerate 汇率,目前用于港股通
structfundvol 分级基金可用(可分拆或可合并)
redemptionvolume 分级基金可赎回量

ordering:返回当前委托数量

调用:ordering(AccountID , MarketID, StockID,Direction);

AccountID, MarketID, StockID 为字符串;Direction 为整型(1 buy,2 sell)

例 :
ord:=ordering(‘037055’,’IF’,’IF06’,2);
7) orderings:返回委托信息
调用:orderings(AccountID);

例:
统计某账号买入的所有的当天委托量
xxx := orderings('037055');
loo := 0;
for x in xxx do begin
if x.direction = 48 then
loo:= loo + x.volumetotaloriginal;
end
longorder:loo

xxx 为一个 orderdetail 结构体,含有如下项:

exchangeid 证券市场,交易所代码
exchangename 市场名字
productid 品种代码
productname 品种名称
instrumentid 证券代码,合约代码
instrumentname 证券名称,合约名称
sessionid
frontid 前端 id
orderref 下单引用 等于股票的内部委托号
orderpricetype 类型,例如市价单 限价单
direction 期货多空 股票买卖
offsetflag 期货开平,股票买卖其实就是开平
hedgeflag 投保
limitprice 限价单的限价,就是报价
volumetotaloriginal 最初委托量
ordersubmitstatus 提交状态
ordersysid 委托号
orderstatus 委托状态
volumetraded 已成交量
volumetotal 当前总委托量 股票不需要总委托量
errorid
errormsg 状态信息
taskid
frozenmargin 冻结保证金
frozencommission 冻结手续费
insertdate 日期
inserttime 时间
xttag 迅投量化投研平台标签
tradeprice 成交均价
cancelamount 已撤数量
optname 展示委托属性的中文
tradeamount 成交额 期货=均价**合约乘数
entrusttype 委托类别
cancelinfo 废单原因
undercode 标的证券
covereflag 备兑标记 '0' - 非备兑,'1' - 备兑
orderpricermb 委托价格 人民币 用于港股通
tradeamountrmb 成交金额 人民币用于港股通
referencerate 参考汇率 用于港股通

deal:返回某个时间内的成交数量

调用:deal(AccountID , MarketID, StockID,Direction);

或 deal(AccountID , MarketID, StockID,Direction,Seconds);

AccountID, MarketID, StockID 为字符串;Direction 为整型(1 多,2 空), Seconds 为整型,表示多少秒内。

1
de:=deal(‘037055’,’IF’,’IF06’,2);//返回当天 IF06 的 sell 的成交数量

2
de:=deal(‘037055’,’IF’,’IF06’,2,90);//返回最近 90 秒内 IF06 的 sell 的成交数量

deals:返回成交信息

调用:deals(AccountID);

例:
返回某账号当天 buy 的成交量
xxx := deals('037055');
dea:= 0;
for x in xxx do begin if
x.direction = 48 then dea:=
dea + x.volume;
end
longdeal:dea

xxx 为一个 dealdetail 结构体,含有如下项:

exchangeid 证券市场,交易所代码
exchangename 市场名字
productid 品种代码
productname 品种名称
instrumentid 证券代码,合约代码
instrumentname 证券名称,合约名称
tradeid 成交编号
orderref 下单引用 等于股票的内部委托号
ordersysid 委托号
direction 买卖 股票不需要
offsetflag 开平 股票的买卖
hedgeflag 投保 股票不需要
price 成交均价
volume 成交量 期货单位手 股票做到股
tradedate 成交日期
tradetime 成交时间
comssion 手续费
tradeamount 成交额 期货=均价**合约乘数
taskid
xttag 迅投量化投研平台标签
orderpricetype 类型,例如市价单 限价单
optname 展示委托属性的中文
entrusttype 委托类别
futuretradetype 成交类型
realoffsetflag 实际开平,主要是区分平今和平昨
coveredflag 备兑标记 '0' - 非备兑,'1' - 备兑
closetodayvolume 平今量, 不显示
orderpricermb 委托价格 人民币 用于港股通
pricermb 目前用于港股通
tradeamountrmb 目前用于港股通
referencerate 汇率,目前用于港股通
xttrade 是否是迅投量化投研平台交易

cancel:撤单

cancel(委托号);

一个模型例子:
//VAB 不区分大小写
variable:TestHolding=0;
//……………………下单参数定义……………………………………
ORDERTYPE:=1101; //下单类型
ACCOUNTID:='6000000248'; //填写对应资金账号,用户修改成自己的资金账号
ORDERCODE:=STKLABEL(); //下单代码,当前主图品种
PRICETYPE:=5; //下单价格类型,41 价,5 最新价,61 价,12 市价,13 挂单价,
14 对手价,11(指定价)模型价VOLUME:=100; //下单数量,100
//………………………下单…………………………………………
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA := EMA(DIFF,9);
MACD1 := 2*(DIFF-DEA), COLORSTICK;
t:BARSLAST(TestHolding=0),nodraw;//////////持仓周期
bk:= macd1>0;//////////开仓条件,可根据需要更改,如 bk:= close>open;
bp:=(t>=3 and macd1<0);////平仓条件
nn:=0;//////往后推迟几个周期交易//
IF (ref(Bk,nn) and not(bp) and TestHolding=0THEN BEGIN
TestHolding:=1;
BBD:=BARPOS;
DRAWTEXT(1 ,H+4,'买入');
VERTLINE(1 ,h+10,l-10,coloryellow,1,VTDOT);
PASSORDER(23{股票买入},ORDERTYPE{单股下单类型},ACCOUNTID{账号},ORDERCODE{下单代
码},PRICETYPE{选价类型},-1{下单价格选价类型非指定价填-1},VOLUME{下单量});
END
//卖出
IF (ref(bp,nn) AND TestHolding>0 ) THEN BEGIN
TestHolding:=0;
BBD:=0;
DRAWTEXT(1,H+1,'卖出');
VERTLINE(1,h+10,l-10,colorwhite,1,VTDOT);
PASSORDER(24{股票买入},ORDERTYPE,ACCOUNTID,ORDERCODE,PRICETYPE,-1,VOLUME);
END
//..................撤单..................................
orderss:= orderings(ACCOUNTID);//获取该资金账号所有的委托信息
nowtime:=CURRENTTIME();
for ord in orderss do begin
insertime:=strtonum(ord.inserttime);
if isequalv(ord.orderstatus,56)=0 and nowtime - insertime > 30 then begin //委托没
成功,30s 内没成交或部分成交则撤单
cancel(ord.ordersysid);
end
end

监控函数

迅投量化投研平台提供 TACCOUNT、MARKETVALUE、HOLDING 和 HOLDINGS 函数用以监控账户资金以及持仓状况

TACCOUNT

释义获取指定账号的可用资金
用法TACCOUNT(1,'37500001');1 表示是期货账号,2 为普通股票账号,3 为信用账号,37500001 是账号 ID
示例TACCOUNT(1,'37500001');//获取37500001期货账号的可用资金

HOLDING

释义得到当前帐户持仓量,多仓返回正数空仓返回负数
用法HOLDING(AccountID,MarketID,StockID,Direction);
AccountID,MarketID,StockID为字符串;Direction为整型(1多,2空)
示例HOLDING('037055','IF','IF09',2);//获取037055账号IF09做空持仓;
HOLDING('6000000255','SH','600000',1)//获取6000000255账号的股票600000的持仓

HOLDINGS

释义取某资金帐号对应的持仓
用法HOLDINGS(Account)表示获取帐号"Account"的持仓
示例统计某个账号所有品种做多方向的持仓
xxx := holdings('037055');
loh := 0;
for x in xxx do begin
if x.direction = 48 then
loh := loh+xvolume;
end
longhold:loh;
xxx为一个positiondetail结构体,含有如下项:
exchangeid证券市场,交易所代码
exchangename市场名字
productid品种代码
productname品种名称
instrumentid证券代码,合约代码
instrumentname证券名称,合约名称
hedgeflag投保
direction买卖
opendate成交日期
tradeid最初开仓位的成交
volume持仓量当前拥股
openprice开仓价
tradingday交易日
margin使用的保证金历史的直接用ctp的,新的自己用成本价存量系数算股票不需要
opencost开仓成本等于股票的成本价第一次建仓的量,后续减持不影响,不算手续费股票不需要
settlementprice/结算价对于股票的当前价
closevolume平仓量等于股票已经卖掉的股票不需要
closeamount平仓额等于股票每次卖出的量
卖出价合约乘数(股票为1)的累加股票不需要
dloatprofit浮动盈亏当前量
(当前价-开仓价)合约乘数(股票为1)
closeprofit平仓盈亏平仓额-开仓价
平仓量*合约乘数(股票为1)股票不需要
marketvalue市值合约价值
positioncost持仓成本股票不需要
positionprofit持仓盈亏股票不需要
lastsettlementprice最新结算价股票不需要
instrumentvalue合约价值股票不需要
istoday是否今仓
xttag迅投标签
stockholder股东账号
frozenvolume期货不用这个字段,冻结数量
canusevolume期货不用这个字段,股票的可用数量
onroadvolume期货不用这个字段,股票的在途数量
yesterdayvolume期货不用这个字段,股票的股份余额
lastprice结算价对于股票的当前价
profitrate持仓盈亏比例
futuretradetype成交类型
expiredate到期日,逆回购用
comtradeid套利成交Id
legid组合Id
totalcost自定义累计成本股票信用用到
singlecost自定义单股成本股票信用用到
coveredvolume用于个股期权
sideflag用于个股期权,标记'0'-权利,'1'-义务,'2'-'备兑'
referencerate汇率,目前用于港股通
structfundvol分级基金可用(可分拆或可合并)
redemptionvolume分级基金可赎回量

MARKETVALUE

释义获取指定账号的可用资金
用法MARKETVALUE(2,'AA')表示返回帐号"AA"的股票市值,1 表示是期货账号,2 为普通股票账号,3 为信用账号
示例MARKETVALUE(2,'37500001');//返回股票账号37500001的股票市值

控制函数

控制函数主要有 SLEEP 和 CANCEL 函数分别用于控制下单的频率以及对于指定报单指令执行撤单。

CANCEL

释义针对委托号进行撤单
用法CANCEL(orderId,accountID,accountType)表示撤销委托号为orderId的委托
orderId:委托号;
accountId:资金账号;
accountType:资金账号类型('STOCK','FUTURE','CREDIT','HUGANGTONG','SHENGANGTONG')
示例CANCEL('1234','37500001','STOCK');//撤销股票账号37500001委托号为1234的委托

SLEEP

释义函数作用于模型的最后一个周期,在最新周期中延时设定的时间之后再执行之后的语句
用法SLEEP(D),D 为延时的设置时间,单位为毫秒(1 秒钟等于 1000 毫秒)
示例SLEEP(1000);//表示等待 1 秒后再执行下行语句

线型描述

COLORBLACK

释义设为黑色
示例MA1:MA(CLOSE,5),COLORBLACK;//5日均线设为黑色

COLORBLUE

释义设为蓝色
示例MA1:MA(CLOSE,5),COLORBLUE;//5日均线设为蓝色

COLORBROWN

释义设为棕色
示例MA1:MA(CLOSE,5),COLORBROWN;//5日均线设为棕色

COLORCYAN

释义设为青色
示例MA1:MA(CLOSE,5),COLORCYAN;//5日均线设为青色

COLORGRAY

释义设为灰色
示例MA1:MA(CLOSE,5),COLORGRAY;//5日均线设为灰色

COLORGREEN

释义设为绿色
示例MA1:MA(CLOSE,5),COLORGREEN;//5日均线设为绿色

COLORMAGENTA

释义设为晶红色
示例MA1:MA(CLOSE,5),COLORMAGENTA;//5日均线设为晶红色

COLORRED

释义设为红色
示例MA1:MA(CLOSE,5),COLORRED;//5日均线设为红色

COLORWHITE

释义设为白色
示例MA1:MA(CLOSE,5),COLORWHITE;//5日均线设为白色

COLORYELLOW

释义设为黄色
示例MA1:MA(CLOSE,5),COLORYELLOW;//5日均线设为黄色

COLORSTICK

释义颜色柱状线:以零轴为中心画彩色棒状线,零轴下为阴线颜色,零轴上为阳线颜色
示例CLOSE-OPEN,COLORSTICK;//收盘价大于开盘价画阳线颜色,收盘价小于开盘价画阴线颜色

CIRCLEDOT

释义画小圆圈线
示例CLOSE,CIRCLEDOT;//收盘价画小圆圈线

NOAXIS

释义无坐标:不影响坐标最高最低值
示例C,NOAXIS; //输出收盘价,但不影响坐标最高最低值,用于叠加到其它指标上

LINETHICK

释义改变指标线粗细
示例MA1:MA(CLOSE,5),LINETHICK3;//5日均线绘制使用3号粗细度

逻辑函数

ALL

释义是否一直满足条件
用法ALL(X,N),统计 N 周期中是否一直都满足 X 条件,若 N=0 则从第一个有效值开始
示例ALL(CLOSE>OPEN,20);//表示是否 20 周期内全部都收阳线,满足返回1,不满足返回0

ANY

释义是否存在
用法ANY(X,N)返回 N 周期内是否存在满足条件 X,N 可为常数或变量,若 N=0 则从第一个有效值开始
示例ANY(C>O,10);//表示 10 个周期中存在阳线,存在返回1,不存在返回0

BETWEEN

释义介于两个数之间
用法BETWEEN(A,B,C)表示 A 处于 B 和 C 之间时返回 1,否则返回 0
示例BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5));//表示收盘价介于5 日均线和10日均线之间,满足返回1,不满足返回0

CROSS

释义两条线交叉
用法CROSS(A,B)表示当 A 从下方向上穿过 B 时返回 1,否则返回 0
示例CROSS(MA(CLOSE,5),MA(CLOSE,10));//表示 5 日均线与 10 日均线交金叉

IF

释义根据条件求不同的值
用法IF(X,A,B)若 X 不为 0 则返回 A,否则返回 B
示例IF(CLOSE>OPEN,HIGH,LOW);//表示该周期收阳则返回最高值,否则返回最低值

IFN

释义根据条件求不同的值
用法IFN(X,A,B)若 X 不为 0 则返回 B,否则返回 A
示例IFN(CLOSE>OPEN,HIGH,LOW);//表示该周期收阴则返回最高值,否则返回最低值

ISDOWN

释义该周期是否收阴
用法ISDOWN()
示例ISDOWN();//当收盘价<开盘价时,返回值为 1,否则为 0

ISEQUAL

释义该周期是否平盘
用法ISEQUAL()
示例ISEQUAL();//当收盘价=开盘价时,返回值为 1,否则为 0

ISLASTBAR

释义该周期是否为最后一个周期。
用法ISLASTBAR
示例ISLASTBAR;//最后一个周期返回值为 1,其余为 0

ISUP

释义该周期是否收阳。
用法SUP()
示例SUP();//当收盘价>开盘价时,返回值为 1,否则为 0

LAST

释义持续存在
用法LAST(X,A,B)返回第前 A 周期到第前 B 周期是否一直满足条件 X
若 A 为 0,表示从第一天开始,B 为 0,表示到最后日止
示例LAST(C>O,10,5);//表示从第前10个周期到第前5个周期内一直是阳线,满足返回1,不满足返回0

LONGCROSS

释义两条线维持一定周期后交叉。
用法LONGCROSS(A,B,N)表示 A 在 N 周期内都小于 B,本周期从下方向上穿过 B 时返回 1,否则返回 0
示例LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5);//5日均线在5周期后与10日均线交金叉,满足返回1,不满足返回0

NOT

释义求逻辑非。
用法NOT(X)返回非 X,即当 X=0 时返回 1,否则返回 0
示例NOT(ISUP);//表示平盘或收阴

RANGE

释义介于某个范围之间。
用法RANGE(A,B,C)表示 A 大于 B 同时小于 C 时返回 1,否则返回 0
示例RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10));//表示收盘价大于5日均线并且小于10日均线,满足返回1,不满足返回0

VALID

释义判断指定值是否是有效数据
用法VALID(X)
示例VALID(X);//当 X 为有效数据时返回 1,否则返回 0

VALUEWHEN

释义条件跟随:当条件 COND 满足时,取当时的 DATA 的值,否则取得 VALUEWHEN 的前一个值。
用法VALUEWHEN(COND, DATA)
示例VALUEWHEN(HIGH>REF(HIGH,5),HIGH);// 表示当前最高价大于前五个周期最高价的最大值时返回当前最高价

动态行情

序号函数名称释义
1DYNAINFO(3)取得最新动态行情: 昨收
2DYNAINFO(4)取得最新动态行情: 今开
3DYNAINFO(5)取得最新动态行情: 最高
4DYNAINFO(6)取得最新动态行情: 最低
5DYNAINFO(7)取得最新动态行情: 最新
6DYNAINFO(8)取得最新动态行情: 总手
7DYNAINFO(9)取得最新动态行情: 现手
8DYNAINFO(10)取得最新动态行情: 总额
9DYNAINFO(12)取得最新动态行情: 涨跌
10DYNAINFO(13)取得最新动态行情: 振幅
11DYNAINFO(14)取得最新动态行情: 涨幅
12DYNAINFO(15)取得最新动态行情: 委比
13DYNAINFO(16)取得最新动态行情: 委差
14DYNAINFO(18)取得最新动态行情: 委买
15DYNAINFO(19)取得最新动态行情: 委卖
16DYNAINFO(20)取得最新动态行情: 委买价
17DYNAINFO(21)取得最新动态行情: 委卖价
18DYNAINFO(25)取得最新动态行情: 买一量
19DYNAINFO(26)取得最新动态行情: 买二量
20DYNAINFO(27)取得最新动态行情: 买三量
21DYNAINFO(28)取得最新动态行情: 买一价
22DYNAINFO(29)取得最新动态行情: 买二价
23DYNAINFO(30)取得最新动态行情: 买三价
24DYNAINFO(31)取得最新动态行情: 卖一量
25DYNAINFO(32)取得最新动态行情: 卖二量
26DYNAINFO(33)取得最新动态行情: 卖三量
27DYNAINFO(34)取得最新动态行情: 卖一价
28DYNAINFO(35)取得最新动态行情: 卖二价
29DYNAINFO(36)取得最新动态行情: 卖三价
30markettime获取主图品种市场的最新时间:markettime;获取指定市场的最新时间:markettime('SH');

绘图函数

BARSSET

释义绘制标记.
用法BARSSET(COND,PRICE,N,OFFSET),当 COND 条件满足时,在 PRICE 位置绘制标记。N 为所影响到的周期数。OFFSET为影响周期的偏移,0 为以中心点前后影响,负数为往前影响,正数为向后影响。该函数通常用在逻辑公式中。
示例BARSSET( BARPOS=100,HIGH ,10 ,0);//以第100根k线位置,前后10个周期内绘制标记。

COLORRGB

释义将红,绿,蓝三基色混和成一个颜色值。
用法COLORRGB(R,G,B)R,G,B 分别取值为 0-255。该函数仅用在 DRAWTEXT 等画线函数中 COLOR 参数指定颜色使用。
示例DRAWTEXT(CLOSE/OPEN>1.08,LOW,'大阳线',COLORRGB(255,0,0));//将显示红色的大阳线文字。
若用户需指定指标线颜色,请使用 COLOR00FFFF 等这种语法

DRAWTEXT

释义在图形上显示文字。
用法DRAWTEXT(COND,PRICE,TEXT[,COLOR,ALIGN]),当 COND 条件满足时,在 PRICE 位置书写文字 TEXT。COLOR(可选参数)文字颜色,ALIGN(可选参数)对齐方式 0 中对齐;1 左对齐;2 右对齐;3 图中;4 图上;5 图下。
示例DRAWTEXT(CLOSE/OPEN>1.08,LOW,'大阳线');//表示当日涨幅大于 8%时在最低价位置显示"大阳线"字样

KLINE

释义在图形上绘制 K 线.
用法KLINE(O,H,L,C,T)O,H,L,C 分别为开高低收T
为绘制类型,0 表示与主图 K 线画法相同,1 表示不影响坐标高低值,可用于叠加在其它指标上
示例例 1:KLINE(O,H,L,C,0);
例 2:在 KDJ 公式中叠加 KLINE(O,H,L,C,1);

VERTLINE

释义在图形上绘制垂直线。
用法VERTLINE(COND,[PRICE1,PRICE2,COLOR,WIDTH,TYPE])
当 COND 条件满足时,在 PRICE1 和 PRICE2 之间画线。
PRICE1 和 PRICE2 均省略时表示在窗格高低之间画垂直线
COLOR(可选参数)为线颜色
WIDTH(可选参数)为线的宽度
TYPE(可选参数)为线的风格分别为:
VTSOLID 普通线
VTDASH 虚线
VTDOT 点线
VTDASHDOT 虚线和点交替
VTDASHDOTDOT 虚线和两点交替。
除了 VTSOLID 风格以外,其他风格必须保证 WIDTH 为 1 时才有效。
示例VERTLINE(c>o,10,20,colorred,1,VTDASH);//K线收阳,在10-20间使用1号粗细度画普通线

DRAWICON

释义在图形上绘制小图标。
用法DRAWICON(COND,PRICE,TYPE[,ALIGN]),当 COND 条件满足时,在 PRICE 位置画TYPE 号图标。
ALIGN(可选参数)对齐方式 ,0 图标中对齐;1 图标上缘;2 图标中缘;3 图中;4图上;5 图下
例如:DRAWICON(CLOSE>OPEN,LOW,1)表示当收阳时在最低价位置画 1 号图标。
绘制图标按照“符号”工具栏对应排列,如果要自定义绘制的图标,请在“自定义”工具栏操作里将对应的图标修改即可。
示例DRAWICON(CLOSE>OPEN,LOW,1);//当收阳时在最低价位置画1号图标

DRAWBMP

释义在图形上绘制位图。
用法DRAWBMP(COND,PRICE,BMPFILE[,ALIGN]),当 COND 条件满足时,在 PRICE 位置画 BMPFILE 文件名指定的 BMP 位图,ALIGN(可选参数)对齐方式 ,0 图标中对齐;1 图标上缘;2 图标中缘;3 图中;4图上;5 图下
(初始路径与\DOCUMENT 目录的文档 *.STK 文件放在一起)。
示例DRAWBMP(CLOSE>OPEN,LOW,'SUN');//表示当收阳时在最低价位置画 SUN.BMP 位图

DRAWNUMBER

释义在图形上显示数字。
用法DRAWNUMBER(COND,PRICE,NUMBER,PRECISION[,COLOR,ALIGN])当 COND 条件满足时,在 PRICE 位置书写数字 NUMBER,PRECISION 为小数显示位数(取值范围 0-7),其中 0-6 表示位数,7 表示自动显示位数。
COLOR(可选参数)为数字颜色。
ALIGN(可选参数)对齐方式 0 中对齐;1 左对齐;2 右对齐;3 图中;4 图上;5 图下。
示例DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-REF(C,1))/REF(C,1)*100,2);//表示当日涨幅大于 8%时在最高价位置显示涨幅(相对开盘价的百分比)。

VOLSTICK

释义将数据画成柱状线
示例VOL,VOLSTICK;画成交量柱状线

STACKVOLSTICK

释义将数据画成叠加柱状线
示例VOL,stackvolstick;画成交量柱状线

字符串函数

MARKETNAME

释义取得当前品种的市场名称
用法MARKETNAME(),将返回当前品种的市场名称
示例MARKETNAME();//主图为沪市标的返回"上证所";主图为深市标的返回"深交所"

INBLOCK

释义判断本股票是否板块成员
用法INBLOCK(S),若本股票是板块 S 的成员将返回 1,否则返回 0.
示例INBLOCK('工业板块');//若本股票属于工业板块则返回 1,不属于返回0

LOWERSTR

释义将字符串转换为小写。
用法LOWERSTR(STR),将返回 STR 对应的小写字符串
示例LOWERSTR('EFGH');//将返回"efgh"

LTRIM

释义除去字符串开始空格
用法LTRIM(STR)
示例LTRIM(' SH');//将返回 SH

MARKETLABEL

释义取得当前品种的市场代码
用法MARKETLABEL(),将返回当前品种的市场代码
示例MARKETLABEL();//沪市标的返回"SH",深市标的返回"SZ"

MARKETLABEL1

释义取得当前品种的市场代码。
较 MARKETLABEL,MARKETLABEL1 返回值更加精确
用法MARKETLABEL1(),将返回当前品种的市场代码
示例MARKETLABEL1();//上证 A 股返回"SHZB",深证主板返回"SZZB",深证中小板返回"SZZX",深圳创业板返回"SZCY",其他板块的返回值与 MARKETLABEL 函数相同。

NUMTOSTR

释义将数字转化为字符串,用户可以设定精度
用法NUMTOSTR(N,M),将 N 转化为字符串返回,精确到小数点后 M 位
示例NUMTOSTR(CLOSE,5);//将返回收盘价对应的字符串,例如"15.78000"

RTRIM

释义除去字符串尾部空格
用法RTRIM(STR)
示例RTRIM('SH ');//将返回 SH

STKLABEL

释义取得品种代码
用法STKLABEL()将返回当前品种的代码
示例STKLABEL();//例如主图标的为浦发银行将返回600000

STKNAME

释义取得品种名称
用法STKNAME(),将返回当前品种的名称
示例STKNAME();//例如主图标的为浦发银行将返回"浦发银行"

STRCAT

释义把一个字符串添加到另一个字符串中
用法STRCAT(DES,STR),将 STR 字符串添加到 DES 字符串末尾
示例STRCAT('ABC','DEF');//将返回"ABCDEF"

STRCMP

释义字符串比较
用法STRCMP(STR1,STR2),若 STR1>STR2 则返回 1,STR1<STR2 返回-1,若STR1=STR2 返回 0
示例STRCMP('ABCDEF','ABC');//返回1 表示'ABCDEF'>'ABC'

STRFIND

释义在字符串中查找另一个字符串
用法STRFIND(STR,S1,N),从字符串 STR 的第 N 个字符开始查找字符串 S1,返回找到的位置,若没有找到就返回 0
示例STRFIND('ABCDEFGH','CDE',1);//将返回 3

STRICMP

释义忽略大小写比较字符串
用法STRICMP(STR1,STR2),若 STR1>STR2 则返回 1,STR1<STR2 返回-1,若STR1=STR2返回 0
示例STRCMP('ABCDEF','ABC');//返回 1表示'ABCDEF'>'ABC'

STRINGTOFILE

释义输出指定的字符串到一个指定的文件中
用户可以在公式中通过输出指定的字符串到文件来实现调试或者其他的目的.借此可以借助这个功能来完成监控公式运行的各种细节参数.该函数用法与DEBUGFILE2基本相同,唯一区别是该函数在写文件时会自动清空之前文件中写入的数据
用法STRINGTOFILE(PATH,STR),PATH 为用户的本地计算机路径,STR 为用户指定输出的一个行文字
示例STRINGTOFILE('D:TEST.TXT','当前资产为 1000');//将在公式的监控部分输出到 D:TEST.TXT 文件.
如果字符串输出中涉及到数字变量,可以使用 NUMTOSTR 函数转化成字符串后,然后再进行相加

STRINSERT

释义从指定位置插入一个子字符串
用法STRINSERT(STR,INDEX,STR1),在 STR 字符串的第 INDEX 后方开始插入字符串STR1
示例STRINSERT('ABCDEF',2,'ZZZ');//函数将返回"ABZZZCDEF"

STRLEFT

释义取得字符串的左边部分
用法STRLEFT(STR,N),返回字符串 STR 的左边 N 个字符
示例STRLEFT('ABCDEF',3);//将返回"ABC"

STRLEN

释义求字符串的长度
用法STRLEN(STR),将返回 STR 字符串的长度,由于系统采用 ANSI 字符编码,一个汉字等于 2 个字节
示例STRLEN('ABCD');//将返回4

STRMID

释义取得字符串的中间部分
用法STRMID(STR,N,M),返回字符串STR 的第N 个字符开始的长度为M 个字符的字符串
示例STRMID('ABCDEF',3,3);//将返回"CDE"

STRNCMP

释义指定长度比较字符串
用法STRNCMP(STR1,STR2,LEN)
示例VAR1:STRNCMP(STKNAME,'ST',2)=0;// 若返回 1 表示该股为 ST 股

STRREMOVE

释义从指定位置开始的地方删除一个或多个字符
用法STRREMOVE(STR,INDEX,COUND),在 STR 字符串的第 INDEX 地方开始删除 COUND个字符
示例STRREMOVE('ABCDEF',2,2)函数将返回"ABEF"

STRREPLACE

释义用一个字符替换另一个字符
用法STRREPLACE(STR,STROLD,STRNEW),将 STR 字符串中的 STROLD 替换为 STRNEW
在替换之后,该字符串有可能增长或缩短;那是因为STRNEW和STROLD的长度不需要是相等的.
示例STRREPLACE('ABCDEFG','BCD','ZZZ');//函数将返回"AZZZEFG"

STRRIGHT

释义取得字符串的右边部分
用法STRRIGHT(STR,N),返回字符串 STR 的右边 N 个字符
示例STRRIGHT('ABCDEF',3)得到"DEF"

STRTONUM

释义将字符串转化为数字
用法STRTONUM(STR),将 STR 转化为数字返回
示例STRTONUM('12.5');//将返回数值 12.5

STRTRIMLEFT

释义整理字符串左边
用法STRTRIMLEFT(STR,STR1),将一群特定的字符 STR1 从字符串 STR 的开始处删除
示例TRTRIMLEFT(' ABC',' ');//函数将返回"ABC"

STRTRIMRIGHT

释义整理字符串右边
用法STRTRIMLEFT(STR,STR1),将一群特定的字符 STR1 从字符串 STR 的末尾处删除
示例STRTRIMRIGHT('ABC ',' ');//函数将返回"ABC"

UPPERSTR

释义将字符串转换为大写
用法UPPERSTR(STR),将返回 STR 对应的大写字符串
示例UPPERSTR('abcd');//将返回"ABCD"

引用函数

BARSCOUNT

释义求有效周期数
用法BARSCOUNT(X)第一个有效数据到当前的天数
示例BARSCOUNT(CLOSE);//取得上市以来总交易日数

BACKSET

释义将满足条件时当前位置到若干周期前的数据设为 1 ,条件不满足返回0
用法BACKSET(X,N),若 X 非 0,则将当前位置到 N 周期前的数值设为 1
示例BACKSET(CLOSE>OPEN,2);
若收阳则将该周期及前一周期数值设为 1,否则返回 0

BARSLAST

释义上一次条件成立到当前的周期数
用法BARSLAST(X):上一次X不为0到现在的天数
示例BARSLAST(CLOSE/REF(CLOSE,1)>=1.1);//表示上一个涨停板到当前的周期数
如果没有符合条件的周期,函数将返回0

BARSSINCE

释义第一个条件成立到当前的周期数
用法BARSSINCE(X):第一次X不为0到现在的天数
示例BARSSINCE(HIGH>10);//表示股价超过10元时到当前的周期数
如果没有符合条件的周期,函数将返回0

BARSSINCEN

释义N 个周期内第一个条件成立到当前的周期数
用法BARSSINCEN(X,N):N 周期内第一次 X 不为 0 到现在的周期数,N 大于或等于 2
示例BARSSINCEN(HIGH>10,N);//表示 N 个周期内的股价超过 10 元时到当前的周期数如果没有符合条件的周期,函数将返回0

COUNT

释义统计满足条件的周期数
用法COUNT(X,N),统计 N 周期中满足 X 条件的周期数,若 N=0 则从第一个有效值开始
示例COUNT(CLOSE>OPEN,20);//表示统计 20 周期内收阳的周期数

CALLSTOCK

释义引用同期的其他证券数据
用法CALLSTOCK(CODE,TYPE[,CYC,N]),引用指定品种代码为 CODE,周期为 CYC(可选)若不填或者为-1 表示使用当前周期,类型为 TYPE 的数据
N 为左右偏移周期个数(可选)0 表示引用当前数据,<0 为引用之前数据,>0为引用之后数据。
其中 TYPE 的值可为 VTOPEN(开盘) VTHIGH(最高) VTLOW(最低) VTCLOSE(收盘)
VTVOL(成交量) VTAMOUNT(成交额) vtOPENINT(持仓量) VTADVANCE(涨数,大盘有效) VTDECLINE(跌数,大盘有效)以及外部数据和万德数据
如果找不到同期数据,那么将返回最近的一个。
CYC 范围为 0-19,分别表示
0:分笔成交、1:1 分钟、2:5 分钟、3:15 分钟、4:30 分钟、5:60 分钟
6:日、7:周、8:月、9:年、10:多日、11:多分钟、12:多秒
13:多小时、14:季度线、15:半年线、16:节气线、17:3 分钟、18:10 分钟、19:多笔线
示例CALLSTOCK('SH600000',VTCLOSE,6,-1);//表示引用昨日SH市场的 600000 的日线收盘价
CALLSTOCK('SH600000',VTOPEN)表示引用 SH 市场的 600000的日开盘价,使用当前周期
引用数据时,需要实现确认被引用品种周期数据齐全,再首次使用或者在不确定时,请手工进行数据补充工作

CURRBARSCOUNT

释义求到最后交易日的周期数
用法CURRBARSCOUNT 求到最后交易日的周期数

DMA

释义求动态移动平均
用法DMA(X,A),求 X 的动态移动平均。
算法: 若 Y=DMA(X,A)
则 Y=A*X+(1-A)*Y',其中 Y'表示上一周期 Y 值,A 必须小于 1。
示例DMA(CLOSE,VOL/CAPITAL());//表示求以换手率作平滑因子的平均价

DRAWNULL

释义取得一个无效数字,不输出值
示例IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL);//当前周期收盘价小于上一周期收盘价时不输出值

EMA

释义求指数平滑移动平均
用法EMA(X,N),求 X 的 N 日指数平滑移动平均。算法:若 Y=EMA(X,N)
则 Y=[2*X+(N-1)*Y']/(N+1),其中 Y'表示上一周期 Y 值
示例EMA(CLOSE,30);//表示求 30 日指数平滑均价

FILTER

释义过滤连续出现的信号
用法FILTER(X,N):X 满足条件后,删除其后 N 周期内的数据置为 0
示例FILTER(CLOSE>OPEN,5);//查找阳线,5 天内再次出现的阳线不被记录在内

HHV

释义求最高值
用法HHV(X,N),求 N 周期内 X 最高值,N=0 则从第一个有效值开始
示例HHV(HIGH,30);//表示求 30 日最高价

HHvbRS

释义求上一高点到当前的周期数
用法HHvbRS(X,N):求 N 周期内 X 最高值到当前周期数,N=0 表示从第一个有效值开始统计
示例HHvbRS(HIGH,0);//求得历史新高到到当前的周期数

HOD

释义求高值名次
用法HOD(X,N):求当前 X 数据是 N 周期内的第几个高值,N=0 则从第一个有效值开始
示例HOD(HIGH,20);//返回当前最高价是20个周期内的第几个高价

IMA

释义求指数权重移动平均
用法IMA(X,N,S)求 X 的 N 日 S 系数权重的指数移动平均,S 如果小于 100 表示远期权重大于近期权重,大于 100 表示近期的权重大于远期权重,等于 100 就相当于 MA
示例IMA(CLOSE,10,120);//表示求收盘价 10 日的 120%指数权重移动平均

LLV

释义求最低值
用法LLV(X,N),求 N 周期内 X 最低值,N=0 则从第一个有效值开始
示例LLV(LOW,0);//表示求历史最低价

LLvbRS

释义求上一低点到当前的周期数
用法LLvbRS(X,N):求 N 周期内 X 最低值到当前周期数,N=0 表示从第一个有效值开始统计
示例LLvbRS(HIGH,20);//求得 20 个周期内最低点到当前的周期数

LOD

释义求低值名次
用法LOD(X,N):求当前 X 数据是 N 周期内的第几个低值,N=0 则从第一个有效值开始
示例LOD(LOW,20);//返回当前最低价是 20 个周期内的第几个低价

MA

释义求简单移动平均
用法MA(X,N),求 X 的 N 日移动平均值。算法:(X1+X2+X3+...+XN)/N
示例MA(CLOSE,10);//表示求 10 日均价

MEDIAN

释义取若干指定周期的中位数据
用法MEDIAN(X,N),取 N 周期 X 的中数,如果 N 是奇数,取排完序的 X 中间一个元素;如果偶数,取中间两个的平均值返回
示例MEDIAN(CLOSE,3);//表示取近3个周期收盘价排序后的中间数

NEWHBARS

释义在历史上所有比当前数值高的数值序列中,离当前第 N 个近的数字到当前的周期数
用法NEWHBARS(X,N):求高于当前周期 X 的第 N 个 x 的距离
示例NEWHBARS(HIGH,1);//表示高于当前周期 h 的上一个 h 距离当前的周期数,即,今天的 h,创了多少个周期以来的新高

NEWLBARS

释义在历史上所有比当前数值低的数值序列中,离当前第 N 个近的数字到当前的周期数
用法NEWLBARS(X,N):求低于当前周期 X 的第 N 个 x 的距离
示例NEWLBARS(LOW,1);//表示低于当前周期 l 的上一个 l 距离当前的周期数,即,今天的 l,创了多少个周期以来的新低

REF

释义引用若干周期前的数据
用法REF(X,A),引用 A 周期前的 X 值
示例REF(CLOSE,1);//表示上一周期的收盘价,在日线上就是昨收

REFDATE

释义引用自 1900 年以来指定日期的数据
用法REFDATE(X,DATE[,TIME]),引用 DATE 日期 TIME (可省略)的 X 值
示例REFDATE(CLOSE,20011208);//表示 2001 年 12 月 08 日的收盘价;
REFDATE(CLOSE,20011208, 133030);//表示 2001 年 12 月 08 日 13:30:30 的收盘价
TIME 参数可省略使用,省略时间一般用在日线及其以上周期使用,对于日线以下周期则一般需要带时间参数。
注意:对于逐 K 线运行模式,X 值不可以引用到未来数据,但是序列模式则无
此限

REFX

释义引用若干周期后的数据
用法REFX(X,A),引用 A 周期后的 X 值
示例REFX(CLOSE,1);//表示后一周期的收盘价,在日线上就是明收

RET

释义按时间引用若干周期前的数据
用法RET(X,A),引用 A 周期时间前的 X 值
示例RET(CLOSE,10);//在日线上表示引用 10 天前的收盘价

SFILTER

释义过滤连续出现的信号
用法SFILTER(X,COND):X 满足条件后,将其后所有周期内的数据置为 0,直到 COND条件满足为止
示例SFILTER(CLOSE>OPEN,CLOSE<OPEN);//查找阳线,再次出现的阳线不被记录在内,直到出现阴线后再次出现阳线为止

SMA

释义求移动平均
用法SMA(X,N,M),求 X 的 N 日移动平均,M 为权重。
算法: 若 Y=SMA(X,N,M)
则 Y=[M*X+(N-M)*Y')/N,其中 Y'表示上一周期 Y 值,N 必须大于 M
示例SMA(CLOSE,30,1);//表示求 30 日移动平均价

STKINDI

释义引用任意品种任意周期的任意指标输出
用法STKINDI(STKLABEL,INDINAME,CO,PERIOD[,m,n])
STKLABEL 指定品种代码,如为空表示当前品种
INDINAME 为指标公式调用
CO 为坐标轴类型 0 交易日坐标 1 自然日 2 交易交易时间
PERIOD 为周期类型,有效值范围为(0-19),依次表示:
0:分笔成交、1:1 分钟、2:5 分钟、3:15 分钟、4:30 分钟、5:60 分钟、6:日、7:周、8:月、9:年、10:多日、11:多分钟、12:多秒、13:多小时、14:季度线、15:半年线、16:节气线、17:3 分钟、18:10 分钟、19:多笔线
m 为左右偏移周期个数(可选),0 表示引用当前数据,小于 0 为引用之前数据,大于 0 为引用之后数据
n 为 0,1,2,3,4 表示复权数据类型,0 为不复权,1 为前复权,2 为后复权,3 为等比前复权,4 为等比后复权
示例STKINDI('1A0001','MA.MA1',0,DATAPERIOD);
计算 1A0001 的当前周期 MA 指标的 MA1 指标线
STKINDI('','RSI.RSI1',0,6);
计算当前品种的日线周期 RSI 指标的 RST1 指标线
STKINDI('SH600000','RSI',0,6,-1);
引用昨日 SH 市场 600000 品种的日线周期 RSI 指标最后—行输出并且使用公式的默认参数
若参数为数字变量,那么需要有个字符串转换的过程
s:=5;
m:=NUMTOSTR(s,0);//NUMTOSTR 函数将数字转换到字符串,再带入变量中
vola:stkindi('if10','ATR.ATR',0,6,-1);//计算 IF10 合约的日线周期指标ATR 的 ATR 指标线,传递参数 m 值为 5。
第 2 个参数''里的是文本,由三部分组成:'ATR.ATR('和 m 和')',这三部分由两个连接符号&连接起来,实现对数值参数的文本传输。引用数据时,需要实现确认被引用品种周期数据齐全,再首次使用或者在不确定时,请手工进行数据补充工作

SUM

释义求总和
用法SUM(X,N),统计 N 周期中 X 的总和,N=0 则从第一个有效值开始
示例SUM(VOL,0);//表示统计从上市第一天以来的成交量总和

SUMBARS

释义向前累加到指定值到现在的周期数
用法SUMBARS(X,A);将 X 向前累加直到大于等于 A,返回这个区间的周期数
示例SUMBARS(CLOSE,200);//求收盘价累加大于200所用的周期数

TMA

释义求递归移动平均
用法TMA(X,N,M),求 X 的递归移动平均,N、M 为权重
算法若 Y=TMA(X,N,M) 则 Y=(NY'+MX), 其中 Y'表示上一周期 Y 值。初值为 M*X
示例MA(CLOSE,0.9,0.1);//表示求 X 的递归移动平均

TODAYBAR

释义求当日数据周期的数量
用法TODAYBAR,得到当日从开盘以来到现在的周期数量
示例TODAYBAR;//若在1分钟周期返回20,表示当日1分钟K线已生成20个周期

TODAYBAR

释义求真实波幅
用法TR,求真实波幅
示例ATR:=MA(TR,10);//表示求真实波幅的 10 周期均值

TRMA

释义三角移动平均
用法TRMA(X,N)求 X 在 N 周期内的三角移动平均
三角移动平均计算方法:第1 种可能先算(奇数+1)/2 周期移动平均,得出值再算这个值的(奇数+1)/2 周期的移动平均.
第2 种可能先算偶数/2 周期移动平均,得出值再算这个值的(偶数/2+1)周期的移动平均,
也就是先判断一下 N 是奇数还是偶数,然后再选对应的计算式
示例TRMA(CLOSE,10);//求收盘价的 10 周期三角移动平均

WMA

释义求加权移动平均
用法WMA(X,N),求 X 的加权移动平均
算法若 Y=WMA(X,N) 则
Y=(N*X0+(N-1)*X1+(N-2)X2)+...+1XN)/(N+(N-1)+(N-2)+...+1)
X0 表示本周期值,X1 表示上一周期值...
示例WMA(CLOSE,20);//表示求 20 周期加权均价

gettreasury10y

释义取十年期国债无风险利率
用法gettreasury10y(date,type),取十年期国债无风险利率
示例gettreasury10y(20170306,1);//取2017年3月5日的中债1年期收益率

getfindata

释义获取财务数据
用法表格名称CAPITALSTRUCTURE(股本结构)、PERSHAREINDEX(主要指标)、ASHAREINCOME(利润表)、ASHARECASHFLOW(现金流量表)、ASHAREBALANCESHEET(资产负债表)
示例getfindata('CAPITALSTRUCTURE','total_capital');//取总股本

getlonghubang

释义获取龙虎榜数据
用法getlonghubang('字段名','买卖方向',席位排行);
字段名:上榜日期,上榜原因,成交金额,交易营业部名称,买入金额,买入金额占总成交比例,卖出金额,卖出金额占总成交比例,净额
买卖方向:B或S
席位:1-5
示例getlonghubang('交易营业部名称','B',1);//取买一席位交易营业部名称

gettop10shareholder

释义获取十大股东数据
用法gettop10shareholder('类型名','字段名',排行);类型名和字段名中文或英文均可
类型名:流通股东(flow_holder),股东(holder)
字段名:股东名称(shareholder_name),股东类型(shareholder_type),持股数量(shareholder_quantity),变动原因(change_reason),持股比例(shareholder_ratio),股份性质(share_nature),持股排名(shareholder_rank)
排行:1-10
示例gettop10shareholder('flow_holder','shareholder_name',1);//获取第一大股东的名称

控制函数

AND

释义逻辑与运算
用法A AND B 或 A && B
表示条件 A 与条件 B 同时成立
示例COND:CLOSE>OPEN AND HOLDING=0 ;//阳线并且持仓为0

BEGIN

释义把多条语句看作一条语句
用法语法:BEGIN...END
示例IF CLOSE>OPEN THEN
BEGIN
AA:=1;
END//若该周期收盘,将AA赋值为1

BREAK

释义跳出循环
用法语法:BREAK;
示例if ISLASTBAR()=1 then BEGIN
For i=1 TO 10 DO BEGIN
a:=a+1;
if i=5 then BREAK;
END
END//最后一根k上时,当A=5时,退出循环

DO

释义执行语句
用法FOR VAR=N1 TO N2 DO EXPR;
WHILE COND DO EXPR

EXIT

释义终止公式执行.注意:逐 K 线模式下运行时,EXIT 的使用不当会导致比如 HHV,MA,等统计性质的函数计算出现失误,建议这些函数都要放在 EXIT 退出语句的前面保证每个周期都能执行到.
用法语法:EXIT;
示例if AA:=1 then begin
EXIT
end//若AA等于1,停止公式运行

FOR

释义循环语句
用法FOR...TO...DO...
FOR...DOWNTO...DO...
示例FOR VAR=N1 TO N2 DO EXPR;
从 VAR=N1 开始到 VAR=N2 开始循环执行 EXPR 语句,每执行一次 VAR 加 1
FOR VAR=N1 DOWNTO N2 DO EXPR2;
从 VAR=N1 开始到 VAR=N2 开始循环执行 EXPR 语句,每执行一次 VAR 减 1
注意:逐 K 线计算模式时,请尽量不要在 FOR 循环控制语句中使用 MA,HHV,LLV等带有序列变量的统计类函数,
虽然能通过编译,但是会运行不正常,应该把他们放在语句的外面计算

GLOBALVARIABLE

释义申明并初始化超全局变量
用法GLOBALVARIABLE 除了不支持数组外其他使用均与 VARIABLE 普通全局变量相同,
唯一不同之处在与 GLOBALVARIABLE 超全局变量在不会每次从头刷新指标数据时重新被刷新计算,而是始终会记住最后一次被赋予的值。
超全局变量一般会在客户停止后台程式化交易或者关闭框架图表后销毁重置。

IF

释义根据条件求不同的值
用法IF(X,A,B)若 X 不为 0 则返回 A,否则返回 B
示例IF(CLOSE>OPEN,HIGH,LOW);//表示该周期收阳则返回最高值,否则返回最低值

INPUT

释义申明并设置参数
用法INPUT:PNAME1(DFT,MIN,MAX,STEP),PNAME2(DFT,MIN,MAX,STEP)...;
PNAME 表示参数名, DFT 表示缺省值
MIN 表示最小值,MAX 表示最大值
STEP 表示优化步长,除 DEFAULT 外都可省略
示例INPUT:N(5), M(10,1,100,2)
表示定义参数 N,缺省值为 5
定义参数 M,缺省值为 10,最小值为 1,最大值为 100,优化步长为 2;

OR

释义逻辑或运算
用法A OR B 或 A
示例COND:CLOSE>OPEN OR HOLDING=0 ;//阳线或者持仓为0

REPEAT

释义循环语句
用法语法:REPEAT EXPR UNTIL COND
循环执行语句 EXPR 直到满足 COND 条件的时候才中止
注意:逐 K 线计算模式时,请尽量不要在 REPEAT 条件控制语句中使用MA,HHV,LLV 等带有序列变量的统计类函数,
虽然能通过编译,但是会运行不正常,应该把他们放在语句的外面计算

VARIABLE

释义申明并初始化变量;variable 为全局变量申明语句,一般用在逐 K 线计算模式下声明一个全局变量或者在序列模式和逐 K 线模式下声明一个内部数组。序列模式下variable 申明的序列变量会被强制转换为常数,故与普通的常数变量是没有区别的,因此序列模式下的序列变量不要使用 variable 进行申明。
语法VARIABLE:VARNAME1=INITVALUE1,VARNAME2=INITVALUE2...;
示例VARIABLE:X=1,Y=CLOSE,ARR[10]=0,SARR[5]='STR';
表示定义常数变量 X 并初始化为 1,
申明序列变量 Y 并初始化为收盘价,
申明含 10 个浮点数的数组并全部初始化为 0
申明含 5 个字符串的数组并都初始化为'STR'

WHILE

释义循环语句
用法WHILE COND DO EXPR
当满足 COND 条件的时候,循环执行语句 EXPR
注意:逐K 线计算模式时,请尽量不要在WHILE 条件控制语句中使用MA,HHV,LLV等带有序列变量的统计类函数,
虽然能通过编译,但是会运行不正常,应该把他们放在语句的外面计算

指标函数

SAR

释义抛物转向
用法SAR(N,S,M),N 为计算周期,S 为步长,M 为步长的极限值
示例SAR(10,2,20);//表示计算 10 日抛物转向,步长为 2%,极限值为 20%

SARTURN

释义抛物转向点
用法SARTURN(N,S,M);N 为计算周期,S 为步长,M 为极值,若发生向上转向则返回 1,若发生向下转向则返回-1,否则为 0
其用法与 SAR 函数相同

统计函数

BETA2

释义指定序列的贝塔系数
用法BETA2(A1,A2,N);求 A1,A2,N 周期的贝塔系数,该系数表明 A1 每变动 1%,则A2 将变动 V%
示例BETA2(INDEXC,CLOSE,5);// 表示大盘收盘价与该品种的 5 周期贝塔系数

COVAR

释义求 2 个序列的协方差
用法COVAR(X1,X2,N) 为 X1 与 X2 的 N 周期的协方差
示例COVAR(CLOSE,INDEXC,8);// 表示收盘价与大盘指数之间的 8 周期的协方差

MODE

释义数据集中出现最多的值用法 返回在某一数组或数据
用法返回在某一数组或数据区域中出现频率最多的数值。同 MEDIAN 一样,MODE 也是一个位置测量函数。
MODE(array,N); array:序列变量或数组; N: 周期范围。
如果数据集合中不含有重复的数据,则 MODE 数返回错误值 N/A。
示例MODE(array,N);//求数据集 array 中 N 周期内出现频率最多的数值

DEVSQ

释义数据偏差平方和
用法DEVSQ(X,N);//X:数值表达式,N:周期数

PEARSON

释义返回 Pearson(皮尔生)乘积矩相关系数 r,这是一个范围在 -1.0 到 1.0 之间(包括 -1.0 和 1.0 在内)的无量纲指数,反映了两个数据集合之间的线性相关程度。
用法PEARSON(A,B,N),计算 A,B 序列的 N 周期乘积矩相关系数
示例PEARSON(L,H,10);//表示最低价与最高价的 10 周期乘积矩相关系数

INTERCEPT

释义利用现有的 x 值与 y 值计算直线与 y 轴的截距。截距为穿过已知的 known_x's和 known_y's 数据点的线性回归线与 y 轴的交点。当自变量为 0(零)时,使用INTERCEPT 函数可以决定因变量的值。例如,当所有的数据点都是在室温或更高的温度下取得的,可以用 INTERCEPT 函数预测在 0°C 时金属的电阻
用法INTERCEPT(Y,X,N),求序列 Y,X 的线性回归线截距,Y 为因变的观察值或数据集合,X 为自变的观察值或数据集合
示例INTERCEPT(L,H,5);//表示计算最低价和最高价的 5 周期线性回归线截距

KURT

释义返回数据集的峰值。峰值反映与正态分布相比某一分布的尖锐度或平坦度。正峰值表示相对尖锐的分布。负峰值表示相对平坦的分布。
用法KURT(X,N),计算数据集 X 的 N 周期峰值
示例KURT(C,10);//表示收盘价的 10 周期峰值

BINOMDIST

释义一元二项式分布的概率值
用法返回一元二项式分布的概率值。函数 BINOMDIST 适用于固定次数的独立试验,KURT(C,10),表示收盘价的 10 周期峰值当试验的结果只包含成功或失败二种情况,且当成功的概率在实验期间固定不变。例如,函数 BINOMDIST 可以计算三个婴儿中两个是男孩的概率。
BINOMDIST(A,B,P,F),A 为试验成功的次数,B 为独立试验的次数,P 为每次试验中成功的概率,为一逻辑值,用于确定函数的形式。如果 F 为 TRUE,函数BINOMDIST 返回累积分布函数,即至多 A 次成功的概率;如果为 FALSE,返回概率密度函数,即 A 次成功的概率
示例BINOMDIST(6,10,0.5,FALSE);//10 次试验成功 6 次的概率为(0.205078)

EXPONDIST

释义返回指数分布。使用函数 EXPONDIST 可以建立事件之间的时间间隔模型,例如,在计算银行自动提款机支付一次现金所花费的时间时,可通过函数 EXPONDIST 来确定这一过程最长持续一分钟的发生概率
用法EXPONDIST(A,B,F),A 为函数的数值,B 为参数值,F 为一逻辑值,指定指数函数的形式。如果 F 为 TRUE,函数 EXPONDIST 返回累积分布函数;如果 F 为 FALSE,返回概率密度函数
示例EXPONDIST(0.2,10,TRUE);//返回累积分布函数
EXPONDIST(0.2,10,FALSE);//返回概率密度函数

FISHER

释义Fisher 变换
用法返回点 x 的 Fisher 变换。该变换生成一个正态分布而非偏斜的函数。使用此函数可以完成相关系数的假设检验。
FISHER(x)
X 为一个数字,在该点进行变换。
说明:
如果 x 为非数值型,函数 FISHER 返回错误值 #VALUE!。
如果 x ≤ -1 或 x ≥ 1,函数 FISHER 返回错误值 #NUM!。
示例FISHER(0.75);//在点 0.75 进行 Fisher 变换的函数值(0.972955)

FISHERINV

释义反 Fisher 变换
用法返回 Fisher 变换的反函数值。使用此变换可以分析数据区域或数组之间的相关性。如果 y = FISHER(x),则 FISHERINV(y) = x。
FISHERINV(y)
Y 为一个数值,在该点进行反变换。
说明:
如果 y 为非数值型,函数 FISHERINV 返回错误值 #VALUE!
示例FISHERINV(0.972955);//在点 0.972955 进行 Fisher 变换的反函数值(0.75)

HYPGEOMDIST

释义返回超几何分布。给定样本容量、样本总体容量和样本总体中成功的次数,函数HYPGEOMDIST 返回样本取得给定成功次数的概率。
使用函数 HYPGEOMDIST 可以解决有限总体的问题,其中每个观察值或者为成功或者为失败,且给定样本容量的每一个子集有相等的发生概率
用法HYPGEOMDIST(A,B,K,D),A 样本中成功的次数,B 样本容量,K 样本总体中成功的次数,D 样本总体的容量

FTEST

释义F 检验的结果
用法返回 F 检验的结果。F 检验返回的是当数组 1 和数组 2 的方差无明显差异时的单尾概率。可以使用此函数来判断两个样本的方差是否不同。例如,给定公立和私立学校的测试成绩,可以检验各学校间测试成绩的差别程度。
语法FTEST(array1,array2,N)
Array1 第一个数组或数据区域。
Array2 第二个数组或数据区域。
N 数组数据周期数量
示例FTEST(C,H,10);//返回收盘价和最高价 10 周期内的检验结果

LARGE

释义数据集中第 k 个最大值
用法返回数据集中第 K 个最大值。使用此函数可以根据相对标准来选择数值。例如,可以使用函数 LARGE 得到第一名、第二名或第三名的得分
语法LARGE(ARRAY,N,K)
ARRAY 为需要从中选择第 K 个最大值的数组或数据区域。
N 为数组的计算数据周期数量
K 为返回值在数组或数据单元格区域中的位置(从大到小排)。
说明
如果数组为空,函数 LARGE 返回错误值 #NUM!。
如果 K ≤ 0 或 K 大于数据点的个数,函数 LARGE 返回错误值 #NUM!。如
果区域中数据点的个数为 N,则函数 LARGE(ARRAY,1) 返回最大值,函数LARGE(ARRAY,N) 返回最小值。
示例LARGE(C,10,3);//求收盘价的 10 周期内的第三个最大值

FORCAST

释义线性回归预测值
用法FORCAST(X,N)为 X 的 N 周期线性回归预测值
示例FORCAST(CLOSE,10);//表示求 10 周期线性回归预测本周期收盘价

DRL

释义计算回归偏离度
用法DRL(X,N);得到 X 的 N 周期回归偏离度
示例DRL(C,10);//表示求收盘价的 10 周期回归偏离度

FORCAST2

释义曲线回归预测值
用法FORCAST2(X,N)为 X 的 N 周期曲线(方程:y=axx+b*x+c)回归预测值
示例FORCAST2(CLOSE,10);//表示求 10 周期收盘价曲线回归预测本周期的值

DRL2

释义曲线回归偏离度
用法DRL2(X,N),得到X的N周期曲线回归偏离度
示例DRL2(C,10);//表示求收盘价的 10 周期曲线回归偏离度的值(%)

NOLOT

释义交易家数取指定市场分类中、有效交易家数
用法NOLOT(MARKET,D)MARKET为市场名称,D为分类序号(1指数;2A股;3B股;4基金;5债券;6权证)
示例NOLOT('SH',2);//表示取上海 A 股的总交易家数
使用该函数前,如果是在开盘以后才接入,那么请补充沪深股市分笔成交以后,刷新扩展统计数据

PERCENTILE

释义返回区域中数值的第 K 个百分点的值。可以使用此函数来建立接受阈值。例如,可以确定得分排名在第 90 个百分点之上的检测侯选人。
用法PERCENTILE(ARRAY,N,K)
ARRAY 为定义相对位置的数组或数据区域。N 数组的数据周期数据量
K 0 到 1 之间的百分点值,包含 0 和 1。
说明
如果 ARRAY 为空或其数据点超过 8,191 个,函数 PERCENTILE 返回错误值#NUM!。
如果 K 为非数字型,函数 PERCENTILE 返回错误值 #VALUE!。
如果 K < 0 或 K > 1,函数 PERCENTILE 返回错误值 #NUM!。
如果 K 不是 1/(N-1) 的倍数,函数 PERCENTILE 使用插值法来确定第 K 个百分点的值。
示例若 ARRAY={1,3,2,4},N=4,K=0.3,上面列表中的数据在第 30 个百分点的值(1.9)

PERCENTRANK

释义返回特定数值在一个数据集中的百分比排位。此函数可用于查看特定数据在数据集中所处的位置。例如,可以使用函数 PERCENTRANK 计算某个特定的能力测试得分在所有的能力测试得分中的位置。
用法PERCENTRANK(ARRAY,N,X,SIGNIFICANCE)
ARRAY 为定义相对位置的数组或数字区域。N 为数组的周期数量大小;X 为数组中需要得到其排位的值,SIGNIFICANCE 表示返回的百分数值的有效位数。说明 :如果数组为空,函数 PERCENTRANK 返回错误值 #NUM!。 如果 SIGNIFICANE <
1,函数 PERCENTRANK 返回错误值 #NUM!。如果数组里没有与 X 相匹配的值,函数PERCENTRANK 将进行插值以返回正确的百分比排位。
示例ARRAY={13,12,11,8,4,3,2,1,1,1},N=10,X=2,SIGNIFICANCE=3,2 在上面数据列表中的百分比排位(0.333),因为该数据集中小于 2 的值有 3 个,而大于 2 的值有 6 个,因此为 3/(3+6)=0.333)

PERMUT

释义返回从给定数目的对象集合中选取的若干对象的排列数。排列为有内部顺序的对象或事件的任意集合或子集。排列与组合不同,组合的内部顺序无意义。此函数可用于彩票抽奖的概率计算
用法PERMUT(A,B),A 表示对象个数的整数,B 表示每个排列中对象个数的整数
示例PERMUT(100,3);//在上述条件下所有可能的排列数量(970200)

POISSON

释义返回泊松分布。泊松分布通常用于预测一段时间内事件发生的次数,比如一分钟内通过收费站的轿车的数量。
用法POISSON(X,B,F),X 事件数,B 期望值,F 为一逻辑值,确定所返回的概率分布形式。如果 F 为 TRUE,函数 POISSON 返回泊松累积分布概率,即,随机事件发生的次数在 0 到 x 之间(包含 0 和 1);如果为 FALSE,则返回泊松概率密度函数,即,随机事件发生的次数恰好为 x。
示例POISSON(0.2,10,TRUE);//返回泊松累积分布概率
POISSON(0.2,10,FALSE);//返回泊松概率密度函数

QUARTILE

释义返回数据集的四分位数。四分位数通常用于在销售额和测量数据中对总体进行分组。例如,可以使用函数 QUARTILE 求得总体中前 25% 的收入值
用法QUARTILE(ARRAY,N,QUART)
ARRAY 为需要求得四分位数值的数组或数字型单元格区域。
N 为数组数据周期数量
QUART 决定返回哪一个四分位值。
说明
如果数组为空,函数 QUARTILE 返回错误值 #NUM!。
如果 QUART 不为整数,将被截尾取整。
如果 QUART < 0 或 QUART > 4,函数 QUARTILE 返回错误值 #NUM!。
当 QUART 分别等于 0、2 和 4 时,函数 MIN、MEDIAN 和 MAX 返回的值与函数 QUARTILE 返回的值相同。
示例ARRAY={1,2,4,7,8,9,10,12},N=8,QUART=1,上述数据的第一个四分位数(第 25个百分点值)(3.5)

FORCAST2

释义曲线回归预测值
用法FORCAST2(X,N)为 X 的 N 周期曲线(方程:y=axx+b*x+c)回归预测值
示例FORCAST2(CLOSE,10);//表示求 10 周期收盘价曲线回归预测本周期的值

RSQ

释义返回根据 known_y's 和 known_x's 中数据点计算得出的 Pearson 乘积矩相关系数的平方。有关详细信息,请参阅函数 REARSON。R 平方值可以解释为 y 方差与 x 方差的比例
用法RSQ(A,B,N),计算 A,B 序列的 N 周期乘积矩相关系数的平方
示例RSQ(L,H,10);//表示最低价与最高价的 10 周期乘积矩相关系数的平方

SKEW

释义返回分布的偏斜度。偏斜度反映以平均值为中心的分布的不对称程度。正偏斜度表示不对称部分的分布更趋向正值。负偏斜度表示不对称部分的分布更趋向负值。
用法SKEW(X,N),表示求X在N个周期的分布的偏斜度
示例SKEW(close,10);//求收盘价在10个周期的分布的偏斜度

SLOPE

释义线性回归斜率
用法SLOPE(X,N)为 X 的 N 周期线性回归线的斜率
示例SLOPE(CLOSE,10);//表示求 10 周期线性回归线的斜率

SMALL

释义返回数据集中第 K 个最小值。使用此函数可以返回数据集中特定位置上的数值。
用法SMALL(ARRAY,N,K)
ARRAY 为需要找到第 K 个最小值的数组或数字型数据区域。
N 为数组周期数量。
K 为返回的数据在数组或数据区域里的位置(从小到大)。
说明
如果 ARRAY 为空,函数 SMALL 返回错误值 #NUM!。
如果 K ≤ 0 或 K 超过了数据点个数,函数 SMALL 返回错误值 #NUM!。
如果 N 为数组中的数据点个数,则 SMALL(ARRAY,1) 等于最小值,SMALL(ARRAY,N) 等于最大值。
示例SMALL(C,10,2);//返回收盘价的 10 周期内第 2 个最小值

STANDARDIZE

释义返回正态化数值
用法STANDARDIZE(A,B,S),A 为需要进行正态化的数值,B 分布的算术平均值,S 为分布的标准偏差,返回以 B 为平均值,以 S 为标准偏差的分布的正态化数值.
示例STANDARDIZE(42,40,1.5);//符合上述条件的 42 的正态化数值(1.333333)

STD

释义估算标准差
用法STD(X,N)为 X 的 N 日估算标准差
示例STD(close,10);//为收盘价的10日估算标准差

STDP

释义总体标准差
用法STDP(X,N)为 X 的 N 日总体标准差
示例STDP(close,10);//计算close 的 10 日总体标准差

STEYX

释义返回通过线性回归法计算每个 x 的 y 预测值时所产生的标准误差。标准误差用来度量根据单个 x 变量计算出的 y 预测值的误差量。
用法STEYX(Y,X,N),计算 Y,X 序列变量的线性回归法预测标准误差.
示例STEYX(L,H,10);//表示最低价与最高价的 10 周期线性回归法预测标准误差

TRIMMEAN

释义返回数据集的内部平均值。函数 TRIMMEAN 先从数据集的头部和尾部除去一定百分比的数据点,然后再求平均值。当希望在分析中剔除一部分数据的计算时,可以使用此函数。
用法TRIMMEAN(ARRAY,N,PERCENT)
ARRAY 为需要进行整理并求平均值的数组或数值区域。
N 为数组数据周期数量
PERCENT 为计算时所要除去的数据点的比例,例如,如果 PERCENT = 0.2,在 20 个数据点的集合中,就要除去 4 个数据点(20 X 0.2):头部除去 2 个,尾部除去 2 个。
说明
如果 PERCENT < 0 或 PERCENT > 1,函数 TRIMMEAN 返回错误值 #NUM!。
函数 TRIMMEAN 将除去的数据点数目向下舍入为最接近的 2 的倍数。如果PERCENT = 0.1,30 个数据点的 10% 等于 3 个数据点。函数 TRIMMEAN 将对称地在数据集的头部和尾部各除去一个数据。
示例TRIMMEAN(C,20,0.2);//从计算中除去 20%的 20 周期收盘价内部平均值

VAR

释义估算样本方差
用法VAR(X,N)为 X 的 N 日估算样本方差.
示例VAR(close,10);//计算收盘价的10日估算样本方差

VARP

释义总体样本方差
用法VARP(X,N)为 X 的 N 日总体样本方差
示例VARP(close,10);//计算收盘价的10日总体样本方差

WEIBULL

释义返回韦伯分布。使用此函数可以进行可靠性分析,比如计算设备的平均故障时间
用法WEIBULL(A,B,D,F),A 为参数值,B 为分布参数,D 为分布参数,F 为指明函数的形式,TRUE 为韦伯累积分布,FALSE 为韦伯概率密度

AVEDEV

释义平均绝对偏差
用法AVEDEV(X,N)
示例AVEDEV(close,10);//计算收盘价的 10 日平均绝对偏差

DELIVERYINTERVAL

释义取当前品种在当前 K 线上,距离最近交割日的交易日数
用法DELIVERYINTERVAL()
示例DELIVERYINTERVAL();//主图为股指期货,返回5表示距离交割日还有5个交易日

时间函数

BARSTATUS

释义函数返回数据位置状态
用法1 表示第 1 根 K 线,2 表示最后 1 根 K 线,0 表示中间的 K 线
示例BARSTATUS();

BARPOS

释义第一个有效数据到当前的周期数
用法BARPOS(X);x:变量名
示例BARSCOUNT(MA(C,60));//返回第一个MA60有效值到当前的周期数。(即k线图第60根k线位置开始)

CURRENTDATE

释义计算时的当前日期
用法CURRENTDATE 函数返回计算时的日期,有效值范围为(101-1991231),表示1900/01/01-2099/12/31
注意:该函数返回常数
示例CURRENTDATE;//返回当前日期

CURRENTTIME

释义计算当前计算机时间
用法CURRENTTIME
函数返回计算时的时间(时分秒),有效值范围为(000000-235959)
注意:该函数返回常数
示例CURRENTTIME;//返回当前时间

DATE

释义取得该周期年月日的数值
用法DATE()
函数返回有效值范围为(19000101-20991231),表示 19000101-20991231
示例DATE();//返回当前周期年月日

DATEDIFF

释义取得日期之间的时间间隔天数
用法DATEDIFF(DATE1,DATE2)
DATE1,DATE2 为序列变量或常数,格式与 DATE 同,有效值范围为(101-1991231),
表示 19000101-20991231 返回 DATE1、DATE2 两个日期之间的相差的天数,如果 DATE1 晚于 DATE2,则 DATEDIFF 函数返回负数
示例DATEDIFF(LSOLARTERMDATE(1),DATE);//表示求当年小寒到当前周期相差的天数

DATEPOS

释义取指定日期的数据序号
用法DATEPOS(DATE),DATE 日期格式为一字符串格式,比如是标准日期时间格式,并只能是常数
示例DATEPOS('2012-04-17 10:38:00');//求 2012-04-17 10:38:00 日期时间的数据对应图表上数据的序号

DAY

释义取得该周期的日期
用法DAY()
函数返回有效值范围为(1-31)
示例DATE();//返回10表示该周期为10号

DAYOFWEEK

释义取得指定日期的星期数
用法DAYOFWEEK(D),D 为指定的日期
函数返回有效值范围为(0-6)
示例DAYOFWEEK(DATE);//表示当前周期是星期几

DAYS1970

释义取得该周期从 1970 以来的天数。
返回自从 1970 年 1 月 1 日以来的天数,例如在 1971 年 1 月 1 日返回 365。
用法DAYS1970
示例aa:DAYS1970;//当前周期位置距离1970年的天数

HOUR

释义取得该周期的小时数。
用法HOUR()
函数返回有效值范围为(0-23),对于日线及更长周期此函数无效
示例HOUR();//返回15表示该周期在下午3点

MINUTE

释义取得该周期的分钟数
用法MINUTE()
函数返回有效值范围为(0-59),对于日线及更长周期此函数无效
示例MINUTE();//返回15表示该周期在15分钟

MONTH

释义取得该周期的月份
用法MONTH()
函数返回有效值范围为(1-12)
示例MONTH();//返回8表示该周期在8月份

OPENMINUTES

释义取得该周期的月份
用法OPENMINUTES(TIME)
返回已开盘分钟数(0-总开盘分钟数),开盘前的都为 1,收盘后都为总开盘分钟数
示例OPENMINUTES(CURRENTTIME);//在日线上可得到现在已开盘分钟数
OPENMINUTES(TIME);//在分钟线上可得到当时已开盘分钟数

T0TOTIME

释义取得从 0 点开始 X 秒后的时间值
用法T0TOTIME(X)

TIME

释义取得该周期的时分秒
用法TIME()
函数返回有效值范围为(000000-235959),对于日线及更长周期此函数无效.
该函数返回序列变量
示例TIME();//返回145000表示该周期在14点50分

TIME0

释义取得该周期从当日 0 点以来的秒数。
返回自从当日 0 点以来的秒数,对于日线以上的分析周期返回 0
用法TIME0
示例TIME0;//返回2000表示该周期在0点以来有2000秒

TIMETOT0

释义取得时间 X 距离当日 0 点的秒数
用法TIMETOT0(X);X需指定时间
示例TIMETOT0(140000);//返回14点距离当日0点以来的秒数

WEEKDAY

释义取得该周期的星期数
用法WEEKDAY()
函数返回有效值范围为(0-6)
示例WEEKDAY();//返回2表示该周期为星期二

YEAR

释义取得该周期的年份
用法YEAR()
函数返回有效值范围为(1900-2099)
示例YEAR();//返回2022表示该周期为2022年

数学函数

ABS

释义求绝对值
用法ABS(X)返回 X 的绝对值
示例ABS(-34)返回 34

ACOS

释义反余弦值
用法ACOS(X)返回 X 的反余弦值
示例Acos(-1);//返回3.1415926

ASIN

释义反正弦值
用法ASIN(X)返回 X 的反正弦值
示例ASIN(1);//求1的反正弦值

ATAN

释义反正切值
用法ATAN(X)返回 X 的反正切值
示例ATAN(15.5);//求15.5的反正切值

CEILING

释义向数值增大方向舍入
用法CEILING(A)返回沿 A 数值增大方向最接近的整数
示例CEILING(12.3);//求得 13
CEILING(-3.5);//求得-3

COMBIN

释义计算从给定数目的对象集合中提取若干对象的组合数。利用函数 COMBIN 可以确定一组对象所有可能的组合数。
用法COMBIN(A,B),A 为对象的总数量,B 为每一组合中对象的数量
示例COMBIN(8,2);//从八个候选人中提取两个候选人的组合数(28)

COS

释义余弦值
用法COS(X)返回 X 的余弦值
示例COS(-1.87);//返回0.294759

EXP

释义指数
用法EXP(X)为 E 的 X 次幂
示例EXP(CLOSE);//返回 E 的 CLOSE 次幂

FLOOR

释义向数值减小方向舍入
用法FLOOR(A)返回沿 A 数值减小方向最接近的整数
示例FLOOR(12.3);//求得 12,FLOOR(-3.5)求得-4

FRACPART

释义取得数据的小数部分
用法FRACPART(X)返回数值的小数部分
示例FRACPART(12.3);//求得 0.3,FRACPART(-3.5)求得-0.5

INTPART

释义绝对值减小取整,即取得数据的整数部分
用法INTPART(A)返回沿 A 绝对值减小方向最接近的整数
示例INTPART(12.3);//求得 12,INTPART(-3.5)求得-3

LN

释义求自然对数
用法LN(X)以 E 为底的对数
示例LN(CLOSE);//求收盘价的对数

LOG

释义求以 10 为底的对数
用法LOG(X)取得 X 的对数
示例LOG(100);//等于 2

MAX

释义求最大值
用法MAX(A,B)返回 A 和 B 中的较大值
示例MAX(CLOSE-OPEN,0);//表示若收盘价大于开盘价返回它们的差值,否则返回 0

MIN

释义求最小值
用法MIN(A,B)返回 A 和 B 中的较小值
示例MIN(CLOSE,OPEN);//返回开盘价和收盘价中的较小值

MOD

释义求模运算
用法MOD(A,B)返回 A 对 B 求模
示例MOD(26,10);//返回 6

POW

释义乘幂
用法POW(A,B)返回 A 的 B 次幂
示例POW(CLOSE,3);//求得收盘价的 3 次方

RAND

释义随机整数
用法RAND(N)
返回一个范围在 1-N 的随机整数
示例CLOSE*(RAND(10)/10+0.4);
输出收盘价乘以[0.5-1.4]的随机系数

REVERSE

释义求相反数
用法REVERSE(X)返回-X
示例REVERSE(CLOSE);//返回-CLOSE

ROUND

释义四舍五入为整数,显示时不带小数
用法ROUND(X)将 X 四舍五入为整数
示例ROUND(3.3);//求得 3
ROUND(3.5);//求得 4
ROUND(-3.5);//求得-4

ROUNDS

释义四舍五入整理小数到指定位数
用法ROUNDS(A,B) 表示整理数字 A 的小数点位数到 B。该函数可用以做浮点数的精确相等判断
示例ROUNDS(12.345,2);//将返回 12.35

SGN

释义求符号值
用法SGN(X),当 X>0,X=0,X<0 分别返回 1,0,-1

SIN

释义正弦值
用法SIN(X)返回 X 的正弦值

SQRT

释义开平方
用法SQRT(X)为 X 的平方根
示例SQRT(CLOSE);//收盘价的平方根

TAN

释义正切值
用法TAN(X)返回 X 的正切值

行情函数

CLOSE

释义取得该周期收盘价
用法CLOSE

C

释义取得该周期收盘价,与 CLOSE 等价
用法c

HIGH

释义取得该周期最高价
用法HIGH

H

释义取得该周期最高价,与 HIGH 等价
用法H

LOW

释义取得该周期最低价
用法LOW

L

释义取得该周期最低价
用法LOW

AMOUNT

释义取得该周期原始成交额
用法AMOUNT
示例AMOUNT;//返回当前k线位置的成交额

OAMOUNT

释义取得该周期原始成交额(未复权)
用法OAMOUNT

OCLOSE

释义取得该周期原始收盘价(未复权)
用法OCLOSE

OHIGH

释义取得该周期原始最高价(未复权)
用法OHIGH

OLOW

释义取得该周期原始最低价(未复权)
用法OLOW

OOPEN

释义取得该周期原始开盘价(未复权)
用法OOPEN

OPEN

释义取得该周期开盘价
用法OPEN

O

释义取得该周期开盘价,与开盘价等价
用法O

OVOL

释义取得该周期原始成交量(未复权)
用法OVOL

VOL

释义取得该周期成交量
用法VOL

V

释义取得该周期成交量,与 VOL 等价。
用法V

OPENA

释义取得该周期开盘成交额
用法OPENA

OPENV

释义取得该周期开盘成交量
用法OPENV

OPENINT

释义取得该周期持仓量
用法OPENINT

ASKPRICE

释义取得该周期的委卖价
用法ASKPRICE,个股品种在分笔周期上有效
示例MA(ASKPRICE,10);//获取10笔周期范围的平均委卖价

BIDPRICE

释义取得该周期的委买价
用法BIDPRICE,个股品种在分笔周期上有效
示例MA(BIDPRICE,10);//获取10笔周期范围的平均委买价

ASKVOL

释义取得该周期的委卖量
用法ASKVOL,个股品种在分笔周期上有效
示例MA(ASKVOL,10);//获取10笔周期范围的平均委卖量

BIDVOL

释义取得该周期的委买量
用法BIDVOL,个股品种在分笔周期上有效
示例MA(BIDVOL,10);//获取10笔周期范围的平均委买量

INDEXA

释义取得同期大盘的成交额
用法INDEXA

INDEXC

释义取得同期大盘的收盘价
用法INDEXC

INDEXH

释义取得同期大盘的最高价
用法INDEXH

INDEXL

释义取得同期大盘的最低价
用法INDEXL

INDEXO

释义取得同期大盘的开盘价
用法INDEXO

INDEXV

释义取得同期大盘的成交量
用法INDEXV

IOPV

释义取得ETF的基金份额参考净值
用法IOPV,该函数仅对ETF基金产品合约有效

BVOL

释义取得外盘成交量
用法BVOL;//取当日外盘成交量

SVOL

释义取得内盘成交量
用法SVOL;//取当日内盘成交量

CAPITAL

释义流通盘大小
用法CAPITAL()
示例CAPITAL();//返回当前主图代码的流通盘,单位为手,主图为指数返回0

SUSPEND

释义是否停牌
用法SUSPEND(),无参数时默认返回后一个交易日是否停牌,参数为-1 返回前一个交易日是否停牌,参数为日期返回指定日期是否停牌
返回值为 1 时,为停牌,为 0 时为非停牌
示例SUSPEND(20220906);//返回2022年9月6日是否停牌

扩展数据

EXTDATA

释义获取指定周期的扩展数据
用法EXTDATA(NAME, STOCK, TIME)
其中 NAME 是扩展数据的名字, STOCK 表示品种,TIME 表示相对当前周期的偏移值,0 表示当前周期
示例X:= EXTDATA('ZZZ', 'SZ600000', 0);//则 X 表示 600000在当前周期对应的扩展数据ZZZ中的值,股票市场须用大写字母

EXTDATARANGE

释义获取扩展数据中满足指定条件的股票列表
用法EXTDATARANGE(NAME, TIME, CONDITION)
NAME 表示扩展数据的名字,TIME 表示相对当前周期的偏移值,0 表示当前周期,CONDITION 为条件字符串
示例LIST := EXTDATARANGE('ZZZ', 0, 'ZZZ == 10');// 则 LIST为当前周期,ZZZ 的值等于 10 的股票代码的集合

EXTDATAMATCH

释义判断该周期当前品种的扩展数据是否满足指定条件
用法EXTDATAMATCH(NAME, TIME, CONDITION)
表示当前品种在名为 NAME 的扩展数据中的 TIME 周期的值是否满足 CONDITION条件
示例X:=EXTDATARANGE('ZZZ',0,'ZZZ==10');//则X表示当前品种当前周期ZZZ的值是否等于10,若等于10,则X=1,否则X=0

EXTDATARANK

释义判断当前品种的扩展数据在所有品种中的排名,按扩展数据值从大到小排
用法EXTDATARANK(NAME, TIME)
表示当前品种在名为 NAME 的扩展数据中的 TIME 周期的值在所有品种中的排名
示例X:=EXTDATARANK('ZZZ',0,'SZ000001') ;//表示当前品种('SZ000001')当前周期 ZZZ 的值在 ZZZ 对应的股票集合中的排名

EXTDATABIGGER

释义返回扩展数据中比某个值大的股票数
用法EXTDATABIGGER(NAME, TIME, VALUE)
表示当前品种在名为 NAME 的扩展数据中的 TIME 周期的值在所有品种中的排名
示例X := EXTDATABIGGER('ZZZ',0, 10);// 表示扩展数据当前周期 ZZZ 的值比 10 大的数的个数

EXTRANKTOVALUE

释义返回扩展数据中排名为某一位置对应的数值
用法EXTRANKTOVALUE(NAME, TIME, RANK)
表示当前品种在名为 NAME 的扩展数据中的 TIME 周期排名为 RANK 的对应数值
示例X := EXTRANKTOVALUE('ZZZ', 0,10);// 表示扩展数据 ZZZ当前周期排名为 10 的股票对应的值

组合模型

SETGROUPMAXHOLDING

释义设置组合模型的最大持仓
用法SETGROUPMAXHOLDING(50)表示最多同时持有 50 支股票的仓位

SETGROUPMODE

释义组合模型运行模式
用法SETGROUPMODE(MODE)
MODE 的取值为0或1,0 表示纯脚本运行的模型,1 表示在 C++中控制买卖逻辑的运行方式,默认为 0

GETSTOCKINFO

释义获取个股的买卖点信息
用法STOCKINFO := GETSTOCKINFO(STOCK,1); 表示取股票代码为 STOCK 的股票下一周期的买卖点信息,STOCK 为股票名称,1 为周期偏移量(取当前为 0,向前取为负数,向后取为正数)
返回值是一个结构体,该结构体有三个属性:BUY, SELL, PRICE;
STOCKINFO.BUY > 0 表示该周期出现了买点
STOCKINFO.SELL > 0 表示该周期出现了卖点
STOCKINFO.PRICE 表示该周期该个股的收盘价,可以用于计算买入价和卖出价
STOCKINFO.HOLDING 表示该周期该个股的持仓,可用于判断买卖点
STOCKINFO.SUSPEND 表示该周期该个股是否停盘,STOCKINFO.SUSPEND=1 表示停盘,STOCKINFO.SUSPEND=0 表示未停盘

GETSTOCKINFOBYINDEX

释义获取个股的买卖点信息
用法用法和 GETSTOCKINFO 一样
示例GETSTOCKINFOBYINDEX(STOCKID,0);//表示取股票代码为 STOCKID 的股票的当前周期的买卖点信息

ISSTOCKINHOLDING

释义查询当前股票是否有持仓
用法ISSTOCKINHOLDING(STOCK);表示股票代码为 STOCK 的股票是否在当前的持仓组合中。TRUE 表示在,FALSE 表示不在
示例ISSTOCKINHOLDING('SZ000001')表示当前持仓中是否有平安银行

ISSTOCKINHOLDINGBYINDEX

释义查询当前股票是否有持仓
用法用法和 ISSTOCKINHOLDING 一样
示例ISSTOCKINHOLDING(STOCKID);// 表示股票代码为 STOCKID 的股票是否在当前的持仓组合中。TRUE 表示在,FALSE 表示不在。

GETHOLDINGINFO

释义获取个股的持仓信息
示例HOLDING = GETHOLDINGINFO(STOCK);//表示获取当前持仓中,STOCK 所对应的股票的持仓信息,返回值是一个结构体,该结构体有五个属性:HOLDING, BUYPRICE,BUYDATE, PROFIT, PRICE, HOLDINGPERIODS;
HOLDING.HOLDING 表示持仓手数
HOLDING.BUYPRICE 表示买入价格
HOLDING.BUYDATE 表示买入的时间点
HOLDING.PROFIT 表示从买入到当前的利润
HOLDING.PRICE 表示当前周期的收盘价
HOLDING.HOLDINGPERIODS 表示从买入到当前周期的周期数

GETHOLDINGINFOBYINDEX

释义获取个股的持仓信息
用法用法和 GETHOLDINGINFO 一样
示例HOLDING = GETHOLDINGINFOBYINDEX(STOCKID);//表示获取当前持仓中,STOCK所对应的股票的持仓信息

GROUPBUY

释义组合模型买入
示例GROUPBUY(STOCK);//表示在组合模型中买入股票 STOCK,该操作会将该股票记入组合模型的持仓中,并将股票加入该周期的买入面板中

GROUPBUYBYINDEX

释义组合模型买入
用法用法和 GROUPBUY 一样
示例GROUPBUYINDEX(STOCK);//表示在组合模型中买入股票 STOCK

GROUPSELL

释义组合模型卖出
用法GROUPSELL(STOCK)表示在组合模型中卖出股票 STOCK,该操作会从组合模型的持仓中删除该股票,并将股票加入该周期的卖出面板中。
GROUPSELL 返回一个 BOOL 变量,表示卖出是否成功,比如在股票停牌时,是无法卖出的

GROUPSELLBYINDEX

释义组合模型卖出
用法用法和 GROUPSELL 一样
示例GROUPSELLBYINDEX(STOCKID);//表示在组合模型中卖出股票 STOCKID

GROUPPOSSIBLEBUY

释义组合模型计算买入备选
用法GROUPPOSSIBLEBUY(STOCKID)表示将 STOCKID 加入组合模型该周期中的买入备选面板中,每周期买入的股票是买入备选股票集的一个子集

GROUPPOSSIBLEBUYBYINDEX

释义组合模型计算买入备选
用法用法和 GROUPPOSSIBLEBUY 一样
示例GROUPPOSSIBLEBUYBYINDEX(STOCKID);//表示将STOCKID 加入组合模型该周期中的买入备选面板中

GROUPPOSSIBLESELL

释义组合模型计算卖出备选
用法GROUPPOSSIBLESELL(STOCK)表示将STOCK 加入组合模型该周期中的卖出备选面板中,每周期卖出的股票是卖出备选股票集的一个子集

GROUPPOSSIBLESELLBYINDEX

释义组合模型计算卖出备选
用法用法和 GROUPPOSSIBLESELL 一样
示例GROUPPOSSIBLESELLBYINDEX(STOCKID);//表示将 STOCKID 加入组合模型该周期中的卖出备选面板中

INDYNAMICBASKET

释义是否在动态股票篮子中
用法INDYNAMICBASKET(STOCKID)表示 STOCKID 是否在动态股票篮子中,TRUE 表示在,FALSE 表示不在。

SETGROUPINDEX

释义当组合模型的运行模式为 C++模式时,设置这个参数,可以在买入备选中的股票数大于可能的最大持仓时,将买入备选中的股票根据扩展数据的排名排序,并买入排名靠前的股票。
用法组合模型中有下面的代码时
SETGROUPMAXHOLDING(50);
SETGROUPMODE(1);
SETGROUPINDEX('RISE');
则当某个周期持仓中已经有了 40 支股票,并且还有 30 支股票出现了买点时,组合模型会根据 RISE 中的排名信息,将买入备选中的 30 支股票进行排序,并买入排名靠前的 10 支股票

GETHOLDINGPROFIT

释义获取组合模型当前周期持仓的浮动赢亏
用法X := GETHOLDINGPROFIT(); 则 X 表示当前周期组合模型持仓的浮动赢亏

组合模型交易函数

ORDER

释义通过网络端口向指定的接口单发送交易信号
用法ORDER 的语法格式为 ORDER(OPERATION, CHANNEL, ADDR);
OPERATION 表示交易的类型,CHANNEL 为指定的接口单通道号,ADDR 为可选参数,不填表示使用系统默认的地址连接迅投量化投研平台,可以指定多个迅投量化投研平台中的接口单地址,多个地址间用逗号隔开
示例ORDER(3, 1, '192.168.1.128:5000, 192.168.1.129:5000'); 表示向192.168.1.128, 192.168.1.129 这两台机器上的 1 号接口单发送开空信号

PASSORDER

释义通过函数交易发送交易信号
用法PASSORDER 的语法格式为 PASSORDER(OPTYPE, ORDERTYPE , ACCOUNTID,ORDERCODE, PRTYPE, PRICE, VOLUME[,strategyName])
数据类型:OPTYPE,ORDERTYPE,PRTYPE,PRICE,VOLUME 是数字类型;ACCOUNTID,ORDERCODE 是字符串类型
(1)最少填七个参数
(2)其中[strategyName] 自定义策略名不是必填
(3)OPTYPE(操作类型):
OPTYPE 参数内容说明
期货六键:
0/开多
1/平昨多
2/平今多
3/开空
4/平昨空
5/平今空
期货四键:
6/平多,优先平今
7/平多,优先平昨
8/平空,优先平今
9/平空,优先平昨
期货两键:
10/卖出,如有多仓,优先平仓,优先平今,如有余量,再开空
11/卖出,如有多仓,优先平仓,优先平昨,如有余量,再开空
12/买入,如有空仓,优先平仓,优先平今,如有余量,再开多
13/买入,如有空仓,优先平仓,优先平昨,如有余量,再开多
14/买入,不优先平仓
15/卖出,不优先平仓
股票买卖:
23/股票买入
24/股票卖出
融资融券:
27/融资买入
28/融券卖出
29/买券还券
30/直接还券
31/卖券还款
32/直接还款
组合交易:
25/组合买入
26/组合卖出
37/卖出投资组合
40/期货组合开多
43/期货组合开空
46/期货组合平多,优先平今
47/期货组合平多,优先平昨
48/期货组合平空,优先平今
49/期货组合平空,优先平昨
(4)ORDERTYPE(下单类型):
参数详细说明
11:单股、单账号、普通 、默认 方式下单,兼容以前的 11 模式
1101:单股、单账号、普通、股/手 方式下单(同 11)
1102:单股、单账号、普通、金额(元)方式下单(该方式只支持股票下单)
1113:单股、单账号、总资产、比例(0~1)方式下单
1123:单股、单账号、可用、比例(0~1)方式下单
12:单股、账号组(无权重)、普通 、默认 方式下单,兼容以前的 12 模式
1201:单股、账号组(无权重)、普通、股/手 方式下单(同 12)
1202:单股、账号组(无权重)、普通、金额(元)方式下单(该方式只支持股票下单)
1213:单股、账号组(无权重)、总资产、比例(0~1)方式下单
1223:单股、账号组(无权重)、可用、比例(0~1)方式下单
21:组合、单账号、普通 、默认方式下单,兼容以前的 21 模式
2101:组合、单账号、普通、按组合股票数量 方式下单,对应 VOLUME 填篮子份数(同 21)
2102:组合、单账号、普通、按组合股票权重 方式下单,对应 VOLUME 填金额(元)
2103:组合、单账号、普通、按账号可用方式下单,对应VOLUME 填比例(0~1)(该方式只支持股票组合)
22:组合、账号组(无权重)、普通 、默认方式下单,兼容以前的 22 模式
2201:组合、账号组(无权重)、普通、按组合股票数量 方式下单,对应 VOLUME填篮子份数(同 22)
2202:组合、账号组(无权重)、普通、按组合股票权重 方式下单,对应 VOLUME填金额(元)
2203:组合、账号组(无权重)、普通、按账号可用方式下单,对应 VOLUME 填比例(0~1)(该方式只支持股票组合)
2331:组合、套利、合约价值自动套利、按组合股票数量 方式下单,对应VOLUME 填篮子份数
2332:组合、套利、按合约价值自动套利、按组合股票权重 方式下单,对应VOLUME 填金额(元)
2333:组合、套利、按合约价值自动套利、按账号可用方式下单,对应 VOLUME填比例(0~1)
组合套利对 ACCOUNTID 参数的约定:accountID :=
'stockAccountID,futureAccountID'
组合套利对 ORDERCODE 参数的约定:orderCode :='basketName,futureName'
对 PRICE 参数的约定为套利比例(0~1)
融资融券只支持 ORDERTYPE:11,1101,1102,12,1201,1202
(5) ACCOUNTID(账号 ID):下单的账号 ID 或 账号组名;组合套利时用逗号隔开股票账号和期货账号
(6) ORDERCODE(下单代码):
两种情况:单股或单期货、港股,则该参数填合约代码;组合交易,则该参数填篮子名称,组合套利时用逗号隔开篮子名称和期货合约名
(7) PRTYPE(下单选价类型):
4 卖 1 价,5 最新价,6 买 1 价,12 市价,13 挂单价,14 对手价,11(指定价)模型价
(8) PRICE(下单价格):当 PRTYPE 是模型价(指定价)11 时 PRICE 有效,其它情况下 PRICE 无效(注意:组合套利时该参数作套利比例)
(9) VOLUME:下单数量(股 OR 手)、组合份数、资金比例(0~1)
示例PASSORDER(23,1101,'6000000201','SH600000',5, -1, 100); 表示发送账号6000000201 以最新价买入 100 股 SH600000 的信号;
PASSORDER(25,2333,'6000000201,037429','stockbasket,IF1703',5, 1,0.5);表示以最新价买入账号 6000000201 的 50%的可用资金的一篮子股票stockbasket,并以 100%的套利比例在期货账号 037429 下开空单 IF1703

TACCOUNT

释义获取指定账号的可用资金
用法TACCOUNT(1, '37500001');
1 表示是期货账号,2 为普通股票账号,3 为信用账号,37500001 是账号 ID,返回可用资金;

HOLDING

释义得到当前帐户持仓量,多仓返回正数空仓返回负数
用法HOLDING(AccountID , MarketID, StockID, Direction);
AccountID, MarketID, StockID 为字符串;Direction 为整型(1 多,2 空)
示例例 1: ho:=holding('037055','IF','IF06',2); //IF06 做空持仓
例 2: ho:=holding('6000000255','SH','600000',1) //股票 600000 持仓

HOLDINGS

释义取某资金帐号对应的持仓
用法holdings(Account);表示获取帐号 Account 的持仓
示例统计某个账号所有品种做多方向的持仓
xxx := holdings('037055');
loh := 0;
for x in xxx do begin
if x.direction = 48 then
loh:= loh + x.volume;
end
longhold:loh;
xxx 为一个 positiondetail 结构体,含有如下项:
exchangeid 证券市场,交易所代码
exchangename 市场名字
productid 品种代码
productname 品种名称
instrumentid 证券代码,合约代码
instrumentname 证券名称,合约名称
hedgeflag 投保
direction 买卖
opendate 成交日期
tradeid 最初开仓位的成交
volume 持仓量 当前拥股
openprice 开仓价
tradingday 交易日
margin 使用的保证金 历史的直接用 ctp 的,新的自己用成本价存量系数算 股票不需要
opencost 开仓成本 等于股票的成本价第一次建仓的量,后续减持不影响,不算手续费 股票不需要
settlementprice /结算价 对于股票的当前价
closevolume 平仓量 等于股票已经卖掉的 股票不需要
closeamount 平仓额 等于股票每次卖出的量
卖出价合约乘数(股票为 1)的累加 股票不需要
dloatprofit 浮动盈亏 当前量
(当前价-开仓价)合约乘数(股票为 1)
closeprofit 平仓盈亏 平仓额 - 开仓价
平仓量*合约乘数(股票为 1)股票不需要
marketvalue 市值 合约价值
positioncost 持仓成本 股票不需要
positionprofit 持仓盈亏 股票不需要
lastsettlementprice 最新结算价 股票不需要
instrumentvalue 合约价值 股票不需要
istoday 是否今仓
xttag 迅投量化投研平台标签
stockholder 股东账号
frozenvolume 期货不用这个字段,冻结数量
canusevolume 期货不用这个字段,股票的可用数量
onroadvolume 期货不用这个字段,股票的在途数量
yesterdayvolume 期货不用这个字段,股票的股份余额
lastprice 结算价 对于股票的当前价
profitrate 持仓盈亏比例
futuretradetype 成交类型
expiredate 到期日,逆回购用
comtradeid 套利成交 Id
legid 组合 Id
totalcost 自定义累计成本 股票信用用到
singlecost 自定义单股成本 股票信用用到
coveredvolume 用于个股期权
sideflag 用于个股期权,标记 '0' - 权利,'1' - 义务,'2' - '备兑'
referencerate 汇率,目前用于港股通
structfundvol 分级基金可用(可分拆或可合并)
redemptionvolume 分级基金可赎回量

ORDERING(不生效)

释义返回当前委托数量
用法ordering(AccountID , MarketID, StockID, Direction, [strategyName]);
AccountID, MarketID, StockID 为字符串;Direction 为整型(1 buy,2sell),strategyName 自义定策略名,为字符串
示例例 1: ho:=ordering('037055','IF','IF06',2);
例 2: ho:=ordering('6000000255','SZ','000001',1)
例 3: ho:=ordering('6000000255','SZ','000001',1, '策略 1')

ORDERINGS

释义取某资金账号对应的委托信息
用法orderings(AccountID, [strategyName]);
示例统计某账号买入的所有的当天委托量
xxx := orderings('037055');
loo := 0;
for x in xxx do begin
if x.direction = 48 then
loo:= loo + x.volumetotaloriginal;
end
longorder:loo
xxx 为一个 orderdetail 结构体,含有如下项:
exchangeid 证券市场,交易所代码
exchangename 市场名字
productid 品种代码
productname 品种名称
instrumentid 证券代码,合约代码
instrumentname 证券名称,合约名称
sessionid
frontid 前端 id
orderref 下单引用 等于股票的内部委托号
orderpricetype 类型,例如市价单 限价单
direction 期货多空 股票买卖
offsetflag 期货开平,股票买卖其实就是开平
hedgeflag 投保
limitprice 限价单的限价,就是报价
volumetotaloriginal 最初委托量
ordersubmitstatus 提交状态
ordersysid 委托号
orderstatus 委托状态
volumetraded 已成交量
volumetotal 当前总委托量 股票不需要总委托量
errorid
errormsg 状态信息
taskid
frozenmargin 冻结保证金
frozencommission 冻结手续费
insertdate 日期
inserttime 时间
xttag 迅投量化投研平台标签
tradeprice 成交均价
cancelamount 已撤数量
optname 展示委托属性的中文
tradeamount 成交额 期货=均价合约乘数
entrusttype 委托类别
cancelinfo 废单原因
undercode 标的证券
covereflag 备兑标记 '0' - 非备兑,'1' - 备兑
orderpricermb 委托价格 人民币 用于港股通
tradeamountrmb 成交金额 人民币用于港股通
referencerate 参考汇率 用于港股通

DEAL

释义返回某个时间内的成交数量
用法deal(AccountID , MarketID, StockID, Direction,[strategyName]);
或 deal(AccountID , MarketID, StockID, Direction, Senconds,[strategyName]);
AccountID, MarketID, StockID 为字符串;Direction 为整型(1 多,2 空),Senconds 为整型,表示多少秒内;strategyName 自义定策略名,为字符串
示例例 1:de:=deal('037055','IF','IF06',2);//返回当天 IF06 的 sell 的成交数量

DEALS

释义返回资金账号的成交信息
用法deals(AccountID,[strategyName]);
示例返回某账号当天 buy 的成交量
xxx := deals('037055');
dea:= 0;
for x in xxx do begin
if x.direction = 48 then
dea:= dea + x.volume;
end
longdeal:dea
xxx 为一个 dealdetail 结构体,含有如下项:
exchangeid 证券市场,交易所代码
exchangename 市场名字
productid 品种代码
productname 品种名称
instrumentid 证券代码,合约代码
instrumentname 证券名称,合约名称
tradeid 成交编号
orderref 下单引用 等于股票的内部委托号
ordersysid 委托号
direction 买卖 股票不需要
offsetflag 开平 股票的买卖
hedgeflag 投保 股票不需要
price 成交均价
volume 成交量 期货单位手 股票做到股
tradedate 成交日期
tradetime 成交时间
comssion 手续费
tradeamount 成交额 期货=均价合约乘数
taskid
xttag 迅投量化投研平台标签
orderpricetype 类型,例如市价单 限价单
optname 展示委托属性的中文
entrusttype 委托类别
futuretradetype 成交类型
realoffsetflag 实际开平,主要是区分平今和平昨
coveredflag 备兑标记 '0' - 非备兑,'1' - 备兑
closetodayvolume 平今量, 不显示
orderpricermb 委托价格 人民币 用于港股通
pricermb 目前用于港股通
tradeamountrmb 目前用于港股通
referencerate 汇率,目前用于港股通
xttrade 是否是迅投量化投研平台交易

LOADBASKET(返回结果和定义不符)

释义读取导入指定定路径下的指定的交易篮子
用法loadbasket(dir,filename,iscover) {filename 格式支持:xls、csv}
iscover:遇到同名篮子操作: 0 取消导入, 1 覆盖, 2 合并
示例retv:=loadbasket('c:/test/','stockbasket.csv',1)//该路径下存在对应文件返回 0,否则返回-1

retv:=loadbasket('c:\test\','stockbasket.csv',1)//该路径下存在对应文件返回 0,否则返回-1

CANCEL

释义针对委托号进行撤单
用法CANCEL(AA)表示委托号为“AA”的委托

STOPPRICE

释义取个股,期货,期权涨停价,跌停价
用法stopprice(select)或 stopprice(select , market, stockCode);
其中 select 为整型(1 跌停价,2 涨停价),market, stockCode 为字符串.
示例例 1:dd:=stopprice(1);//返回当前股票的跌停价
例 2:dd:=stopprice(1,'IF','IF06',);//指定 IF06,返回 IF06 的跌停价

Contractmultiplier

释义函数返回期货合约的乘数
用法contractmultiplier('') //取当前图合约的乘数
contractmultiplier(contract)
contract 为合约代码,支持变量赋值
示例contract:='cu06';
contract:='cu06';

系统函数

PRINTOUT

释义把变量输出到文件
用法PRINTOUT(X,Y)
示例//模型名是“新建模型 1”
X : CLOSE;
Y : HIGH;
PRINTOUT(X,Y);//在安装目录的 BIN 子目录下生成名为:新建模型 1.OUT

ISEQUALV

释义判断两个数是否相等
用法ISEQUALV(X,Y)判断X和Y是否相等,相等返回 1,否则返回 0
示例ISEQUALV(2,2);//返回 1

ISGREATER

释义判断是否大于
用法ISGREATER(A,B),如果 A 大于 B 返回 1,否则返回 0
示例ISGREATER(5,4);//返回 1

ISGREATEREQUAL

释义判断是否大于等于
用法ISGREATEREQUAL(A,B),如果 A 大于等于 B 返回 1,否则返回 0
示例ISGREATEREQUAL(1,1);//返回 1

ISLESSEQUAL

释义判断是否小于等于
用法ISLESSEQUAL(A,B),如果 A 小于等于 B 返回 1,否则返回 0
示例ISLESSEQUAL(2,1);//返回 0

ISVALID

释义判断是否为有效数据
用法ISVALID(X)判断X是否是有效数据。有效数据时返回1,否则返回0
示例ISVALID(2/0);//返回 0

NOSORTED

释义对集合中的元素不进行排序,在不计算排名的情况下使用
示例NOSORTED($ZZZ);//表示对股票篮子 ZZZ 不排序

EXIST

释义判断是否存在下标中
用法EXIST(SELLMMM[], SELLRANK)
示例EXIST(SELLMMM[], SELLRANK);//如果 SELLMMM 下标存在 SELLRANK 返回 1,否则返回 0

HOLDINGORNOT

释义判断是否存在集合或数组中
用法HOLDINGORNOT(A[],B);//如果 A 中存在 B 返回 1,或者返回 0

TOHOLD

释义把股票加入到一个集合中
用法TOHOLD(POSITION,STOCKID);//表示把股票 STOCKID 加入到 POSITION 中

TOABANDON

释义把股票从集合中删除
用法TOABANDON(POSITION,STOCKID);//表示把股票 STOCKID 从 POSITION 中删除

SETDATAALIGNMODE

释义当模型引用了多个品种的数据时,该函数设置数据对齐的方式,该函数有 1 个参数,取值说明如下:
0:当前 K线所有品种的数据到齐后才开始计算
1:当前 K 线只要主图品种的数据到了后就开始计算
用法SETDATAALIGNMODE(1);//当前K线只要主图品种的数据到了后就开始计算

SENDMAIL

释义发送邮件,该函数有 7 个参数,取值说明如下:
SERVERNAME smtp 或 pop 服务器地址USERNAME
发 送 邮 箱 地 址
PASSWORD 发 送 邮 箱 登 陆 密 码
RECVNAME 接 收 者 姓 名
RECVADDR 接 收 者 邮 箱 地 址
SUBJECT 标题
CONTENT 内容
用法SENDMAIL('smtp.thinktrader.net','zhangsan@thinktrader.net','123456','lisi','lisi@thinktrader.net','say hello','Hello,lisi')

附加函数

CONST

释义取常数值
用法CONST(A)返回 A 的常数值

ISBUYORDER

释义取得该成交是否为主动性买单
用法ISBUYORDER()仅用于分笔图
示例ISBUYORDER();//当本笔成交为主动性买盘时,返回1,否则为0

ISSELLORDER

释义取得该成交是否为主动性卖单
用法ISSELLORDER()仅用于分笔图
示例ISSELLORDER();//当本笔成交为主动性卖盘时,返回1,否则为0

BUYVOL

释义主动性买单量
用法BUYVOL()仅用于分笔图,非主动性买单返回 0
示例BUYVOL();//当本笔成交为主动性买盘时,其数值等于成交量,否则为0

SELLVOL

释义主动性卖单量
用法SELLVOL()仅用于分笔图,非主动性卖单返回 0
示例SELLVOL();//当本笔成交为主动性卖盘时,其数值等于成交量,否则为0

UPNDAY

释义返回是否连涨周期数
用法UPNDAY(X,N)判断X是否连续N周期上涨
示例upclose:=UPNDAY(close,2);//判断是否收盘价连续两周期上涨
ma5:=MA(CLOSE,5);
UPma5:UPNDAY(ma5,5);//判断5日均线是否连续五周期上涨

DOWNNDAY

释义返回是否连跌周期数
用法DOWNNDAY(X,N)判断X是否连续N周期下跌
示例DOWNclose:=DOWNNDAY(close,2);//判断是否收盘价连续两周期下跌
ma5:=MA(CLOSE,5);
DOWNma5:DOWNNDAY(ma5,5);//判断5日均线是否连续五周期下跌

NDAY

释义判断是否多周期一直有某式成立
用法NDAY(X,N)判断在N个周期内X一直满足
示例NDAY(close>open,2);//判断是否连续两周期收盘价大于开盘价

BUYSELLVOLS

释义获取当前标的品种总买、总卖量
用法BUYSELLVOLS(MODE)MODE为0或1,0代表获取总卖,1代表获取总买。Level-2专用
示例BUYSELLVOLS(0);//获取当前标的品种总卖量
BUYSELLVOLS(1);//获取当前标的品种总买量

GETOPENDATE

释义获取当前标的品种总买、总卖量
用法GETOPENDATE(S)获取股票S上市日期,S为股票代码与交易所代码组合代码,如'SH600000',当S为空,取当前主界面显示的交易所及合约代码.,返回值为YYYYMMDD
示例GETOPENDATE('');//获取当前主图标的上市日期
BUYSELLVOLS('SH600000');//获取SH600000上市日期

GETOPENAMOUNT

释义获取当前主界面显示的合约代码集合竞价的成交额
用法GETOPENAMOUNT()
示例GETOPENAMOUNT();//获取主图标的集合竞价的成交额

GETOPENVOL

释义获取当前主界面显示的合约代码集合竞价的成交量(手)
用法GETOPENVOL()
示例GETOPENVOL();//获取主图标的集合竞价的成交量

TICKVOLDISTRIBUTION

释义返回固定时间范围内成交量分布中超过某个占比对应的最优 VOL
用法TICKVOLDISTRIBUTION(seconds,ratio,direction),seconds:秒数, ratio:总笔数占比(0~1],direction:0 all,1 buy,2 sell
示例TICKVOLDISTRIBUTION(120,0.4,1);//主动性买盘 120 秒内占总笔数 40%的最优vol值
上次更新:
邀请注册送VIP优惠券
分享下方的内容给好友、QQ群、微信群,好友注册您即可获得VIP优惠券
玩转qmt,上迅投qmt知识库