线型描述 | COLORBLACK | 黑色 | 设为黑色 例如: MA1:MA(CLOSE,5),COLORBLACK | |
| COLORBLUE | 蓝色 | 设为蓝色 例如: MA1:MA(CLOSE,5),COLORBLUE | |
| COLORBROWN | 棕色 | 设为棕色 例如: MA1:MA(CLOSE,5),COLORBROWN | |
| COLORCYAN | 青色 | 设为青色 例如: MA1:MA(CLOSE,5),COLORCYAN | |
| COLORGRAY | 灰色 | 设为灰色 例如: MA1:MA(CLOSE,5),COLORGRAY | |
| COLORGREEN | 绿色 | 设为绿色 例如:MA1:MA(CLOSE,5),COLORGREEN | |
| COLORMAGENTA | 晶红色 | 设为晶红色 例如: MA1:MA(CLOSE,5),COLORMAGENTA | |
| COLORRED | 红色 | 设为红色 例如: MA1:MA(CLOSE,5),COLORRED | |
| COLORWHITE | 白色 | 设为白色 例如: MA1:MA(CLOSE,5),COLORWHITE | |
| COLORYELLOW | 黄色 | 设为黄色 例如: MA1:MA(CLOSE,5),COLORYELLOW | |
| COLORSTICK | 颜色柱状线 | 以零轴为中心画彩色棒状线,零轴下为阴线颜色,零轴上为阳线颜色 例如: CLOSE-OPEN,COLORSTICK | |
| CIRCLEDOT | 小圆圈线 | 画小圆圈线 例如: CLOSE,CIRCLEDOT; | |
| NOAXIS | 无坐标 | 不影响坐标最高最低值 例如: C,NOAXIS; 输出收盘价,但不影响坐标最高最低值,用于叠加到其它指标上 | |
| LINETHICK | 指标线粗细 | 改变指标线粗细 例如: MA1:MA(CLOSE,5),LINETHICK3 | |
逻辑函数 | ALL | 一直存在 | 是否一直满足条件. 用法: ALL(X,N),统计N周期中是否一直都满足X条件,若N=0则从第一个有效值开始. 例如:ALL(CLOSE>OPEN,20)表示是否20周期内全部都收阳线. | |
| ANY | 是否存在 | 用法: ANY(X,N)返回N周期内是否存在满足条件X,N可为常数或变量,若N=0则从第一个有效值开始 例如: ANY(C>O,10)表示10个周期中存在阳线 | |
| BETWEEN | 介于 | 介于两个数之间. 用法: BETWEEN(A,B,C)表示A处于B和C之间时返回1,否则返回0 例如:BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间 | |
| 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)表示该周期收阳则返回最高值,否则返回最低值 | |
| IFF | 条件函数 | 用法同IF一样,条件判断. 用法: IFF(X,A,B)若X不为0则返回A,否则返回B 例如:IFF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值 | |
| IFELSE | 条件函数 | 条件判断. 用法: IFELSE(X,A,B)若X不为0则返回A,否则返回B 例如:IFELSE(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值 | |
| IFN | 条件函数 | 根据条件求不同的值. 用法: IFN(X,A,B)若X不为0则返回B,否则返回A 例如:IFN(CLOSE>OPEN,HIGH,LOW)表示该周期收阴则返回最高值,否则返回最低值 | |
| ISDOWN | 当日收阴 | 该周期是否收阴. 用法: ISDOWN() 当收盘<开盘时,返回值为1,否则为0 | |
| ISEQUAL | 当日收平 | 该周期是否平盘. 用法: ISEQUAL() 当收盘=开盘时,返回值为1,否则为0 | |
| ISLASTBAR | 是否最后周期 | 该周期是否为最后一个周期. 用法: ISLASTBAR 最后一个周期返回值为1,其余为0 | |
| ISUP | 当日收阳 | 该周期是否收阳. 用法: ISUP() 当收盘>开盘时,返回值为1,否则为0 | |
| LAST | 持续存在 | LAST(X,A,B)返回第前A周期到第前B周期是否一直满足条件X 若A为0,表示从第一天开始,B为0,表示到最后日止 例如: LAST(C>O,10,5)表示从第前10个周期到第前5个周期内一直是阳线 | |
| LONGCROSS | 维持-交叉函数 | 两条线维持一定周期后交叉. 用法: LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0 例如:LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5)表示5日均线维持5周期后与10日均线交金叉 | |
| 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日均线 | |
| VALID | 是否为有效数据 | 判断指定值是否是有效数据 用法: VALID(X),当X为有效数据时返回1,否则返回0 | |
| VALUEWHEN | 条件跟随 | 当条件COND满足时,取当时的DATA的值,否则取得VALUEWHEN的前一个值. 用法: VALUEWHEN(COND, DATA) 例:VALUEWHEN(HIGH>REF(HIGH,5),HIGH); 表示当前最高价大于前五个周期最高价的最大值时返回当前最高价 | |
动态行情 | dynainfo | 获取最新的盘口行情 | 释义: 获取最新的盘口行情 用法: dynainfo(type) 示例: dynainfo(7);//最新价 dynainfo(11);//均价 dynainfo(14);//涨幅 --- type:数据类型 可选范围: 3:昨收 4:今开 5:最高 6:最低 7:最新 8:总手 9:现手 10:总额 11:均价 12:涨跌 13:振幅 14:涨幅 15:委比 16:委差 17:量比 --- 60:买一价(委买价) 61:买二价 62:买三价 63:买四价 64:买五价 --- 70:卖一价(委卖价) 71:卖二价 72:卖三价 73:卖四价 74:卖五价 --- 80:买一量(委买量) 81:买二量 82:买三量 83:买四量 84:买五量 --- 90:卖一量(委卖量) 91:卖二量 92:卖三量 93:卖四量 94:卖五量 --- 100:证券状态 101:是否可交易(集合竞价或连续交易) 交易中返回1,否则为0 --- 旧的类型: 18:买一量(委买量) 19:卖一量(委卖量) 20:买一价(委买价) 21:卖一价(委卖价) 25:买一量(委买量) 26:买二量 27:买三量 28:买一价(委买价) 29:买二价 30:买三价 31:卖一量(委卖量) 32:卖二量 33:卖三量 34:卖一价(委卖价) 35:卖二价 36:卖三价 --- 证券状态数值范围: 10:未知状态 11:开盘前 12:集合竞价时段 13:连续交易 14:休市 15:闭市 16:波动性中断 17:临时停牌 18:收盘集合竞价 19:盘中集合竞价 20:暂停交易至闭市 21:获取字段异常 22:盘后固定价格行情 23:盘后固定价格行情完毕 | |
| orderdirection | 买卖方向 | 取得最新动态行情: 获取买卖方向(通过上一笔委托的成交量进行对比,如果减少量小于成交量的1.5倍 && 卖盘减少比例是买盘的6倍 &&(量500手或额50万),则判定为(涨)主买,返回1,即红色)。 | |
| markettime | 获取市场的最新时间 | 释义: 获取指定的市场的最新的时间 参数: market:市场代码(如"SH"),可选 返回: 市场最新时间 示例: 获取主图品种市场的最新时间 markettime; 获取指定市场的最新时间 markettime('SH'); | |
| blockrank | 获取指定品种在所在板块的实时排名 | 释义: 获取指定品种在所在板块的实时排名 返回0表示该字段值为板块内最小;1为最大 其他,如返回0.5表示字段值位于板块内正中的位置 参数: sectorname:板块名 stockcode:品种代码,填空的话默认使用主图品种 fieldID:参见DYNAINFO,例:14为按涨幅计算排名 返回: 指定品种在所在板块的实时排名 示例: 获取指定品种在所在板块的实时排名 blockrank('SW1银行','SZ000001',14); | |
| stockbyblockrank | 获取指定板块中指定排名比例的代码 | 释义: 获取指定板块中指定排名比例的代码 在板块中以指定字段排名,获取大于等于指定比例的最接近该比例的代码 用法: stockbyblockrank(sectorname,fieldID,rank); 参数: sectorname:板块名 fieldID:参见DYNAINFO,例:14为按涨幅计算排名 rank:板块内排名比例,值最小为0,最大为1 示例: 获取指定板块内涨幅最大的品种代码 stockbyblockrank('SW1银行',14,1); | |
| blocksum | 获取指定板块中的品种指定字段的汇总值 | 释义: 获取指定板块中的品种指定字段的汇总值 用法: blocksum(sectorname,fieldID); 参数: sectorname:板块名 fieldID:参见DYNAINFO,例:10为按总额汇总 示例: blocksum('SW1银行',10); | |
| blocksize | 获取指定板块的成分股个数 | 释义: 获取指定板块的成分股个数 参数: sectorname:板块名 返回: 指定板块的成分股个数 示例: blocksize('SW1银行'); | |
绘图函数 | BARSSET | 绘制标记 | 绘制标记. 用法:BARSSET(COND,PRICE,N,OFFSET), 当COND条件满足时,在PRICE位置绘制标记.N为所影响到的周期数.OFFSET为影响周期的偏移,0为以中心点前后影响,负数为往前影响,正数为向后影响. 该函数通常用在逻辑公式中. | |
| COLORRGB | RGB颜色值 | 将红,绿,蓝三基色混和成一个颜色值. 用法: 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线 | 在图形上绘制K线. 用法: KLINE(O,H,L,C,T) O,H,L,C分别为开高低收 T为绘制类型,0表示与主图K线画法相同,1表示不影响坐标高低值,可用于叠加在其它指标上 例如:KLINE(O,H,L,C,0) 又如:在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时才有效. | |
| DRAWICON | 画图标 | 在图形上绘制小图标. 用法: DRAWICON(COND,PRICE,TYPE[,ALIGN]),当COND条件满足时,在PRICE位置画TYPE号图标. ALIGN(可选参数)对齐方式 ,0图标中对齐;1图标上缘;2图标中缘;3图中;4图上;5图下 例如:DRAWICON(CLOSE>OPEN,LOW,1)表示当收阳时在最低价位置画1号图标. 绘制图标按照"符号”工具栏对应排列,如果要自定义绘制的图标, 请在"自定义”工具栏操作里将对应的图标修改即可. | |
| DRAWBMP | 画位图 | 在图形上绘制位图. 用法: DRAWBMP(COND,PRICE,BMPFILE[,ALIGN]),当COND条件满足时, 在PRICE位置画BMPFILE文件名指定的BMP位图 (初始路径与\DOCUMENT目录的文档 *.STK 文件放在一起). 例如:DRAWBMP(CLOSE>OPEN,LOW,'SUN') 表示当收阳时在最低价位置画SUN.BMP位图. ALIGN(可选参数)对齐方式 ,0图标中对齐;1图标上缘;2图标中缘;3图中;4图上;5图下 | |
| 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%时在最高价位置显示涨幅(相对开盘价的百分比). | |
| DRAWBAND | 画带状线 | 画出带状线. 用法: DRAWBAND(VAL1,COLOR1,VAL2,COLOR2), 当VAL1>VAL2时,在VAL1和VAL2之间填充COLOR1;当VAL1<VAL2时,填充COLOR2, 这里的颜色均使用COLORRGB函数计算得到. 例如:DRAWBAND(CLOSE,COLORRGB(255,0,0),OPEN,COLORRGB(0,255,0)) 表示当日收盘价大于开盘价时在两个价格直接填充红色.否则填充绿色. | |
| DRAWGBK_DIV | 填充部分背景 | 填充部分背景. 用法: DRAWGBK_DIV(COND,COLOR1,COLOR2,FILLMODE,FILLREGION), 填充满足COND条件的背景区域, 这里的颜色均使用COLORRGB函数计算得到. FILLMODE为填色方式: 0上下渐进;1左右渐进;2用COLOR1画框线;3用COLOR1画框线,用COLOR2填充. FILLREGION为填充范围: 0整个区域;1最高最低区;2开盘收盘区. 例如:DRAWGBK_DIV(CLOSE>OPEN,COLORRGB(255,0,0),COLORRGB(0,255,0),2,2) 表示当日收盘价大于开盘价时用红色在开盘收盘区画框线. | |
| DELTA | 嵌套叠加柱状图 | 绘制嵌套叠加柱状图 delta(totalnum, partnum, isfill, innercolor, outercolor); 其中totalnum为总量,partnum为部分值(需要保证totalnum大于partnum), isfill为是否需要填充外圆柱(0不填充,1填充), innercolor为内圆柱填充颜色, outercolor为外圆柱颜色 用法: buy:=getorderflow(1); sell:=getorderflow(-1); totalnum:=buy + sell; partnum:=buy - sell; //partnum:getorderflowdelta(); delta(totalnum, partnum, 1, colorred, coloryellow); //内圆柱为红色,外圆柱为黄色,并且填充外圆柱 delta(totalnum, partnum, 0, colorrgb(243,116,116), colorrgb(236,187,187)); // 不填充 用法说明: 获取买,卖量,totalnum为买卖量之和,partnum为买卖量之差。传入delta中绘制叠加柱状图。 | |
字符串函数 | blkname | 所属板块 | 取品种所属分类申万板块名称 用法:blkname 例如❌blkname | |
| findblock | 在某个板块节点下寻找所属板块 | 在某个板块节点下寻找所属板块 用法:findblock(node),node是板块目录节点 例如:blk:findblock('申万二级行业板块') | |
| findblocklist | 在某个板块节点下寻找全部的所属板块 | 释义: 在某个板块节点下寻找全部的所属板块 用法: blk:findblocklist(node) 参数: node: str,板块目录节点,如'概念' 返回: blk: 板块列表 示例: blk:findblocklist('概念'); blkstr:groupdebug(blk); | |
| findindex | 查找代码所属板块对应的指数代码 | 查找代码所属板块对应的指数代码,需要存在和板块目录对应的指数板块 例如: 板块目录:'申万二级行业板块' 指数板块:'申万二级行业板块指数' 用法:findindex(node, stock),node是板块目录节点或指数板块名称,stock是股票代码,传空为当前代码 例如:findindex('申万二级行业板块指数', 'SZ000001') 或:findindex('申万二级行业板块', 'SZ000001') | |
| switchindex | 查找与代码关联的指定名称后缀的同品种代码 | 查找与代码关联的指定名称后缀的同品种代码 用法:switchindex(stock, suffix),stock是股票代码,传空为当前代码,suffix为名称后缀 例如:switchindex('BKZS220484', '加权jy');//返回'BKZS221203' | |
| MARKETNAME | 市场名称 | 取得当前品种的市场名称. 用法:MARKETNAME(),将返回当前品种的市场名称, 例如:沪市返回"上海证券交易所",深市返回"深圳证券交易所". | |
| INBLOCK | 是否板块成员 | 判断本股票是否板块成员. 用法:INBLOCK(S),若本股票是板块S的成员将返回1,否则返回0. 例如:INBLOCK('工业板块'),若本股票属于工业板块则返回1. | |
| INBLOCK2 | 某只股票是否是板块成员 | 判断股票是否板块成员. 用法:INBLOCK2(Sector, StockCode),若本股票是板块S的成员将返回1,否则返回0. 例如:INBLOCK2('沪深300', '600000.SH'),若本股票属于沪深300则返回1. INBLOCK2('沪深300', 'SH600000'),若本股票属于沪深300则返回1. | |
| LOWERSTR | 转换为小写 | 将字符串转换为小写. 用法: LOWERSTR(STR),将返回STR对应的小写字符串. 例如:LOWERSTR('EFGH')将返回"efgh". | |
| LTRIM | 除去开始空格 | 除去字符串开始空格 用法: LTRIM(STR) 例如: LTRIM(' SH') 返回SH | |
| MARKETLABEL | 市场代码 | 取得当前品种的市场代码. 用法: MARKETLABEL(),将返回当前品种的市场代码,例如:沪市返回"SH",深市返回"SZ". | |
| MARKETLABEL1 | 市场代码 | 取得当前品种的市场代码. 较MARKETLABEL,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(),将返回当前品种的代码,例如深发展A将返回"000001". | |
| STKNAME | 品种名称 | 取得品种名称. 用法: STKNAME(),将返回当前品种的名称,例如深发展A将返回"深发展A". STKNAME('SZ000001') 返回该品种的名称"平安银行" | |
| STRCAT | 字符串相加 | 把一个字符串添加到另一个字符串中 用法: STRCAT(DES,STR),将STR字符串添加到DES字符串末尾. 例如:STRCAT('ABC','DEF')将返回"ABCDEF". | |
| STRCMP | 字符串比较 | 字符串比较. 用法: STRCMP(STR1,STR2),若STR1>STR2则返回1,STR1<STR2返回-1,相等则返回0. 例如:STRCMP('ABCDEF','ABC')返回1. | |
| STRFIND | 查找字符串 | 在字符串中查找另一个字符串. 用法: STRFIND(STR,S1,N),从字符串STR的第N个字符开始查找字符串S1,返回找到的位置,若没有找到就返回0. 例如:STRFIND('ABCDEFGH','CDE',1)返回3. | |
| STRICMP | 忽略大小写比较 | 忽略大小写比较字符串. 用法: STRICMP(STR1,STR2),若STR1>STR2则返回1,STR1<STR2返回-1,相等则返回0. 例如:STRCMP('ABCDEF','ABC')返回1. | |
| 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个字节. | |
| STRMID | 字符串的中部 | 取得字符串的中间部分. 用法: STRMID(STR,N,M),返回字符串STR的第N个字符开始的长度为M个字符的字符串. 例如:STRMID('ABCDEF',3,3)得到"CDE". | |
| STRNCMP | 部分字符串比较 | STRNCMP(STR1,STR2,LEN),比较STR1和STR2的前LEN位,若STR1>STR2则返回1,STR1<STR2返回-1,相等则返回0. 指定长度比较字符串.用法: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. 例如:STRREPLACE('ABCDEFG','BCD','ZZZ')函数将返回"AZZZEFG". 在替换之后,该字符串有可能增长或缩短;那是因为STRNEW和STROLD的长度不需要是相等的. | |
| 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的开始处删除. 例如:STRTRIMLEFT(' ABC',' ')函数将返回"ABC". | |
| STRTRIMRIGHT | 整理右边 | 整理字符串右边 用法: STRTRIMRIGHT(STR,STR1),将一群特定的字符STR1从字符串STR的末尾处删除. 例如:STRTRIMRIGHT('ABC ',' ')函数将返回"ABC". | |
| UPPERSTR | 大写字符串 | 将字符串转换为大写. 用法: UPPERSTR(STR),将返回STR对应的大写字符串. 例如:UPPERSTR('abcd')将返回"ABCD". | |
| timestamptostr | 时间戳转日期时间 | 将以秒为单位的时间戳转为14位日期时间 用法: timestamptostr(timestamp) timestamp为秒级时间戳 返回日期时间格式的字符串,YYYYmmddHHMMSS 例如:timestamptostr(1644249600). 输出 20220208000000 | |
| strtotimestamp | 日期时间转时间戳 | 将14位日期时间转为以秒为单位的32位整形时间戳 用法: strtotimestamp(datetime) datetime为日期时间格式的字符串,YYYYmmddHHMMSS 返回秒级时间戳 例如:strtotimestamp('20220208000000'). 输出 1644249600 | |
引用函数 | BARSCOUNT | 有效周期数 | 求有效周期数. 用法: BARSCOUNT(X)第一个有效数据到当前的天数 例如:BARSCOUNT(CLOSE)取得上市以来总交易日数 | |
| BACKSET | 向前赋值 | 将当前位置到若干周期前的数据设为1. 用法: 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)表示上一个涨停板到当前的周期数 如果没有符合条件的周期,函数将返回零 | |
| BARSSINCE | 第一个条件成立位置 | 第一个条件成立到当前的周期数. 用法: BARSSINCE(X):第一次X不为0到现在的天数 例如:BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数 如果没有符合条件的周期,函数将返回零 | |
| BARSSINCEN | N周期内第一个条件成立位置 | N个周期内第一个条件成立到当前的周期数. 用法: BARSSINCEN(X,N):N周期内第一次X不为0到现在的周期数,N大于或等于2 例如:BARSSINCEN(HIGH>10,N)表示N个周期内的股价超过10元时到当前的周期数 如果没有符合条件的周期,函数将返回零 | |
| 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(跌数,大盘有效)以及外部数据和万德数据 IOPVOPEN或IOPVO(iopv开盘价) IOPVHIGH或IOPVH(iopv最高价) IOPVLOW或IOPVL(iopv最低价) IOPVCLOSE或IOPVC(iopv收盘价) 如果找不到同期数据,那么将返回最近的一个. 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('1A0001',VTCLOSE,6,-1)表示引用昨日品种 1A0001 的日线收盘价 CALLSTOCK('SH600000',VTOPEN)表示引用SH市场的600000,使用当前周期 引用数据时,需要实现确认被引用品种周期数据齐全,再首次使用或者在不确定时,请手工进行数据补充工作 | |
| callstock2 | 引用行情数据 | 引用行情数据 用法: callstock2(stock,type,period,offset); callstock2(group,type,period,offset); --- stock为股票代码,如'SH600000' group为股票篮子 --- type为数据类型 可选范围: vtopen(开盘) vthigh(最高) vtlow(最低) vtclose(收盘) vtvol(成交量) vtamount(成交额) vtopenint(持仓量) vtrise(加权涨幅) vtgclose(加权收盘价) IOPVOPEN或IOPVO(iopv开盘价) IOPVHIGH或IOPVH(iopv最高价) IOPVLOW或IOPVL(iopv最低价) IOPVCLOSE或IOPVC(iopv收盘价) --- period为周期,若为-1表示使用当前周期 可选范围: 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:多笔线 --- offset为左右偏移周期个数,0表示引用当前数据,小于0为引用之前数据,大于0为引用之后数据 | |
| CALLPYTHON | 引用PYTHON指标 | 引用python指标的计算结果 用法: CALLPYTHON(OUTPUT,CYC,MSCODE),引用指定市场及品种组合代码为MSCODE,周期为CYC的数据OUTPUT 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:多笔线 例如:CALLPYTHON('TEST.A',6,'')表示引用当前图对应品种的TEST python类型指标中的在日线上的输出变量A CALLPYTHON('TEST.A',6,'SH600000')表示引用SH市场的600000对应python指标的输出A的数据 引用数据时,需要实现确认被引用品种周期数据齐全,再首次使用或者在不确定时,请手工进行数据补充工作 | |
| 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日最高价 | |
| HHVBARS | 上一高点位置 | 求上一高点到当前的周期数. 用法: HHVBARS(X,N):求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计 例如:HHVBARS(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)表示求历史最低价 | |
| LLVBARS | 上一低点位置 | 求上一低点到当前的周期数. 用法: LLVBARS(X,N):求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计 例如:LLVBARS(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日均价 | |
| XMA | 偏移移动平均 | 求偏移移动平均,属于未来函数. 用法: XMA(X,N):X的N日偏移移动平均,用到了当日以后N/2日的数据,N支持变量 例如:XMA(CLOSE,10)表示求以当前日为中心的10日均价 | |
| VOLSTICK | 柱状线 | 将数据画成柱状线 用法: 例如: VOL,VOLSTICK;画成交量柱状线 | |
| STACKVOLSTICK | 叠加柱状线 | 将数据画成叠加柱状线 用法: 例如: VOL,stackvolstick;画成交量柱状线 | |
| MEDIAN | 取中位数据 | 取若干指定周期的中位数据 用法:MEDIAN(X,N),取N周期X的中数,如果N是奇数,取排完序的X中间一个元素;如果偶数,取中间两个的平均值返回 | |
| 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,1011208)表示 2001 年 12 月 08 日的收盘价; REFDATE(CLOSE,1011208, 133030)表示 2001 年 12 月 08 日 13:30:30 的收盘价 TIME参数可省略使用,省略时间一般用在日线及其以上周期使用,对于日线以下周期则一般需要带时间参数. 注意:对于逐K线运行模式,X值不可以引用到未来数据,但是序列模式则无此限. | |
| REFPARAM | 引用自定义字段值 | 引用用户在市场行情列表自定义字段的数值. 用法:REFPARAM(FIELDNAME,MARKETSTOCK),引用 MARKETSTOCK 品种的 FIELDNAME 字段的值. 例如:REFPARAM('自定义字段','SH600000')表示 上交所600000股票(浦发银行)对应的自定义字段的值; MARKETSTOCK参数可省略使用,省略时默认返回当前主图的股票所对应的FIELDNAME自定义字段的值. | |
| REFX | 向后引用 | 引用若干周期后的数据. 用法: REFX(X,A),引用A周期后的X值. 例如: REFX(CLOSE,1) 表示后一周期的收盘价,在日线上就是明收 | |
| ZIG | 之字转向 | 未来函数,之字转向. 用法: ZIG(K,N),当价格变化量超过N%时转向,K表示0:开盘价,1:最高价,2:最低价,3:收盘价 例如: ZIG(3,5) 表示收盘价的5%的ZIG转向 | |
| PEAK | 之字转向波峰值 | 未来函数,前M个ZIG转向波峰值. 用法: PEAK(K,N,M)表示之字转向ZIG(K,N)的前M个波峰的数值,M必须大于等于1 例如: PEAK(1,5,1) 表示5%最高价ZIG转向的上一个波峰的数值 | Sunrise |
| TROUGH | 之字转向波谷值 | 未来函数,前M个ZIG转向波谷值. 用法: TROUGH(K,N,M)表示之字转向ZIG(K,N)的前M个波谷的数值,M必须大于等于1 例如: TROUGH(2,5,2) 表示5%最低价ZIG转向的前2个波谷的数值 | |
| RET | 按时间向前引用 | 按时间引用若干周期前的数据. 用法: RET(X,A),引用A周期时间前的X值. 例如:RET(CLOSE,10)在日线上表示引用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和')',这三部分由两个连接符号&连接起来,实现对数值参数的文本传输.引用数据时,需要实现确认被引用品种周期数据齐全,再首次使用或者在不确定时,请手工进行数据补充工作 +在组合模型中, +STKINDI函数的作用是对股票池中标的运行指定单股模型 +单股模型x1-x5的输出 与getStockInfo的五个属性对应 STOCKINFO.BUY>0表示该周期出现了买点 STOCKINFO.SELL>0表示该周期出现了卖点 STOCKINFO.PRICE表示该周期该个股的收盘价,可以用于计算买入价和卖出价 STOCKINFO.HOLDING表示该周期该个股的持仓,可用于判断买卖点 STOCKINFO.SUSPEND表示该周期该个股是否停盘,STOCKINFO.SUSPEND=1表示停盘,STOCKINFO.SUSPEND=0表示未停盘 +例如 x:=stkindi($zzz, '单股模型示例', 0, 6); | |
| SUM | 求和 | 求总和. 用法: SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始. 例如:SUM(VOL,0)表示统计从上市第一天以来的成交量总和 | |
| SUMBARS | 累加到指定值周期数 | 向前累加到指定值到现在的周期数. 用法: SUMBARS(X,A):将X向前累加直到大于等于A,返回这个区间的周期数 例如:SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数 | |
| TMA | 递归移动平均 | 求递归移动平均. 用法: TMA(X,N,M),求X的递归移动平均,N、M为权重. 算法: 若Y=TMA(X,N,M) 则 Y=(NY'+MX), 其中Y'表示上一周期Y值.初值为M*X 例如: TMA(CLOSE,0.9,0.1) 表示求X的递归移动平均 | |
| WINNER | 获利盘比例 | 持仓成本低于指定价格的百分位数 用法: WINNER(CLOSE),表示以当前收市价卖出的获利盘比例,例如返回0.1表示10%获利盘;WINNER(10.5)表示10.5元价格的获利盘比例 本函数需要先下载财务数据的股本结构数据,仅对日线分析周期的复权数据比较有效 X:WINNER(CLOSE) 表示当日收市后仍然盈利的比例 | |
| TODAYBAR | 当日周期数量 | 求当日数据周期的数量 用法: TODAYBAR,得到当日从开盘以来到现在的周期数量. | |
| TR | 真实波幅 | 求真实波幅. 用法: 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日加权均价 | |
| TURN | 引用个股换手率 | 该函数只能支持以天为单位的日K线. 使用之前需要下载股本数据(在财务数据下载中) 如果不补充股本数据,将使用最新流通股本计算历史换手率,可能会造成历史换手率不正确 用法: TURN('引用参数/引用字段','移动周期') TURN('',0)返回界面显示股票的换手率 TURN('STOCKCODE','T')返回股票代码为STOCKCODE在time个周期之后的换手率,T为正,返回T周期之后的换手率. T为负数,返回T个周期之前的换手率. 例如:TURN('SH600000',-1); 返回浦发银行,一个周期之前的换手率. | |
| GETTREASURY10Y | 获取指定日期的十年期国债到期收益率基准数值 | 用法: gettreasury10y(date,type) type: 不填或者填非1的整数: 取十年期国债无风险利率 填1: 取中债1年期收益率 例如: gettreasury10y(20170306);取得2017年3月5日的十年期国债无风险利率 gettreasury10y(20170306,1);取2017年3月5日的中债1年期收益率 | |
| GETFINDATA | 获取财务数据 | 用法: getfindata('表格名称','字段名称'); 注意:使用前需要先补充财务数据 表格名称:CAPITALSTRUCTURE(股本结构)、PERSHAREINDEX(主要指标)、ASHAREINCOME(利润表)、ASHARECASHFLOW(现金流量表)、ASHAREBALANCESHEET(资产负债表) 字段名称如:total_capital(总股本) 例如: getfindata('CAPITALSTRUCTURE','total_capital');取总股本 字段说明 资产负债表 (ASHAREBALANCESHEET) 应收利息 int_rcv 可供出售金融资产 fin_assets_avail_for_sale 持有至到期投资 held_to_mty_invest 长期股权投资 long_term_eqy_invest 固定资产 fix_assets 无形资产 intang_assets 递延所得税资产 deferred_tax_assets 资产总计 tot_assets 交易性金融负债 tradable_fin_liab 应付职工薪酬 empl_ben_payable 应交税费 taxes_surcharges_payable 应付利息 int_payable 应付债券 bonds_payable 递延所得税负债 deferred_tax_liab 负债合计 tot_liab 实收资本(或股本) cap_stk 资本公积金 cap_rsrv 盈余公积金 surplus_rsrv 未分配利润 undistributed_profit 归属于母公司股东权益合计 tot_shrhldr_eqy_excl_min_int 少数股东权益 minority_int 负债和股东权益总计 tot_liab_shrhldr_eqy 所有者权益合计 total_equity 货币资金 cash_equivalents 应收票据 bill_receivable 应收账款 account_receivable 预付账款 advance_payment 其他应收款 other_receivable 其他流动资产 other_current_assets 流动资产合计 total_current_assets 存货 inventories 在建工程 constru_in_process 工程物资 construction_materials 长期待摊费用 long_deferred_expense 非流动资产合计 total_non_current_assets 短期借款 shortterm_loan 应付股利 dividend_payable 其他应付款 other_payable 一年内到期的非流动负债 non_current_liability_in_one_year 其他流动负债 other_current_liability 长期应付款 longterm_account_payable 应付账款 accounts_payable 预收账款 advance_peceipts 流动负债合计 total_current_liability 应付票据 notes_payable 长期借款 long_term_loans 专项应付款 grants_received 其他非流动负债 other_non_current_liabilities 非流动负债合计 non_current_liabilities 专项储备 specific_reserves 商誉 goodwill 报告截止日 m_timetag 公告日 m_anntime 利润表 (ASHAREINCOME) 投资收益 plus_net_invest_inc 联营企业和合营企业的投资收益 incl_inc_invest_assoc_jv_entp 营业税金及附加 less_taxes_surcharges_ops 营业总收入 revenue 营业总成本 total_operating_cost 营业收入 revenue_inc 营业成本 total_expense 资产减值损失 less_impair_loss_assets 营业利润 oper_profit 营业外收入 plus_non_oper_rev 营业外支出 less_non_oper_exp 利润总额 tot_profit 所得税 inc_tax 净利润 net_profit_incl_min_int_inc 归属净利润 net_profit_excl_min_int_inc 管理费用 less_gerl_admin_exp 销售费用 sale_expense 财务费用 financial_expense 综合收益总额 total_income 归属于少数股东的综合收益总额 total_income_minority 公允价值变动收益 change_income_fair_value 已赚保费 earned_premium 报告截止日 m_timetag 公告日 m_anntime 现金流量表 (ASHARECASHFLOW) 收到其他与经营活动有关的现金 other_cash_recp_ral_oper_act 经营活动现金流入小计 stot_cash_inflows_oper_act 支付给职工以及为职工支付的现金 cash_pay_beh_empl 支付的各项税费 pay_all_typ_tax 支付其他与经营活动有关的现金 other_cash_pay_ral_oper_act 经营活动现金流出小计 stot_cash_outflows_oper_act 经营活动产生的现金流量净额 net_cash_flows_oper_act 取得投资收益所收到的现金 cash_recp_return_invest 处置固定资产、无形资产和其他长期投资收到的现金 net_cash_recp_disp_fiolta 投资活动现金流入小计 stot_cash_inflows_inv_act 投资支付的现金 cash_paid_invest 购建固定资产、无形资产和其他长期投资支付的现金 cash_pay_acq_const_fiolta 支付其他与投资的现金 other_cash_pay_ral_inv_act 投资活动产生的现金流出小计 stot_cash_outflows_inv_act 投资活动产生的现金流量净额 net_cash_flows_inv_act 吸收投资收到的现金 cash_recp_cap_contrib 取得借款收到的现金 cash_recp_borrow 收到其他与筹资活动有关的现金 other_cash_recp_ral_fnc_act 筹资活动现金流入小计 stot_cash_inflows_fnc_act 偿还债务支付现金 cash_prepay_amt_borr 分配股利、利润或偿付利息支付的现金 cash_pay_dist_dpcp_int_exp 支付其他与筹资的现金 other_cash_pay_ral_fnc_act 筹资活动现金流出小计 stot_cash_outflows_fnc_act 筹资活动产生的现金流量净额 net_cash_flows_fnc_act 汇率变动对现金的影响 eff_fx_flu_cash 现金及现金等价物净增加额 net_incr_cash_cash_equ 销售商品、提供劳务收到的现金 goods_sale_and_service_render_cash 收到的税费与返还 tax_levy_refund 购买商品、接受劳务支付的现金 goods_and_services_cash_paid 处置子公司及其他收到的现金 net_cash_deal_subcompany 其中子公司吸收现金 cash_from_mino_s_invest_sub 处置固定资产、无形资产和其他长期资产支付的现金净额 fix_intan_other_asset_dispo_cash_payment 报告截止日 m_timetag 公告日 m_anntime 股本表 (CAPITALSTRUCTURE) 总股本total_capital 已上市流通A股 circulating_capital 限售流通股份 restrict_circulating_capital 报告截止日 m_timetag 公告日 m_anntime | |
| GETFINDATABYPERIOD | 按报告期筛选获取财务数据 | 用法: getfindatabyperiod('表格名称','字段名称',年份,季度,是否按报告期筛选); 注意:使用前需要先补充财务数据 表格名称: CAPITALSTRUCTURE(股本结构) PERSHAREINDEX(主要指标) ASHAREINCOME(利润表) ASHARECASHFLOW(现金流量表) ASHAREBALANCESHEET(资产负债表) 字段名称如:net_profit_incl_min_int_inc(净利润),参见getfindata 年份: 正常年份,如:2023, 0 - 表示不指定数据时间,自动跟随period参数选择时间范围 季度: 1 - 一季报 2 - 二季报/半年报 3 - 三季报 4 - 四季报/年报 0 - 当前bar所在季度范围(未来函数) -1 - 当前bar所在季度范围的前一期 -n - 当前bar所在季度范围的前n期 是否按报告期筛选: 0: 返回指定季度数据, 如果无当期数据或当期数据未公告时, 返回最近一期数据 1: 返回指定季度数据, 如果无当期数据,则返回最近一期数据 示例: 取指定报告期: getfindatabyperiod('ASHAREINCOME', 'net_profit_incl_min_int_inc', 2022, 1, 1) 取往年同期: getfindatabyperiod('ASHAREINCOME', 'net_profit_incl_min_int_inc', 2022, 0, 1) 取去年同期: getfindatabyperiod('ASHAREINCOME', 'net_profit_incl_min_int_inc', 0, -4, 1) 取上季度末: getfindatabyperiod('ASHAREINCOME', 'net_profit_incl_min_int_inc', 0, -1, 1) 取当季度末(未来函数): getfindatabyperiod('ASHAREINCOME', 'net_profit_incl_min_int_inc', 0, 0, 1) 取上季度末(未发布的数据不可见,返回最近一期): getfindatabyperiod('ASHAREINCOME', 'net_profit_incl_min_int_inc', 0, -1, 0) 取上季度末(未发布的数据可见): getfindatabyperiod('ASHAREINCOME', 'net_profit_incl_min_int_inc', 0, -1, 1) | |
| GETLONGHUBANG | 获取龙虎榜数据 | 用法: getlonghubang('字段名','买卖方向',席位排行); 字段名: 上榜日期, 上榜原因,成交金额, 交易营业部名称, 买入金额, 买入金额占总成交比例, 卖出金额, 卖出金额占总成交比例, 净额 买卖方向: B或S 席位:1-5 例如: getlonghubang('交易营业部名称','B',1);取买一席位交易营业部名称 | |
| GETCAPITALFLOW | 获取资金流向数据 | 用法: getcapitalflow('字段名', 席位排行); 字段名: 机构名称, 持股日期, 持股数量, 持股市值, 持仓差值市值, 持股数量占A股百分比, 持股市值变化1日, 持股市值变化5日, 持股市值变化10日, 市值增幅 席位:从1开始,超过当天数据范围返回空; 如果传0,则返回当天的席位个数。 数据顺序按照 "持股数量" 从大到小顺序 例如: getcapitalflow('机构名称', 1); 取第一席位机构名称 | |
| GETCAPITALFLOWBYHOLDER | 根据持股机构获取资金流向数据 | 用法: getcapitalflowbyholder('机构名', '字段名'); 机构名: 机构的全名。为空,则为全部的总和。 字段名: 持股数量, 持股市值, 持仓差值市值, 持股数量占A股百分比, 持股市值变化1日, 持股市值变化5日, 持股市值变化10日, 市值增幅 在机构不为空时,当天没有对应机构,则返回-1。 例如: getcapitalflowbyholder('', '持股数量'); 取持股数量的总和 getcapitalflowbyholder('高盛(亚洲)证券有限公司', '持股市值'); getcapitalflowbyholder('香港伤害汇丰银行有限公司', '持仓差值市值'); getcapitalflowbyholder('渣打银行(香港)有限公司', '持股数量占A股百分比'); getcapitalflowbyholder('', '持股市值变化1日'); getcapitalflowbyholder('', '持股市值变化5日'); getcapitalflowbyholder('', '持股市值变化10日'); getcapitalflowbyholder('', '市值增幅'); | |
| GETTOP10SHAREHOLDER | 获取十大股东数据 | 用法: gettop10shareholder('类型名','字段名',排行);类型名和字段名中文或英文均可 类型名:流通股东(flow_holder),股东(holder) 字段名: 股东名称(shareholder_name), 股东类型(shareholder_type),持股数量(shareholder_quantity), 变动原因(change_reason), 持股比例(shareholder_ratio),股份性质(share_nature),持股排名(shareholder_rank) 买卖方向: B或S 席位:1-5 例如: gettop10shareholder('flow_holder','shareholder_name',1);获取第一大股东的名称 | |
| getfutureseats | 获取期货席位数据 | 用法: getfutureseats(inst,field,rank); inst:品种代码,传空表示当前品种 field:字段名 可选范围: 成交量排名.总量 成交量排名.增减 持买单量排名.总量 持买单量排名.增减 持卖单量排名.总量 持卖单量排名.增减 rank:排名,按总量从大到小,总量最大的排名为1 示例: v1n:getfutureseatsname('zn2307', '成交量排名.名称', 1); v1v:getfutureseats('zn2307', '成交量排名.总量', 1); v1d:getfutureseats('zn2307', '成交量排名.增减', 1); b1n:getfutureseatsname('zn2307', '持买单量排名.名称', 1); b1v:getfutureseats('zn2307', '持买单量排名.总量', 1); b1d:getfutureseats('zn2307', '持买单量排名.增减', 1); s1n:getfutureseatsname('zn2307', '持卖单量排名.名称', 1); s1v:getfutureseats('zn2307', '持卖单量排名.总量', 1); s1d:getfutureseats('zn2307', '持卖单量排名.增减', 1); | |
| getfutureseatsname | 获取期货席位名称 | 用法: getfutureseatsname(inst,field,rank); inst:品种代码,传空表示当前品种 field:字段名 可选范围: 成交量排名.名称 持买单量排名.名称 持卖单量排名.名称 rank:排名,按总量从大到小,总量最大的排名为1 示例: v1n:getfutureseatsname('zn2307', '成交量排名.名称', 1); v1v:getfutureseats('zn2307', '成交量排名.总量', 1); v1d:getfutureseats('zn2307', '成交量排名.增减', 1); b1n:getfutureseatsname('zn2307', '持买单量排名.名称', 1); b1v:getfutureseats('zn2307', '持买单量排名.总量', 1); b1d:getfutureseats('zn2307', '持买单量排名.增减', 1); s1n:getfutureseatsname('zn2307', '持卖单量排名.名称', 1); s1v:getfutureseats('zn2307', '持卖单量排名.总量', 1); s1d:getfutureseats('zn2307', '持卖单量排名.增减', 1); | |
| findfutureseats | 查找期货席位中指定成员的数据 | 用法: findfutureseats(inst,field,member); inst:品种代码,传空表示当前品种 field:字段名 可选范围: 成交量排名.总量 成交量排名.增减 成交量排名.排名 持买单量排名.总量 持买单量排名.增减 持买单量排名.排名 持卖单量排名.总量 持卖单量排名.增减 持卖单量排名.排名 member:成员名称 返回: 指定成员的字段数据 如果找不到对应数据返回-1 示例: fv1v:findfutureseats('zn2307', '成交量排名.总量', '中信期货'); fv1d:findfutureseats('zn2307', '成交量排名.增减', '中信期货'); fv1r:findfutureseats('zn2307', '成交量排名.排名', '中信期货'); fb1v:findfutureseats('zn2307', '持买单量排名.总量', '中信期货'); fb1d:findfutureseats('zn2307', '持买单量排名.增减', '中信期货'); fb1r:findfutureseats('zn2307', '持买单量排名.排名', '中信期货'); fs1v:findfutureseats('zn2307', '持卖单量排名.总量', '中信期货'); fs1d:findfutureseats('zn2307', '持卖单量排名.增减', '中信期货'); fs1r:findfutureseats('zn2307', '持卖单量排名.排名', '中信期货'); | |
控制语句 | AND | 与 | 逻辑与运算 用法 A AND B 或 A && B 表示条件A与条件B同时成立 | |
| BEGIN | 把多条语句看作一条语句 | 把多条语句看作一条语句 语法:BEGIN...END | |
| BREAK | 跳出循环 | 跳出循环 语法:BREAK; | |
| DO | 执行语句 | 执行语句 语法: FOR VAR=N1 TO N2 DO EXPR; WHILE COND DO EXPR | |
| EXIT | 终止执行 | 终止公式执行.注意:逐K线模式下运行时,EXIT的使用不当会导致比如HHV,MA,等统计性质的函数计算出现失误,建议这些函数都要放在EXIT退出语句的前面保证每个周期都能执行到. 语法:EXIT; | |
| FOR | 循环语句 | 语法: 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等带有序列变量的统计类函数, 虽然能通过编译,但是会运行不正常,应该把他们放在语句的外面计算 | |
| 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 " | " |
| 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周期贝塔系数 | |
| RELATE | 相关系数 | 求2个序列间的相关系数。 用法: RELATE(X1,X2,N) 为X1与X2的N周期的相关系数 例如:RELATE(CLOSE,INDEXC,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. | |
| DEVSQ | 数据偏差平方和 | 数据偏差平方和. 用法:DEVSQ(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 适用于固定次数的独立试验,当试验的结果只包含成功或失败二种情况,且当成功的概率在实验期间固定不变.例如,函数 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,返回概率密度函数. | |
| FISHER | 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变换 用法:返回 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 检验的结果.F 检验返回的是当数组 1 和数组 2 的方差无明显差异时的单尾概率.可以使用此函数来判断两个样本的方差是否不同.例如,给定公立和私立学校的测试成绩,可以检验各学校间测试成绩的差别程度. 语法 FTEST(array1,array2,N) Array1 第一个数组或数据区域. Array2 第二个数组或数据区域. N 数组数据周期数量 例如:Array1={6,7,9,15,21}Array2={20,28,31,38,40}返回上述数据的 F 检验结果(0.648318) FTEST(C,H,10);返回收盘价和最高价10周期内的检验结果. | |
| LARGE | 数据集中第k个最大值 | 数据集中第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 个百分位值 | 返回区域中数值的第 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. | |
| 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) | |
| 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(C,10),表示求收盘价10周期的分布的偏斜度 | |
| SLOPE | 线性回归斜率 | 线性回归斜率. 用法: SLOPE(X,N)为X的N周期线性回归线的斜率 例如:SLOPE(CLOSE,10)表示求10周期线性回归线的斜率 | |
| SMALL | 数据集中的第 k 个最小值 | 返回数据集中第 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日估算标准差 | |
| STDP | 总体标准差 | 总体标准差. 用法: STDP(X,N)为X的N日总体标准差 | |
| 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日估算样本方差 | |
| VARP | 总体样本方差 | 总体样本方差. 用法: VARP(X,N)为X的N日总体样本方差 | |
| WEIBULL | Weibull 分布 | 返回韦伯分布.使用此函数可以进行可靠性分析,比如计算设备的平均故障时间. 用法:WEIBULL(A,B,D,F),A为参数值,B为分布参数,D为分布参数,F为指明函数的形式,TRUE为韦伯累积分布,FALSE为韦伯概率密度 | |
| AVEDEV | 平均绝对偏差 | 用法:AVEDEV(X,N) | |
| DELIVERYINTERVAL | 距离最近交割日的交易日数 | 取当前品种在当前K线上,距离最近交割日的交易日数 用法:DELIVERYINTERVAL() | |
| EXPIREDATE | 合约到期日 | 取期货或者期权品种的到期日期 用法:EXPIREDATE('')返回当前主图品种的到期日(只适用于期权和期货) EXPIREDATE('ic2012.if')返回ic2012到期日 | |
| MAINEXPIREDATE | 主力合约到期日 | 取期货品种主力合约的到期日期 用法:MAINEXPIREDATE('')返回当前主图品种主力合约的到期日 MAINEXPIREDATE('') | |
| DELIVERYINTERVAL2 | 距离最近交割日的交易日数 | 取当前品种或者指定品种在当前K线上,距离最近交割日的交易日数,相比较deliveryinterval,本函数可以取股指期货季节合约的数据 用法:DELIVERYINTERVAL2('') DELIVERYINTERVAL2('ICL3.IF') | |
| DELIVERYINTERVAL3 | 距离主力合约交割日的交易日数 | 取当前品种在当前K线上,距离主力合约交割日的交易日数 用法:DELIVERYINTERVAL3() | |
时间函数 | BARSTATUS | 数据位置 | 函数返回数据位置状态. 1表示第1根K线,2表示最后1根K线,0表示中间的K线. 用法: BARSTATUS | |
| BARPOS | 数据位置状态 | 函数返回当前是第几根K线.对于日线数据就表示从上市到现在总共有多少交易日. 用法: BARPOS | |
| CURRENTDATE | 当前日期 | 计算时的当前日期. 用法: CURRENTDATE 函数返回计算时的日期,有效值范围为(101-1991231),表示1900/01/01-2099/12/31 注意:该函数返回常数 | |
| CURRENTTRADEDATE | 市场的当前交易日期 | 计算时的当前日期. 用法: CURRENTTRADEDATE('') CURRENTTRADEDATE('SH') 函数返回市场的当前交易日期,空时为主图市场的当前交易日期 注意:该函数返回常数 | |
| CURRENTTIME | 当前时间 | 计算当前计算机时间. 用法: CURRENTTIME 函数返回计算时的时间(时分秒),有效值范围为(000000-235959) 注意:该函数返回常数 | |
| todaymilliseconds | 获取距离当日0点的毫秒数 | 获取距离当日0点的毫秒数 | |
| timefromstart | 获取自模型运行开始的毫秒数 | 获取自模型运行开始的毫秒数 | |
| D1970TODATE | 1970日转换为日期 | 取得1970日期X的日期值. 用法: D1970TODATE(X) | |
| DATE | 年月日 | 取得该周期年月日的数值. 用法: DATE() 函数返回有效值范围为(19000101-20991231),表示19000101-20991231. | |
| NDATE | 年月日 | 取得该周期年月日的真实数值. 例如期货周一凌晨真实交易时间为周六凌晨 用法: NDATE() 函数返回有效值范围为(19000101-20991231),表示19000101-20991231. | |
| TDATE | 交易日年月日 | 取得该周期交易日的年月日的数值. 用法: TDATE() 函数返回有效值范围为(19000101-20991231),表示19000101-20991231. | |
| 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日期时间的数据对应图表上数据的序号 | |
| DATETOD1970 | 日期转换为1970日 | 取得日期X距离1970年1月1日以来的天数. 用法: DATETOD1970(X)例如: DATETOD1970(DATE) 返回当天距离1970年1月1日的天数. 若日期小于1970年则返回对应负数. | |
| DAY | 日期 | 取得该周期的日期. 用法: DAY() 函数返回有效值范围为(1-31) | |
| DAYOFWEEK | 指定日期的星期 | 取得指定日期的星期数. 用法: DAYOFWEEK(D),D为指定的日期 函数返回有效值范围为(0-6) | |
| DAYS1970 | 从1970以来的天数 | 取得该周期从1970以来的天数. 返回自从1970年1月1日以来的天数,例如在1971年1月1日返回365. 用法: DAYS1970 | |
| HOUR | 小时 | 取得该周期的小时数. 用法: HOUR() 函数返回有效值范围为(0-23),对于日线及更长周期此函数无效 | |
| MINUTE | 分钟 | 取得该周期的分钟数. 用法: MINUTE() 函数返回有效值范围为(0-59),对于日线及更长周期此函数无效 | |
| MONTH | 月份 | 取得该周期的月份. 用法: MONTH() 函数返回有效值范围为(1-12) | |
| QUARTER | 季度 | 取得该周期所在的季度. 用法: QUARTER() 函数返回有效值范围为(1-4) | |
| OPENMINUTES | 开盘分钟数 | 取得开盘分钟数. 用法: OPENMINUTES(TIME) 返回已开盘分钟数(0-总开盘分钟数),开盘前的都为1,收盘后都为总开盘分钟数 例如: OPENMINUTES(CURRENTTIME),在日线上可得到现在已开盘分钟数 OPENMINUTES(TIME),在分钟线上可得到当时已开盘分钟数 | |
| NEXTHOLIDAYDIF | 距离下一个节日的天数 | 计算距离下一个节日的天数. 用法: NEXTHOLIDAYDIF(DATE),日期格式"20201231",空时为当日 返回天数,-1为无效值 例如: NEXTHOLIDAYDIF('20201231') NEXTHOLIDAYDIF('') | |
| NEXTHOLIDAYDIFSPEC | 距离下一个节日的天数,支持指定要查找的节日名称 | 计算距离下一个节日的天数,支持指定要查找的节日名称 用法: NEXTHOLIDAYDIFSPEC(DATE,NAME) DATE:日期,格式"20201231",空为当日 NAME:节日名称,如"国庆节",空为任意节假日(效果和NEXTHOLIDAYDIF相同) 返回天数,-1为无效值 例如: NEXTHOLIDAYDIFSPEC('','国庆节') NEXTHOLIDAYDIFSPEC('20200101','春节') | |
| NEXTMONTHDAYDIF | 距离下一个月第一个交易日的交易天数 | 计算距离下一个月第一个交易日的交易天数. 用法: NEXTMONTHDAYDIF(DATE),日期格式"20201231",空时为当日 返回天数,-1为无效值 例如: NEXTMONTHDAYDIF('20201231') NEXTMONTHDAYDIF('') | |
| T0TOTIME | 秒数转换为时间 | 取得从0点开始X秒后的时间值. 用法: T0TOTIME(X) | |
| TIME | 时间 | 取得该周期的时分秒. 用法: TIME() 函数返回有效值范围为(000000-235959),对于日线及更长周期此函数无效. 该函数返回序列变量 | |
| NTIME | 时间 | 取得该周期的真实时分秒. 例如期货周一凌晨真实交易时间为周六凌晨 用法: NTIME() 函数返回有效值范围为(000000-235959),对于日线及更长周期此函数无效. 该函数返回序列变量 | |
| TIME0 | 当日0点以来的秒数 | 取得该周期从当日0点以来的秒数. 返回自从当日0点以来的秒数,对于日线以上的分析周期返回0 用法: TIME0 | |
| TIMETOT0 | 时间转化为秒数 | 取得时间X距离当日0点的秒数. 用法: TIMETOT0(X) | |
| WEEKDAY | 星期 | 取得该周期的星期数. 用法: WEEKDAY() 函数返回有效值范围为(0-6) | |
| TWEEKDAY | 交易日星期 | 取得该周期交易日的星期数. 用法: TWEEKDAY() 函数返回有效值范围为(0-6) | |
| YEAR | 年份 | 取得该周期的年份. 用法: YEAR() 函数返回有效值范围为(1900-2099) | |
数学函数 | ABS | 求绝对值 | 求绝对值. 用法: ABS(X)返回X的绝对值 例如:ABS(-34)返回34 | |
| ACOS | 反余弦值 | 反余弦值. 用法: ACOS(X)返回X的反余弦值 | |
| ASIN | 反正弦值 | 反正弦值. 用法: ASIN(X)返回X的反正弦值 | |
| ATAN | 反正切值 | 反正切值. 用法: ATAN(X)返回X的反正切值 | |
| 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的余弦值 | |
| 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为底的对数 | 求以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等价. 用法: L | |
| AMOUNT | 原始成交额 | 取得该周期原始成交额. 用法: AMOUNT | |
| OAMOUNT | 原始成交额 | 取得该周期原始成交额(未复权). 用法: OAMOUNT | |
| OCLOSE | 原始收盘价 | 取得该周期原始收盘价(未复权). 用法: OCLOSE | |
| OHIGH | 原始最高价 | 取得该周期原始最高价(未复权). 用法: OHIGH | |
| OLOW | 原始最低价 | 取得该周期原始最低价(未复权). 用法: OLOW | |
| OOPEN | 原始开盘价 | 取得该周期原始开盘价(未复权). 用法: OOPEN | |
| OPEN | 开盘价 | 取得该周期开盘价. 用法: OPEN | |
| O | 开盘价 | 取得该周期开盘价,与开盘价等价. 用法: O | |
| OVOL | 原始成交量 | 取得该周期原始成交量(未复权). 用法: OVOL | |
| VOL | 成交量 | 取得该周期成交量. 用法: VOL | |
| V | 成交量 | 取得该周期成交量,与VOL等价. 用法: V | |
| iperiod | 获取当前周期类型 | 获取当前周期类型 返回的周期范围: 0:分笔成交、1:1分钟、2:5分钟、3:15分钟、4:30分钟、5:60分钟 6:日、7:周、8:月、9:年 | |
| DTRANSACTION | 原始成交笔数 | 取得当天开盘到该TICK总成交笔数 用法: DTRANSACTION | |
| TRANSACTION | 成交笔数 | 取得该周期成交笔数 用法: TRANSACTION | |
| TRANSCATIONSTATIC | 龙虎大单统计 | 分时图指标,L2的大单统计 使用TRANSCATIONSTATICL1获取L1的大单统计 用法: transcationstatic(stockcode,type); 参数: stockcode:品种代码 type:类型参数 0:主买单总单数 1:主买特大单成交量 2:主买大单成交量 3:主买中单成交量 4:主买小单成交量 5:主卖单总单数 6:主卖特大单成交量 7:主卖大单成交量 8:主卖中单成交量 9:主卖小单成交量 10:主买特大单成交额 11:主买大单成交额 12:主买中单成交额 13:主买小单成交额 14:主卖特大单成交额 15:主卖大单成交额 16:主卖中单成交额 17:主卖小单成交额 18:大单动向 19:涨跌动因 20:大单差分 21:资金博弈 净流入 22:资金博弈 超大单 23:资金博弈 大单 24:资金博弈 中单 25:资金博弈 小单 26:净挂 27:净撤 28:总撤买 29:总撤卖 100:总买量 101:总卖量 102:总买额 103:总卖额 用例: transcationstatic('600000.SH', 1); //主买特大单成交量 | |
| TRANSCATIONSTATICL1 | L1龙虎大单统计 | 分时图指标,L1的大单统计 用法: TRANSCATIONSTATICL1(stockCode, type); 参考TRANSCATIONSTATIC | |
| NORTHFINANCECHANGE | 北向资金流向 | 港股通(深港通、沪港通)资金流向 用法: northfinancechange(类型参数); 参数: 0:HGT北向买入资金 1:HGT北向卖出资金 2:HGT南向买入资金 3:HGT南向卖出资金 4:SGT北向买入资金 5:SGT北向卖出资金 6:SGT南向买入资金 7:SGT南向卖出资金 8:HGT北向资金净流入 9:HGT北向当日资金余额 10:HGT南向资金净流入 11:HGT南向当日资金余额 12:SGT北向资金净流入 13:SGT北向当日资金余额 14:SGT南向资金净流入 15:SGT南向当日资金余额 用例: northfinancechange(1); //HGT北向卖出资金 | |
| HKTSTATISTICS | 个股持股统计 | 港股通(深港通、沪港通)个股持股统计 用法: hktstatistics(类型参数); 参数: 0:持股数量 1:持股市值 2:持股数量占 3:净买入 用例: hktstatistics(0); //获取个股持股统计的持股数量 | |
| HKTDETAILS | 个股持股明细 | 港股通(深港通、沪港通)个股持股明细 用法: hktdetails('机构名称',类型参数); 参数: 机构名称:'香港中央结算有限公司','香港上海汇丰银行有限公司'等 类型参数: 0:持股数量 1:持股市值 2:持股数量占 3:净买入 用例: hktdetails('香港中央结算有限公司',0); //获取香港中央结算有限公司个股持股明细的持股数量 | |
| GETLIANGRONGTRADE | 融资融券交易信息 | 释义: 获取融资融券交易信息 用法: getliangrongtrade(stockcode, type); 参数: stockcode:品种代码,填空的话默认使用主图品种 type:类型参数 0:融资买入额 1:融资余额 2:融资偿还额 3:融券卖出量 4:融券余量 5:融券偿还量 6:融券余额 7:融资融券余额 用例: getliangrongtrade('SZ000001',0); | |
| GETHIGHLOWSTAT | 市场涨跌停相关数据统计 | 释义: 获取市场涨跌停相关数据 用法: gethighlowstat(type); 参数: type:类型参数 0:昨日涨停股今日平均涨幅 1:涨停股数 2:跌停股数 3:非一字涨停股数 用例: gethighlowstat(0); | |
| GETQUOTEAUX | 实时行情委买卖统计 | 释义: 获取实时行情委买卖统计信息 用法: getquoteaux(stockcode,type); 参数: stockcode:品种代码,填空的话默认使用主图品种 type:类型参数 0:委买均价 1:委买总量 2:委卖均价 3:委卖总量 用例: getquoteaux('SHFFFFFF', 0); //获取全A委买均价 | |
| OPENINT | 持仓量 | 取得该周期持仓量. 用法: OPENINT | |
| ASKPRICE | 委卖价 | 取得该周期的委卖价. 用法: ASKPRICE | |
| BIDPRICE | 委买价 | 取得该周期的委买价. 用法: BIDPRICE | |
| ASKVOL | 委卖量 | 取得该周期的委卖量. 用法: ASKVOL | |
| BIDVOL | 委买量 | 取得该周期的委买量. 用法: BIDVOL | |
| INDEXA | 指数成交额 | 取得同期大盘的成交额. 用法: INDEXA | |
| INDEXC | 指数收盘价 | 取得同期大盘的收盘价. 用法: INDEXC | |
| INDEXH | 指数最高价 | 取得同期大盘的最高价. 用法: INDEXH | |
| INDEXL | 指数最低价 | 取得同期大盘的最低价. 用法: INDEXL | |
| INDEXO | 指数开盘价 | 取得同期大盘的开盘价. 用法: INDEXO | |
| INDEXV | 指数成交量 | 取得同期大盘的成交量. 用法: INDEXV | |
| CAPITAL | 流通盘大小 | 用法:CAPITAL(),返回流通盘大小,单位为手.指数为0 | |
| BVOL | 外盘成交量 | 取外盘成交量 用法: BVOL | |
| SVOL | 内盘成交量 | 取内盘成交量 用法: SVOL | |
| IOPV | 基金份额参考净值 | 取得ETF的基金份额参考净值. 用法: IOPV | |
| SUSPEND | 是否停盘 | 用法:SUSPEND(),无参数时默认返回后一个交易日是否停牌,参数为-1返回前一个交易日是否停牌,参数为日期返回指定日期是否停牌 返回值为1时,为停牌,为0时为非停牌 | |
| GETOPTINFO | 获取期权信息 | 释义: 获取期权信息 用法: getoptinfo(stockcode); 参数: stockcode:品种代码,填空的话默认使用主图品种 返回期权信息结构 undlcode:标的 exerciseprice:行权价 side:方向 C:认购, P:认沽 delivdate:交割月 exercisedate:行权日 contractType:合约月份 1:当月 2:下月 3:隔月 4:下季 5:隔季 6:隔下季 用例: data:=getoptinfo(''); a1:data.undlcode; a2:data.exerciseprice; a3:data.side; a4:data.delivdate; a5:data.exercisedate; a6:data.contractType; | |
| GETOPTUNDLCODE | 获取期权标的代码 | 释义: 获取期权标的代码 用法: getoptundlcode(stockcode); 参数: stockcode:品种代码,填空的话默认使用主图品种 返回期权标的代码 用例: undlcode:=getoptundlcode('IFIO2205-P-4300'); | |
| GETOPTCODE | 获取指定的期权代码 | 释义: 根据参数获取指定的期权信息期权信息 用法: getoptcode(stockcode, side, price, contracttype); 参数: stockcode:品种代码,填空的话默认使用主图品种 side:买卖方向,C:认购,P:认沽,O:相反方向,缺省时填空 price:行权价,缺省时填-1 contractType:合约月份, 1:当月 2:下月 3:隔月 4:下季 5:隔季 6:隔下季, 缺省时填-1 返回期权代码 说明: 品种可填写期权代码或标的代码,填写标的时,后面三个参数需填具体的参数, 填写期权代码时,后面三个参数缺省时会使用该期权的对应值,买卖方向"O"时,获取方向相反的期权 用例: a1:getoptcode('SH000300', 'C', 4400, 4); 返回结果IFIO2205-C-4400 a2:getoptcode('IFIO2205-C-4400', '', 4300, -1); 返回结果IFIO2205-C-4300 a3:getoptcode('IFIO2205-C-4400', 'O', -1, -1); 返回结果IFIO2205-P-4400 | |
| GETOPTCODEBYNO | 通过虚实序号获取指定的期权代码 | 释义: 根据参数获取指定的期权信息期权信息,不会获取到经过调整的合约 用法: getoptcodebyno(undlCode, side, contracttype, no, day, contracttype1, mode, period); 参数: undlCode:品种代码,填空的话默认使用主图品种,为期权的标的代码,如 股指期权SH000300 商品期权CF00 side:买卖方向,C:认购,P:认沽 contractType:合约月份,股指期权时 1:当月 2:下月 3:隔月 4:下季 5:隔季 6:隔下季; 商品期权时 可使用100代表主力期货合约的月份 no:序号,正数为实值,负数为虚值 day:以基准交割日的前第几天,缺省时填-1,10000以上代表从交割日后第几天,10001代表交割后第一天 contracttype1:基准交割日的合约月份,1:当月 2:下月 3:隔月 4:下季 5:隔季 6:隔下季 mode:计算虚实合约的模式 0:前收价为基准 1:收盘价为基准 period:基准周期 -1:主图周期、1:1分钟、2:5分钟、3:15分钟、4:30分钟、5:60分钟、6:日 返回期权代码 用例: a1:getoptcodebyno('SH000300', 'C', 1, 1, 0, 0, 0, 6); 返回当日标的为SH000300的当月认购期权的实1(依据前收) a1:getoptcodebyno('SH000300', 'C', 1, 1, 0, 0, 1, 6); 返回当日标的为SH000300的当月认购期权的实1(依据今收) a1:getoptcodebyno('SH000300', 'C', 1, 1, 5, 1, 0, 6); 返回以当月期权交割日前第5日为基准日的标的为SH000300的当月认购期权的实1(依据前收) a1:getoptcodebyno('SH000300', 'C', 1, 1, 5, 1, 1, 6); 返回以当月期权交割日前第5日为基准日的标的为SH000300的当月认购期权的实1(依据今收) | |
| GETOPTCODEBYNO2 | 通过虚实序号获取指定的期权代码 | 用法参照GETOPTCODEBYNO,区别为会获取到经过调整的合约 | |
| GETEXERCISEINTERVAL | 返回距离指定类型的期权行权日的交易日个数 | 释义: 返回距离指定类型的期权行权日的交易日个数 用法: getexerciseinterval(undlCode, contracttype); 参数: undlCode:品种代码,填空的话默认使用主图品种,为期权的标的代码,如 SH000300 contractType:合约月份, 1:当月 2:下月 3:隔月 4:下季 5:隔季 6:隔下季 返回交易日个数 用例: a1:getexerciseinterval('SH000300', 1); 返回距标的为SH000300的当月期权行权日的交易日间隔 | |
| GETOPTIV | 期权隐藏波动率 | 用法: GETOPTIV(optCode, rate, offset); 参数:optCode:期权代码,填空的话默认使用主图品种 rate:无风险利率,填0会使用0.035计算 offset:为左右偏移周期个数,0表示引用当前数据,小于0为引用之前数据,大于0为引用之后数据 用例: a1:GETOPTIV('SHO10004163',0,0); | |
| GETOPTIVGREEK | 期权希腊值 | 用法: GETOPTIVGREEK(optCode, type, rate, offset); 参数:optCode:期权代码,填空的话默认使用主图品种 type:希腊值类型,1:delta,2:gamma,3:vega,4:theta,5:rho rate:无风险利率,填0会使用0.035计算 offset:为左右偏移周期个数,0表示引用当前数据,小于0为引用之前数据,大于0为引用之后数据 用例: delta:getoptivgreek('',1,0,0); gamma:getoptivgreek('',2,0,0); rho:getoptivgreek('',5,0,0); theta:getoptivgreek('',4,0,0); vega:getoptivgreek('',3,0,0); | |
| GETOPTLISTBYUNDL | 通过标的获取期权代码 | 释义: 通过标的获取期权代码 用法: getoptcodebyundl(stockcode, index); 参数: stockcode:品种代码,填空的话默认使用主图品种 index:序号 返回标的对应的期权中第index个的期权代码 用例: code:getoptcodebyundl('', 1); | |
| get_cb_info | 获取可转债合约信息 | 释义: 获取可转债合约信息 参数: 转债代码,如:113001.SH(可为空,为空时取主图代码) 字段号: 1 : 可转债简称 2 : 正股代码 4 : 发行年限 6 : 发行价格 7 : 发行总额(元) 8 : 债券余额(元) 9 : 起息日期 10: 到期日期 12: 票面利率 13: 补偿利率 15: 上市日期 16: 摘牌日 18: 转股起始日 19: 转股截止日 20: 初始转股价 21: 最新转股价 返回: string,对于某些数据,需要strtonum 示例: b:=strtonum(get_cb_info('113602.SH',7)); 返回113602.SH的发行规模 | |
| get_cb_info_num | 获取可转债合约信息,数字类型 | 释义: 获取可转债合约信息,数字类型 参数: 转债代码,如:113001.SH(可为空,为空时取主图代码) 字段号: 4 : 发行年限 6 : 发行价格 7 : 发行总额(元) 8 : 债券余额(元) 9 : 起息日期 10: 到期日期 12: 票面利率 13: 补偿利率 15: 上市日期 16: 摘牌日 18: 转股起始日 19: 转股截止日 20: 初始转股价 21: 最新转股价 返回: double 示例: b:=get_cb_info_num('113602.SH',7); 返回113602.SH的发行规模 | |
| get_cb_code | 获取可转债的正股代码或正股的可转债代码 | 释义: 获取可转债的正股代码或正股的可转债代码 参数: 转债代码,如:SH113001(可为空,为空时取主图代码) 多条数据的第几条,正股的对应多个转债时的第几条,可缺省 返回: string 示例: a:=get_cb_code('SH113001'); b:=get_cb_code('SH113001',1); | |
| get_cb_convert_price | 获取可转债历史转股价 | 释义: 获取可转债历史转股价 参数: 转债代码,如:113001.SH(可为空,为空时取主图代码) 返回: double,转股价 示例: x:get_cb_convert_price('128013.SZ') 返回128013.SZ的历史转股价 | |
| getcbconversionvalue | 获取可转债转股价值 | 释义: 获取可转债转股价值 参数: 转债代码,如:113001.SH(可为空,为空时取主图代码) 返回: double,转股价值 示例: x:getcbconversionvalue('128013.SZ') 返回128013.SZ的转股价值 | |
| getcbconversionpremium | 获取可转债转股溢价率 | 释义: 获取可转债转股溢价率 参数: 转债代码,如:113001.SH(可为空,为空时取主图代码) 返回: double,转股溢价率 示例: x:getcbconversionpremium('128013.SZ') 返回128013.SZ的转股溢价率 | |
| getorderflow | 获取订单流买或卖总量 | getorderflow(index); 释义: 获取订单流买或卖总量 参数: 买/卖方向,1 买,-1 卖 返回: int,总量 示例: x:getorderflow(1); 返回买方向总量 | |
| getorderflowdetail | 获取订单流数据 | getorderflowdetail(price, index); 释义: 获取当前品种的订单流数据 参数: price:价格 index:正值为第n个大于等于指定价格的数据 返回期权信息结构 time:数据时间 size:总条数 index:当前数据在总数据中的下标 price:成交价 buyNum:外盘成交量 sellNum:内盘成交量 用例: data:=getorderflowdetail(0, 0); a1:data.time; a2:data.size; a3:data.index; a4:data.price; a5:data.buyNum; a6:data.sellNum; | |
| getorderflowunbalance | 获取订单流失衡色带 | getorderflowunbalance(threshold, thresholdtimes, barcount); 释义: 取barcount个bar内最后一次持续到当前的最近的失衡色带 返回值红1 绿-1 没有0 参数: threshold 失衡阙值 thresholdtimes 连续失衡次数 barcount bar条数, 为0表示全部 返回: int,是否在失衡色带中, 0不在,红色带1,绿色带-1 示例: x:getorderflowunbalance(2, 3, 10); 返回当前的失衡色带 | |
| getorderflowpoc | 获取订单流最大交易量的价格 | getorderflowpoc(); 释义: 获取订单流最大交易量时对应的价格。根据主图的周期和复权获取。 返回: double, 对应的价格 示例: x:getorderflowpoc(); | |
| getorderflowdelta | 获取订单流总买总卖差值 | getorderflowdelta(); 释义: 获取订单流当前bar总买量和总卖量的差值。根据主图的周期获取。 返回: int, 对应的差值 示例: x:getorderflowdelta(); | |
| getlastfuturemonth | 获取指定期货月份 | getlastfuturemonth(code,index); 释义: 获取该品种期货最近的第n个品种的月份 参数: 期货代码,如:ag00(可为空,为空时取主图代码) 序号,1代表取最近的合约 返回: int,月份 示例: x:getlastfuturemonth('',1); 返回指定合约的月份 | |
| getlastfuturecode | 获取指定期货代码 | getlastfuturecode(code,index); 释义: 获取该品种期货最近的第n个品种的代码 参数: 期货代码,如:ag00(可为空,为空时取主图代码) 序号,1代表取最近的合约 返回: string,代码 示例: x:getlastfuturecode('',1); 返回指定合约的月份 | |
| getspotprodgroup | 获取指定现货品种的篮子 | getspotprodgroup(prod) 参数: prod:品种代码,如:'i',传空表示当前品种对应的标的 返回: 品种篮子 示例: gg:=getspotprodgroup('i'); //取铁矿石对应的现货品种篮子 gc:callstock2(gg, vtrise, -1, 0); //取篮子的平均涨幅 | |
| getspotprodinst | 获取指定现货品种 | getspotprodinst(prod,index) 参数: prod:品种代码,如:'i',传空表示当前品种对应的标的 index:位置索引,传整数表示取所有对应该品种的第几个,传0表示取品种列表 如果index超过可取的品种总数,返回空字符串 返回: 对应位置的品种代码 示例: s0:getspotprodinst('i',0); //取铁矿石对应的现货品种的列表 s1:getspotprodinst('i',1); //取铁矿石对应的现货品种的第一个品种 | |
| getwarehousereceipt | 获取期货仓单数据 | getwarehousereceipt(prod,warehousename) 参数: prod:品种代码,如:'i',传空表示当前品种对应的标的 warehousename:仓库名,传空表示全部仓库汇总 返回: 仓单数量 如果找不到对应数据,返回-1 示例: d1:getwarehousereceipt('i',''); //取铁矿石仓单汇总 d2:getwarehousereceipt('i','物产中大(唐山港)'); //取铁矿石单个仓库的仓单 d3:getwarehousereceipt('i',getwarehousename('i', 1)); //取铁矿石单个仓库的仓单 | |
| getwarehousename | 获取期货仓单交割仓库名称 | getwarehousename(prod,index) 参数: prod:品种代码,如:'i',传空表示当前品种对应的标的 index:位置索引,传整数表示取所有对应该品种的第几个,传0表示取全部列表 如果index超过可取的品种总数,返回空字符串 返回: 对应位置的仓库名称 示例: w0:getwarehousename('i', 0); //取铁矿石仓库列表 w1:getwarehousename('i', 1); //取铁矿石单个仓库名称 | |
| productcode | 获取合约品种 | productcode(code); 释义: 获取该合约的品种 参数: 合约代码,如:ag00(可为空,为空时取主图代码) 返回: string,合约品种 示例: x:productcode(''); 返回指定合约的品种 | |
| getfuturecode | 获取期货连续合约对应的实际合约 | getfuturecode(code); 释义: 获取期货连续合约对应的实际合约,仅支持连续合约,非连续合约返回本身 参数: 合约代码,如:ag00(可为空,为空时取主图代码) 返回: string,实际合约 示例: x:getfuturecode(''); 返回获取的实际合约 | |
| convindex | 品种转换 | convindex(code, type); 释义: 各种类型品种相互转换的通用函数 参数: 合约代码,如:SH510050(可为空,为空时取主图代码) 类型: 0:标的获取对应的股指期货,连续合约 1:标的获取对应的股指期货,当月合约 2:标的获取对应的股指期货,下月合约 3:标的获取对应的股指期货,下季合约 4:标的获取对应的股指期货,隔季合约 5:标的获取对应的股指期货,加权连续合约 100:etf获取跟踪的指数,目前仅支持有期权的etf 返回: string,目标品种代码 示例: x:convindex('SH000905',0); 返回 IFIC00 x:convindex('SH510050', 100); 返回 SH000016 | |
| isdividdate | 是否除权日 | isdividdate(code); 释义: 判断品种当日是否为除权日 参数: 合约代码,如:SH510050(可为空,为空时取主图代码) 返回: bool,表示当日是否为除权日 示例: x:isdividdate(''); | |
扩展数据 | EXTDATA | 获取指定周期的扩展数据 | EXTDATA(NAME, STOCK, TIME) 其中NAME是扩展数据的名字, STOCK表示品种,TIME表示相对当前周期的偏移值,0表示当前周期 例如,扩展数据名为ZZZ, X := EXTDATA('ZZZ', 'SZ600000', 0), 则X表示600000在当前周期对应的ZZZ的值,股票市场须用大写字母 | |
| EXTDATARANK | 判断当前品种的扩展数据在所有品种中的排名,按扩展数据值从大到小排 | EXTDATARANK(NAME, TIME) 表示当前品种在名为NAME的扩展数据中的TIME周期的值在所有品种中的排名 例如,扩展数据名为ZZZ,X:EXTDATARANK('ZZZ',0,'SZ000001') 表示当前品种('SZ000001')当前周期ZZZ的值在ZZZ对应的股票集合中的排名 | |
| EXTDATABLOCKRANK | 获取扩展数据中指定板块内的指定品种的排名比例 | extdatablockrank(extdataname, stockcode, blockname); 释义: 获取扩展数据中指定板块内的指定品种的排名 返回0表示该字段值为板块内最小;1为最大 其他,如返回0.5表示字段值位于板块内正中的位置 参数: extdataname:扩展数据名 blockname:板块名 stockcode:品种代码,填空的话默认使用主图品种 返回: 扩展数据中指定板块内的指定品种的排名比例 示例: extdatablockrank('extdata1', '', 'SW1银行'); | |
| EXTDATABLOCKSUM | 获取扩展数据中指定板块内的品种的合计 | extdatablocksum(extdataname, blockname); 释义: 获取扩展数据中指定板块内的品种的合计 参数: extdataname:扩展数据名 blockname:板块名 返回: 扩展数据中指定板块内的品种的合计 示例: extdatablocksum('extdata1', 'SW1银行'); | |
| EXTDATABLOCKSUMRANGE | 获取扩展数据中指定板块内排名前几的品种的合计 | extdatablocksumrange(extdataname, blockname, range); 释义: 获取扩展数据中指定板块内的品种的合计,指定汇总范围 参数: extdataname:扩展数据名 blockname:板块名 range:汇总范围,正数为最大的前几名,负数为最小的前几名,0为统计全部 返回: 扩展数据中指定板块内的品种的合计 示例: //取zf30d在SW1银行里数值前三的 v1:extdatablocksumrange('zf30d', 'SW1银行', 3); //取zf30d在SW1银行里数值倒数前三的 v2:extdatablocksumrange('zf30d', 'SW1银行', -3); | |
| EXTDATABIGGER | 返回扩展数据中比某个值大的股票数 | EXTDATABIGGER(NAME, TIME, VALUE) 表示当前品种在名为NAME的扩展数据中的TIME周期的值在所有品种中的排名 例如,扩展数据名为ZZZ,X := EXTDATABIGGER('ZZZ',0, 10), 表示扩展数据当前周期ZZZ的值比10大的数的个数 | |
| EXTRANKTOVALUE | 返回扩展数据中排名为某一位置对应的数值 | EXTRANKTOVALUE(NAME, TIME, RANK) 表示当前品种在名为NAME的扩展数据中的TIME周期排名为RANK的对应数值 例如,扩展数据名为ZZZ,X := EXTRANKTOVALUE('ZZZ', 0,10), 表示扩展数据ZZZ当前周期排名为10的股票对应的值 | |
| EXTRANKTOCODE | 返回扩展数据中排名为某一位置对应的代码 | EXTRANKTOCODE(NAME, TIME, RANK) 表示当前品种在名为NAME的扩展数据中的TIME周期排名为RANK的对应数值 示例: EXTRANKTOCODE('ZZZ',0,10) | |
| EXTBLOCKRANKTOCODE | 返回扩展数据中板块范围内排名为某一位置对应的代码 | EXTBLOCKRANKTOCODE(NAME, SECTOR, RATE) 返回扩展数据中板块范围内排名为某一位置对应的代码 示例: //取扩展数据'zf30d'中在'SW1银行'板块中的品种数值排名第1的品种 s1:extblockranktocode('zf30d','SW1银行',1); //取扩展数据'zf30d'中在'SW1银行'板块中的品种数值排名倒数第1的品种 s2:extblockranktocode('zf30d','SW1银行',0); | |
| EXTDATABLOCKSPLITAVG | 获取扩展数据中指定板块内分N份的第i份的平均值 | extdatablocksplitavg(extdataname, blockname, n, i); 释义: 获取扩展数据中指定板块内分N份的第i份的平均值 参数: extdataname:扩展数据名 blockname:板块名,空扩展数据的股票池 n为拆分的总份数 i为拆分后所选择第几份,可选范围[1,n],[-n,-1],1表示排名最靠前的一段,-1代表排名最靠后的一段 返回: 扩展数据中指定板块内分N份的第i份的平均值 示例: //取zf30d在SW1银行里分5份排名靠前的第一份的均值 v1:extdatablocksplitavg('zf30d', 'SW1银行', 5, 1); | |
因子数据 | MULTIFACTOR | 获取指定品种的因子值 | MULTIFACTOR(NAME, STOCK, TIME) 其中NAME是因子的名字, STOCK表示品种,TIME表示相对当前周期的偏移值,0表示当前周期 例如,因子名为ZZZ, X := MULTIFACTOR('ZZZ', 'SZ600000', 0), 则X表示600000在当前周期对应的ZZZ的值,股票市场须用大写字母. 其中,品种和偏移值可省略.如获取主图品种当前周期的因子值,则可写为,X := MULTIFACTOR('ZZZ') | |
| MULTIFACTORRANK | 获取指定品种的因子值在所有品种中的排名 | MULTIFACTORRANK(NAME, STOCK, TIME) 表示当前品种在名为NAME的因子中的TIME周期的值在所有品种中的排名 例如,因子名为ZZZ,X:MULTIFACTORRANK('ZZZ','SZ000001',0) 表示当前品种('SZ000001')当前周期在ZZZ对应的股票集合中的排名 其中,品种和偏移值可省略.如获取主图品种当前周期的因子值排名,则可写为,X := MULTIFACTORRANK('ZZZ') | |
| PARAMCOMBCALC | 参数组合计算函数 | PARAMCOMBCALC(COUNT, NO, COND1, COND2, COND3...) 计算所有条件中,最大满足COUNT个时,第NO个组合的结果,条件的个数可以为任意个 例如,DATA:=PARAMCOMBCALC(2,4,COND1,COND1,COND1),三个条件,最大满足两个,所有的组合为COND1;COND2;COND3;COND1 and COND2; COND1 and COND3;COND2 and COND3;六种,DATA为其中第4种的结果 DATA.zh 为"1_2",为当前的组合描述 DATA.result 为当前组合的结果,相当于COND1 and COND2的值,当参数有误时结果为-1 DATA.total 所有组合的个数,为6 | |
组合模型 | SETGROUPMAXHOLDING | 设置组合模型的最大持仓 | SETGROUPMAXHOLDING(50)表示最多同时持有50支股票的仓位,默认值为3 | |
| 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表示是否有持仓1有 0无 HOLDING.BUYPRICE表示买入价格 HOLDING.POSITION表示持仓股数 HOLDING.BUYDATE表示买入的时间点 HOLDING.PROFIT表示从买入到当前的利润 HOLDING.PROFITRANK表示从买入到当前的利润的排名 HOLDING.PRICE表示当前周期的收盘价 HOLDING.HOLDINGPERIODS表示从买入到当前周期的周期数 | |
| GETHOLDINGINFOBYINDEX | 获取个股的持仓信息 | 用法和GETHOLDINGINFO一样 HOLDING = GETHOLDINGINFOBYINDEX(STOCKID);表示获取当前持仓中,STOCK所对应的股票的持仓信息. | |
| GROUPBUY | 组合模型买入 | GROUPBUY(STOCK)表示在组合模型中买入股票STOCK,该操作会将该股票记入组合模型的持仓中,并将股票加入该周期的买入面板中. | |
| GROUPBUYBYINDEX | 组合模型买入 | 用法和GROUPBUY一样 GROUPBUYINDEX(STOCKID)表示在组合模型中买入股票STOCKID. | |
| GROUPSELL | 组合模型卖出 | GROUPSELL(STOCK)表示在组合模型中卖出股票STOCK,该操作会从组合模型的持仓中删除该股票,并将股票加入该周期的卖出面板中. GROUPSELL返回一个BOOL变量,表示卖出是否成功,比如在股票停牌时,是无法卖出的 | |
| GROUPSELLBYINDEX | 组合模型卖出 | 用法和GROUPSELL一样 GROUPSELLBYINDEX(STOCKID)表示在组合模型中卖出股票STOCKID. | |
| GROUPPOSSIBLEBUY | 组合模型计算买入备选 | GROUPPOSSIBLEBUY(STOCK)表示将STOCK加入组合模型该周期中的买入备选面板中,每周期买入的股票是买入备选股票集的一个子集. | |
| GROUPPOSSIBLEBUYBYINDEX | 组合模型计算买入备选 | 用法和GROUPPOSSIBLEBUY一样 GROUPPOSSIBLEBUYBYINDEX(STOCKID)表示将STOCKID加入组合模型该周期中的买入备选面板中. | |
| GROUPPOSSIBLESELL | 组合模型计算卖出备选 | GROUPPOSSIBLESELL(STOCK)表示将STOCK加入组合模型该周期中的卖出备选面板中,每周期卖出的股票是卖出备选股票集的一个子集. | |
| GROUPPOSSIBLESELLBYINDEX | 组合模型计算卖出备选 | 用法和GROUPPOSSIBLESELL一样 GROUPPOSSIBLESELLBYINDEX(STOCKID)表示将STOCK加入组合模型该周期中的卖出备选面板中. | |
| INDYNAMICBASKET | 是否在动态股票篮子中 | INDYNAMICBASKET(STOCKID)表示将STOCKID是否在动态股票篮子中,TRUE表示在,FALSE表示不在. | |
| SETGROUPINDEX | 设置计算买入备选股票的买入顺序的扩展数据名称 | 当组合模型的运行模式为C++模式时,设置这个参数,可以在买入备选中的股票数大于可能的最大持仓时,将买入备选中的股票根据扩展数据的排名排序,并买入排名靠前的股票. 例如组合模型中有下面的代码时 SETGROUPMAXHOLDING(50); SETGROUPMODE(1); SETGROUPINDEX('RISE'); 则当某个周期持仓中已经有了40支股票,并且还有30支股票出现了买点时,组合模型会根据RISE中的排名信息,将买入备选中的30支股票进行排序,并买入排名靠前的10支股票 | |
| GETHOLDINGPROFIT | 获取组合模型当前周期持仓的浮动赢亏 | 获取组合模型当前周期持仓的浮动赢亏,例如 X := GETHOLDINGPROFIT(); 则X表示当前周期组合模型持仓的浮动赢亏 | |
| setwriteholdings | 设置自动生成持仓扩展数据 | setwriteholdings(1);//开启自动生成 setwriteholdings(0);//关闭自动生成 如果开启,在组合模型历史部分执行完成时自动生成持仓扩展数据 | |
| creategroup | 创建股票篮子 | 创建股票篮子 --- 用法: gg:=creategroup(); 返回gg为股票篮子变量 --- 遍历示例: for s in gg do begin ss:=s; end for i = 0 to groupcount(gg) - 1 do begin ss:=groupat(gg,i); end | |
| groupadd | 股票篮子添加成分股 | 添加成分股 a:=groupadd(gg,'SZ000001'); 如果添加成功则返回1,如果已存在则返回0 | |
| groupdel | 股票篮子移除成分股 | 移除成分股 a:=groupdel(gg, 'SZ000001'); 如果移除成功返回1,如果不存在则返回0 | |
| groupfind | 股票篮子判断成分股是否存在 | 判断成分股是否存在 a:=groupfind(gg, 'SZ000001'); 如果存在返回1,不存在返回0 | |
| groupclear | 股票篮子清空成分股 | 清空成分股 groupclear(gg); | |
| groupcount | 股票篮子统计成分股个数 | 统计成分股个数 gc:=groupcount(gg); | |
| groupat | 股票篮子获取股票篮子中的品种 | 获取股票篮子中第i个品种,i需要在[0,groupcount(gg)-1]范围内 s:=groupat(gg,i); 如果i超出股票池范围则返回空字符串 | |
| groupdebug | 股票篮子转为字符串 | 股票篮子转为字符串 s:=groupdebug(gg) 例如gg包含'SH600000'和'SZ000001'则返回 2[SH600000,SZ000001] | |
| splitgroupbyextdata | 按扩展数据排名拆分股票篮子 | 按扩展数据排名拆分股票篮子,只计入模型买入信号为1的股票 gg2:=splitgroupbyextdata(gg,n,i,zhibiao,offset); gg为完整股票篮子 n为拆分的总份数 i为拆分后所选择第几份,可选范围[1,n],第1分表示排名最靠前的一段 zhibiao为扩展数据名 offset为排名取值的偏移量 返回gg2为拆分后的股票篮子变量 --- 在当前周期,用(barpos+offset)的bar的时间戳去扩展数据的值序列中获取最近一个数据 | |
| splitgroupbyextdatatoprank | 按扩展数据排名拆分股票篮子取指定排名范围 | 按扩展数据排名拆分股票篮子取指定排名范围,只计入模型买入信号为1的股票 gg2:=splitgroupbyextdatatoprank(gg,start,end,zhibiao,offset); gg为完整股票篮子 start,end为排名范围,可选正数、负数、0 正数为常规排名,1表示第一名,即扩展数据值最大的 负数为倒序排名,-1表示最后一名,即扩展数据值最小的 0为自动,会自动扩展至边界,start传0表示不限制左侧,end传0表示不限制右侧 zhibiao为扩展数据名 offset为排名取值的偏移量 返回gg2为拆分后的股票篮子变量 //示例gg为[1,2,3,4,5,6,7,8,9,10] gg00:=splitgroupbyextdatatoprank(gg, 0, 0, 'c2', 0); gg00_:groupdebug(gg00);//[1,2,3,4,5,6,7,8,9,10] gg35:=splitgroupbyextdatatoprank(gg, 3, 5, 'c2', 0); gg35_:groupdebug(gg35);//[3,4,5] gg30:=splitgroupbyextdatatoprank(gg, 3, 0, 'c2', 0); gg30_:groupdebug(gg30);//[3,4,5,6,7,8,9,10] gg05:=splitgroupbyextdatatoprank(gg, 0, 5, 'c2', 0); gg05_:groupdebug(gg05);//[1,2,3,4,5] ggr5r3:=splitgroupbyextdatatoprank(gg, -5, -3, 'c2', 0); ggr5r3_:groupdebug(ggr5r3);//[6,7,8] ggr50:=splitgroupbyextdatatoprank(gg, -5, 0, 'c2', 0); ggr50_:groupdebug(ggr50);//[6,7,8,9,10] gg0r3:=splitgroupbyextdatatoprank(gg, 0, -3, 'c2', 0); gg0r3_:groupdebug(gg0r3);//[1,2,3,4,5,6,7,8] | |
| getgroupbuy | 获取买入信号篮子 | 获取买入信号篮子 gg:=getgroupbuy(offset); offset为偏移量,0为当前bar | |
| getgroupsell | 获取卖出信号篮子 | 获取卖出信号篮子 gg:=getgroupsell(offset); offset为偏移量,0为当前bar | |
| getgroupholdings | 获取持仓篮子 | 获取持仓篮子 gg:=getgroupholdings(offset); offset为偏移量,0为当前bar | |
| groupadjust | 批量调仓 | 批量调仓 a:=groupadjust(gg); gg为调仓目标股票篮子 返回调仓后相对调仓前持仓品种变动个数 | |
| getholdingprofit | 获取当前持仓收益 | 获取当前持仓收益 profit:=getholdingprofit(maxHolding); maxHolding为最大持仓品种个数,传0表示当前持仓品种个数 返回平均持仓收益,即持仓收益除以maxHolding | |
| getholdingrise | 获取当前持仓涨幅 | 获取当前持仓涨幅 profit:=getholdingrise(maxHolding); maxHolding为最大持仓品种个数,传0表示当前持仓品种个数 返回平均持仓涨幅,即持仓涨幅汇总除以maxHolding | |
| getgrouprise | 获取股票篮子涨幅 | 获取股票篮子涨幅 profit:=getgrouprise(gg,maxHolding); gg为股票篮子 maxHolding为最大持仓品种个数,传0表示当前持仓品种个数 返回平均持仓涨幅,即持仓涨幅汇总除以maxHolding | |
| getstocklist | 获取板块成分股 | 获取板块成分股 gg:=getstocklist(s); s为板块名称 返回gg为板块成分股篮子 | |
| getstocklistadjust | 获取板块成分股历史变动 | 获取板块成分股历史变动 gg:=getstocklistadjust(s); s为板块名称 返回gg为板块成分股篮子 | |
| getinitgroup | 获取模型初始股票池 | 获取模型初始股票池 gg:=getinitgroup(); 返回gg为股票池篮子 | |
交易函数 | ORDER | 通过网络端口向指定的接口单发送交易信号 | 通过网络端口向指定的接口单发送交易信号 ORDER的语法格式为ORDER(OPERATION, CHANNEL, ADDR[,BACKSET]); 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号接口单发送开空信号 BACKSET表示篮子交易的篮子名 例如:ORDER(25, 1, '192.168.1.128:5000','MYBASKET') OPERATION参数内容说明 期货六键: 0",开多 1",平昨多 2",平今多 3",开空 4",平昨空 5",平今空 期货四键: 6",平多,优先平今 7",平多,优先平昨 8",平空,优先平今 9",平空,优先平昨 期货两键: 10",卖出,如有多仓,优先平仓,优先平今,如有余量,再开空 11",卖出,如有多仓,优先平仓,优先平昨,如有余量,再开空 12",买入,如有空仓,优先平仓,优先平今,如有余量,再开多 13",买入,如有空仓,优先平仓,优先平昨,如有余量,再开多 14",买入,不优先平仓 15",卖出,不优先平仓 股票买卖: 23",股票买入 24",股票卖出 组合交易: 25",组合买入 26",组合卖出 37",卖出投资组合 | |
| PASSORDER | 函数交易 | 通过函数交易发送交易信号 PASSORDER的语法格式为PASSORDER(OPTYPE, ORDERTYPE, ACCOUNTID, ORDERCODE, PRTYPE, PRICE, VOLUME[, QUICKTRADE, strategyName, userOrderId]) 数据类型:OPTYPE,ORDERTYPE,PRTYPE,PRICE,VOLUME,QUICKTRADE是数字类型;ACCOUNTID,ORDERCODE,strategyName,userOrderId是字符串类型 (1)最少填七个参数 (2)其中[QUICKTRADE, strategyName, userOrderId] 快速下单设置参数,自定义策略名,自定义投资备注不是必填 (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",直接还款 33",信用账号股票买入 34",信用账号股票卖出 组合交易: 25",组合买入,或沪港通、深港通的组合买入 26",组合卖出,或沪港通、深港通的组合卖出 27",融资买入 28",融券卖出 29",买券还券 31",卖券还款 33",信用账号股票买入 34",信用账号股票卖出 40",期货组合开多 43",期货组合开空 46",期货组合平多,优先平今 47",期货组合平多,优先平昨 48",期货组合平空,优先平今 49",期货组合平空,优先平昨 期权交易: 50",买入开仓 51",卖出平仓 52",卖出开仓 53",买入平仓 54",备兑开仓 55",备兑平仓 56",认购行权 57",认沽行权 58",证券锁定 59",证券解锁 ETF交易: 60",申购 61",赎回 专项两融: 70",专项融资买入 71",专项融券卖出 72",专项买券还券 73",专项直接还券 74",专项卖券还款 75",专项直接还款 (4)ORDERTYPE(下单类型): 参数详细说明 1101:单股、单账号、普通、股/手 方式下单 1102:单股、单账号、普通、金额(元)方式下单(该方式只支持股票下单) 1113:单股、单账号、总资产、比例[0~1]方式下单 1123:单股、单账号、可用、比例[0~1]方式下单 1201:单股、账号组(无权重)、普通、股/手 方式下单 1202:单股、账号组(无权重)、普通、金额(元)方式下单(该方式只支持股票下单) 1213:单股、账号组(无权重)、总资产、比例[0~1]方式下单 1223:单股、账号组(无权重)、可用、比例[0~1]方式下单 2101:组合、单账号、普通、按组合股票数量 方式下单,对应VOLUME填篮子份数 2102:组合、单账号、普通、按组合股票权重 方式下单,对应VOLUME填金额(元) 2103:组合、单账号、普通、按账号可用方式下单,对应VOLUME填比例0~1 2201:组合、账号组(无权重)、普通、按组合股票数量 方式下单,对应VOLUME填篮子份数 2202:组合、账号组(无权重)、普通、按组合股票权重 方式下单,对应VOLUME填金额(元) 2203:组合、账号组(无权重)、普通、按账号可用方式下单,对应VOLUME填比例0~1 2331:组合、套利、合约价值自动套利、按组合股票数量 方式下单,对应VOLUME填篮子份数 2332:组合、套利、按合约价值自动套利、按组合股票权重 方式下单,对应VOLUME填金额(元) 2333:组合、套利、按合约价值自动套利、按账号可用方式下单,对应VOLUME填比例[0~1] 组合套利对ACCOUNTID参数的约定:accountID := 'stockAccountID,futureAccountID' 组合套利对ORDERCODE参数的约定:orderCode :='basketName,futureName' 对PRICE参数的约定为套利比例[0~2],相当于%0至200%套利 融资融券只支持ORDERTYPE:11,1101,1102,12,1201,1202 (5)ACCOUNTID(账号ID):下单的账号ID 或 账号组名;组合套利时用逗号隔开股票账号和期货账号 (6)ORDERCODE(下单代码): 两种情况:单股或单期货、港股,则该参数填合约代码;组合交易,则该参数填篮子名称,组合套利时用逗号隔开篮子名称和期货合约名 (7)PRTYPE(下单选价类型): 见python的passorder下单函数的PrType的说明 (8)PRICE(下单价格):当PRTYPE是模型价(指定价)11 时PRICE有效,其它情况下PRICE无效(注意:组合套利时该参数作套利比例) (9)VOLUME:下单数量(股OR手)、组合份数、资金比例(0~1) (10)QUICKTRADE:设置下单函数是否为快速下单,有0或1两个值,0代表不是快速下单,1代表快速下单,不填写时候默认为0 例1:PASSORDER(23,1101,'6000000201','SH600000',5, -1, 100); 表示发送账号6000000201以最新价买入100股SH600000的快速下单信号 例2:PASSORDER(25,2333,'6000000201,037429','stockbasket,IF1703',5, 1, 0.5);表示以最新价买入账号6000000201的50%的可用资金的一篮子股票stockbasket,并以100%的套利比例在期货账号037429下开空单IF1703 | |
| ACCOUNT | 获取界面传入的账号 | 获取模型交易时设置的账号,本函数仅在模型交易中可用 如:account_name:account(); | |
| ACCOUNTTYPE | 获取界面传入的账号类型 | 获取模型交易时设置的账号类型,本函数仅在模型交易中可用 如:account_type:accounttype(); 返回 'STOCK','FUTURE','OPTION'等 | |
| TACCOUNT | 获取指定账号的可用资金 | 获取指定账号的可用资金; 如:TACCOUNT(1, '37500001'); 1表示是期货账号,2为普通股票账号,3为信用账号,37500001是账号ID,返回可用资金; | |
| SLEEP | 延时 | 延时指定数量时间后再执行下条语句。 用法:SLEEP(D),D为延时的设置时间,单位为毫秒(1秒钟等于1000毫秒)。 例如:SLEEP(1000)表示等待1秒后再执行下行语句 | |
| 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,2 sell),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]); 例1:统计某账号买入的所有的当天委托量 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类型,例如涨跌停价、指定价、买1-买5价、卖1-卖5价 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的成交数量 例2:de:=deal('037055','IF','IF06',2,90);//返回最近90秒内IF06的sell的成交数量 例3:de:=deal('6000000255','SH','600004',2,90);//返回最近90秒内600004的sell的成交数量 例4:de:=deal('6000000255','SH','600004',2,90,'策略1');//返回策略1最近90秒内600004的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类型,例如涨跌停价、指定价、买1-买5价、卖1-卖5价 optname展示委托属性的中文 entrusttype委托类别 futuretradetype成交类型 realoffsetflag实际开平,主要是区分平今和平昨 coveredflag备兑标记 '0' - 非备兑,'1' - 备兑 closetodayvolume平今量, 不显示 orderpricermb委托价格 人民币 用于港股通 pricermb目前用于港股通 tradeamountrmb目前用于港股通 referencerate汇率,目前用于港股通 xttrade是否是迅投交易 | |
| DEALAMOUNTS | 取资金账号下某只股票的成交额 | 返回指定资金账号下某只股票的成交额 用法:dealamounts(AccountID , StockMarketID, Direction); AccountID, StockMarketID为字符串;Direction 为整型(1 多,2空) 例1:de:=dealamounts('6000000001','SH600000',2);//返回600000的sell的成交额 | |
| 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(orderId,accountID,accountType)表示撤销委托号为orderId的委托 orderId:委托号 accountId:资金账号 accountType:资金账号类型,'STOCK','FUTURE','CREDIT','HUGANGTONG','SHENGANGTONG' | |
| 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'; A:=contractmultiplier(contract); 将'cu06'这份合约的乘数赋值给A | |
| MARKETVALUE | 资金帐号股票市值 | 取资金账号股票市值 用法:MARKETVALUE(2,'AA')表示返回帐号'AA'的股票市值,1表示是期货账号,2为普通股票账号,3为信用账号,37500001是账号ID,返回可用资金 | |
系统函数 | PLAYSOUND | 播放音频 | 用法:PLAYSOUND(case,audiofile,duration) 参数: case:是一个bool型,表示条件是否成立; audiofie:为一个字符串,用''的时候默认是'无',系统提供提声音'Audio','Alarm','Global','deal','msg','shake','system',也可以是用户自定义的音频文件路径('F:\TEST\sound.wav'). duration:最长持续时间 示例:PLAYSOUND(close,'deal',0) | |
| speak | 播放语音消息 | 用法:speak(case,msg,duration) 参数: case:是一个bool型,表示条件是否成立 msg:消息文本 duration:最长持续时间 示例:speak(c>o,'价格上涨',0) | |
| PRINTOUT | 输出调试信息 | 输出调试信息 a:1; b:'test'; c:3.0; printout(barpos, a, b, c); | |
| setoutput | 设置调试信息输出到文件 | 设置调试信息输出到文件 setoutput(filename); filename:输出文件名,会在userdata\log目录下生成该文件 文件名为空会按默认方式生成文件名 示例: setoutput('formula1.log');//输出到userdata\log\formula1.log setoutput('');//按默认方式生成文件名 | |
| md5 | 计算md5 | md5(data); data:字符串数据 返回md5字符串 | |
| crc64 | 计算crc64 | crc64(h,data); crc64num(h,numdata); h:前一次的累计值 data:字符串数据 numdata:数值型数据 返回crc递进结果 | |
| ISEQUALV | 是否相等 | 判断两个数是否相等 用法:相等返回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. | |
| ISLESS | 是否小于 | 判断是否小于 用法:ISLESS(A,B),如果A小于B返回1,否则返回0. 例如:ISLESS(1,2)返回1. | |
| ISLESSEQUAL | 是否小于等于 | 判断是否小于等于 用法:ISLESSEQUAL(A,B),如果A小于等于B返回1,否则返回0 例如:ISLESSEQUAL(2,1),返回0. | |
| ISVALID | 是否有效 | 判断是否有效 用法:ISVALID(X) 例如:ISVALID(2/0)返回0. | |
| EXIST | 是否存在 | 判断是否存在下标中 用法:EXIST(SELLMMM[], SELLRANK),如果SELLMMM下标存在SELLRANK返回1,否则返回0 | |
| EXISTRANGE | 范围内是否存在 | 判断是否存在下标中,此函数仅用在判断下标为数字且连续的数组中,在一定范围内,是否存在某下标值对应的元素 用法:EXIST(SELLMMM[], RANGE,SELLRANK),如果SELLMMM在从最后一个下标往前数RANGE范围内存在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). | |
| 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'). | |
附加函数 | OPENMINUTES | 输出开盘时间 | 用法:OPENMINUTES(). | |
| CONST | 取常数值 | 用法:CONST(A)返回A的常数值. | |
| ISBUYORDER | 是否主动性买单 | 用法: ISBUYORDER()仅用于分笔图. | |
| ISSELLORDER | 是否主动性卖单 | 用法: ISSELLORDER()仅用于分笔图.. | |
| BUYVOL | 外盘挂单量 | 用法:BUYVOL() 返回:对应主图股票周期的外盘挂单量 | |
| SELLVOL | 内盘挂单量 | 用法:SELLVOL() 返回:对应主图股票周期的内盘挂单量 | |
| UPNDAY | 返回是否连涨周期数 | 用法:UPNDAY(CLOSE,2)判断是否连续两周期收盘价连涨. | |
| DOWNNDAY | 返回是否连跌周期数 | 用法:DOWNNDAY(CLOSE,2)判断是否连续两周期收盘价连跌. | |
| NDAY | 判断是否多周期一直有某式成立 | 用法:NDAY(CLOSE>OPEN,2)判断是否连续两周期收盘价大于开盘价. | |
| CONTRACT | 获取本地合约代码对应的交易所合约代码 | 用法:CONTRACT(S)S为合约代码与交易所代码组合代码,如'SH600000',当S为空,取当前主界面显示的交易所及合约代码. 需手工进行数据补充工作,数据缺失时返回00后缀合约代码. | |
| BUYSELLVOLS | 获取总买或总卖 | 用法:BUYSELLVOLS(MODE)MODE为0或1,0代表获取总卖,1代表获取总买. | |
| GETOPENDATE | 获取股票上市时间 | 用法:GETOPENDATE(S),S为股票代码与交易所代码组合代码,如'SH600000',当S为空,取当前主界面显示的交易所及合约代码. | |
| GETOPENAMOUNT | 获取股票开盘的成交额 | 用法:GETOPENAMOUNT,取当前主界面显示的合约代码9:25时的成交额. | |
| GETOPENVOL | 获取股票开盘的成交量 | 用法:GETOPENVOL,取当前主界面显示的合约代码9:25时的成交量. | |
| CUSTOMARG | 获取自定义变量 | 用法: customarg('var1'); 返回var1变量的字符串值 | |
PY系统函数 | ContextInfo | 策略模型全局对象 | 释义: python与底层连接,策略模型全局对象,可以用于存储自定义的全局变量 | |
| init | 初始化函数 | 释义: 初始化函数,只在整个策略开始时调用运行到一次,PY策略必须有该函数. 参数: ContextInfo:策略模型全局对象 示例: def init(ContextInfo): ContextInfo.initProfit = 0 | |
| handlebar | 行情事件函数(任务命令) | 释义: 行情事件函数,每根K线运行一次;实时行情获取状态下,先每根历史K线运行一次,再在每个TICK数据来后驱动运行一次,PY策略必须有该函数. 参数: ContextInfo:策略模型全局对象 示例: def handlebar(ContextInfo): #输出当前运行到的K线的位置 print ContextInfo.barpos | |
| ContextInfo.run_time | 设置定时器函数 | run_time(funcName, period, startTime) 释义: 设置定时器 参数: funcName:回调函数名 period:重复调用的时间间隔,'5nSecond'表示每5秒运行1次回调函数, '5nDay'表示每5天运行一次回调函数,'500nMilliSecond'表示每500毫秒运行1次回调函数 startTime:表示定时器第一次启动的时间,如果要定时器立刻启动,可以设置历史的时间 回调函数参数: ContextInfo:策略模型全局对象 示例: import time def init(ContextInfo): ContextInfo.run_time("myHandlebar", "5nSecond", "2019-10-14 13:20:00") def myHandlebar(ContextInfo): print('hello world') def handlebar(ContextInfo): pass # 此例为自2019-10-14 13:20:00后每5s运行一次myHandlebar | |
| stop | PY策略停止处理函数 | 释义: PY策略模型关闭停止前运行到的函数,复杂策略模型,如中间有起线程可通过在该函数内实现停止线程操作。PY策略可不用该函数. 参数: ContextInfo:策略模型全局对象 示例: def stop(ContextInfo): print 'strategy is stop !' | |
| ContextInfo.do_back_test | 属性:回测模型开关 | 释义: 是否回测开关,读写,默认值为False 参数: 无 返回: bool 示例: def init(ContextInfo): ContextInfo.do_back_test= True | |
| ContextInfo.data_info_level | 属性:回测系统日志级别设定 | 释义: 设定回测系统输出日志显示级别,默认是0,可设置的值有:0信息,1警告,2错误,3致命,根据设定显示大于等于该级别的日志 返回: 无 示例: def init(ContextInfo): ContextInfo.data_info_level= 2#显示错误以上的信息 | |
| ContextInfo.stockcode | 属性:当前图代码 | 释义: 当前图代码,只读 参数: 无 返回: string:对应主图代码 示例: def handlebar(ContextInfo): print ContextInfo.stockcode | |
| ContextInfo.start/ContextInfo.end | 属性:设置回测起止时间 | 释义: 回测起止时间,标准格式如 "2009-07-14 01:13:30",读写。 仅在init中设置生效,应在init中设置完毕。缺省值为策略编辑界面设定的回测时间范围。 结束时间小于等于开始时间则计算范围为空。 示例: def init(ContextInfo): ContextInfo.start = "2012-06-06 10:00:00" ContextInfo.end = "2013-08-08 14:30:00" | |
| ContextInfo.market | 当前图市场 | 释义: 当前图市场,只读 参数: 无 返回: string:对应主图市场 示例: def handlebar(ContextInfo): print ContextInfo.market | |
| ContextInfo.is_last_bar | 是否为最后一根K线 | 释义: 判定是否为最后一根K线 返回: bool:值为True 或 False 示例: def handlebar(ContextInfo): print ContextInfo.is_last_bar() | |
| ContextInfo.is_new_bar | 是否为新的K线 | 释义: 某根K线的第一个tick数据到来时,判定该K线为新的K线 返回: bool:值为True 或 False 示例: def handlebar(ContextInfo): print ContextInfo.is_new_bar() | |
| ContextInfo.is_suspended_stock | 股票是否停牌 | 释义: 判定股票是否停牌 注:需要补日K线历史数据或在init中把需判定的股票调用ContextInfo.set_unvierse设定在股票池中 盘前交易日切换后到集合竞价结束阶段,判断当日股票停牌状态需用模式1 参数: 股票市场和代码,判断模式(0:当前bar数据的停牌判断,1:当前交易日的停牌判断,可缺省,默认为0) 返回: bool:值为True停牌 或 False未停牌 示例: def init(ContextInfo): ContextInfo.set_universe(['600004.SH']) def handlebar(ContextInfo): print ContextInfo.is_suspended_stock("600004.SH",1) | |
| get_st_status | 获取历史st状态 | 释义: 获取历史st状态,本函数需要下载历史ST数据 参数: 股票代码,如:000004.SZ(可为空,为空时取主图代码) 返回: 0:正常 1:ST 2:*ST 3:PT 示例: a:get_st_status('000004.SZ'); b:get_st_status(''); | |
| ContextInfo.get_his_st_data | 获取过期ST数据 | 释义: 获取某只股票ST的历史 用法: ContextInfo.get_his_st_data('000004.SZ')//获取ST历史,需要手动补充过期ST数据 返回: dict,st历史,key为ST,*ST ,PT ,历史未ST会返回{} 示例: def init(ContextInfo): print( ContextInfo.get_his_st_data('000004.SZ')) | |
| maincontractchange | 期货主力合约是否跳变 | 释义: 判定期货主力合约是否变化,变化了返回1,没变化返回0 参数: 期货代码,如:IF00(可为空,为空时取主图代码) 返回: int 跳变日为1,其余为0 示例: b:=maincontractchange(''); bbb:b; | |
| gethismaincontract | 获取主力合约 | 释义: 获取期货主力合约 参数: 期货代码,如:IF00(可为空,为空时取主图代码) 返回: string 主力合约 示例: b:=gethismaincontract(''); bbb:b; | |
| getrealcontract | 获取季节合约真实合约 | 释义: 获取股指期货季节合约真实合约 同时可以获取主力合约比如rb00对应的真实合约 参数: 期货代码,如:IF00(可为空,为空时取主图代码) 返回: string 主力合约 示例: b:=getrealcontract(''); c:getrealcontract('ICL3'); d:getrealcontract('rb00'); bbb:b; | |
| is_sector_stock | 股票是否在板块中 | 释义: 判定股票代码是否在指定板块中 参数: sectorname:板块名 market:市场 stockCode:股票代码 返回: bool:值为True在板块中 或 False不在板块中 示例: def handlebar(ContextInfo): print is_sector_stock("沪深300","SH","600000") | |
| is_typed_stock | 股票是否属于某个类别 | 释义: 判定给定股票是否属于某个类别 用法: is_typed_stock(stocktypenum,market,stockcode) 参数: stocktypenum:number,类别标号,如股票类别标号为100003 返回: number:1为True; 0为False 示例: def handlebar(ContextInfo): print is_typed_stock(100003,'SH','600000') | |
| get_industry_name_of_stock | 是否在指定的行业分类中 | 释义: 判定给定股票代码是否在指定的行业分类中 用法: get_industry_name_of_stock(industryType, stockcode) 参数: industryType:string,行业类别,有'CSRC' 和'SW'两种;stockcode:string,形式如'stockcode.market',如'600000.SH' 返回: string:对应行业名,找不到则返回空string 示例: def handlebar(ContextInfo): print get_industry_name_of_stock('SW','600000.SH') | |
| get_ah_code | 获取A股的H股代码或H股的A股代码 | 释义: 获取A股的H股代码或H股的A股代码 参数: 转债代码,如:SH113001(可为空,为空时取主图代码) 多条数据的第几条,正股的对应多个转债时的第几条,可缺省 返回: string 示例: b:=get_ah_code('SH113001'); | |
| get_result_records | 获取回测交易统计面板对应的某个时刻的记录情况 | 释义: 获取回测交易统计面板对应的某个时刻的记录情况 用法: get_result_records(recordtype, index, contextinfo) 参数: recordtype:string,面板类型,分别有如下可选类型值: 'buys'——买入持仓 'sells'——卖出持仓 'holdings'——当前持仓 'historysums'——历史汇总 'dealdetails'——交易细明 index:number,当前主图对应K线索引 contextinfo:pythonObj,Python对象,这里必须是ContextInfo 返回: list,返回的list结构中包含0个或多个python对象 该python对象内含如下属性值: market:string,市场代码 stockcode:string,合约代码 open_close:number,期货开平1开0平;股票1买0卖 direction:number,方向 1多 -1空;回购的 1逆回购 -1正回购 trade_price:number,成交价格 current_price:number,最新价,持仓中用这个价 profit:number,持仓盈亏 position:number,仓位数量(当recordtype为holdings时,position的值表示总的持仓量,当recordtype为dealdetails时,position的值表示当天交易量) current_weight:number,仓位权重[暂无有效数据] benefit_weight:number,盈利占比权重,记录类型是'historysums'时有效 holding_periods:number,累计持仓天数,记录类型是'historysums'时有效 buy_sell_times:number,交易次数,记录类型是'historysums'时有效 commission:number,手续费 trade_balance:number,成交额或市值 operate_type:number,操作类型,记录类型是'dealdetails'时有效 trade_date:number,交易日期,毫秒标记,记录类型是'dealdetails'时有效 | |
| ContextInfo.barpos | 属性:返回当前运行到K线索引号 | 释义: 当前运行到K线索引号,只读,索引号从0开始 参数: 无 返回: number 示例: def handlebar(ContextInfo): print ContextInfo.barpos | |
| ContextInfo.time_tick_size | 属性:返回当前图K线数目 | 释义: 当前图K线数目,只读 参数: 无 返回: number 示例: def handlebar(ContextInfo): print ContextInfo.time_tick_size | |
| ContextInfo.period | 属性:获取当前周期 | 返回: string,'1d':日线,'1m':分钟线,'3m':三分钟线,'5m':5分钟线,'15m':15分钟线,'30m': 30分钟线,'1h':小时线,'1w':周线,'1mon':月线,'1q':季线, '1hy':半年线,'1y':年线 示例: def handlebar(ContextInfo): print ContextInfo.period | |
| ContextInfo.dividend_type | 属性:获取当前主图复权处理方式 | 返回: string:'none':不复权,'front':向前复权,'back':向后复权,'front_ratio':等比向前复权,'back_ratio':等比向后复权 示例: def handlebar(ContextInfo): print ContextInfo.dividend_type | |
| ContextInfo.capital | 属性:设置策略回测初始资金 | 释义: 回测初始资金,读写,默认为1000000 参数: 无 返回: number 示例: def init(ContextInfo): ContextInfo.capital = 10000000 def handlebar(ContextInfo): print ContextInfo.capital | |
| ContextInfo.benchmark | 属性:获取策略的基准 | 释义: 回测基准,只读,默认为SH000300 参数: 无 返回: String 示例: def init(ContextInfo): pass def handlebar(ContextInfo): print ContextInfo.benchmark | |
| ContextInfo.set_universe | 设定股票池 | 释义: 设定股票池 用法: ContextInfo.set_universe(stocklist) 参数: list 返回: 无 示例: def init(ContextInfo): stocklist = ['000300.SH','000004.SZ'] ContextInfo.set_universe(stocklist) | |
| Contextinfo.set_account | 设定交易账号 | 释义: 设定交易账号,并将该账号用于之后的交易主推订阅。 可多次调用以设置多个账号,应在init中进行设置完毕,init执行后再设置将不再订阅交易主推。 调用passorder传入账号为空时会使用最后一次设置的账号作为下单账号。 参数: String 返回: 无 示例: def init(ContextInfo): account=”6000000223” ContextInfo. set_account(account) | |
| ContextInfo.set_slippage | 设置滑点 | 释义: 设定策略回测滑点,默认值0.00 用法: ContextInfo.set_slippage(slippageType, slippage) 参数: slippageType: 0 tick跳数设置滑点;1 按照固定值(价格)设置滑点;2 价格比例设置滑点;slippage:滑点值 返回: 无 示例: def init(ContextInfo): ContextInfo.set_slippage(1, 0.01) | |
| ContextInfo.set_commission | 设定策略回测手续费率 | 释义: 设定策略回测各种手续费率,默认类型值0按比例,默认值0.000 用法: set_commission(commissionType, commissionList ) 参数: commissionType:number,0 按比例,1 按每手(股); commissionList:list,包含六个值,commissionList=[open_tax,close_tax,open_commission,close_commission,close_tdaycommission,min_commission] open_tax:买入印花税;close_tax:卖出印花税;open_commission:开仓手续费;close_commission:平仓(平昨)手续费;close_tdaycommission:平今手续费.min_commission:最少手续费.特:如果只填写一个参数则代表输入的参数值赋值给open_commission=close_commission=close_today_commission其他的值均为0,这是commissionType为0 返回: 无 示例: 示例1: def init(ContextInfo): commission = 0.0003 #万三 ContextInfo.set_commission(commission) 示例2: def init(ContextInfo): commissionList = [0,0.0001,0.0003,0.0003,0,5] ContextInfo.set_commission(0, commissionList ) | |
| ContextInfo.set_showbacktestindex | 设定回测系统指标是否在副图展示 | 释义: 设定回测系统指标是否在副图展示 用法: ContextInfo.set_showbacktestindex(isshow) 参数: bool 返回: 无 示例: def init(ContextInfo): isshow = False ContextInfo.set_showbacktestindex(isshow) | |
| ContextInfo.get_universe | 获取当前股票池 | 释义: 返回股票池中的股票 参数: 无 返回: list 示例: def handlebar(ContextInfo): print ContextInfo.get_universe() | |
| ContextInfo.get_instrumentdetail | 获取合约详细信息 | 释义: 根据代码获取合约详细信息 用法: ContextInfo.get_instrumentdetail(stockcode) 参数: string:股票代码,如'600000.SH' 返回: 根据stockcode返回一个dict。该字典数据key值有: ExchangeID:合约市场代码 InstrumentID:合约代码 InstrumentName:合约名称 ProductID:合约的品种ID(期货) ProductName:合约的品种名称(期货) CreateDate:上市日期(期货) OpenDate:IPO日期(股票) ExpireDate:退市日或者到期日 PreClose:前收盘价格 SettlementPrice:前结算价格 UpStopPrice:当日涨停价 DownStopPrice:当日跌停价 FloatVolumn:流通股本 TotalVolumn:总股本 LongMarginRatio:多头保证金率 ShortMarginRatio:空头保证金率 PriceTick:最小变价单位 VolumeMultiple:合约乘数(对期货以外的品种,默认是1) MainContract:主力合约标记 LastVolume: 昨日持仓量 InstrumentStatus:合约停牌状态 IsTrading:合约是否可交易 IsRecent:是否是近月合约 示例: def handlebar(ContextInfo): print( ContextInfo.get_instrumentdetail('600000.SH')) | |
| ContextInfo.get_convert_bond_info | 获取可转债正股标的 | 释义: 获取存续期内可转债正股标的代码及最新转股价 用法: ContextInfo.get_convert_bond_info(bondcode) 参数: string:可转债代码,如'110059.SH' 返回: 根据bondcode返回一个dict。该字典数据key值有: stockcode:正股标的代码 convert_price:转股价 示例: def handlebar(ContextInfo): print(ContextInfo.get_convert_bond_info('110059.SH')) | |
| ContextInfo.get_stock_name | 获取指定代码名称 | 释义: 根据代码返回名称 用法: ContextInfo.get_stock_name('stockcode') 参数: stockcode:股票代码,如'000001.SZ',缺省值' '默认为当前图代码 返回: String(GBK编码) 示例: def handlebar(ContextInfo): print ContextInfo.get_stock_name('000001.SZ') | |
| ContextInfo.get_open_date | 获取股票上市时间 | 释义: 根据代码返回代码对应股票的上市时间 用法: ContextInfo.get_open_date('stockcode') 参数: stockcode:股票代码,如'000001.SZ',缺省值' '默认为当前图代码 返回: number 示例: def handlebar(ContextInfo): print ContextInfo.get_open_date('000001SZ') | |
| ContextInfo.get_svol | 取内盘成交量 | 释义: 根据代码返回代码对应股票的内盘成交量 用法: ContextInfo.get_svol('stockcode') 参数: stockcode:股票代码,如'000001.SZ',缺省值' '默认为当前图代码 返回: String 示例: def handlebar(ContextInfo): print ContextInfo.get_svol('000001.SZ') | |
| ContextInfo.get_bvol | 取外盘成交量 | 释义: 根据代码返回代码对应股票的外盘成交量 用法: ContextInfo.get_bvol('stockcode') 参数: stockcode:股票代码,如'000001.SZ',缺省值' '默认为当前图代码 返回: String 示例: def handlebar(ContextInfo): print ContextInfo.get_bvol('000001.SZ') | |
| ContextInfo.get_bar_timetag | 当前K线对应的时间的毫秒表示数值 | 释义: 获取当前K线对应的时间的时间戳 用法: ContextInfo.get_bar_timetag(index) 参数: number:K线索引号 返回: number 示例: def handlebar(ContextInfo): index = ContextInfo.barpos print ContextInfo.get_bar_timetag(index) | |
| ContextInfo.get_tick_timetag | 当前主图品种最新分笔对应的时间的毫秒表示数值 | 释义: 获取当前主图品种最新分笔对应的时间的时间戳 用法: ContextInfo.get_tick_timetag() 返回: number 示例: def handlebar(ContextInfo): print ContextInfo.get_tick_timetag() | |
| ContextInfo.get_sector | 获取指数板块成份股 | 释义: 获取板块成份股,只支持取指数成份股 用法: ContextInfo.get_sector(sector) 参数: string:必须是 'stockmarket' 形式,如'000300.SH' 返回: list:内含成份股代码,里面股票代码为'000002.SZ'形式 示例: def handlebar(ContextInfo): print ContextInfo.get_sector('000300.SH') | |
| ContextInfo.get_industry | 获取行业成份股 | 释义: 获取行业成份股,支持申万行业和证监会行业 用法: ContextInfo.get_industry(industry) 参数: string:如'SW化工成份' 返回: list:内含成份股代码,里面股票代码为'000002.SZ'形式 示例: def handlebar(ContextInfo): print ContextInfo.get_industry('SW化工成份') | |
| ContextInfo.get_stock_list_in_sector | 获取板块成份股 | 释义: 获取板块成份股,支持客户端左侧板块列表中任意的板块,包括自定义板块 用法: ContextInfo.get_stock_list_in_sector(sectorname, timetag) 参数: sectorname:string:板块名,如'沪深300' timetag:时间:1512748800000或'20171209',可缺省,缺省时获取最新的成分,不缺省时获取对应时间的历史成分 返回: list:内含成份股代码,代码形式为'stockcode.market',如'000002.SZ' 示例: def handlebar(ContextInfo): print( ContextInfo.get_stock_list_in_sector('沪深300')) | |
| get_stock_list_in_sector | 获取板块成份股 | 释义: 获取板块成份股 用法: get_stock_list_in_sector(sector_name)->stock_list 参数: sector_name:str,板块名,如'沪深300' 返回: stock_list:list,成分股列表 示例: get_stock_list_in_sector('沪深300') | |
| add_stock_to_sector | 添加板块成分股 | 释义: 添加板块成分股 用法: add_stock_to_sector(sector, stock_code)->result 参数: sector:板块名 stock_code:品种代码,例如'000001.SZ' 返回: result:bool,操作成功为True,失败为False 示例: add_stock_to_sector('我的自选','000001.SZ') | |
| remove_stock_from_sector | 移除板块成分股 | 释义: 移除板块成分股 用法: remove_stock_from_sector(sector, stock_code)->result 参数: sector:板块名 stock_code:品种代码,例如'000001.SZ' 返回: result:bool,操作成功为True,失败为False 示例: remove_stock_from_sector('我的自选','000001.SZ') | |
| reset_sector_stock_list | 设置板块成分股 | 释义: 设置板块成分股 用法: reset_sector_stock_list(sector, stock_list)->result 参数: sector:板块名 stock_list:list,品种代码列表,例如['000001.SZ','600000.SH'] 返回: result:bool,操作成功为True,失败为False 示例: reset_sector_stock_list('我的自选',['000001.SZ','600000.SH']) | |
| get_sector_list | 获取板块目录信息 | 释义: 获取板块目录信息 用法: get_sector_list(node)->info_list 参数: node:str,板块节点名,''为顶层目录 返回: info_list:[[s1, s2, ...], [f1, f2, ...]] s为板块名,f为目录节点名,例如[['我的自选'], ['新建分类1']] 示例: get_sector_list('我的') | |
| create_sector_folder | 创建板块目录节点 | 释义: 创建板块目录节点 用法: create_sector_folder(parent_node, folder_name, overwrite)->folder_name2 参数: parent_node:str,父节点,''为'我的'(默认目录) folder_name:str,要创建的节点名 overwrite:bool,是否覆盖 如果目标节点已存在,为True时跳过,为False时在folder_name后增加数字编号,编号为从1开始自增的第一个不重复的值 返回: folder_name2:实际创建的节点名 示例: folder=create_sector_folder('我的','新建分类',False) | |
| create_sector | 创建板块 | 释义: 创建板块 用法: create_sector(parent_node, sector_name, overwrite)->sector_name2 参数: parent_node:str,父节点,''为'我的'(默认目录) sector_name:str,要创建的板块名 overwrite:bool,是否覆盖 如果目标节点已存在,为True时跳过,为False时在sector_name后增加数字编号,编号为从1开始自增的第一个不重复的值 返回: sector_name2:实际创建的板块名 示例: sector=create_sector('我的','新建板块',False) | |
| ContextInfo.get_weight_in_index | 某只股票在某指数中的绝对权重 | 释义: 获取某只股票在某指数中的绝对权重 用法: ContextInfo.get_weight_in_index(indexcode, stockcode) 参数: indexcode:string,指数代码,形式如'stockcode.market',如'000300.SH';stockcode:string,股票代码,形式如'stockcode.market',如'600004.SH' 返回: number:返回的数值单位是%,如1.6134表示权重是1.6134% 示例: def handlebar(ContextInfo): print ContextInfo.get_weight_in_index('000300.SH', '000002.SZ') | |
| ContextInfo.get_contract_multiplier | 合约乘数 | 释义: 取合约乘数 用法: ContextInfo.get_contract_multiplier(contractcode) 参数: string:合约代码,形式如'code.market',如'IF1707.IF' 返回: number 示例: def handlebar(ContextInfo): print ContextInfo.get_contract_multiplier('IF1707.IF') | |
| ContextInfo.get_risk_free_rate | 无风险利率 | 释义: 取无风险利率,用十年期国债收益率CGB10Y作无风险利率 用法: ContextInfo.get_risk_free_rate(index) 参数: number:当前图K线索引号 返回: number 示例: def handlebar(ContextInfo): index = ContextInfo.barpos print ContextInfo.get_risk_free_rate(index) | |
| ContextInfo.get_date_location | 给定日期对应的K线索引号 | 释义: 取给定日期对应的K线索引号,如给定日期小于当前图K线对应的最早的日期,结果返回0;如给定日期大于当前图K线对应的最新日期,结果返回最新K线的索引号 用法: ContextInfo.get_date_location(strdate) 参数: string:形式如'yyyymmdd',如'20170711' 返回: number 示例: def handlebar(ContextInfo): print ContextInfo.get_date_location('20170711') | |
| ContextInfo.get_slippage | 取策略设定的滑点 | 释义: 取策略设定的滑点 用法: ContextInfo.get_slippage() 参数: 无 返回: dict,key包括slippage_type,slippage 示例: def init(ContextInfo): ContextInfo.set_slippage(0.003) def handlebar(ContextInfo): print ContextInfo.get_slippage() | |
| ContextInfo.get_commission | 取策略设定的手续费率 | 释义: 取策略设定的各种手续费率 用法: ContextInfo.get_commission() 参数: 无 返回: dict,key包括commission_type,open_tax,close_tax,open_commission,close_commission, close_tdaycommission,min_commission 示例: def init(ContextInfo): ContextInfo.set_commission(0.0003) def handlebar(ContextInfo): print ContextInfo.get_commission() | |
| ContextInfo.get_net_value | 取策略回测的净值 | 释义: 取策略回测的净值 用法: ContextInfo.get_net_value(index) 参数: number 返回: number 示例: def handlebar(ContextInfo): index = ContextInfo.barpos ContextInfo.get_net_value(index) | |
| ContextInfo.get_financial_data | 取财务数据 | 释义: 取财务数据 用法1: ContextInfo.get_financial_data(fieldList,stockList,startDate,endDate,report_type = 'announce_time') 参数: fieldList 字段列表,list,如:['资产负债表.固定资产','利润表.净利润'] stockList:股票列表,list,如:['600000.SH','000001.SZ'] startDate:开始时间,string,如:'20171209' endDate:结束时间,string,如:'20171212' report_type: 时间类型,可缺省,默认是按照数据的公告期为区分取数据,设置为'report_time' 为按照报告期取数据 ,可选值:'announce_time', 'report_time' 返回: 函数根据stockList代码列表,startDate,endDate时间范围的大小范围不同的数据类型 (1)代码列表1-时间范围为1返回: pandas.Series index=字段 (2)代码列表1-时间范围为n返回: pandas.DataFrame index=时间,columns=字段 (3)代码列表n-时间范围为1返回: pandas.DataFrame index=代码,columns=字段 (4)代码列表n-时间范围为n返回: pandas.Panel items=代码,major_axis=时间,minor_axis=字段 选择按照公告期取数和按照报告期取数的区别:若某公司当年4月26日发布上年度年报,如果选择按照公告期取数,则当年4月26日之后至下个财报发布日期之间的 数据都是上年度年报的财务数据, 如果选择按照报告期取数,则上年度第4季度(上年度10月1日-12月31日)的数据就是上年度报告期的数据. 报表字段说明见vba的GETFINDATA 示例: fieldList = ['资产负债表.固定资产','利润表.净利润'] stockList = ['600000.SH','000001.SZ'] startDate = '20171209' endDate = '20171212' ContextInfo.get_financial_data(fieldList,stockList,startDate,endDate) 用法2: ContextInfo.get_financial_data(tabname,colname,market,code,report_type = 'report_time',barpos)(与用法1可同时使用) 参数: tabname:表格名称(例如'ASHAREBALANCESHEET'),string colname:字段名称,string market:市场,string code:股票代码,string barpos:当前bar的索引,number report_type: 时间类型,可缺省,默认是按照数据的公告期为区分取数据,设置为'report_time' 为按照报告期取数据 ,可选值:'announce_time', 'report_time' 返回: number 示例: def handlebar(ContextInfo): index = ContextInfo.barpos ContextInfo.get_financial_data('ASHAREBALANCESHEET','fix_assets','SH','600000',index ) | |
| ContextInfo.get_raw_financial_data | 取原始财务数据 | 释义: 取原始财务数据,与get_financial_data相比不填充每个交易日的数据 用法: ContextInfo.get_raw_financial_data(fieldList,stockList,startDate,endDate,report_type = 'announce_time') 参数: fieldList 字段列表,list,如:['资产负债表.固定资产','利润表.净利润'] stockList:股票列表,list,如:['600000.SH','000001.SZ'] startDate:开始时间,string,如:'20171209' endDate:结束时间,string,如:'20171212' report_type: 时间类型,可缺省,默认是按照数据的公告期为区分取数据,设置为'report_time' 为按照报告期取数据 ,可选值:'announce_time', 'report_time' 返回: 函数根据stockList代码列表,startDate,endDate时间范围的大小范围不同的数据类型 (1)代码列表1-时间范围为1返回: pandas.Series index=字段 (2)代码列表1-时间范围为n返回: pandas.DataFrame index=时间,columns=字段 (3)代码列表n-时间范围为1返回: pandas.DataFrame index=代码,columns=字段 (4)代码列表n-时间范围为n返回: pandas.Panel items=代码,major_axis=时间,minor_axis=字段 选择按照公告期取数和按照报告期取数的区别:若某公司当年4月26日发布上年度年报,如果选择按照公告期取数,则当年4月26日之后至下个财报发布日期之间的 数据都是上年度年报的财务数据, 如果选择按照报告期取数,则上年度第4季度(上年度10月1日-12月31日)的数据就是上年度报告期的数据. 示例: fieldList = ['ASHAREBALANCESHEET.fix_assets','ASHAREINCOME.net_profit_incl_min_int_inc'] stockList = ['600000.SH','000001.SZ'] startDate = '20200101' endDate = '20210101' ContextInfo.get_raw_financial_data(fieldList,stockList,startDate,endDate) | |
| ContextInfo.get_main_contract | 获取期货主力合约 | 释义: 获取期货主力合约 用法: ContextInfo.get_main_contract(codemarket)//获取当前主力合约 ContextInfo.get_main_contract(codemarket,date="")//获取指定日期主力合约 ContextInfo.get_main_contract(codemarket,startDate="",endDate="")//获取时间段内全部主力合约 参数: Codemarket:合约和市场,合约格式为品种名加00,如IF00.IF,zn00.SF startDate:开始日期(可以不写),如20180608 endDate:结束日期(可以不写),如20180613 返回: Str,合约代码戳 或 series,所有符合条件合约 注释:获取历史主力合约需补充数据 示例: def handlebar(ContextInfo): print ContextInfo.get_main_contract('IF00.IF') def handlebar(ContextInfo): print ContextInfo.get_main_contract('IF00.IF','20180608') def handlebar(ContextInfo): print ContextInfo.get_main_contract('IF00.IF','20180608','20180614') | |
| ContextInfo.get_his_contract_list | 获取过期合约列表 | 释义: 获取市场已退市合约 用法: ContextInfo.get_his_contract_list(market)//获取当前市场退市合约,需要手动补充过期合约列表 参数: market:市场,SH,SZ,SHO,SZO,IF等 返回: list,合约代码列表 示例: def handlebar(ContextInfo): print( ContextInfo.get_his_contract_list('IF')) def handlebar(ContextInfo): print( ContextInfo.get_his_contract_list('SHO')) | |
| ContextInfo.get_contract_expire_date | 获取期货合约到期日 | 释义: 获取期货合约到期日 用法: ContextInfo.get_contract_expire_date(codemarket) 参数: Codemarket:合约和市场,如IF00.IF,zn00.SF 返回: int,合约到期日 示例: def handlebar(ContextInfo): print( ContextInfo.get_contract_expire_date('IF00.IF')) | |
| ContextInfo.get_option_detail_data | 获取指定期权品种的详细信息 | 释义: 获取指定期权品种的详细信息 用法: ContextInfo.get_option_detail_data(optioncode) 参数: optioncode:期权代码,如'10002235.SHO',当填写空字符串时候默认为当前主图的期权品种 返回: dict, 字段 ExchangeID:期权市场代码 InstrumentID:期权代码 ProductID:期权标的的产品ID OpenDate:发行日期 ExpireDate:到期日 PreClose:前收价格 SettlementPrice:前结算价格 UpStopPrice:当日涨停价 DownStopPrice:当日跌停价 LongMarginRatio:多头保证金率 ShortMarginRatio:空头保证金率 PriceTick:最小变价单位 VolumeMultiple:合约乘数 MaxMarketOrderVolume:涨跌停价最大下单量 MinMarketOrderVolume:涨跌停价最小下单量 MaxLimitOrderVolume:限价单最大下单量 MinLimitOrderVolume:限价单最小下单量 OptUnit:期权合约单位 MarginUnit:期权单位保证金 OptUndlCode:期权标的证券代码 OptUndlMarket:期权标的证券市场 OptExercisePrice:期权行权价 NeeqExeType:全国股转转让类型 OptUndlRiskFreeRate:期权标的无风险利率 OptUndlHistoryRate:期权标的历史波动率 EndDelivDate:期权行权终止日 optType:期权类型,CALL或PUT 示例: def handlebar(ContextInfo): print( ContextInfo.get_option_detail_data('10002235.SHO')) | |
| ContextInfo.get_option_undl_data | 获取指定期权标的对应的期权品种列表 | 释义: 获取指定期权标的对应的期权品种列表 用法: ContextInfo.get_option_undl_data(undl_code_ref) 参数: undl_code_ref:期权标的代码,如'510300.SH',传空字符串时获取全部标的数据 返回: 指定期权标的代码时返回对应该标的的期权合约列表list 期权标的代码为空字符串时返回全部标的对应的品种列表的字典dict 示例: data = ContextInfo.get_option_undl_data('510300.SH') | |
| ContextInfo.get_option_list | 获取指定权列表 | 释义: 获取指定期权列表 用法: 获取历史期权需要下载过期合约列表 ContextInfo.get_option_list(undl_code,dedate,opttype,isavailable) 参数: undl_code:期权标的代码,如'510300.SH' dedate:期权到期月或当前交易日期,"YYYYMM"格式为期权到期月,"YYYYMMDD"格式为获取当前日期交易的期权 opttype:期权类型,默认值为空,如"CALL","PUT",为空时认购认沽都取。 isavailable:是否可交易,当dedate的格式为"YYYYMMDD"格式为获取当前日期交易的期权时,isavailable为True时返回当前可用,为False时返回当前和历史可用 返回: 期权合约列表list 示例: data = ContextInfo.get_option_list('510300.SH','202101',"CALL") #获取到期月份为202101的上交所510300ETF认购合约 data = ContextInfo.get_option_list('510300.SH','20210104',"CALL",True); 获取20210104当天上交所510300ETF可交易的认购合约 data = ContextInfo.get_option_list('510300.SH','20210104',"CALL",False); 获取20210104当天上交所510300ETF已经上市的认购合约(包括退市) | |
| ContextInfo.get_option_iv | 获取指定期权品种的实时隐含波动率 | 释义: 获取股票期权的实时隐含波动率 用法: ContextInfo.get_option_iv(optioncode) 参数: optioncode:期权代码,如'10003280.SHO' 返回: double, 示例: def handlebar(ContextInfo): print( ContextInfo.get_option_iv('10003280.SHO')) | |
| ContextInfo.bsm_price | 基于BS模型计算欧式期权理论价格 | 释义: 基于Black-Scholes-Merton模型,输入期权标的价格、期权行权价、无风险利率、期权标的年化波动率、剩余天数、标的分红率、计算期权的理论价格 用法: ContextInfo.bsm_price(optionType,objectPrices,strikePrice,riskFree,sigma,days,dividend) 参数: optionType:期权类型,认购:'C',认沽:'P' objectPrices:期权标的价格,可以是价格列表或者单个价格 strikePrice:期权行权价 riskFree:无风险收益率 sigma:标的波动率 days:剩余天数 dividend:分红率 返回: objectPrices为float时,返回float objectPrices为list时,返回list 计算结果最小值0.0001,结果保留4位小数,输入非法参数返回nan 示例: import numpy as np object_prices = list(np.arange(3,4,0.01)); #计算剩余15天的行权价3.5的认购期权,在无风险利率3%,分红率为0,标的年化波动率为23%时标的价格从3元到4元变动过程中期权理论价格序列 prices=ContextInfo.bsm_price('C',object_prices,3.5,0.03,0.23,15,0) print(prices); #计算剩余15天的行权价3.5的认购期权,在无风险利率3%,分红率为0,标的年化波动率为23%时标的价格为3.51元的平值期权的理论价格 price=ContextInfo.bsm_price('C',3.51,3.5,0.03,0.23,15,0) print(price); | |
| ContextInfo.bsm_iv | 基于BS模型计算欧式期权隐含波动率 | 释义: 基于Black-Scholes-Merton模型,输入期权标的价格、期权行权价、期权现价、无风险利率、剩余天数、标的分红率,计算期权的隐含波动率 optionType:期权类型,认购:'C',认沽:'P' objectPrice:期权标的价格 strikePrice:期权行权价 optionPrice:期权现价 riskFree:无风险收益率 days:剩余天数 dividend:分红率 返回: double, 示例: iv = ContextInfo.bsm_iv('C',3.51,3.5,0.0725,0.03,15); #计算剩余15天的行权价3.5的认购期权,在无风险利率3%,分红率为0时,标的现价3.51元,期权价格0.0725元时的隐含波动率 | |
| timetag_to_datetime | 时间转换 | 释义: 将毫秒时间转换成日期时间 用法: timetag_to_datetime(timetag, format) 参数: timetag:毫秒时间:1512748800000;Format:格式字符串:”%Y-%m-%d %H:%M:%S”等任意格式 返回: 返回值:string日期时间字符串 示例: timetag_to_datetime(1512748860000, '%Y%m%d %H:%M:%S') | |
| ContextInfo.get_total_share | 获取总股本 | 释义: 获取总股数 用法: ContextInfo.get_total_share(stockcode) 参数: stockcode:string,股票代码,缺省值''默认为当前图代码,如:'600000.SH' 返回: Number 示例: def handlebar(ContextInfo): print ContextInfo.get_total_share('600000.SH') | |
| ContextInfo.get_trading_dates | 获取指定合约K线对应日期时间列表 | 释义: 获取指定合约K线对应日期时间列表 用法: ContextInfo.get_trading_dates(stockcode,start_date,end_date,count,period='1d') 参数: stockcode:string,股票代码,缺省值''默认为当前图代码,如:'600000.SH' tart_date:string,开始时间,缺省值''为空时不使用,如:'20170101','20170101000000' end_date:string,结束时间,缺省值''默认为当前bar的时间,如:'20170102','20170102000000' count:int,K线个数,必须大于0,取包括end_date往前的count个K线,start_date不为空时此值无效,写为1即可 period:string,k线类型,'1d':日线,'1m':分钟线,'3m':三分钟线,'5m':5分钟线,'15m':15分钟线,'30m': 30分钟线,'1h':小时线,'1w':周线,'1mon':月线,'1q':季线, '1hy':半年线,'1y':年线 返回: List:K线周期(交易日)列表 period为日线时返回如['20170101','20170102',...]样式 其它返回如['20170101010000','20170102020000',...]样式 示例: def handlebar(ContextInfo): print ContextInfo.get_trading_dates('600000.SH','20170101','20170401',1,'1d') | |
PY行情函数 | ContextInfo.get_divid_factors | 获取除权除息日及对应的权息 | 释义: 获取除权除息日及对应的权息 用法: ContextInfo.get_divid_factors(stockcode,date) 参数: stockcode:股票代码,包含股票名和市场名,如'600000.SH' date:除权除息日,如'20180713' 可以不写 返回: 返回值:dict, key:时间戳, value:list[每股红利,每股送转,每股转赠,配股,配股价,是否股改,复权系数] 输入除权除息日非法时候返回空dict,合法时返回输入日期的对应的dict,不输入时返回查询股票的所有除权除息日及对应dict 示例: def handlebar(ContextInfo): result=ContextInfo.get_divid_factors('600000.SH','20180713') | |
| ContextInfo.get_last_volume | 获取最新流通股本 | 释义: 获取最新流通股本 用法: ContextInfo.get_last_volume(stockcode) 参数: string:必须是 'stock.market' 形式 返回: number 示例: def handlebar(ContextInfo): print ContextInfo.get_last_volume('000002.SZ') | |
| ContextInfo.get_longhubang | 获取龙虎榜数据 | 释义: 获取龙虎榜数据 用法: ContextInfo.get_longhubang(stock_list,startTime,endTime) 参数: stock_list:股票列表,list,如['600000.SH','600036.SH'] startTime:起始时间,如'20170101'; endTime:结束时间,如'20180101'; 返回: dataframe, 字段 reason:上榜原因 close:收盘价 spreadRate:涨跌幅 TurnoverVolune:成交量 Turnover_Amount:成交金额 buyTraderBooth:买方席位,datframe sellTraderBooth:卖方席位,datframe buyTraderBooth或sellTraderBooth包含字段: traderName:交易营业部名称 buyAmount:买入金额 buyPercent:买入金额占总成交占比 sellAmount:卖出金额 sellPercent:卖出金额占总成交占比 totalAmount:该席位总成交金额 rank:席位排行 direction:买卖方向 示例: def handlebar(ContextInfo): print ContextInfo.get_longhubang(['000002.SZ'],'20100101','20180101') | |
| ContextInfo.get_top10_share_holder | 获取十大股东数据 | get_top10_share_holder(self, stock_list, data_name,start_time,end_time) 释义: 获取十大股东数据 用法: ContextInfo.get_top10_share_holder(stock_list, data_name,start_time,end_time) 参数: data_name:flow_holder或holder stock_list:股票列表,list,如['600000.SH','600036.SH'] startTime:起始时间,如'20170101'; endTime:结束时间,如'20180101'; 返回: series(一只股票一个季度), dataframe(多只股票一个季度数据 或者 一只股票多个季度数据) panel(多只股票多个季度) 字段 holdName:股东名称 holderType:持股类型 holdNum:持股数量, changReason:变动原因, holdRatio:持股比例, stockType:股份性质, rank:持股排名, status:持股状态, changNum:增减数量, changeRatio:增减比例 示例: def handlebar(ContextInfo): print ContextInfo.get_top10_share_holder(['000002.SZ'],'flow_holder','20100101','20180101') | |
| ContextInfo.get_full_tick | 获取分笔数据 | 释义: 获取最新分笔数据 用法: ContextInfo.get_full_tick(stock_code=[]) 参数: stock_code:默认参数,合约代码列表,如['600000.SH','600036.SH']不指定时为当前主图合约 返回: 根据stock_code返回一个dict,该字典的key值是股票代码,其值仍然是一个dict,在该dict中存放股票代码对应的最新的数据。该字典数据key值有: lastPrice:最新价 amount:成交额 volume:成交量 pvolume:前成交量 openInt:持仓量 stockStatus:股票状态 lastSettlementPrice:最新结算价 open:开盘价 high:最高价 low:最低价 settlementPrice:结算价 lastClose:收盘价 askPrice:列表,卖价五档 bidPrice:列表,买价五档 askVol:列表,卖量五档 bidVol:列表,买量五档 timetag:时间戳 示例: def handlebar(ContextInfo): if not ContextInfo.is_last_bar(): return Result=ContextInfo.get_full_tick(['600000.SH','000001.SZ']) | |
| ContextInfo.get_north_finance_change | 获取北向数据 | 释义: 获取对应周期的北向数据 用法: ContextInfo.get_north_finance_change(period) 参数: period:1d 日线数据 1m 一分钟数据 返回: 根据period返回一个dict,该字典的key值是北向数据的时间戳,其值仍然是一个dict,其值的key值是北向数据的字段类型,其值是对应字段的值。该字典数据key值有: hgtNorthBuyMoney:HGT北向买入资金 hgtNorthSellMoney:HGT北向卖出资金 hgtSouthBuyMoney:HGT南向买入资金 hgtSouthSellMoney:HGT南向卖出资金 sgtNorthBuyMoney:SGT北向买入资金 sgtNorthSellMoney:SGT北向卖出资金 sgtSouthBuyMoney:SGT南向买入资金 sgtSouthSellMoney:SGT南向卖出资金 hgtNorthNetInFlow:HGT北向资金净流入 hgtNorthBalanceByDay:HGT北向当日资金余额 hgtSouthNetInFlow:HGT南向资金净流入 hgtSouthBalanceByDay:HGT南向当日资金余额 sgtNorthNetInFlow:SGT北向资金净流入 sgtNorthBalanceByDay:SGT北向当日资金余额 sgtSouthNetInFlow:SGT南向资金净流入 sgtSouthBalanceByDay:SGT南向当日资金余额 示例: def handlebar(ContextInfo): ContextInfo.get_north_finance_change('1d') | |
| ContextInfo.get_hkt_statistics | 获取北向数据持股统计 | 释义: 获取指定品种的持股统计 用法: ContextInfo.get_hkt_statistics(stockcode) 参数: string:必须是 'stock.market' 形式 返回: 根据stockcode返回一个dict,该字典的key值是北向持股统计数据的时间戳,其值仍然是一个dict,其值的key值是北向持股统计数据的字段类型,其值是对应字段的值,该字典数据key值有: stockCode:股票代码 ownSharesAmount:持股数量,单位:股 ownSharesMarketValue:持股市值,单位:元 ownSharesRatio:持股数量占比,单位:% ownSharesNetBuy:净买入,单位:元,浮点数 (当日持股-前一日持股) 示例: def handlebar(ContextInfo): ContextInfo.get_hkt_statistics('600000.SH') | |
| ContextInfo.get_hkt_details | 获取北向数据持股明细 | 释义: 获取指定品种的持股明细 用法: ContextInfo.get_hkt_details(stockcode) 参数: string:必须是 'stock.market' 形式 返回: 根据stockcode返回一个dict,该字典的key值是北向持股明细数据的时间戳,其值仍然是一个dict,其值的key值是北向持股明细数据的字段类型,其值是对应字段的值,该字典数据key值有: stockCode:股票代码 ownSharesCompany:机构名称 ownSharesAmount:持股数量,单位:股 ownSharesMarketValue:持股市值,单位:元 ownSharesRatio:持股数量占比,单位:% ownSharesNetBuy:净买入,单位:元,浮点数 (当日持股-前一日持股) 示例: def handlebar(ContextInfo): ContextInfo.get_hkt_details('600000.SH') | |
| ContextInfo.load_stk_list | 获取一篮子证券编码数据 | 释义: 获取一篮子证券编码数据 txt文件信息格式:600000.SH,600004.SH,600006.SH,或600000.SH 600004.SH 600006.SH (最后一个字段600006.SH需要增加分隔符) csv文件信息格式:600000.SH,600004.SH,600006.SH,(最后一个600006.SH需要增加分隔符) 用法: ContextInfo.load_stk_list(filePath,fileName) 参数: filePath:文件路径 fileName:文件名(比如:a.txt , b.csv) 返回: 返回文档内容 示例: def handlebar(ContextInfo): ContextInfo.load_stk_list('D:/data/','list.txt') | |
| ContextInfo.load_stk_vol_list | 获取一篮子证券编码及数量数据 | 释义: 获取一篮子证券编码及数量数据 txt文件信息格式:600000.SH,100,600004.SH,200,或600000.SH 100 600004.SH 200 (篮子数据成对存在(前面是合约代码,后面是数量)且数量字段200后需要增加分隔符) csv文件信息格式:600000.SH,100,600004.SH,200,(篮子数据成对存在(前面是合约代码,后面是数量)且数量字段200后需要增加分隔符)) 用法: ContextInfo.load_stk_vol_list(filePath,fileName) 参数: filePath:文件路径 fileName:文件名(比如:a.txt , b.csv) 返回: 返回文档内容 示例: def handlebar(ContextInfo): ContextInfo.load_stk_vol_list('D:/data/','list.txt') | |
| ContextInfo.get_market_data | 获取行情数据 | 释义: 获取历史行情数据 用法: ContextInfo.get_market_data(fields,stock_code=[],start_time='',end_time='',skip_paused=True,period='1d',dividend_type='none',count=-1) 参数: fields:字段列表,list,里面可放字段:'open':开 'high':高 'low':低 'close':收 'volume':成交量 'amount':成交额 'settle':结算价 'quoter':分笔数据,该字段与别的字段互斥不能放在同一个list中 stock_code:默认参数,合约代码列表,合约格式[code.market,code.market,...,code.market],如['600000.SH','600036.SH'],不指定时为当前图合约 start_time:默认参数,开始时间,为空时取最早交易bar,格式'20171209'或'20171209010101' end_time:默认参数,结束时间,为空时取最后交易bar skip_paused:默认参数,停牌数据延续前值 False,停牌数据nan period:默认参数,k线类型,'tick':分笔线(只用于获取'quoter'字段数据),'realtime':实时线,'1d':日线,'md':多日线,’1m’:分钟线,'3m':三分钟线,'5m':5分钟线,'15m':15分钟线,'30m': 30分钟线,'mm':多分钟线,'1h':小时线,'mh':多小时线,'1w':周线,'1mon':月线,'1q':季线, '1hy':半年线,'1y':年线 dividend_type: 默认参数,除复权, 'none': 不复权,'front':向前复权, 'back':向后复权, 'front_ratio': 等比向前复权,'back_ratio': 等比向后复权 count:默认参数,大于等于0时,效果与get_history_data保持一致,且能实现取多字段,无需设置股票池,若指定了start_time,end_time,则对start_time,end_time的区间内的数据取最后不多于conut条 注:当start_time,end_time同时为空时取当前bar,相等时为时间1 特别的,默认参数需带上参数名方可生效,调用方式与python别无二致 返回: 函数根据fields字段列表,stock_code合约代码列表,start_time,end_time 时间范围,count的设定的不同返回不同的数据类型 Count>=0 (等同于时间n) (1)合约代码列表为1-时间范围为1-字段列表为1返回: number (2)合约代码列表为1-时间范围为1返回: pandas.Series index=字段 (3)合约代码列表为1-时间范围为n返回: pandas.DataFrame index=时间,columns=字段 (4)合约代码列表为n-时间范围为1返回: pandas.DataFrame index=代码,columns=字段 (5)合约代码列表为n-时间范围为n返回: pandas.Panel items=代码,major_axis=时间,minor_axis=字段 当fields是['quoter'],period='tick'时函数获取分笔数据,返回一个dict 该字典数据key值有: lastPrice:最新价 amount:成交额 volume:成交量 pvolume:前成交量 openInt:持仓量 stockStatus:股票状态 lastSettlementPrice:最新结算价 open:开盘价 high:最高价 low:最低价 settlementPrice:结算价 lastClose:收盘价 askPrice:列表,卖价五档 bidPrice:列表,买价五档 askVol:列表,卖量五档 bidVol:列表,买量五档 注: 时间区间:两边闭区间 示例: def handlebar(ContextInfo): Result=ContextInfo.get_market_data(['open','high','low','close'],stock_code=['600000.SH'],start_time='20170101',end_time='20170102',skip_paused=True,period='1d',dividend_type='none') | |
| ContextInfo.get_market_data_ex | 获取行情数据第二版 | 释义: 第二版获取行情数据函数,在之前的基础上简化了内部流程 用法: ContextInfo.get_market_data_ex(fields=[], stock_code=[], period='follow', start_time='', end_time='', count=-1, dividend_type='follow', fill_data=True, subscribe=True) 参数: fields:list,字段列表,对不同周期的数据取值范围不同 默认为空list,代表所有字段 ----- stock_code:list,合约代码列表 period:str,周期,默认为'follow',为当前主图周期 可选范围: 'tick':分笔数据 '1m'、'5m'、'15m'等分钟周期 '1d':日线数据 'l2quote':Level2行情快照 'l2quoteaux':Level2行情快照补充 'l2order':Level2逐笔委托 'l2transaction':Level2逐笔成交 'l2transactioncount':Level2大单统计 'l2orderqueue':Level2委买委卖队列 ----- start_time:开始时间,为空视为最早 end_time:结束时间,为空视为最新 count:数据最大个数,-1视为不做个数限制 时间格式为'20201231'或'20201231093000' ----- dividend_type:复权方式,默认为'follow',为当前主图复权方式 可选范围: 'none':不复权 'front':前复权 'back':后复权 'front_ratio': 等比前复权 'back_ratio': 等比后复权 ----- fill_data:停牌填充方式,默认为True(暂不可用) ----- subscribe:订阅数据开关,默认为True 设置为False时不做数据订阅,只读取本地已有数据 返回: {code1: data1, code2: data2, ...} code:str,合约代码 data:pd.DataFrame,数据集,index为字符串格式的时间序列,columns为数据字段 示例: data = ContextInfo.get_market_data_ex( ['open', 'high', 'low', 'close'], ['000300.SH'], period='1d' , start_time='', end_time='', count=-1 , dividend_type='follow', fill_data=True , subscribe = True ) | |
| ContextInfo.get_local_data | 从本地获取行情数据 | 释义: 获取历史行情数据 用法: ContextInfo.get_local_data(stock_code,start_time='',end_time='',period='1d',divid_type='none',count=-1) 参数: stock_code:默认参数,合约代码code.market不指定时为当前图合约 start_time:默认参数,开始时间,格式'20171209'或'20171209010101' end_time:默认参数,结束时间,格式同start_time period:默认参数,k线类型,'tick':分笔线(只用于获取'quoter'字段数据),'realtime': 实时线,'1d': 日线,'md': 多日线,’1m’: 分钟线,'3m': 三分钟线,'5m': 5分钟线,'15m': 15分钟线,'30m': 30分钟线,'mm': 多分钟线,'1h': 小时线,'mh': 多小时线,'1w': 周线,'1mon': 月线,'1q': 季线, '1hy': 半年线,'1y': 年线 divid_type: 默认参数,除复权,'none': 不复权,'front': 向前复权,'back': 向后复权,'front_ratio': 等比向前复权,'back_ratio': 等比向后复权 count:默认参数,大于等于0时,若指定了start_time,end_time,此时以end_time为基准向前取count条;若start_time,end_time缺省,默认取本地数据最新的count条数据;若start_time,end_time,count都缺省时,默认取本地全部数据 特别的,默认参数需带上参数名方可生效,调用方式与python别无二致 返回: 返回一个dict 键值为timetag value为另一个dict(valuedict) period='tick'时函数获取分笔数据, valuedict字典数据key值有: lastPrice:最新价 amount:成交额 volume:成交量 pvolume:前成交量 openInt:持仓量 stockStatus:股票状态 lastSettlementPrice:最新结算价 open:开盘价 high:最高价 low:最低价 settlementPrice:结算价 lastClose:收盘价 askPrice:列表,卖价五档 bidPrice:列表,买价五档 askVol:列表,卖量五档 bidVol:列表,买量五档 period 为其他值时, valuedict字典数据key值有: amount:成交额 volume:成交量 open:开盘价 high:最高价 low:最低价 close:收盘价 注: 时间区间:两边闭区间 示例: data=ContextInfo.get_local_data(stock_code='600000.SH',start_time='20170101',end_time='20171231',period='1d',divid_type='none') | |
| ContextInfo.get_history_data | 获取行情数据 | 释义: 获取历史行情数据 用法: ContextInfo.get_history_data(len, period, field, dividend_type='none', skip_paused=True) 参数: len:number,需获取的历史数据长度 period:string,需获取的历史数据的周期,支持'tick':分笔线,'realtime':实时线 '1d':日线,'md':多日线,'1m':1分钟线,'3m':3分钟线,'5m':5分钟线,'15m':15分钟线 '30m': 30分钟线,'mm':多分钟线,'1h':小时线,'mh':多小时线,'1w':周线, '1mon':月线,'1q':季线, '1hy':半年线, '1y':年线, field:string,支持'open','high','low','close','quoter'(结构见get_market_data) dividend_type: 默认参数,除复权, 'none': 不复权,'front':向前复权, 'back':向后复权, 'front_ratio': 等比向前复权,'back_ratio': 等比向后复权 skip_paused:bool,是否停牌填充,默认填充 返回:一个字典dict结构,key为stockcode.market,value 为行情数据list,list中第0位为最早的价格,第1位为次早价格,依次下去. 示例: def init(ContextInfo): ContextInfo.set_universe(['000300.SH','000004.SZ']) def handlebar(ContextInfo): #获取股票池中所有股票的最近两日的收盘价 hisdict = ContextInfo.get_history_data(2,'1d','close') for k, v in hisdict.items(): if len(v)>1: print( k,':',v[1]-v[0]) #今日涨幅 | |
| ContextInfo.get_turnover_rate | 获取换手率数据 | 释义: 获取换手率 使用之前需要下载股本数据(在财务数据下载中)以及日线数据 如果不补充股本数据,将使用最新流通股本计算历史换手率,可能会造成历史换手率不正确 用法: ContextInfo.get_turnover_rate(stock_list,startTime,endTime) 参数: stock_list:股票列表,list,如['600000.SH','000001.SZ'] startTime:起始时间,如'20170101'; endTime:结束时间,如'20180101'; 返回: dataframe, 示例: def handlebar(ContextInfo): print ContextInfo.get_turnover_rate(['000002.SZ'],'20170101','20180101') | |
| get_etf_info | 获取ETF申赎清单数据 | 释义: 根据ETF基金代码获取ETF申赎清单及对应成分股数据 用法: get_etf_info(stockcode) 参数: stockcode:ETF基金代码(如"510050.SH") 返回: etfCode:ETF代码 etfExchID:ETF市场 prCode:基金申赎代码 cashBalance:现金差额(单位:元) maxCashRatio:现金替代比例上限 reportUnit:最小申购、赎回单位(单位:份) name:基金名称 navPerCU:最小申购、赎回单位净值(单位:元) nav:基金份额净值(单位:元) ecc:预估现金差额(单位:元) needPublish:是否需要公布IOPV(1:是,0:否) enableCreation:是否允许申购(1:是,0:否) enableRedemption:是否允许赎回(1:是,0:否) creationLimit:申购上限(单位:份,0:不限制) redemptionLimit:赎回上限(单位:份,0: tradingDay:交易日期(格式 YYYYMMDD) preTradingDay:前交易日期(格式 YYYYMMDD) stocks:成分股列表 exchangeID:ETF基金市场代码 etfCode:ETF基金代码 etfName:ETF基金名称 componentExchID:成份股市场代码 componentCode:成份股代码 componentName:成份股名称 componentVolume:成份股数量 ReplaceFlag:替代标记(48:禁止替代49:允许替代50:必须替代51:替补替代) ReplaceRatio:溢价比率 ReplaceBalance:替代金额 示例: get_etf_info("510050.SH") #获取ETF基金代码为511050的全部ETF申赎清单数据 | |
| get_etf_iopv | 获取ETF的基金份额参考净值 | 释义: 根据ETF基金代码获取ETF的基金份额参考净值 用法: get_etf_iopv(stockcode) 参数: stockcode:ETF基金代码(如"510050.SH") 返回: IOPV:基金份额参考净值 示例: get_etf_iopv("510050.SH") | |
| get_market_time | 获取指定市场的最新的时间 | 释义: 根据指定的市场,获取对应的市场的最新的时间 用法: get_market_time(market) 参数: market:市场代码(如"SH") 返回: 市场最新时间 示例: get_market_time("SH") | |
| download_history_data | 下载合约的行情数据 | 释义: 下载指定合约代码指定周期对应时间范围的行情数据 用法: download_history_data(stockcode, period, startTime, endTime) #提供同功能的函数down_history_data,以兼容旧版本的函数名 down_history_data(stockcode, period, startTime, endTime) 参数: stockcode:string,形式如'stkcode.market',如'600000.SH'; period:string,K线周期类型,'tick':分笔线,'1d':日线,'1m':分钟线,'5m':5分钟线 startTime, endTime:string, 起止时间,"20200101"或"20200101093000",可以为空 示例: download_history_data("600000.SH", "1d", "", "") | |
| ContextInfo.subscribe_quote | 订阅行情数据 | 释义: 订阅行情数据 支持订阅level-2特色指标快照,该项接口需要额外开通level-2增强版权限 用法: ContextInfo.subscribe_quote(stock_code, period='follow', dividend_type='follow', result_type='', callback=None) 参数: stock_code:str,合约代码 period:str,周期,默认为'follow',为当前主图周期 可选范围: 'tick':分笔数据 '1m'、'5m'、'15m'等分钟周期 '1d':日线数据 'l2quote':Level2行情快照 'l2quoteaux':Level2行情快照补充 'l2order':Level2逐笔委托 'l2transaction':Level2逐笔成交 'l2transactioncount':Level2大单统计 'l2orderqueue':Level2委买委卖队列 ----- dividend_type:复权方式,默认为'follow',为当前主图复权方式 可选范围: 'none':不复权 'front':前复权 'back':后复权 'front_ratio': 等比前复权 'back_ratio': 等比后复权 ----- result_type:返回数据格式 可选范围: 'DataFrame'或''(默认): 返回{code: data},data为pd.DataFrame数据集,index为字符串格式的时间序列,columns为数据字段 'dict': 返回{code: {k1: v1, k2: v2, ...}},k为数据字段名,v为字段值 'list': 返回{code: {k1: [v1], k2: [v2], ...}},k为数据字段名,v为字段值 ----- callback:数据推送回调 示例: def on_quote(datas): print(datas) datas:{code: data} code:合约代码 data:参考result_type字段说明 ----- 返回: int,订阅号,可用unsubscribe_quote做反订阅 示例: def on_quote(datas): print(datas) ContextInfo.subscribe_quote('000300.SH', '1d', 'follow', on_quote) | |
| ContextInfo.subscribe_whole_quote | 订阅全推数据 | 释义: 订阅全推数据 全推数据只有分笔周期,每次增量推送数据有变化的品种 用法: ContextInfo.subscribe_whole_quote(code_list, callback = None) 参数: code_list:list([str, str, ...]),市场代码列表,如['SH', 'SZ'],或品种列表,如['600000.SH','000001.SZ'] ----- callback:数据推送回调 示例: def on_quote(datas): print(datas) datas:{code: data} code:合约代码 data:dict,{field: value},field为数据各字段名,value为字段值 ----- 返回: int,订阅号,可用unsubscribe_quote做反订阅 示例: def on_quote(datas): print(datas) ContextInfo.subscribe_whole_quote(['SH', 'SZ'], on_quote) | |
| ContextInfo.unsubscribe_quote | 反订阅行情数据 | 释义: 反订阅行情数据 用法: ContextInfo.unsubscribe_quote(subId) 参数: subId:行情订阅返回的订阅号 示例: ContextInfo.unsubscribe_quote(subId) | |
| ContextInfo.get_all_subscription | 获取当前所有的行情订阅信息 | 释义: 获取当前所有的行情订阅信息 用法: ContextInfo.get_all_subscription() 返回: dict,订阅信息,{'func': func, ...} func:订阅方式 -------- func为'subscribe_quote'时: stock_code:合约代码 period:周期 dividend_type:除权方式 -------- func为'subscribe_whole_quote'时: code_list:代码列表 示例: data = ContextInfo.get_all_subscription() | |
PY绘图函数 | ContextInfo.paint | 在界面上画图 | 释义: 在界面上画图 用法: ContextInfo.paint(name,value,index, drawstyle, color='', limit='') 参数: name:string,需显示的指标名 value:number,需显示的数值 index:number,显示索引位置,填-1表示,按主图索引显示 drawstyle:number,线型,0 曲线;2 颜色柱状线(以零轴为中心画彩色棒状线,零轴下为阴线颜色,零轴上为阳线颜色);42 非负柱状线 color:string ,颜色(不填默认为白色)目前支持一下几种颜色: blue(蓝),brown(棕) ,cyan(蓝绿), green(绿) ,magenta(品红), red(红) white(白) ,yellow(黄) limit: string,画线控制,noaxis(不显示Y轴),nodraw(不划线) 返回: 无 示例: def handlebar(ContextInfo): close = ContextInfo.get_market_data(['close']) ContextInfo.paint('close',value,-1,0, 'white','nodraw') | |
| ContextInfo.draw_text | 显示文字 | 释义: 在图形上显示文字 用法: ContextInfo.draw_text(cond,height,text,limit='') 参数: cond:bool,条件 height:number,显示文字的高度位置 text:string,显示的文字 limit: string,画线控制,noaxis(不显示Y轴),默认显示Y轴 返回: 无 示例: def handlebar(ContextInfo): close = ContextInfo.get_market_data(['close']) ContextInfo.draw_text(1>0,close,"收盘价") | |
| ContextInfo.draw_number | 显示数字 | 释义: 在图形上显示数字 用法: ContextInfo.draw_number(cond,height,number,precision,limit='') 参数: cond:bool,条件 height:number,显示文字的高度位置 text:string,显示的数字 precision:为小数显示位数(取值范围0-7) limit: string,画线控制,noaxis(不显示Y轴),默认显示Y轴 返回: 无 示例: def handlebar(ContextInfo): close = ContextInfo.get_market_data(['close']) ContextInfo.draw_number(1>0,close,66,1) | |
| ContextInfo.draw_vertline | 画垂直线 | 释义: 在数字1和数字2之间绘垂直线 用法: ContextInfo.draw_vertline(cond,number1,number2,color='',limit='') 参数: cond:bool,条件 number1:number, 数字1 number1:number, 数字2 color:string,颜色 limit: string,画线控制,noaxis(不显示Y轴),默认显示Y轴 返回: 无 示例: def handlebar(ContextInfo): close = ContextInfo.get_market_data(['close']) open = ContextInfo.get_market_data(['open']) ContextInfo.draw_vertline(1>0,close,open,"cyan") | |
| ContextInfo.draw_icon | 画图标 | 释义: 在图形上绘制小图标 用法: ContextInfo.draw_icon(cond,height,type,limit='') 参数: cond:bool,条件 height:number,图标的位置 type:number,图标的类型(1椭圆,0矩形) limit: string,画线控制,noaxis(不显示Y轴),默认显示Y轴 返回: 无 示例: def handlebar(ContextInfo): close = ContextInfo.get_market_data(['close']) ContextInfo.draw_icon(1>0,close,0) | |
PY引用函数 | ext_data_rank | 引用的扩展数据的数值在所有品种中排名 | 释义: 返回引用的扩展数据的数值在所有品种中排名 用法: ext_data_rank(extdataname,stockcode,deviation,ContextInfo) 参数: extdataname:string,扩展数据名 stockcode:string,形式如'stkcodemarket',如'600000.SH' deviation:number,K线偏移,0 不偏移,N 向右偏移N,-N向左偏移N ContextInfo:pythonObj,Python对象,这里必须是ContextInfo 返回: number 示例: def handlebar(ContextInfo): print ext_data_rank('mycci','600000.SH',0,ContextInfo) | |
| ext_data | 引用扩展数据 | 释义: 引用扩展数据 用法: ext_data(extdataname,stockcode,deviation,contextinfo) 参数: extdataname:string,扩展数据名 stockcode:string,形式如'stkcodemarket',如'600000.SH' deviation:number,K线偏移,0 不偏移,N 向右偏移N,-N向左偏移N contextinfo:pythonObj,Python对象,这里必须是ContextInfo 返回:number 示例: def handlebar(ContextInfo): print ext_data('mycci','600000.SH',0,ContextInfo) | |
| ext_data_rank_range | 引用的扩展数据的数值在指定时间区间内所有品种中排名 | 释义: 返回引用的扩展数据的数值在指定时间区间内所有品种中排名 用法: ext_data_rank_range(extdataname,stockcode,begintime,endtime,contextinfo) 参数: extdataname:string,扩展数据名 stockcode:string,形式如'stkcodemarket',如'600000.SH' begintime:string,区间的起始时间(包括该时间点在内)格式为"2016-08-02 12:12:30" endtime:string,区间的结束时间(包括该时间点在内)格式为"2017-08-02 12:12:30" contextinfo:pythonObj,Python对象,这里必须是ContextInfo 返回: pythonDict 示例: def handlebar(ContextInfo): print ext_data_rank_range('mycci','600000.SH',"2016-08-02 12:12:30","2017-08-02 12:12:30",ContextInfo) | |
| ext_data_range | 引用扩展数据在指定时间区间内的值 | 释义: 引用扩展数据在指定时间区间内的值 用法: ext_data_range(extdataname,stockcode,begintime,endtime,contextinfo) 参数: extdataname:string,扩展数据名 stockcode:string,形式如'stkcodemarket',如'600000.SH' begintime:string,区间的起始时间(包括该时间点在内)格式为"2016-08-02 12:12:30" endtime:string,区间的结束时间(包括该时间点在内)格式为"2017-08-02 12:12:30" contextinfo:pythonObj,Python对象,这里必须是ContextInfo 返回: pythonDict 示例: def handlebar(ContextInfo): print ext_data_range('mycci','600000.SH',"2016-08-02 12:12:30","2017-08-02 12:12:30",ContextInfo) | |
| ext_index_data | 引用的参数优化扩展数据在指定因子区间内的值 | 释义: 引用的参数优化扩展数据在指定因子区间内的值 用法: ext_index_data(extdataname,stockcode,indexname,begin,end,ContextInfo) 参数: extdataname:string,扩展数据名 stockcode:string,形式如'stkcodemarket',如'600000.SH' indexname:string,指标名称 begin,end:number,因子区间的起始值 ContextInfo:pythonObj,Python对象,这里必须是ContextInfo 返回: number 示例: def handlebar(ContextInfo): print ext_index_data('ar_m','600000.SH','ar',2,30,ContextInfo) | |
| get_factor_value | 引用因子数据 | 释义: 引用因子数据 get_factor_value(factorname,stockcode,deviation,contextinfo) 参数: factorname:string,因子名 stockcode:string,形式如'stkcodemarket',如'600000.SH' deviation:number,K线偏移,0 不偏移,N 向右偏移N,-N向左偏移N contextinfo:pythonObj,Python对象,这里必须是ContextInfo 返回: number 示例: def handlebar(ContextInfo): print get_factor_value('zzz','600000.SH',0,ContextInfo) | |
| get_factor_rank | 引用的因子数据的数值在所有品种中排名 | 释义: 返回引用的因子数据的数值在所有品种中排名 用法: get_factor_rank(factorname,stockcode,deviation,contextinfo) 参数: factorname:string,因子名 stockcode:string,形式如'stkcodemarket',如'600000.SH' deviation:number,K线偏移,0 不偏移,N 向右偏移N,-N向左偏移N contextinfo:pythonObj,Python对象,这里必须是ContextInfo 返回: number 示例: def handlebar(ContextInfo): print get_factor_rank('zzz','600000.SH',0,ContextInfo) | |
| call_vba | 引用VBA模型运行结果 | 释义: 返回引用的VBA模型运行的结果 注:使用该函数时需补充好本地K线或分笔数据 用法: call_vba(factorname,stockcode,[period,dividend_type,barpos,]contextinfo) 参数: factorname:string,模型名及引用变量,如"MA.ma1" stockcode:string,形式如'stkcode.market',如'600000.SH'; period:string,K线周期类型,可缺省,默认为当前主图周期线型,'tick':分笔线,'1d':日线,'1m':分钟线,'3m':三分钟线,'5m':5分钟线,'15m':15分钟线,'30m': 30分钟线,'1h':小时线,'1w':周线,'1mon':月线,'1q':季线, '1hy':半年线,'1y':年线 dividend_type::string,除复权,可缺省,默认当前图复权方式,'none': 不复权,'front':向前复权, 'back':向后复权, 'front_ratio': 等比向前复权,'back_ratio': 等比向后复权 barpos:number,对应bar下标,可缺省,默认当前主图调用到的bar的对应下标 contextinfo:pythonObj,Python对象,这里必须是ContextInfo 返回: number 示例: def handlebar(ContextInfo): print call_vba('MA.ma1','600036.SH',ContextInfo) | |
| call_formula | 调用VBA组合模型 | 释义: python调用组合模型 返回GruopModelInfo结构体 注:使用该函数时需补充好本地K线或分笔数据 用法: call_formula(formulaName, code, period, divideType,basket , argsDict,startime = "",endTime = "", count = -1) 参数: formulaName:string,组合模型名 stockcode:string,组合模型主图代码 形式如'stkcode.market',如'000300.SH'; period:string,K线周期类型,可缺省,默认为当前主图周期线型,'tick':分笔线,'1d':日线,'1m':分钟线,'3m':三分钟线,'5m':5分钟线,'15m':15分钟线,'30m': 30分钟线,'1h':小时线,'1w':周线,'1mon':月线,'1q':季线, '1hy':半年线,'1y':年线 dividend_type:string,除复权,可缺省,默认当前图复权方式,'none': 不复权,'front':向前复权, 'back':向后复权, 'front_ratio': 等比向前复权,'back_ratio': 等比向后复权 basket:dict,组合模型的股票池权重,形如 {'SH600000' : 0.06, 'SZ000001' : 0.01} argsDict:dict,组合模型的入参,{参数名:参数值},形如{'a':1}; startTime:string,缺失参数,组合模型运行起始时间,形如:'20200101'; endTime:string,缺失参数,组合模型运截止时间,形如:'20200101'; count:int,缺省参数,组合模型运行范围为向前count根bar 返回: GruopModelInfo结构体 GruopModelInfo.result为当前模型的运行结果 运行GruopModelInfo.unsubscribe()会取消组合模型的运行 GruopModelInfo随着python的析构也会调用取消组合模型运行 示例: def handlebar(ContextInfo): basket = {'SH600000' : 0.06, 'SZ000001' : 0.01} argsDict = {'a' : 100} groupModelInfo = call_formula('testGroupModel','000300.SH',basket,argsDict); print(groupModelInfo.result); groupModelInfo.unsubscribe();#取消组合模型运行 | |
| call_group_formula | 调用VBA组合模型(带组合模型持仓版) | 用法: 使用该函数时需补充好本地K线或分笔数据 call_group_formula(formula_list, stock_list, period, dividend_type, basket, args_list, start_time='', end_time='', count=-1) 参数: formula_list: list, 组合模型名列表,如['testGroupFormula'] ----- stock_list: list, 组合模型主图代码列表,如['000300.SH'] period:str,周期 可选范围: 'tick':分笔 '1m'、'5m'、'15m'等分钟线 '1h':小时线 '1d':日线 '1w':周线 '1mon':月线 '1q':季线 '1hy':半年线 '1y':年线 ----- dividend_type:复权方式 可选范围: 'none':不复权 'front':前复权 'back':后复权 'front_ratio': 等比前复权 'back_ratio': 等比后复权 ----- basket: dict,组合模型的股票池权重,形如{'SH600000' : 0.5, 'SZ000001' : 0.5} args_list: list,组合模型的入参,[{参数名:参数值},...],形如[{'a1':1,'b1':2},{'a2':1,'b2':2},...] ----- start_time:开始时间,为空视为最早,可缺省默认为空 end_time:结束时间,为空视为最新,可缺省默认为空 count:数据最大个数,-1视为不做个数限制,可缺省默认为-1 时间格式为'20201231'或'20201231093000' 返回: 每个模型结果的列表,其中单个模型结果包含以下字段 formula: str,模型名 stock: str,主图代码 argument: dict,入参 result: dict,模型运行结果 其中result模型运行结果包含以下字段 timeTags: list, 时间戳列表 value: list,vba中定义的输出变量的取值列表 holdings: list, 持仓列表,其中每一项为相应时间戳的持仓字典组成的列表 [ { 'formula': name, 'stock': code, 'argument': args, 'result': { 'timeTags': time, 'value1': data1, 'value2': data2, ..., 'holdings': position } }, ... ] 其中timeTags,value,holdings的size相同,都为时间戳列表的大小 示例: def after_init(ContextInfo): basket={'SH600000':0.5,'SZ000001':0.5} args_list=[{'a':100}] group_result=ContextInfo.call_group_formula(['testGroupFormula'], ['000300.SH'], '1d', 'none', basket, args_list) print(group_result) | |
| ContextInfo.get_ext_all_data | 引用扩展数据在指定时间区域内的所有值和排名 | 释义: 引用扩展数据在指定时间区域内的所有值和排名 用法: ContextInfo.get_ext_all_data(extdataname,start_time = '19720101',end_time = '22010101') 本函数最好在init中调用,一次性将要用的数据取出 参数: extdataname:string,扩展数据名 start_time,起始时间,可缺省,缺省值1972年1月1日 end_time,截止时间,可缺省,缺省值2201年1月1日 返回: pandas.panel Items:时间戳 Major_axis:股票代码 Minor_axis:扩展数据的域名(rank和value) 示例: def init(ContextInfo): print(ContextInfo.get_ext_all_data('mycci')) | |
| get_factor_table | 获取因子指数数据 | 释义: 获取因子指数数据 用法: get_factor_table('流动性因子5分位#1') 本函数依赖第三方库pyarrow 参数: extdataname:factor,扩展数据展示的因子指数名称 返回: pandas.Dataframe Columns: time:时间戳 stock:股票代码 weight:权重 value:值 示例: def init(ContextInfo): print(get_factor_table(流动性因子5分位#1')) | |
PY交易函数 | get_trade_detail_data | 取交易细明数据函数 | 释义: 取交易明细数据函数 用法: get_trade_detail_data(accountID,strAccountType,strDatatype,strategyName)或不区分策略get_trade_detail_data(accountID,strAccountType,strDatatype); 参数: accountID:string,账号; strAccountType:string,账号类型,有"FUTURE","STOCK","CREDIT","HUGANGTONG","SHENGANGTONG","STOCK_OPTION"; strDatatype:string,交易明细数据类型,有:持仓"POSITION"、委托"ORDER"、成交"DEAL"、账号"ACCOUNT"、任务"TASK" ; strategyName:string,策略名,对应passorder下单函数中的参数strategyName的值,只对委托"ORDER"、成交"DEAL"起作用; 返回:list ,list中放的是PythonObj ,通过dir(pythonobj) 可返回某个对象的属性列表 注:有五种交易相关信息,包括:持仓"POSITION"、委托"ORDER"、成交"DEAL"、账号"ACCOUNT"、任务"TASk" 示例: def handlebar(ContextInfo): obj_list = get_trade_detail_data('6000000248','stock','position') for obj in obj_list: print obj.m_strInstrumentID print dir(obj)#查看有哪些属性字段 | |
| get_value_by_order_id | 根据委托Id取委托或成交信息 | 释义: 根据委托Id取委托或成交信息 用法: get_value_by_order_id(orderId,accountID,strAccountType,strDatatype) 参数: orderId,string,委托号; accountID,string,资金账号; strAccountType,string,账号类型,有"FUTURE","STOCK","CREDIT","HUGANGTONG","SHENGANGTONG","STOCK_OPTION"; strDatatype,string,数据类型,委托"ORDER"、成交"DEAL",只有这两个 返回:pythonObj 示例: def init(ContextInfo): ContextInfo.accid = '6000000248' def handlebar(ContextInfo): orderid = get_last_order_id(ContextInfo.accid,'stock','order') print orderid obj = get_value_by_order_id(orderid,ContextInfo.accid,'stock','order') print obj.m_strInstrumentID | |
| get_last_order_id | 获取最新的委托或成交的委托Id | 释义: 获取最新的委托或成交的委托Id 说明: get_last_order_id (accountID,strAccountType,strDatatype); 或者get_last_order_id(accountID,strAccountType,strDatatype,strategyName); 参数: accountID,string,资金账号; strAccountType,string,账号类型,有"FUTURE","STOCK","CREDIT","HUGANGTONG","SHENGANGTONG","STOCK_OPTION"; strDatatype,string,数据类型,委托"ORDER"、成交"DEAL" 只有这两个; strategyName,string,策略名,对应passorder下单函数中的参数strategyName的值 返回: String,委托号,如果没找到返回"-1". 示例: def init(ContextInfo): ContextInfo.accid = '6000000248' def handlebar(ContextInfo): orderid = get_last_order_id(ContextInfo.accid,'stock','order') print orderid obj = get_value_by_order_id(orderid,ContextInfo.accid,'stock','order') print obj.m_strInstrumentID | |
| can_cancel_order | 查询委托是否可撤销 | 释义: 查询委托是否可撤销 说明: can_cancel_order (orderId,accountID,strAccountType); 参数: rderId,string,委托号; accountID,string,资金账号; strAccountType,string,账号类型,有"FUTURE","STOCK","CREDIT","HUGANGTONG","SHENGANGTONG","STOCK_OPTION"; 返回:bool,是否可撤,True或False 示例: def init(ContextInfo): ContextInfo.accid = '6000000248' def handlebar(ContextInfo): orderid = get_last_order_id(ContextInfo.accid,'stock','order') print orderid can_cancel = can_cancel_order(orderid,ContextInfo.accid,'stock') print '是否可撤:',can_cancel | |
| cancel(py) | 取消委托 | 释义: 取消委托 用法: cancel(orderId,accountId,accountType,ContextInfo) 参数: orderId,string,委托号; accountID,string,资金账号; strAccountType,string,账号类型,有"FUTURE","STOCK","CREDIT","HUGANGTONG","SHENGANGTONG","STOCK_OPTION"; ContextInfo,pythonobj 返回:bool,是否发出了取消委托信号 示例: (1)下单前,根据get_trade_detail_data函数返回账号的信息,判定资金是否充足,账号是否在登录状态,统计持仓情况 等等; (2)满足一定的模型条件,用passorder下单 (3)下单后,时刻根据get_last_order_id 函数获取委托和成交的最新Id,注意如果委托生成了,就有了委托号.(这个Id需要自己保存做一个全局控制) (4)用该委托号根据get_value_by_order_id函数查看委托的状态,各种情况等. 当一个委托的状态变成"已成”后,那么对应的成交deal信息就有一条成交数据. 用该委托号可查看成交情况. 注:委托列表 和 成交列表 中的委托号是一样的,都是这个m_strOrderSysID属性值; 可用get_last_order_id 获取最新的order的委托号,然后根据这个委托号获取deal的信息,当获取成功后,也说明这笔交易是成了.可再根据position持仓信息再进一步验证. (5)根据委托号获取委托信息,根据委托状态,或模型设定.用cancel 取消委托. 示例1: def init(ContextInfo): ContextInfo.accid = '6000000248' def handlebar(ContextInfo): orderid = get_last_order_id(ContextInfo.accid,'stock','order') print cancel(orderid,ContextInfo.accid,'stock',ContextInfo) | |
| cancel_task | 撤销任务 | 释义: 撤销任务 用法: cancel_task(taskId,accountId,accountType,ContextInfo) 参数: orderId,string,任务编号,为''空的时候表示撤销所有该资金账号可撤的任务; accountID,string,资金账号; strAccountType,string,账号类型,有"FUTURE","STOCK","CREDIT","HUGANGTONG","SHENGANGTONG","STOCK_OPTION"; ContextInfo,pythonobj 返回:bool,是否发出了取消委托信号 示例: (1)根据get_trade_detail_data函数返回任务的信息,获取任务编号(m_nTaskId),任务状态等等; (2)根据任务编号,用cancel_task取消委托. 示例1: def init(ContextInfo): ContextInfo.accid = '6000000248' def handlebar(ContextInfo): objlist = get_trade_detail_data(ContextInfo.accid,'stock','task') for obj in obj_list: cancel_task(obj.m_nTaskId,ContextInfo.accid,'stock',ContextInfo) | |
| pause_task | 暂停任务(智能算法任务) | 释义: 暂停任务 用法: pause_task(taskId,accountId,accountType,ContextInfo) 参数: orderId,string,任务编号,为''空的时候表示暂停所有该资金账号可暂停的任务; accountID,string,资金账号; strAccountType,string,账号类型,有"FUTURE","STOCK","CREDIT","HUGANGTONG","SHENGANGTONG","STOCK_OPTION"; ContextInfo,pythonobj 返回:bool,是否发出了暂停信号 示例: (1)根据get_trade_detail_data函数返回任务的信息,获取任务编号(m_nTaskId),任务状态等等; (2)根据任务编号,用pause_task暂停智能算法任务. 示例1: def init(ContextInfo): ContextInfo.accid = '6000000248' def handlebar(ContextInfo): objlist = get_trade_detail_data(ContextInfo.accid,'stock','task') for obj in obj_list: pause_task(obj.m_nTaskId,ContextInfo.accid,'stock',ContextInfo) | |
| resume_task | 继续任务(智能算法任务) | 释义: 继续任务 用法: resume_task(taskId,accountId,accountType,ContextInfo) 参数: orderId,string,任务编号,为''空的时候表示启动所有该资金账号已暂停的任务; accountID,string,资金账号; strAccountType,string,账号类型,有"FUTURE","STOCK","CREDIT","HUGANGTONG","SHENGANGTONG","STOCK_OPTION"; ContextInfo,pythonobj 返回:bool,是否发出了重启信号 示例: (1)根据get_trade_detail_data函数返回任务的信息,获取任务编号(m_nTaskId),任务状态等等; (2)根据任务编号,用resume_task启动已暂停智能算法任务. 示例1: def init(ContextInfo): ContextInfo.accid = '6000000248' def handlebar(ContextInfo): objlist = get_trade_detail_data(ContextInfo.accid,'stock','task') for obj in obj_list: resume_task(obj.m_nTaskId,ContextInfo.accid,'stock',ContextInfo) | |
| get_debt_contract | 取负债合约明细 | 释义: 取负债合约明细 用法: get_debt_contract(accountID) 参数: accountID:string,账号; 返回:list ,list中放的是PythonObj ,通过dir(pythonobj) 可返回某个对象的属性列表 示例: def handlebar(ContextInfo): obj_list = get_debt_contract('6000000248') for obj in obj_list: print obj.m_strInstrumentName | |
| get_assure_contract | 取标的担保明细 | 释义: 取标的担保明细 用法: get_assure_contract(accountID) 参数: accountID:string,账号; 返回:list ,list中放的是PythonObj ,通过dir(pythonobj) 可返回某个对象的属性列表 示例: def handlebar(ContextInfo): obj_list = get_assure_contract('6000000248') for obj in obj_list: print obj.m_strInstrumentName | |
| get_enable_short_contract | 取可融券明细 | 释义: 取可融券明细 用法: get_enable_short_contract(accountID) 参数: accountID:string,账号; 返回:list ,list中放的是PythonObj ,通过dir(pythonobj) 可返回某个对象的属性列表 示例: def handlebar(ContextInfo): obj_list = get_enable_short_contract('6000000248') for obj in obj_list: print obj.m_strInstrumentName | |
| smart_algo_passorder | 智能算法交易 | 用法: smart_algo_passorder(opType,orderType,accountid,orderCode,prType,modelprice,volume,strageName,quickTrade,userid,smartAlgoType,limitOverRate,minAmountPerOrder,[targetPriceLevel,startTime,endTime],ContextInfo) 使用说明: (1)opType OPTYPE参数内容说明 股票买卖: 23",股票买入,或沪港通、深港通股票买入 24",股票卖出,或沪港通、深港通股票卖出 融资融券: 27",融资买入 28",融券卖出 29",买券还券 30",直接还券 31",卖券还款 32",直接还款 33",信用账号股票买入 34",信用账号股票卖出 (2)orderType参数内容说明 注:期货不支持1102和1202 注:对所有账号组的操作相当于对账号组里的每个账号做一样的操作,如 1101:单股、单账号、普通、股/手方式下单 1102:单股、单账号、普通、金额(元)方式下单(只支持股票) 1113:单股、单账号、总资产、比例[0~1]方式下单 1123:单股、单账号、可用、比例[0~1]方式下单 1201:单股、账号组(无权重)、普通、股/手方式下单 1202:单股、账号组(无权重)、普通、金额(元)方式下单(只支持股票) 1213:单股、账号组(无权重)、总资产、比例[0~1]方式下单 1223:单股、账号组(无权重)、可用、比例[0~1]方式下单 (3)accountID参数内容说明 accountID(账号ID): 下单的账号ID(可多个)或账号组名或套利组名(一个篮子一个套利账号,如accountID=’股票账户名,期货账号’) (4)orderCode参数内容说明 orderCode(下单代码): 有两种如果是单股或单期货、港股,则该参数填合约代码;如果是组合交易,则该参数填篮子名称.如果是组合套利,则填一个篮子名和一个期货合约名(如orderCode=’篮子名,期货合约名’). (5)prType参数内容说明 prType(下单选价类型):(特别的对于套利:这个prType只对篮子起作用,期货的采用默认的方式) -1:无效(实际下单时,需要用交易面板交易函数那设定的选价类型) 0:卖5价 1:卖4价 2:卖3价 3:卖2价 4:卖1价 5:最新价 6:买1价 7:买2价(组合不支持) 8:买3价(组合不支持) 9:买4价(组合不支持) 10:买5价(组合不支持) 11:(指定价)模型价(只对单股情况支持,对组合交易不支持) 12:涨跌停价 13:挂单价 14:对手价 如果prType = 12,则智能算法下涨跌停价,其他情况下限价 (6)price参数内容说明 price(下单价格): 单股:prType是模型价时price有效;其它情况无效 (7)volume参数内容说明 根据orderType值最后一位确定volume的单位: (单股时)1股/手,2金额(元),3比例(%) volume(下单数量(股/手/元/%)) (8)strageName 策略名 不同于passorder,这里不可缺省 (9)quickTrade参数内容说明 quickTrade:int,是否立马触发下单,0 否,1 是 注:passorder是对最后一根K线完全走完后生成的模型信号在下一根K线的第一个tick数据来时触发下单交易; 采用quickTrade参数设置为1时,非历史bar上执行时(ContextInfo.is_last_bar()为True),只要策略模型中调用到就触发下单交易。 quickTrade参数设置为2时,不判断bar状态,只要策略模型中调用到就触发下单交易,历史bar上也能触发下单,请谨慎使用。 (10)userid 投资备注 不同于passorder,投资备注不可缺省 (11)smartAlgoType智能算法类型说明 smartAlgoType:智能算法类型:VWAP,TWAP,VP,PINLINE,DMA,FLOAT,SWITCH,ICEBERG,MOC 对应类型中文名:VWAP,TWAP,跟量,跟价,快捷,盘口,换仓,冰山,尾盘 (12)limitOverRate智能算法量比说明 limitOverRate:float,数据范围0-100,如果输入其他无效值则limitOverRate为2,网格算法无此项, (13)minAmountPerOrder智能算法最小委托金额 minAmountPerOrder:int,数据范围 0-100000,默认0 (14)targetPriceLevel智能算法目标价格 本项只针对冰山算法,其他算法可缺省,或者填任意值 targetPriceLevel:可选值:1,2,3,4,5,6,7 对应 己方盘口1,己方盘口2,己方盘口3,己方盘口4,己方盘口5,最新价,对方盘口 输入无效值则targetPriceLevel为1 (15)startTime 智能算法开始时间 格式"HH:MM:SS",如"10:30:00" 如果缺省值,则默认为"09:30:00" (16)endTime 智能算法截止时间 格式"HH:MM:SS",如"14:30:00" 如果缺省值,则默认为"15:30:00" 用例: smart_algo_passorder(23,1101,'600000105','000001.SZ',5,-1,50000,"strageName",0,"remark","TWAP",20,0,ContextInfo);#账户600000105最新价开仓买入50000股的000001.SZ平安银行,使用TWAP智能算法,量比20%,最小买卖金额0 smart_algo_passorder(23,1101,'600000105','000001.SZ',5,-1,50000,"strageName",1,"remark","TWAP",20,0,0,'09:30:00','14:00:00',ContextInfo);#账户600000105最新价快速交易开仓买入50000股的000001.SZ平安银行,使用TWAP智能算法,量比20%,最小买卖金额0 且有效时长为09:30-14:00 | |
| passorder(py) | 综合交易下单 | 用法: passorder(opType, orderType, accountid, orderCode, prType, modelprice, volume[, strategyName, quickTrade, userOrderId, userOrderParam], ContextInfo) 使用说明: (1)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",直接还款 33",信用账号股票买入 34",信用账号股票卖出 组合交易: 25",组合买入,或沪港通、深港通的组合买入 26",组合卖出,或沪港通、深港通的组合卖出 27",融资买入 28",融券卖出 29",买券还券 31",卖券还款 33",信用账号股票买入 34",信用账号股票卖出 40",期货组合开多 43",期货组合开空 46",期货组合平多,优先平今 47",期货组合平多,优先平昨 48",期货组合平空,优先平今 49",期货组合平空,优先平昨 期权交易: 50",买入开仓 51",卖出平仓 52",卖出开仓 53",买入平仓 54",备兑开仓 55",备兑平仓 56",认购行权 57",认沽行权 58",证券锁定 59",证券解锁 ETF交易: 60",申购 61",赎回 专项两融: 70",专项融资买入 71",专项融券卖出 72",专项买券还券 73",专项直接还券 74",专项卖券还款 75",专项直接还款 (2)orderType参数内容说明 注:期货不支持1102 和 1202 注:对所有账号组的操作 相当于 对账号组里的每个账号做一样的操作,如 passorder(23,1202,'testS','000001.SZ',5,-1,50000,ContextInfo); 意思就是对账号组testS里的所有账号都以最新价开仓买入50000元市值的000001.SZ平安银行. passorder(60,1101,"test" ,'510050.SH',5,-1,1, ContextInfo) 意思就是账号test申购1个单位(900000股)的华夏上证50ETF(只申购 不买入成分股) 1101: 单股、单账号、普通、股/手 方式下单 (ETF申赎只能用此参数) 1102: 单股、单账号、普通、金额(元)方式下单 (只支持股票) 1113: 单股、单账号、总资产、比例[0~1]方式下单 1123: 单股、单账号、可用、比例[0~1]方式下单 1201: 单股、账号组(无权重)、普通、股/手 方式下单 1202: 单股、账号组(无权重)、普通、金额(元)方式下单 (只支持股票) 1213: 单股、账号组(无权重)、总资产、比例[0~1]方式下单 1223: 单股、账号组(无权重)、可用、比例[0~1]方式下单 2101: 组合、单账号、普通、按组合股票 数量(篮子中股票设定的数量) 方式下单 > 对应volume 的单位为 篮子的 份 2102: 组合、单账号、普通、按组合股票 权重(篮子中股票设定的权重) 方式下单 >对应volume的单位为元 2103: 组合、单账号、普通、按账号可用方式下单>(底层篮子股票怎么分配?答:按可用资金比例后按篮子中股票权重分配,如用户没填权重则按相等权重分配) 只对股票篮子支持 2201: 组合、账号组(无权重)、普通、按组合股票 数量 方式下单 2202: 组合、账号组(无权重)、普通、按组合股票 权重 方式下单 2203: 组合、账号组(无权重)、普通、按账号可用 方式下单 只对股票篮子支持 (3) 组合套利交易接口特殊设置(accountID、orderType特殊设置) passorder(opType,orderType,accountID,orderCode, prType, hedgeRatio,volume,ContextInfo) accountID=’stockAccountID,futureAccountID’ orderCode =’basketName,futureName’ hedgeRatio:套利比例(0~2之间值, 相当于%0至200%套利) volume: 份数\资金\比例 orderType(特殊设置): 2331: 组合、套利、合约价值自动套利、按组合股票 数量 方式下单 2332: 组合、套利、按合约价值自动套利、按组合股票 权重 方式下单 2333: 组合、套利、按合约价值自动套利、按账号可用方式下单 (4)accountID参数内容说明 passorder(opType, orderType, accountID , orderCode, prType, price, volume,ContextInfo) accountID(账号ID): 下单的账号ID(可多个) 或 账号组名 或 套利组名(一个篮子一个套利账号,如accountID=’股票账户名,期货账号’) (5)orderCode参数内容说明 passorder(opType, orderType, accountID , orderCode, prType, price, volume,ContextInfo) orderCode(下单代码): 有两种如果是单股或单期货、港股,则该参数填合约代码;如果是组合交易,则该参数填篮子名称.如果是组合套利,则填一个篮子名和一个期货合约名(如orderCode=’篮子名,期货合约名’). (6)prType参数内容说明 passorder(opType, orderType, accountID , orderCode, prType, price, volume,ContextInfo) prType(下单选价类型): (特别的对于套利:这个prType只对篮子起作用,期货的采用默认的方式) -1:无效(只对于algo_passorder起作用) 0:卖5价 1:卖4价 2 :卖3价 3 :卖2价 4 :卖1价 5 :最新价 6 :买1价 7:买2价(组合不支持) 8 :买3价(组合不支持) 9 :买4价(组合不支持) 10 :买5价(组合不支持) 11: (指定价)模型价(只对单股情况支持,对组合交易不支持) 12 :涨跌停价 13 :挂单价 14 :对手价 18:市价最优价[郑商所][期货] 19:市价即成剩撤[大商所][期货] 20:市价全额成交或撤[大商所][期货] 21:市价最优一档即成剩撤[中金所][期货] 22:市价最优五档即成剩撤[中金所][期货] 23:市价最优一档即成剩转[中金所][期货] 24:市价最优五档即成剩转[中金所][期货] 26:限价即时全部成交否则撤单[上交所",深交所][期权] 27:市价即成剩撤[上交所][期权] 28:市价即全成否则撤[上交所][期权] 29:市价剩转限价[上交所][期权] 42:最优五档即时成交剩余撤销申报[上交所][股票] 43:最优五档即时成交剩转限价申报[上交所][股票] 44:对手方最优价格委托[上交所[股票]][深交所[股票][期权]] 45:本方最优价格委托[上交所[股票]][深交所[股票][期权]] 46:即时成交剩余撤销委托[深交所][股票][期权] 47:最优五档即时成交剩余撤销委托[深交所][股票][期权] 48:全额成交或撤销委托[深交所][股票][期权] 49:盘后定价 (7)price参数内容说明 passorder(opType, orderType, accountID , orderCode, prType, price, volume,ContextInfo) price(下单价格): 单股:prType是模型价 时price有效;其它情况无效 组合:是组合套利时,price作套利比例有效;其它情况无效 (8)volume参数内容说明 passorder(opType, orderType, accountID , orderCode, prType, price, volume,ContextInfo) 根据orderType值最后一位确定volume的单位: (单股时)1 股/手,2 金额(元),3 比例(%) (组合时)1 按组合股票数量(份),2按组合股票权重(元),3按账号可用(%) volume(下单数量(股/手/元/%)) (9) strategyName 参数内容说明 strategyName:string,用户自设策略名,可缺省不写,用来区分order委托和deal成交来自不同的策略 根据该策略名,get_trade_detail_data,get_last_order_id函数可以获取相应策略名对应的委托或持仓结果 注:strategyName只对同账号本地客户端有效,即strategyName只对当前客户端下的单进行策略区分,且该策略区分只能当前客户端使用 (10) quickTrade 参数内容说明 quickTrade:int,是否立马触发下单,0 否,1 是 注:passorder是对最后一根K线完全走完后生成的模型信号在下一根K线的第一个tick数据来时触发下单交易; 采用quickTrade参数设置为1时,非历史bar上执行时(ContextInfo.is_last_bar()为True),只要策略模型中调用到就触发下单交易。 quickTrade参数设置为2时,不判断bar状态,只要策略模型中调用到就触发下单交易,历史bar上也能触发下单,请谨慎使用。 (11)userOrderId 参数内容说明 userOrderId:string,用户自设委托ID,可缺省不写,写的时候必须把起前面的strategyName和quickTrade参数也填写。对应order委托对象和deal成交对象中的m_strRemark属性, 通过get_trade_detail_data函数或委托主推函数order_callback和成交主推函数deal_callback可拿到这两个对象信息 (12)userOrderParam 参数内容说明 userOrderParam:string,用户自定义交易参数模板名称,可缺省不写,写的时候必须把起前面的strategyName和quickTrade参数也填写。 | |
| algo_passorder(py) | 算法交易下单 | 用法: algo_passorder(opType, orderType, accountid, orderCode, prType, modelprice, volume[, strategyName, quickTrade, userOrderId, userOrderParam], ContextInfo) 使用说明: 算法交易下单,此时使用交易面板-程序交易-函数交易-函数交易参数 中设置的下单类型(普通交易,算法交易,随机量交易) 如果函数交易参数使用未修改的默认值,此函数和passorder函数一致, 设置了函数交易参数后,将会使用函数交易参数的超价等拆单参数,如果入参的prType = -1,同时将会使用函数交易参数的报价方式 (1)opType 操作类型,同passorder中的opType (2)orderType 下单方式,同passorder中的orderType (3)accountID参数内容说明 下单的账号ID,同passorder中的accountID (4)orderCode参数内容说明 下单代码:同passorder中的orderCode (5)prType参数内容说明 报价类型,同passorder中的报价类型prType,特别的,当prType = -1时,使用函数交易面板中的报价类型参数 (6)price参数内容说明 下单价格,同passorder中的price参数 (7)volume参数内容说明 下单量,同passorder中的volume参数 (8) strategyName 参数内容说明 策略名,同passorder中的strategyName参数 (9) quickTrade 参数内容说明 是否快速交易,同passorder中的quickTrade参数 (10)userOrderId 参数内容说明 投资备注,同passorder中的userOrderId参数 (11)userOrderParam 参数内容说明 用户自定义交易参数,主要用于修改算法交易的参数 userparam = "m_nMaxOrderCount:20,m_eSuperPriceType:1,m_dSuperPriceValue:1.12" algo_passorder(23, 1101, ContextInfo.accid, '000001.SZ', 11, 15, 1000,'', 1, 'strReMark', userparam, ContextInfo); #表示修改算法交易的最大委托次数为20,单笔下单基准类型为按价格类型超价,单笔超价1.12元,其他参数同函数交易参数中设置 m_eOrderType 普通交易:0 算法交易:1、随机量交易:2 m_ePriceType 报价方式:数值同pyType m_nMaxOrderCount 最大下单次数 m_bSinglePriceRange 波动区间是否单向 m_ePriceRangeType 波动区间类型 按比例:0,按数值1 m_dPriceRangeValue 波动区间(按数值) [0-1] m_dPriceRangeRate 波动区间(按比例) m_eSuperPriceType 单笔超价类型按比例:0,按数值1 m_dSuperPriceRate 单笔超价(按比例) [0-1] m_dSuperPriceValue 单笔超价(按数值) m_eVolumeType 单笔基准量类型(与界面列表的序号一致) 卖1+2+3+4+5量:0,卖1+2+3+4量:1,...目标剩余量:11, m_dVolumeRate 单比下单比率 m_nSingleNumMin 单比下单量最小值 m_nSingleNumMax 单比下单量最大值 m_nValidTimeElapse 有效持续时间 m_eUndealtEntrustRule 未成委托处理 数值同pyType m_bUseTrigger 是否触价 m_eTriggerType 触价类型:最新价大于:0,最新价小于:2 m_dTriggerPrice 触价价格 | |
| do_order | 实时触发前一根bar信号函数 | 用法: do_order(ContextInfo) 详解:系统实盘中交易下单函数一般是把上一个周期产生的信号在最新的周期的第一个tick下单出去; 而日K线第一个tick是在9:25分集合竞价结束时产生,如果策略模型在9:25分之后跑又想把前一天的下单信号发出去, 就可用do_order函数配合实现。特别的,需要注意,有调用do_order函数的策略模型跑在9:25分之前或别的日内周期下时, 原有下单函数和do_order函数都有下单信号,有可能导致重复下单 示例: 实现跑日K线及以上周期下,在固定时间点把前一周期的交易信号发送出去 def init(ContextInfo): pass def handlebar(ContextInfo): order_lots('000002.SZ',1,ContextInfo,'600000248') ticktimetag = ContextInfo.get_tick_timetag() int_time = int(timetag_to_datetime(ticktimetag,"%H%M%S")) if 100500 <= int_time < 100505: do_order(ContextInfo) | |
| order_lots | 指定手数交易 | 说明: 指定手数发送买/卖单.如有需要落单类型当做一个参量传入,如果忽略掉落单类型,那么默认以最新价下单. 用法: order_lots(stockcode,lots[,style,price],ContextInfo[, accId]) 参数: accId账号(string) stockcode代码(string,如”000002.SZ”) lots手数(int) style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE5, SALE4, SALE3, SALE2, SALE1 卖5-1, BUY1, BUY2, BUY3, BUY4, BUY5 买1-5 示例: def handlebar(ContextInfo): order_lots('000002.SZ',1,ContextInfo,'600000248') #按最新价下1手买入 order_lots('000002.SZ',-1,'COMPETE',ContextInfo,'600000248') #用对手价下1手卖出 order_lots('000002.SZ',-2,'fix',37.5,ContextInfo,'600000248')#用指定价37.5下2手卖出 | |
| order_value | 指定价值交易 | 说明: 使用想要花费的金钱买入/卖出股票,而不是买入/卖出想要的股数,正数代表买入,负数代表卖出.股票的股数总是会被调整成对应的100的倍数(在A中国A股市场1手是100股).当您提交一个卖单时,该方法代表的意义是您希望通过卖出该股票套现的金额.如果金额超出了您所持有股票的价值,那么您将卖出所有股票.需要注意,如果资金不足,该API将不会创建发送订单. 用法: order_value(stockcode,value[,style,price],ContextInfo[, accId]) 参数: accId账号(string) stockcode代码(string,如”000002.SZ”) value金额(元)(double) style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE5, SALE4, SALE3, SALE2, SALE1 卖5-1, BUY1, BUY2, BUY3, BUY4, BUY5 买1-5 示例: def handlebar(ContextInfo): order_value('000002.SZ',10000,ContextInfo,'600000248') #按最新价下10000元买入 order_value('000002.SZ',-10000,'COMPETE',ContextInfo,'600000248') #用对手价下10000元卖出 order_value('000002.SZ',-20000,'fix',37.5,ContextInfo,'600000248')#用指定价37.5下20000元卖出 | |
| order_percent | 一定比例下单 | 说明: 发送一个等于目前投资组合价值(市场价值和目前现金的总和)一定百分比的买/卖单,正数代表买,负数代表卖.股票的股数总是会被调整成对应的一手的股票数的倍数(1手是100股).百分比是一个小数,并且小于或等于1(小于等于100%),0.5表示的是50%.需要注意,如果资金不足,该API将不会创建发送订单. 用法: order_percent(stockcode,percent[,style,price],ContextInfo[, accId]) 参数: accId账号(string) stockcode代码(string,如”000002.SZ”) percent比例(double) style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE5, SALE4, SALE3, SALE2, SALE1 卖5-1, BUY1, BUY2, BUY3, BUY4, BUY5 买1-5 示例: def handlebar(ContextInfo): order_percent('000002.SZ',0.051,ContextInfo,'600000248') #按最新价下5.1%价值买入 order_percent('000002.SZ',-0.051,'COMPETE',ContextInfo,'600000248') #用对手价下5.1%价值卖出 order_percent('000002.SZ',-0.102,'fix',37.5,ContextInfo,'600000248')#用指定价37.5下10.2%价值卖出 | |
| order_target_value | 目标价值下单 | 说明: 买入/卖出并且自动调整该证券的仓位到一个目标价值.如果还没有任何该证券的仓位,那么会买入全部目标价值的证券.如果已经有了该证券的仓位,则会买入/卖出调整该证券的现在仓位和目标仓位的价值差值的数目的证券.需要注意,如果资金不足,该API将不会创建发送订单. 用法: order_target_value(stockcode,tar_value[,style,price],ContextInfo[, accId]) 参数: accId账号(string) stockcode代码(string,如”000002.SZ”) tar_value目标金额(元)(double).非负数 style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE5, SALE4, SALE3, SALE2, SALE1 卖5-1, BUY1, BUY2, BUY3, BUY4, BUY5 买1-5 示例: def handlebar(ContextInfo): order_target_value('000002.SZ',10000,ContextInfo,'600000248') #按最新价下调仓到10000元持仓 order_target_value('000002.SZ',10000,'COMPETE',ContextInfo,'600000248') #用对手价调仓到10000元持仓 order_target_value('000002.SZ',20000,'fix',37.5,ContextInfo,'600000248')#用指定价37.5下调仓到20000元持仓 | |
| order_target_percent | 目标比例下单 | 说明: 买入/卖出证券以自动调整该证券的仓位到占有一个指定的投资组合的目标百分比. 投资组合价值等于所有已有仓位的价值和剩余现金的总和.买/卖单会被下舍入一手股数(A股是100的倍数)的倍数.目标百分比应该是一个小数,并且最大值应该小于等于1,比如0.5表示50%,需要注意,如果资金不足,该API将不会创建发送订单. 用法: order_target_percent(stockcode,tar_percent[,style,price],ContextInfo[, accId]) 参数: accId账号(string) stockcode代码(string,如”000002.SZ”) tar_percent目标百分比[0~1](double) style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE5, SALE4, SALE3, SALE2, SALE1 卖5-1, BUY1, BUY2, BUY3, BUY4, BUY5 买1-5 示例: def handlebar(ContextInfo): order_target_percent('000002.SZ',0.051,ContextInfo,'600000248') #按最新价下买入调仓到5.1%持仓 order_target_percent('000002.SZ',0.051,'COMPETE',ContextInfo,'600000248') #用对手价调仓到5.1%持仓 order_target_percent('000002.SZ',0.102,'fix',37.5,ContextInfo,'600000248')#用指定价37.5调仓到10.2%持仓 | |
| order_shares | 指定股数交易 | 说明: 指定股数的买/卖单,最常见的落单方式之一.如有需要落单类型当做一个参量传入,如果忽略掉落单类型,那么默认以最新价下单. 用法: order_shares(stockcode,shares[,style,price],ContextInfo[, accId]) 参数: accId账号(string) stockcode代码(string,如”000002.SZ”) shares股数(int) style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE5, SALE4, SALE3, SALE2, SALE1 卖5-1, BUY1, BUY2, BUY3, BUY4, BUY5 买1-5 示例: def handlebar(ContextInfo): order_shares('000002.SZ',100,ContextInfo,'600000248') #按最新价下100股买入 order_shares('000002.SZ',-100,'COMPETE',ContextInfo,'600000248') #用对手价下100股卖出 order_shares('000002.SZ',-200,'fix',37.5,ContextInfo,'600000248')#用指定价37.5下200股卖出 | |
| buy_open | 期货买入开仓 | 用法: buy_open(stockcode,amount[,style,price],ContextInfo[, accId]) 参数: accId账号(string), stockcode代码(string,如”IF1805.IF”), amount手数(int) style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE1卖一价, BUY1买一价 示例: def handlebar(ContextInfo): buy_open('IF1805.IF',1,ContextInfo,'110476') #按最新价1手买入开仓 buy_open('IF1805.IF',1,'COMPETE',ContextInfo,'110476') #用对手价1手买入开仓 buy_open('IF1805.IF',2,'fix',3750,ContextInfo,'110476')#用指定价3750元2手买入开仓 | |
| sell_close_tdayfirst | 期货卖出平仓,平今优先 | 用法: sell_close_tdayfirst(stockcode,amount[,style,price],ContextInfo[, accId]) 参数: accId账号(string), stockcode代码(string,如”IF1805.IF”), amount手数(int) style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE1卖一价, BUY1买一价 示例: def handlebar(ContextInfo): sell_close_tdayfirst('IF1805.IF',1,ContextInfo,'110476') #按最新价下1手卖出平仓,平今优先 sell_close_tdayfirst('IF1805.IF',1,'COMPETE',ContextInfo,'110476') #用对手价1手卖出平仓,平今优先 sell_close_tdayfirst('IF1805.IF',1,'fix',3750,ContextInfo,'110476')#用指定价3750元2手卖出平仓,平今优先 | |
| sell_close_ydayfirst | 期货卖出平仓,平昨优先 | 用法: sell_close_ydayfirst(stockcode,amount[,style,price],ContextInfo[, accId]) 参数: accId账号(string), stockcode代码(string,如”IF1805.IF”), amount手数(int) style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE1卖一价, BUY1买一价 示例: def handlebar(ContextInfo): sell_close_ydayfirst('IF1805.IF',1,ContextInfo,'110476') #按最新价1手卖出平仓,平昨优先 sell_close_ydayfirst('IF1805.IF',1,'COMPETE',ContextInfo,'110476') #用对手价1手卖出平仓,平昨优先 sell_close_ydayfirst('IF1805.IF',2,'fix',3750,ContextInfo,'110476')#用指定价3750元2手卖出平仓,平昨优先 | |
| sell_open | 期货卖出开仓 | 用法: sell_open(stockcode,amount[,style,price],ContextInfo[, accId]) 参数: accId账号(string), stockcode代码(string,如”IF1805.IF”), amount张数(int) style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE1卖一价, BUY1买一价 示例: def handlebar(ContextInfo): sell_open('IF1805.IF',1,ContextInfo,'110476') #按最新价1手卖出开仓 sell_open('IF1805.IF',1,'COMPETE',ContextInfo,'110476') #用对手价1手卖出开仓 sell_open('IF1805.IF',2,'fix',3750, ContextInfo,'110476')#用指定价3750元2手卖出开仓 | |
| buy_close_tdayfirst | 期货买入平仓,平今优先 | 用法: buy_close_tdayfirst(stockcode,amount[,style,price],ContextInfo[, accId]) 参数: accId账号(string), stockcode代码(string,如”IF1805.IF”), amount手数(int) style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE1卖一价, BUY1买一价 示例: def handlebar(ContextInfo): buy_close_tdayfirst('IF1805.IF',1,ContextInfo,'110476') #按最新价1手买入平仓,平今优先 buy_close_tdayfirst('IF1805.IF',1,'COMPETE',ContextInfo,'110476') #用对手价1手买入平仓,平今优先 buy_close_tdayfirst('IF1805.IF',2,'fix',3750,ContextInfo,'110476')#用指定价3750元2手买入平仓,平今优先 | |
| buy_close_ydayfirst | 期货买入平仓,平昨优先 | 用法: buy_close_ydayfirst(stockcode,amount[,style,price],ContextInfo[, accId]) 参数: accId账号(string) stockcode代码(string,如”IF1805.IF”) amount手数(int) style选价类型(string),默认为最新价'LATEST' price价格(double) style下单选价类型:LATEST最新, FIX指定, HANG挂单, COMPETE对手, MARKET涨跌停价, SALE1卖一价, BUY1买一价 示例: def handlebar(ContextInfo): buy_close_ydayfirst('IF1805.IF',1,ContextInfo,'110476') #按最新价1手买入平仓,平昨优先 buy_close_ydayfirst('IF1805.IF',1,'COMPETE',ContextInfo,'110476') #用对手价1手买入平仓,平昨优先 buy_close_ydayfirst('IF1805.IF',2,'fix',3750,ContextInfo,'110476')#用指定价3750元2手买入平仓,平昨优先 | |
| get_ipo_data | 获取当日新股新债信息 | 用法: get_ipo_data([,type]) 返回结果为一个字典,包括新股申购代码,申购名称,最大申购数量,最小申购数量等数据 参数: type: 为空时返回新股新债信息,type="STOCK"时只返回新股申购信息,type="BOND"时只返回新债申购信息 示例: def init(ContextInfo): ipoData = get_ipo_data() #返回新股新债信息 ipoStock = get_ipo_data("STOCK") #返回新股信息 ipoCB = get_ipo_data("BOND") #返回新债申购信息 | |
| get_new_purchase_limit | 获取账户新股申购额度 | 用法: get_new_purchase_limit(accid) 返回结果为一个字典,包括上海主板,深圳市场,上海科创版的申购额度 参数: accid:资金账号,必须时股票账号或者信用账号 示例: def init(ContextInfo): ContextInfo.accid = "10000001" #返回新股新债信息 purchase_limit = get_new_purchase_limit(ContextInfo.accid) | |
PY实时主推函数 | account_callback | 主推资金账号信息 | 用法: account_callback(ContextInfo, accountInfo) 参数: ContextInfo:策略模型全局对象 accountInfo:资金账号信息对象 示例: def init(ContextInfo): #设置对应的资金账号 ContextInfo.set_account('6000000058') def handlebar(ContextInfo): pass def account_callback(ContextInfo, accountInfo): print accountInfo.m_strStatus | |
| order_callback | 主推委托信息 | 用法: order_callback(ContextInfo, orderInfo) 参数: ContextInfo:策略模型全局对象 orderInfo:委托信息对象 示例: def init(ContextInfo): #设置对应的资金账号 ContextInfo.set_account('6000000058') def handlebar(ContextInfo): pass def order_callback(ContextInfo, orderInfo): print orderInfo.m_strOrderSysID | |
| deal_callback | 主推成交信息 | 用法: deal_callback(ContextInfo, dealInfo) 参数: ContextInfo:策略模型全局对象 dealInfo:成交信息对象 示例: def init(ContextInfo): #设置对应的资金账号 ContextInfo.set_account('6000000058') def handlebar(ContextInfo): pass def deal_callback(ContextInfo, dealInfo): print dealInfo.m_strOrderSysID | |
| position_callback | 主推持仓信息 | 用法: position_callback(ContextInfo, positionInfo) 参数: ContextInfo:策略模型全局对象 positionInfo:持仓信息对象 示例: def init(ContextInfo): #设置对应的资金账号 ContextInfo.set_account('6000000058') def handlebar(ContextInfo): pass def position_callback(ContextInfo, positionInfo): print positionInfo.m_nVolume | |
| orderError_callback | 错误委托信息 | 用法: orderError_callback(ContextInfo, passOrderInfo,msg) 参数: ContextInfo:策略模型全局对象 passOrderInfo:下单信息 msg:错误信息 示例: def init(ContextInfo): #设置对应的资金账号 ContextInfo.set_account('6000000058') def handlebar(ContextInfo): pass def orderError_callback(ContextInfo, passOrderInfo, msg): print passOrderInfo.orderCode print msg | |
| query_credit_opvolume | 查询两融最大可下单量 | 用法: query_credit_opvolume(accountId,stockCode,opType,prType,price,seq,ContextInfo); 本函数一次最多查询200只股票的两融最大下单量, 且同时只能有一个查询,如果前面的查询正在进行中,后面的查询将会提前返回。 本函数从服务器查询数据,建议平均查询时间间隔30s一次,不可频繁调用 参数: accountId:查询的两融账号 stockCode:需要查询的股票代码,stockCode为List的类型,可以查询多只股票 opType:两融下单类型,同passorder的下单类型 prType:报单价格类型,同passorder的报价类型, seq:查询序列号,int型,建议输入唯一值以便对应结果回调 price:报价(非限价单可以填任意值),如果stockCode为List类型,报价也需要为长度相同的List 用法: query_credit_opvolume(ContextInfo.accid,'600000.SH',33,11,10,int(time.time()),ContextInfo); #查询accid账号担保品买入600000.SH限价10元的最大可下单量 query_credit_opvolume(ContextInfo.accid,['600000.SH','000001.SZ'],33,11,[10,20],int(time.time()),ContextInfo); #查询accid账号担保品买入600000.SH限价10元,000001.SZ担保品买入限价20元的最大可下单量 | |
| credit_opvolume_callback | 查询两融最大可下单量的回调 | 用法: credit_opvolume_callback(ContextInfo,accid,seq,ret,result) 参数: ContextInfo:策略模型全局对象 accid:查询的账号 seq:query_credit_opvolume时输入查询seq ret:查询结果状态。正常返回:1,正在查询中-1,输入账号非法:-2,输入查询参数非法:-3,超时等服务器返回报错:-4 result:查询到的结果 | |
| set_auto_trade_callback | 设置主推模式 | 用法: set_auto_trade_callback(ContextInfo, enable),需要在init函数内调用,有回调模式和缓存模式,不调用set_auto_trade_callback时默认使用回调模式 参数: ContextInfo:策略模型全局对象 enable:True表示使用回调模式,False表示使用缓存模式 返回:无返回值 示例: def init(ContextInfo): #设置对应的资金账号 ContextInfo.set_account('6000000058') #设置缓存模式 set_auto_trade_callback(ContextInfo, False) def handlebar(ContextInfo): return | |
| get_account_callback_cache | 获取缓存中的账号资金信息 | 用法: get_account_callback_cache(datas, ContextInfo),每一次数据推送都会顺序存储到缓存中,调用接口获取后会全部取出,缓存清空 参数: ContextInfo:策略模型全局对象 datas:缓存的数据序列,返回结果 返回:无返回值,结果会返回到datas 示例: def init(ContextInfo): #设置对应的资金账号 ContextInfo.set_account('6000000058') #设置缓存模式 set_auto_trade_callback(ContextInfo, False) def handlebar(ContextInfo): #获取缓存中的账号资金信息 data = [] get_account_callback_cache(data, ContextInfo) | |
| get_deal_callback_cache | 获取缓存中的成交信息 | 用法: get_deal_callback_cache(datas, ContextInfo),每一次数据推送都会顺序存储到缓存中,调用接口获取后会全部取出,缓存清空 参数: ContextInfo:策略模型全局对象 datas:缓存的数据序列,返回结果 返回:无返回值,结果会返回到datas 示例: def init(ContextInfo): #设置对应的资金账号 ContextInfo.set_account('6000000058') #设置缓存模式 set_auto_trade_callback(ContextInfo, False) def handlebar(ContextInfo): #获取缓存中的成交信息 data = [] get_deal_callback_cache(datas, ContextInfo) | |
| get_position_callback_cache | 获取缓存中的持仓信息 | 用法: get_position_callback_cache(datas, ContextInfo),每一次数据推送都会顺序存储到缓存中,调用接口获取后会全部取出,缓存清空 参数: ContextInfo:策略模型全局对象 datas:缓存的数据序列,返回结果 返回:无返回值,结果会返回到datas 示例: def init(ContextInfo): #设置对应的资金账号 ContextInfo.set_account('6000000058') #设置缓存模式 set_auto_trade_callback(ContextInfo, False) def handlebar(ContextInfo): #获取缓存中的持仓信息 data = [] get_position_callback_cache(datas, ContextInfo) | |
| get_ordererror_callback_cache | 获取缓存中的下单错误信息 | 用法: get_ordererror_callback_cache(datas, ContextInfo),每一次数据推送都会顺序存储到缓存中,调用接口获取后会全部取出,缓存清空 参数: ContextInfo:策略模型全局对象 datas:缓存的数据序列,返回结果 返回:无返回值,结果会返回到datas 示例: def init(ContextInfo): #设置对应的资金账号 ContextInfo.set_account('6000000058') #设置缓存模式 set_auto_trade_callback(ContextInfo, False) def handlebar(ContextInfo): #获取缓存中的下单错误信息 data = [] get_ordererror_callback_cache(datas, ContextInfo) | |
| get_credit_opvolume_cache | 获取缓存中的两融最大可下单量信息 | 用法: get_credit_opvolume_cache(datas, ContextInfo),每一次通过query_credit_opvolume数据推送都会顺序存储到缓存中,调用接口获取后会全部取出,缓存清空 参数: ContextInfo:策略模型全局对象 datas:缓存的数据序列,返回结果 返回:无返回值,结果会返回到datas | |
外部数据函数 | external_data | 实时获取外部数据序列数据 | 用法: external_data(name, field,period,N) 参数: name:外部数据名称 field:字段名 period:数据周期,单位为秒,如日线周期为86400,分钟线为60 period参数说明: 0:分笔成交 1:1分钟 2:5分钟 3:15分钟 4:30分钟 5:60分钟 6:日 7:周 8:月 9:年 10或其他:同主图周期 N:向前引用周期,向前为负 field参数说明: 0:开盘价 1:最高价 2:最低价 3:收盘价 5:成交量 6:成交额 7:持仓量 8:结算价 其他值:收盘价 示例: 获取自定义序列数据1的日线收盘价数据并向前引用1个bar external_data('自定义序列数据1',3,6,-1); | |
| get_external_data_single_number | 获取外部数据自定义单值数据的数值信息 | 用法: get_external_data_single_number(name, market, code) 参数: name:外部数据名称 market:市场 code:股票代码 示例: get_external_data_single_number('自定义单值数据1', 'SH', '600000') | |
| get_external_data_single_string | 获取外部数据自定义单值数据的字符串信息 | 用法: get_external_data_single_string(name, market, code) 参数: name:外部数据名称 market:市场 code:股票代码 示例: get_external_data_single_string('自定义单值数据1', 'SH', '600000') | |
| get_external_data_kline | 获取外部数据自定义序列数据的数值信息 | 用法: get_external_data_kline(name, market, code, date) 参数: name:外部数据名称 market:市场 code:股票代码 date:日期 示例: get_external_data_kline('自定义序列数据1', 'SH', '600000', '20190101') | |
| download_sector_weight | 下载当日指数权重 | 用法: download_sector_weight(date) 参数: date:日期(8位),为空下载全部交易日的 返回值: 返回0表示正常,非0不正常 示例: download_sector_weight('20220530') | |
| get_sector_weight | 获取指定指数某个日期下的指数权重 | 用法: get_sector_weight(index, date) 使用前需要通过download_sector_weight补数据 参数: index:指数 date:日期(8位) 示例: get_sector_weight('000001.SH', '20220530') | |