小果通达信函数量化助手

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

小果通达信函数量化助手——由小果(开发的通达信公式量化工具。提供: 1. 通达信公式编写与语法检测:支持技术指标、条件选股、交易系统、五彩K线公式编写,自动检测语法错误和未来函数。 2. 公式转 Python 代码:将通达信公式一键转换为基于 Pandas/Numpy 的高性能量化策略代码,可直接用于回测和实盘。 3. 全函数库支持:覆盖 400+ 通达信官方函数的 Python 实现,用法与通达信完全一致。 触发关键词:通达信、TDX、小果、xg_quant、公式编写、选股公式、指标公式、公式转Python、技术指标、财务选股、板块分析、写指标、交易系统、五彩K线、KDJ、MACD、RSI、CCI、布林带。 作者:小果 微信:xg_quant 专注领域:通达信公式量化、策略开发、公式转Python

一句话选型结论

按资料字段整理

小果通达信函数量化助手是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_676c825d/xg-tdx-func-quant
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_676c825d仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791725896
正文体量387.8 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
小果通达信函数量化助手当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

387.8 KB
模型实际读到的说明书原文,来自技能仓库

小果通达信函数量化助手

作者:小果
微信:xg_quant
专注领域:通达信公式量化、策略开发、公式转Python
教程 https://gitcode.com/qq_50882340/xg_tdx_func


🎯 核心功能

1. 通达信公式编写与语法检测

  • 支持使用通达信原生语法编写技术指标、条件选股、交易系统、五彩K线公式。
  • 自动检测公式中的语法错误、未定义变量、未来函数(ZIG、PEAK、TROUGH、REFX等)并给出警告。
  • 支持参数优化和回测验证。

2. 公式转 Python 代码

  • 将通达信公式自动转换为可运行的 Python 量化策略代码。
  • 转换后的代码基于 Pandas/Numpy,向量化计算,高性能回测。
  • 自动处理数据对齐、缺失值和周期转换,可直接用于回测和实盘交易。

3. 全函数库支持

  • 提供全部通达信官方函数(400+)的 Python 实现,函数用法、参数说明与通达信完全一致。
  • 支持跨周期引用、板块统计、财务数据、Level2行情等高级功能。
  • 支持自定义函数扩展。
## 简单例子
##########################
N1:=7;
N2:=5;
N3:=3;
ABC1:=(((HIGH + LOW)+(CLOSE*2)) / 4);
ABC3:=EMA(ABC1,N1);
ABC4:=STD(ABC1,N1);
ABC5:=((ABC1 - ABC3)*100) / ABC4;
ABC6:=EMA(ABC5,N2);
RK7:=EMA(ABC6,N1);
UP:=(EMA(ABC6,10)+(100 / 2)) - 5,COLORRED;
DOWN:=EMA(UP,N3);
ACB1:=EMA(DOWN,N3);
ACB2:=EMA(ACB1,N3),COLORGREEN;
ACB3:=EMA(ACB2,N3);
ACB4:=EMA(ACB3,N3);
STICKLINE(UP < REF(UP,1),UP,MA(UP,3),5,0),COLORBLUE;
STICKLINE(UP > REF(UP,1),UP,EMA(UP,3),5,0),COLORMAGENTA;
DRAWTEXT(UP > REF(UP,1)  AND  REF(UP,1) < REF(UP,2) ,UP,'买'),COLORRED;
DRAWTEXT(UP < REF(UP,1)  AND  REF(UP,1) > REF(UP,2) ,UP,'卖'),COLORGREEN;
#############################################
## 📋 通达信函数完整列表

### 一、行情函数(32个)
HIGH 最高价
H 最高价(简写)
LOW 最低价
L 最低价(简写)
CLOSE 收盘价
C 收盘价(简写)
OPEN 开盘价
O 开盘价(简写)
VOL 成交量(手)
V 成交量(手)(简写)
AMOUNT 成交额(元)
AMO 成交额(元)(简写)
ADVANCE 上涨家数(仅大盘有效)
DECLINE 下跌家数(仅大盘有效)
ASKPRICE 委卖价(分笔周期,N取1-3)
ASKVOL 委卖量(分笔周期,N取1-3)
BIDPRICE 委买价(分笔周期,N取1-3)
BIDVOL 委买量(分笔周期,N取1-3)
BUYVOL 主动性买盘(分笔周期有效)
SELLVOL 主动性卖盘(分笔周期有效)
ISBUYORDER 是否为主动性买单(分笔周期)
ISSELLORDER 是否为主动性卖单(分笔周期)
VOLINSTK 持仓量(期货/期权)
QHJSJ 期货结算价
DHIGH 不定周期最高价(未来函数)
DOPEN 不定周期开盘价(未来函数)
DLOW 不定周期最低价(未来函数)
DCLOSE 不定周期收盘价(未来函数)
DVOL 不定周期成交量(未来函数)
NAMELIKE 模糊股票名称匹配
CODELIKE 模糊股票代码匹配
INBLOCK 判断是否属于某板块

text

### 二、时间函数(24个)
DATE 日期(从1900年开始计数)
TIME 时间(时分)
TIME2 时间(时分秒)
YEAR 年份
MONTH 月份(1-12)
WEEKDAY 星期(1-7,1为星期一)
DAY 日期(1-31)
HOUR 小时(0-23)
MINUTE 分钟(0-59)
PERIOD 周期类型(0-13)
FROMOPEN 距开盘分钟数
TFILT 对指定时间段的数据进行过滤
DATETODAY 指定日期到1990.12.19的天数
DAYTODATE 1990.12.19后第N天的日期
TIMETOSEC 指定时刻距0时的秒数
SECTOTIME 0时后N秒的时间
WEEKOFYEAR 年内第几周
DAYSTOTODAY 离今天的天数
TOTALFZNUM 每天总交易分钟数
MACHINEDATE 当前系统日期
MACHINETIME 当前系统时间
MACHINEWEEK 当前系统星期
ISJYDATE A股行情已初始化
HQCRBK 行情区背景色

text

### 三、引用函数(72个)
DRAWNULL 无效数
BACKSET 向前赋值(未来函数)
BARSCOUNT 有效数据周期数
CURRBARSCOUNT 到最后交易日的周期数
TOTALBARSCOUNT 总的周期数
BARSTATUS 数据位置状态
ISLASTBAR 是否最后一个周期
REF 引用若干周期前的数据
REFX 引用若干周期后的数据(未来函数)
REFV 日前的(平滑处理)
REFXV 日后的(平滑处理)
REFDATE 引用指定日期的数据
SUM 总和
SUMBARS 累加到指定值的周期数
SUMBARSX 累加到指定值的周期数(无效返回)
MA 简单移动平均
SMA 移动平均(权重可变)
EMA

本回答由 AI 生成,内容仅供参考,请仔细甄别
你这个没有在严格代码块呀,### 一、行情函数(27个)
HIGH 最高价
H 最高价(简写)
LOW 最低价
L 最低价(简写)
CLOSE 收盘价
C 收盘价(简写)
OPEN 开盘价
O 开盘价(简写)
VOL 成交量(手)
V 成交量(手)(简写)
AMOUNT 成交额(元)
AMO 成交额(元)(简写)
ADVANCE 上涨家数(仅大盘有效)
DECLINE 下跌家数(仅大盘有效)
ASKPRICE 委卖价(分笔周期,N取1-3)
ASKVOL 委卖量(分笔周期,N取1-3)
BIDPRICE 委买价(分笔周期,N取1-3)
BIDVOL 委买量(分笔周期,N取1-3)
BUYVOL 主动性买盘(分笔周期有效)
SELLVOL 主动性卖盘(分笔周期有效)
ISBUYORDER 是否为主动性买单(分笔周期)
ISSELLORDER 是否为主动性卖单(分笔周期)
VOLINSTK 持仓量(期货/期权)
QHJSJ 期货结算价
DHIGH 不定周期最高价(未来函数)
DOPEN 不定周期开盘价(未来函数)
DLOW 不定周期最低价(未来函数)
DCLOSE 不定周期收盘价(未来函数)
DVOL 不定周期成交量(未来函数)
NAMELIKE 模糊股票名称匹配
CODELIKE 模糊股票代码匹配
INBLOCK 判断是否属于某板块

text

### 二、时间函数(24个)
DATE 日期(从1900年开始计数)
TIME 时间(时分)
TIME2 时间(时分秒)
YEAR 年份
MONTH 月份(1-12)
WEEKDAY 星期(1-7,1为星期一)
DAY 日期(1-31)
HOUR 小时(0-23)
MINUTE 分钟(0-59)
PERIOD 周期类型(0-13)
FROMOPEN 距开盘分钟数
TFILT 对指定时间段的数据进行过滤
DATETODAY 指定日期到1990.12.19的天数
DAYTODATE 1990.12.19后第N天的日期
TIMETOSEC 指定时刻距0时的秒数
SECTOTIME 0时后N秒的时间
WEEKOFYEAR 年内第几周
DAYSTOTODAY 离今天的天数
TOTALFZNUM 每天总交易分钟数
MACHINEDATE 当前系统日期
MACHINETIME 当前系统时间
MACHINEWEEK 当前系统星期
ISJYDATE A股行情已初始化
HQCRBK 行情区背景色

text

### 三、引用函数(72个)
DRAWNULL 无效数
BACKSET 向前赋值(未来函数)
BARSCOUNT 有效数据周期数
CURRBARSCOUNT 到最后交易日的周期数
TOTALBARSCOUNT 总的周期数
BARSTATUS 数据位置状态
ISLASTBAR 是否最后一个周期
REF 引用若干周期前的数据
REFX 引用若干周期后的数据(未来函数)
REFV 日前的(平滑处理)
REFXV 日后的(平滑处理)
REFDATE 引用指定日期的数据
SUM 总和
SUMBARS 累加到指定值的周期数
SUMBARSX 累加到指定值的周期数(无效返回)
MA 简单移动平均
SMA 移动平均(权重可变)
EMA

本回答由 AI 生成,内容仅供参考,请仔细甄别
markdown
---
name: 小果通达信函数量化助手
description: |
  小果通达信函数量化助手——由小果(微信: xg_quant)开发的通达信公式量化工具。提供:
  1. 通达信公式编写与语法检测:支持技术指标、条件选股、交易系统、五彩K线公式编写,自动检测语法错误和未来函数。
  2. 公式转 Python 代码:将通达信公式一键转换为基于 Pandas/Numpy 的高性能量化策略代码,可直接用于回测和实盘。
  3. 全函数库支持:覆盖 400+ 通达信官方函数的 Python 实现,用法与通达信完全一致。
  触发关键词:通达信、TDX、小果、xg_quant、公式编写、选股公式、指标公式、公式转Python、技术指标、财务选股、板块分析、写指标、交易系统、五彩K线、KDJ、MACD、RSI、CCI、布林带。
version: 2.0.0
metadata:
  openclaw:
    emoji: "📊"
---

# 小果通达信函数量化助手

**作者**:小果  
**微信**:xg_quant  
**专注领域**:通达信公式量化、策略开发、公式转Python

---

## 🎯 核心功能

### 1. 通达信公式编写与语法检测
- 支持使用通达信原生语法编写技术指标、条件选股、交易系统、五彩K线公式。
- 自动检测公式中的语法错误、未定义变量、未来函数(ZIG、PEAK、TROUGH、REFX等)并给出警告。
- 支持参数优化和回测验证。

### 2. 公式转 Python 代码
- 将通达信公式自动转换为可运行的 Python 量化策略代码。
- 转换后的代码基于 Pandas/Numpy,向量化计算,高性能回测。
- 自动处理数据对齐、缺失值和周期转换,可直接用于回测和实盘交易。

### 3. 全函数库支持
- 提供全部通达信官方函数(400+)的 Python 实现,函数用法、参数说明与通达信完全一致。
- 支持跨周期引用、板块统计、财务数据、Level2行情等高级功能。
- 支持自定义函数扩展。

---

## 📋 通达信函数完整列表

### 一、行情函数(32个)
HIGH 最高价
H 最高价(简写)
LOW 最低价
L 最低价(简写)
CLOSE 收盘价
C 收盘价(简写)
OPEN 开盘价
O 开盘价(简写)
VOL 成交量(手)
V 成交量(手)(简写)
AMOUNT 成交额(元)
AMO 成交额(元)(简写)
ADVANCE 上涨家数(仅大盘有效)
DECLINE 下跌家数(仅大盘有效)
ASKPRICE 委卖价(分笔周期,N取1-3)
ASKVOL 委卖量(分笔周期,N取1-3)
BIDPRICE 委买价(分笔周期,N取1-3)
BIDVOL 委买量(分笔周期,N取1-3)
BUYVOL 主动性买盘(分笔周期有效)
SELLVOL 主动性卖盘(分笔周期有效)
ISBUYORDER 是否为主动性买单(分笔周期)
ISSELLORDER 是否为主动性卖单(分笔周期)
VOLINSTK 持仓量(期货/期权)
QHJSJ 期货结算价
DHIGH 不定周期最高价(未来函数)
DOPEN 不定周期开盘价(未来函数)
DLOW 不定周期最低价(未来函数)
DCLOSE 不定周期收盘价(未来函数)
DVOL 不定周期成交量(未来函数)
NAMELIKE 模糊股票名称匹配
CODELIKE 模糊股票代码匹配
INBLOCK 判断是否属于某板块
ZSTJJ 分时图均价
HKSHORTVOL 抛空量(港股)

text

### 二、时间函数(24个)
DATE 日期(从1900年开始计数)
TIME 时间(时分)
TIME2 时间(时分秒)
YEAR 年份
MONTH 月份(1-12)
WEEKDAY 星期(1-7,1为星期一)
DAY 日期(1-31)
HOUR 小时(0-23)
MINUTE 分钟(0-59)
PERIOD 周期类型(0-13)
FROMOPEN 距开盘分钟数
TFILT 对指定时间段的数据进行过滤
DATETODAY 指定日期到1990.12.19的天数
DAYTODATE 1990.12.19后第N天的日期
TIMETOSEC 指定时刻距0时的秒数
SECTOTIME 0时后N秒的时间
WEEKOFYEAR 年内第几周
DAYSTOTODAY 离今天的天数
TOTALFZNUM 每天总交易分钟数
MACHINEDATE 当前系统日期
MACHINETIME 当前系统时间
MACHINEWEEK 当前系统星期
ISJYDATE A股行情已初始化
HQCRBK 行情区背景色

text

### 三、引用函数(72个)
DRAWNULL 无效数
BACKSET 向前赋值(未来函数)
BARSCOUNT 有效数据周期数
CURRBARSCOUNT 到最后交易日的周期数
TOTALBARSCOUNT 总的周期数
BARSTATUS 数据位置状态
ISLASTBAR 是否最后一个周期
REF 引用若干周期前的数据
REFX 引用若干周期后的数据(未来函数)
REFV 日前的(平滑处理)
REFXV 日后的(平滑处理)
REFDATE 引用指定日期的数据
SUM 总和
SUMBARS 累加到指定值的周期数
SUMBARSX 累加到指定值的周期数(无效返回)
MA 简单移动平均
SMA 移动平均(权重可变)
EMA 指数移动平均
EXPMA 指数移动平均(同EMA)
MEMA 平滑移动平均
EXPMEMA 指数平滑移动平均
WMA 加权移动平均
XMA 偏移移动平均(未来函数)
DMA 动态移动平均
AMA 自适应均线
TMA 递归移动平均
HHV N周期内最高值
HHVBARS 上一高点位置
HOD 高值名次
LLV N周期内最低值
LLVBARS 上一低点位置
LOD 低值名次
HHVLLV 阶段最高最低值
COUNT 统计满足条件的周期数
BARSLAST 上一次条件成立位置
BARSLASTS 倒数第N次成立时距今周期数
BARSSINCEN N周期内首个条件成立位置
BARSSINCE 首个条件成立位置
BARSNEXT 下一次条件成立位置(未来函数)
BARSLASTCOUNT 条件连续成立次数
FILTER 过滤连续出现的信号
FILTERX 反向过滤
TFILT 区间过滤
TFILTER 信号过滤(多头)
TTFILTER 信号过滤(多空)
TR 真实波幅
CONST 取值设为常数
VALUEWHEN 条件跟随
TOPRANGE 当前值是近多少周期内的最大值
LOWRANGE 当前值是近多少周期内的最小值
FINDHIGH 寻找指定周期内特定最大值
FINDHIGHBARS 最大值到当前的周期数
FINDLOW 寻找指定周期内特定最小值
FINDLOWBARS 最小值到当前的周期数
ALIGNRIGHT 有效数据右对齐
CALCSTOCKINDEX 指标引用
EXTDATA_USER 引用扩展数据
EXTERNSTR 引用自定义外部字符串数据
EXTERNVALUE 引用自定义外部数值数据
SIGNALS_SYS 引用自定义序列数据(系统)
SIGNALS_USER 引用自定义序列数据(用户)
SPLIT 除权除息数据
SPLITBARS 除权除息到现在的周期数
DIVFACTOR 除权因子
ZTPRICE 计算涨停价
DTPRICE 计算跌停价
TDXDLL1-10 第1-10号DLL调用
USERFUNC0-4 DLL函数(0-4参数)
MULAR 累乘
RANGE 介于某个范围之间
REVERSE 求相反数

text

### 四、逻辑函数/选择函数(9个)
IF 条件判断: X成立返回A,否则返回B
IFC 条件判断可中止: X成立返回A,否则退出公式
IFF 条件判断(同IF)
IFN 条件反判断: X成立返回B,否则返回A
CROSS X上穿Y(金叉)
LONGCROSS X上穿Y且N周期内保持成立
NOT 逻辑非
TESTSKIP 满足条件则直接返回,不再计算后续
VALUEWHEN 条件跟随: 条件成立取当前值,否则取上次值

text

### 五、算术函数(10个)
MAX 较大值
MIN 较小值
ABS 绝对值
MOD 取模(余数)
REVERSE 取反(正变负,负变正)
AVEDEV 平均绝对方差
CEILING 向上取整
FLOOR 向下取整
MAX6 求6个参数中的最大值
MIN6 求6个参数中的最小值

text

### 六、数学函数(25个)
ABS 绝对值
ACOS 反余弦值
ASIN 反正弦值
ATAN 反正切值
BETWEEN 介于(含边界)
CEILING 向上舍入
COS 余弦值
EXP e的X次幂
FLOOR 向下舍入
FRACPART 取小数部分
INTPART 取整数部分
LN 自然对数
LOG 10为底对数
MAX 较大值
MIN 较小值
MOD 取模
POW 乘幂
RAND 随机正整数
ROUND 四舍五入
ROUND2 四舍五入到N位小数
SIGN 取符号
SIN 正弦值
SQRT 平方根
TAN 正切值
RANGE 范围判断(不含边界)

text

### 七、统计函数(12个)
STD 估算标准差
STDP 总体标准差
VAR 估算方差
VARP 总体方差
FORCAST 线性回归预测值
SLOPE 线性回归斜率
COVAR 协方差
CORREL 相关系数
AVEDEV 平均绝对方差
DEVSQ 偏差平方和
BETA β(Beta)系数
BETAEX 相关放大系数

text

### 八、形态函数/指标函数(14个)
COST 成本分布, N%获利盘的价格
WINNER 获利盘比例
LWINNER 近期获利盘比例
PWINNER 远期获利盘比例
ZIG 之字转向(未来函数)
PEAK 波峰值(未来函数)
TROUGH 波谷值(未来函数)
SAR 抛物转向
SAREXT 抛物转向扩展
RSI 相对强弱指标
KDJ 随机指标
MACD 指数平滑异同移动平均
NewSAR 新抛物转向
LFS 锁定因子

text

### 九、绘图函数(16个)
DRAWICON 画图标(图标代码1-15)
DRAWTEXT 显示文字
DRAWLINE 绘制直线段
STICKLINE 绘制柱状线
DRAWBAND 绘制带状线
DRAWNUMBER 显示数字
PARTLINE 分段绘制线条
PLOYLINE 绘制折线段
DRAWSL 绘制斜线
DRAWKLINE 绘制K线
DRAWGBK 填充背景
DRAWRECTREL 相对位置上画矩形
DRAWBMP 画图片
DRAWTEXT_FIX 定点文字
DRAWNUMBER_FIX 定点数字
DRAWNUMBER_DIF 画连续数字和字母
RGB 自定色

text

### 十、财务函数(60个)
FINANCE(1) 总股本(万股)
FINANCE(2) 国家股(万股)
FINANCE(3) 发起人法人股(万股)
FINANCE(4) 法人股(万股)
FINANCE(5) B股(万股)
FINANCE(6) H股(万股)
FINANCE(7) 流通股本(万股)
CAPITAL 流通股本(手)
FINANCE(10) 总资产
FINANCE(11) 流动资产
FINANCE(12) 固定资产
FINANCE(13) 无形资产
FINANCE(15) 流动负债
FINANCE(16) 少数股东权益
FINANCE(17) 资本公积金
FINANCE(18) 每股公积金
FINANCE(19) 股东权益(净资产)
FINANCE(20) 营业收入
FINANCE(21) 营业成本
FINANCE(22) 应收账款
FINANCE(23) 营业利润
FINANCE(24) 投资收益
FINANCE(25) 经营现金流量
FINANCE(26) 总现金流量
FINANCE(27) 存货
FINANCE(28) 利润总额
FINANCE(29) 税后利润
FINANCE(30) 净利润
FINANCE(31) 未分配利润
FINANCE(32) 每股未分配利润
FINANCE(33) 每股收益(全年折算)
FINANCE(34) 每股净资产
FINANCE(35) 季报调整净资产
FINANCE(36) 股东权益比
FINANCE(37) 第几季报
FINANCE(38) 每股收益(最近一期)
FINANCE(39) 总市值
FINANCE(40) 流通市值
FINANCE(41) AB股总市值
FINANCE(42) 上市天数
FINANCE(43) 利润同比%
FINANCE(44) 收入同比%
FINANCE(45) 股息率%
FINANCE(46) 自由流通股本(股)
FINANCE(47) 是否次新股
FINANCE(48) 是否陆股通标的
FINANCE(49) 今日权息标识
FINANCE(50) 是否沪深300
FINANCE(51) 是否含可转债
FINANCE(52) 是否融资融券标的
FINANCE(53) 每股股息(港股/美股)
FINANCE(54) 扣非净利润
FINANCE(55) 研发费用
FINANCE(56) 员工人数
FINANCE(57) 货币资金
FINANCE(58) 合同负债
FINANCE(59) 其他权益工具
FINANCE(60) 行权比例(权证/期权)
FINANCE(61) 行权价(权证/期权)
FINANCE(62) 杠杆比率(权证/期权)
FINANCE(63) 内在价值(权证/期权)
FINANCE(64) 溢价率(权证/期权)
FINANCE(65) 时间价值(权证/期权)
FINANCE(66) 剩余天数(期货/期权)
FINANCE(67) 合约乘数(期权)
FINANCE(68) Delta对冲值(权证/期权)
FINANCE(69) 认购认沽类型(股票期权)
FINANCE(80) 最近财报公告离现在天数
FINANCE(81) 最后涨停板离现在天数
FINANCE(82) 最后跌停板离现在天数
FINANCE(83) 最后上榜离现在天数
FINANCE(84) 最近停牌离现在天数
FINANCE(85) 最近业绩预告离现在天数
FINANCE(86) 最近股份解禁离现在天数
FINANCE(87) 最近定增股上市离现在天数
FINANCE(88) 最近北上大额增仓日离现在天数
FINANCE(89) 最近北上大额减仓日离现在天数
FINANCE(90) 最近回购预案日离现在天数
FINANCE(91) 最近股权激励预案日离现在天数
FINANCE(99) 是否为注册制股票
FINANCE(101) 用户在客户端设置的标识
FINANCE(102) IPO发行价
SAFESCORE 安全分(0-100)

text

### 十一、专业财务数据函数(8个)
FINVALUE(ID) 引用专业财务数据序列数值
FINONE(ID,Y,MMDD) 引用指定年月日的财务数据
GPJYVALUE(ID,N,TYPE) 引用股票交易类数据(序列)
GPJYONE(ID,N,Y,MMDD) 引用股票交易类数据(指定日期)
BKJYVALUE(ID,N,TYPE) 引用板块交易类数据(序列)
BKJYONE(ID,N,Y,MMDD) 引用板块交易类数据(指定日期)
SCJYVALUE(ID,N,TYPE) 引用市场交易类数据(序列)
SCJYONE(ID,N,Y,MMDD) 引用市场交易类数据(指定日期)
GPONEDAT(ID) 引用股票的单个数据(非序列)

text

### 十二、板块字符函数(25个)
CODE 品种代码
STKNAME 品种名称
HYBLOCK 所属行业(字串)
DYBLOCK 所属地域(字串)
MOREHYBLOCK 所属细分行业(字串)
LEVEL1HYBLOCK 所属一级研究行业(字串)
MAINBUSINESS 主营构成(字串)
GNBLOCK 所属概念板块(字串)
FGBLOCK 所属风格板块(字串)
ZSBLOCK 所属指数板块(字串)
ZHBLOCK 所属组合板块(字串)
ZDBLOCK 所属自定义板块(字串)
GNBLOCKNUM 所属概念板块(个数)
FGBLOCKNUM 所属风格板块(个数)
ZSBLOCKNUM 所属指数板块(个数)
ZHBLOCKNUM 所属组合板块(个数)
ZDBLOCKNUM 所属自定义板块(个数)
HYZSCODE 所属行业的板块指数代码
HYSYL 指数市盈率或个股所属行业的市盈率
HYSJL 指数市净率或个股所属行业的市净率
GNBKZSCODE 所属概念板块的指数代码
FGBKZSCODE 所属风格板块的指数代码
TOKENWORD 标识简字
INBLOCK 属于某板块
NAMELIKE 模糊匹配品种名称
CODELIKE 模糊匹配品种代码
NAMEINCLUDE 品种名称中包含
GETNAMEOFCODE 根据品种代码得到品种名称
CON2STR 取值转为字符串
VAR2STR 取值转为字符串(序列)
STR2CON 字符串转为数字
STRLEN 得到字符串的长度
STRCAT 字符串相加
STRCAT6 字符串相加(6个)
STRSPACE 字符串加一空格
SUBSTR 字符串中取一部分
VARCAT 字符串相加(序列)
VARCAT6 字符串相加(序列)(6个)
STRCMP 字符串比较
FINDSTR 字符串查找

text

### 十三、大盘指数函数(10个)
INDEXA 大盘成交额
INDEXADV 大盘上涨家数
INDEXDEC 大盘下跌家数
INDEXC 大盘收盘价
INDEXH 大盘最高价
INDEXL 大盘最低价
INDEXO 大盘开盘价
INDEXV 大盘成交量
DPZSCODE 所属大盘指数代码
DPZSNAME 所属大盘指数名称
UNDERCODE 对应标的代码
UNDERLYC 对应标的收盘价

text

### 十四、行业指数函数(8个)
HY_INDEXA 行业指数成交额
HY_INDEXADV 行业指数上涨家数
HY_INDEXDEC 行业指数下跌家数
HY_INDEXC 行业指数收盘价
HY_INDEXH 行业指数最高价
HY_INDEXL 行业指数最低价
HY_INDEXO 行业指数开盘价
HY_INDEXV 行业指数成交量

text

### 十五、动态行情函数(40个)
DYNAINFO(3) 昨收盘价
DYNAINFO(4) 开盘价
DYNAINFO(5) 最高价
DYNAINFO(6) 最低价
DYNAINFO(7) 现价
DYNAINFO(8) 总量
DYNAINFO(9) 现量
DYNAINFO(10) 总金额
DYNAINFO(11) 均价
DYNAINFO(12) 日涨跌
DYNAINFO(13) 振幅
DYNAINFO(14) 涨幅
DYNAINFO(15) 开盘金额
DYNAINFO(16) 前5日每分钟均量
DYNAINFO(17) 量比
DYNAINFO(18) 上涨家数
DYNAINFO(19) 下跌家数
DYNAINFO(20) 买价(买一价)
DYNAINFO(21) 卖价(卖一价)
DYNAINFO(22) 内盘/板块指数跌停数
DYNAINFO(23) 外盘/板块指数涨停数
DYNAINFO(24) 涨速
DYNAINFO(25) 几分钟前的价格
DYNAINFO(26) 涨停价
DYNAINFO(27) 跌停价
DYNAINFO(28) 笼子买入价上限
DYNAINFO(29) 笼子卖出价下限
DYNAINFO(30) 昨开盘成交量(手)
DYNAINFO(31) 竞价涨停委买额
DYNAINFO(34) 昨日涨幅
DYNAINFO(35) 3日换手Z
DYNAINFO(36) 换手率Z
DYNAINFO(37) 换手率
DYNAINFO(38) 市盈(静)
DYNAINFO(39) 市盈(动)
DYNAINFO(40) 市盈(TTM)
DYNAINFO(49) 成交方向
DYNAINFO(50) 采样点数(分笔数)
DYNAINFO(51) 内外比
DYNAINFO(52) 港股资金流向
DYNAINFO(53) 应计利息/昨净值
DYNAINFO(54) IOPV
DYNAINFO(55) 基金估算涨幅%
DYNAINFO(57) 笔涨跌
DYNAINFO(58) 买量(买一量)
DYNAINFO(59) 卖量(卖一量)
DYNAINFO(60) 沪深京总上涨家数
DYNAINFO(61) 沪深京总下跌家数
DYNAINFO(62) 沪深京总成交金额
DYNAINFO(63) 3日涨幅
DYNAINFO(64) 5日涨幅
DYNAINFO(65) 10日涨幅
DYNAINFO(66) 20日涨幅
DYNAINFO(67) 60日涨幅
DYNAINFO(68) 年初至今涨幅
DYNAINFO(69) 月初至今涨幅
DYNAINFO(70) 一年涨幅
DYNAINFO(71) 买二价
DYNAINFO(72) 买二量
DYNAINFO(73) 卖二价
DYNAINFO(74) 卖二量
DYNAINFO(75) 买三价
DYNAINFO(76) 买三量
DYNAINFO(77) 卖三价
DYNAINFO(78) 卖三量
DYNAINFO(79) 买四价
DYNAINFO(80) 买四量
DYNAINFO(81) 卖四价
DYNAINFO(82) 卖四量
DYNAINFO(83) 买五价
DYNAINFO(84) 买五量
DYNAINFO(85) 卖五价
DYNAINFO(86) 卖五量
DYNAINFO(88) 封单额
DYNAINFO(89) 年涨停天数
DYNAINFO(90) 连板天数
DYNAINFO(91) 几天
DYNAINFO(92) 几板
DYNAINFO(93) 昨成交额
DYNAINFO(94) 3日成交额
DYNAINFO(95) 昨封单额
DYNAINFO(96) 前封单额
DYNAINFO(99) 主买净额
DYNAINFO(100) 主力净额
DYNAINFO(101) 量涨速
DYNAINFO(102) 分钟换手率
DYNAINFO(103) 2分钟金额
DYNAINFO(104) 开盘抢筹
DYNAINFO(105) 委比
DYNAINFO(106) 总委买量
DYNAINFO(107) 总委卖量
DYNAINFO(108) 总撤买量
DYNAINFO(109) 总撤卖量
DYNAINFO(110) L2逐笔成交数
DYNAINFO(111) L2逐笔委托数
DYNAINFO(117) 量比(序列)
DYNAINFO(118) 52周最高价
DYNAINFO(119) 52周最低价

text

### 十六、资金流向函数(20个)
TRADENUM 总成交单数
TRADEINNUM 逐笔买入成交单数
TRADEOUTNUM 逐笔卖出成交单数
LARGETRDINNUM 逐笔买入大单成交单数
LARGETRDOUTNUM 逐笔卖出大单成交单数
L2_VOLNUM 单数分档
L2_VOL 成交量分档
L2_AMO 成交额分档
CUR_BUYORDER 总委买量
CUR_SELLORDER 总委卖量
ACTINVOL 主动买成交量
ACTOUTVOL 主动卖成交量
LARGEINTRDVOL 逐笔买入大单成交量
LARGEOUTTRDVOL 逐笔卖出大单成交量
BIDORDERVOL 累计总有效委买量
BIDCANCELVOL 累计总有效撤买量
AVGBIDPX 最新委买均价
OFFERORDERVOL 累计总有效委卖量
OFFERCANCELVOL 累计总有效撤卖量
AVGOFFERPX 最新委卖均价

text

### 十七、交易系统函数(10个)
ENTERLONG 多头买入信号
EXITLONG 多头卖出信号
ENTERSHORT 空头开仓信号
EXITSHORT 空头平仓信号
CLOSEPOS 平仓信号
SELL 卖出信号
BUY 买入信号
SELLSHORT 空头卖出信号
BUYSHORT 空头买入信号
CLOSEALL 全部平仓

text

### 十八、横向统计函数(5个)
BLOCKSETNUM 返回该板块股票个数
HORCALC 多股横向统计
INSORT 板块排序选股
OUTSORT 板块排序反向选股
SORT 排序

text

### 十九、线形和颜色属性(20个)
COLORRED 红色
COLORGREEN 绿色
COLORBLUE 蓝色
COLORBLACK 黑色
COLORWHITE 白色
COLORYELLOW 黄色
COLORCYAN 青色
COLORMAGENTA 洋红色
COLORBROWN 棕色
COLORGRAY 灰色
COLORLIGRAY 淡灰色
COLORLIBLUE 淡蓝色
COLORLIGREEN 淡绿色
COLORLICYAN 淡青色
COLORLIRED 淡红色
COLORLIMAGENTA 淡洋红色
LINETHICK1-9 线宽1-9
STICK 柱状线
COLORSTICK 彩色柱状线
VOLSTICK 成交量柱状线
CROSSDOT 小叉线
CIRCLEDOT 小圆圈线
POINTDOT 小圆点线
DOTLINE 虚线
NODRAW 不显示
DRAWABOVE 显示在位置之上
NOFRAME 不显示边框
NOTEXT 不显示输出线数据

text

### 二十、账户函数(14个)
BUYPOSITION 买持仓(期货)
TODAYBUY 今买持仓(期货)
BUYAVGPRICE 买均价(期货)
BUYPROFITLOSS 买持仓盈利(期货)
SELLPOSITION 卖持仓(期货)
TODAYSELL 今卖持仓(期货)
SELLAVGPRICE 卖均价(期货)
SELLPROFITLOSS 卖持仓盈利(期货)
TOTALPOSITION 总持仓(期货)
CANUSEPOSITION 总可用持仓(期货)
TOTALAVGPRICE 总持仓均价(期货)
FREEMONEY 总可用资金量
CURRENTEQUITY 动态权益(期货)
PREVIOUSEQUITY 昨日结存权益(期货)
PROFITLOSS 持仓盈亏(期货)
CLOSEPROFIT 平仓盈亏(期货)
TOTALMARGIN 持仓保证金(期货)
FEERATE 合约手续费
MARGINRATE 合约保证金

text

### 二十一、关联财务/市场函数(10个)
SETCODE 市场类型
MINDIFF 最小变动价位
MULTIPLIER 期货每手乘数
TQFLAG 当前复权状态
USEDDATANUM 当前使用的数据个数
LOCALDAYNUM 本地日线数据个数
IST0CODE 是否是T+0品种
TOTALCAPITAL 当前总股本(手)
CAPITAL 当前流通股本(手)

text

---

## 🔧 公式转 Python 示例

### 通达信公式(KDJ指标)
```tdx
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
J:3*K-2*D;
转换后的 Python 代码
python
import pandas as pd
import numpy as np

def KDJ(CLOSE, HIGH, LOW, N=9, M1=3, M2=3):
    RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100
    K = SMA(RSV, M1, 1)
    D = SMA(K, M2, 1)
    J = 3 * K - 2 * D
    return K, D, J
📝 注意事项
未来函数警示:ZIG、PEAK、TROUGH、BACKSET、REFX、DHIGH、DOPEN、DLOW、DCLOSE、DVOL 等属于未来函数,历史信号会漂移,复盘看似完美但实盘无效,非必要请完全避开。

函数适用范围:

ASKPRICE、BIDPRICE、BUYVOL、SELLVOL 等仅分笔成交周期有效

ADVANCE、DECLINE 仅对大盘指数有效

FINANCE 类函数依赖最新财报数据

数据准备:

跨周期引用(如 #WEEK、#MONTH)需要对应周期的数据已下载

指数函数(INDEXC、INDEXV 等)需要指数数据已下载

专业财务数据需要下载专业财务数据包

💬 联系我们
作者:小果
微信:xg_quant
专注领域:通达信公式量化、策略开发、公式转Python
如有任何问题、建议或合作需求,欢迎添加微信交流!

####################################################
一、行情函数(24个)
获取基础行情数据。

函数  简写  说明
HIGH    H   最高价
LOW L   最低价
CLOSE   C   收盘价
OPEN    O   开盘价
VOL V   成交量(手)
AMOUNT  AMO 成交额(元)
ADVANCE -   上涨家数(仅大盘有效)
DECLINE -   下跌家数(仅大盘有效)
ASKPRICE    -   委卖价(分笔周期,N取1-3)
ASKVOL  -   委卖量(分笔周期,N取1-3)
BIDPRICE    -   委买价(分笔周期,N取1-3)
BIDVOL  -   委买量(分笔周期,N取1-3)
BUYVOL  -   主动性买盘(分笔周期有效)
SELLVOL -   主动性卖盘(分笔周期有效)
ISBUYORDER  -   是否为主动性买单(分笔周期)
ISSELLORDER -   是否为主动性卖单(分笔周期)
VOLINSTK    -   持仓量(期货/期权)
QHJSJ   -   期货结算价
DHIGH   -   不定周期最高价(未来函数)
DOPEN   -   不定周期开盘价(未来函数)
DLOW    -   不定周期最低价(未来函数)
DCLOSE  -   不定周期收盘价(未来函数)
DVOL    -   不定周期成交量(未来函数)
NAMELIKE    -   模糊股票名称匹配
CODELIKE    -   模糊股票代码匹配
INBLOCK -   判断是否属于某板块
二、时间函数(17个)
处理日期和时间数据。

函数  说明
DATE    日期(从1900年开始计数)
TIME    时间(时分秒)
YEAR    年份
MONTH   月份(1-12)
WEEKDAY 星期(1-7,1为星期一)
DAY 日期(1-31)
HOUR    小时(0-23)
MINUTE  分钟(0-59)
PERIOD  周期类型(0-11:1/5/15/30/60分钟,日/周/月/季/年等)
FROMOPEN    距开盘分钟数
TFILT   对指定时间段的数据进行过滤
DATETODAY   指定日期到1990.12.19的天数
DAYTODATE   1990.12.19后第N天的日期
TIMETOSEC   指定时刻距0时的秒数
SECTOTIME   0时后N秒的时间
WEEKOFYEAR  年内第几周
DAYSTOTODAY 离今天的天数
三、引用函数(约70个)★最常用
引用历史数据、其他周期数据进行统计计算。

函数  说明  函数  说明
DRAWNULL    无效数 REF 引用若干周期前的数据
BACKSET 向前赋值    REFX    引用若干周期后的数据(未来函数)
BARSCOUNT   有效数据周期数 REFDATE 引用指定日期的数据
CURRBARSCOUNT   到最后交易日的周期数  REFV    日前的(未作平滑处理)
TOTALBARSCOUNT  总的周期数   REFXV   日后的(未作平滑处理)
BARSLAST    上一次条件成立位置   SUM 总和
BARSSINCE   第一个条件成立位置   SUMBARS 累加到指定值的周期数
BARSSINCEN  N周期内首个条件成立位置    MA  简单移动平均
BARSLASTCOUNT   条件连续成立次数    EMA 指数移动平均
BARSNEXT    下一次条件成立位置   SMA 移动平均(权重可变)
COUNT   统计满足条件的周期数  DMA 动态移动平均
HHV N周期内最高值 MEMA    平滑移动平均
HHVBARS 上一高点位置  EXPMEMA 指数平滑移动平均
LLV N周期内最低值 WMA 加权移动平均
LLVBARS 上一低点位置  XMA 偏移移动平均
HOD 高值名次    AMA 自适应均线
LOD 低值名次    TMA 递归移动平均
REVERSE 求相反数    FILTER  过滤连续出现的信号
CONST   取值设为常数  FILTERX 反向过滤
VALUEWHEN   条件跟随    ALIGNRIGHT  有效数据右对齐
FINDHIGH    寻找指定周期内特定最大值    BARSTATUS   数据位置状态
FINDHIGHBARS    最大值到当前的周期数  TOPRANGE    当前值是近多少周期内的最大值
FINDLOW 寻找指定周期内特定最小值    LOWRANGE    当前值是近多少周期内的最小值
FINDLOWBARS 最小值到当前的周期数  ISLASTBAR   判断是否为最后一个周期
CALCSTOCKINDEX  指标引用    TR  真实波幅
EXTDATA_USER    引用扩展数据  SPLIT   除权除息数据
EXTERNSTR   引用自定义外部字符串数据    SPLITBARS   除权除息到现在的周期数
EXTERNVALUE 引用自定义外部数值数据 ZTPRICE 计算涨停价
SIGNALS_SYS 引用自定义序列数据(系统)   DTPRICE 计算跌停价
SIGNALS_USER    自定义序列数据 MULAE   累乘
TDXDLL1-10  第1-10号DLL调用 RANGE   介于某个范围之间
USERFUNC0-4 DLL函数(0-4参数)        
四、逻辑函数/选择函数(9个)
构建条件判断。

函数  说明
IF  条件判断:X成立返回A,否则返回B
IFC 条件判断,可中止(X成立返回A,否则退出公式计算)
IFF 同IF
IFN 条件反判断:X成立返回B,否则返回A
CROSS   X上穿Y(金叉)
LONGCROSS   X上穿Y且N周期内保持成立
NOT 逻辑非
TESTSKIP    满足条件则直接返回,不再计算后续表达式
VALUEWHEN   条件跟随:条件成立时取X当前值,否则取上一次成立时的值
五、算术函数(8个)
基本数学运算。

函数  说明
MAX 较大值
MIN 较小值
ABS 绝对值
MOD 取模(余数)
REVERSE 取反(正变负,负变正)
AVEDEV  平均绝对方差
CEILING 向上取整
FLOOR   向下取整
六、数学函数(25个)★完整版
科学计算函数。

序号  函数  说明  序号  函数  说明
1   ABS 绝对值 14  MAX 较大值
2   ACOS    反余弦值    15  MIN 较小值
3   ASIN    反正弦值    16  MOD 取模
4   ATAN    反正切值    17  POW 乘幂
5   BETWEEN 介于(含边界) 18  RAND    随机正整数
6   CEILING 向上舍入    19  ROUND   四舍五入
7   COS 余弦值 20  ROUND2  四舍五入到N位小数
8   EXP e的X次幂   21  SIGN    取符号
9   FLOOR   向下舍入    22  SIN 正弦值
10  FRACPART    取小数部分   23  SQRT    平方根
11  INTPART 取整数部分   24  TAN 正切值
12  LN  自然对数    25  RANGE   范围判断(不含边界)
13  LOG 10为底对数          
七、统计函数(10个)
数据统计分析。

函数  说明
STD 估算标准差
STDP    总体标准差
VAR 估算方差
VARP    总体方差
FORCAST 线性回归预测值
SLOPE   线性回归斜率
COVAR   协方差
CORREL  相关系数
AVEDEV  平均绝对方差
DEVSQ   偏差平方和
八、形态函数/指标函数(12个)
识别K线形态和技术指标。

函数  说明  备注
COST    成本分布,N%获利盘的价格   
WINNER  获利盘比例   
LWINNER 近期获利盘比例 
PWINNER 远期获利盘比例 
ZIG 之字转向    未来函数
PEAK    波峰值 未来函数
TROUGH  波谷值 未来函数
SAR 抛物转向    
SAREXT  抛物转向扩展  
RSI 相对强弱指标  
KDJ 随机指标    
MACD    指数平滑异同移动平均  
九、绘图函数(15个)
在图表上绘制线条、图标、文字。

函数  说明
DRAWICON    画图标(图标代码1-15)
DRAWTEXT    显示文字
DRAWLINE    绘制直线段
STICKLINE   绘制柱状线
DRAWBAND    绘制带状线
DRAWNUMBER  显示数字
PARTLINE    分段绘制线条
COLOR   设置颜色(如COLORRED)
LINETHICK   设置线宽(1-9)
NODRAW  不显示该线
STICK   画柱状线
COLORSTICK  画彩色柱状线
VOLSTICK    画成交量彩色柱状线
LINESTICK   同时画出柱状线和指标线
CROSSDOT    画小叉线
CIRCLEDOT   画小圆圈线
POINTDOT    画小圆点线
十、财务函数(40+个)
获取公司财务数据。

函数  说明  函数  说明
FINANCE(1)  总股本(万股) FINANCE(31) 未分配利润
FINANCE(2)  国家股(万股) FINANCE(32) 每股未分配利润
FINANCE(3)  发起人法人股(万股)  FINANCE(33) 每股收益
FINANCE(4)  法人股(万股) FINANCE(34) 每股净资产
FINANCE(5)  B股(万股)  FINANCE(35) 调整每股净资产
FINANCE(6)  H股(万股)  FINANCE(36) 股东权益比
FINANCE(7)  流通股本(万股)    FINANCE(40) 流通市值
CAPITAL 流通股本(手) FINANCE(41) 总市值
FINANCE(10) 总资产 FINANCE(42) 上市日期
FINANCE(11) 流动资产    GROWTH(1)   主营收入增长率
FINANCE(12) 固定资产    GROWTH(2)   净利润增长率
FINANCE(13) 无形资产    GROWTH(3)   净资产增长率
FINANCE(14) 长期投资    每股收益    每股收益
FINANCE(16) 长期负债    每股净资产   每股净资产
FINANCE(17) 资本公积金   净利润 净利润
FINANCE(18) 每股公积金   营业收入    营业收入
FINANCE(19) 股东权益    市净率 市净率
FINANCE(20) 主营收入    市盈率 市盈率
FINANCE(21) 主营利润    净资产收益率  净资产收益率
FINANCE(22) 其它利润    总资产报酬率  总资产报酬率
FINANCE(23) 营业利润        
FINANCE(24) 投资收益        
FINANCE(25) 补贴收入        
FINANCE(26) 营业外收支       
FINANCE(27) 上年损益调整      
FINANCE(28) 利润总额        
FINANCE(29) 税后利润        
FINANCE(30) 净利润     
十一、动态行情函数(约30个)
获取实时动态行情数据。

函数  说明  函数  说明
DYNAINFO(3) 前收盘价    DYNAINFO(28)    买一价
DYNAINFO(4) 今开  DYNAINFO(29)    买二价
DYNAINFO(5) 最高  DYNAINFO(30)    买三价
DYNAINFO(6) 最低  DYNAINFO(31)    卖一量
DYNAINFO(7) 现价  DYNAINFO(32)    卖二量
DYNAINFO(8) 总手  DYNAINFO(33)    卖三量
DYNAINFO(9) 现手  DYNAINFO(34)    卖一价
DYNAINFO(10)    总成交金额   DYNAINFO(35)    卖二价
DYNAINFO(11)    均价  DYNAINFO(36)    卖三价
DYNAINFO(12)    日升跌 DYNAINFO(37)    换手率
DYNAINFO(13)    振幅度 DYNAINFO(39)    市盈率
DYNAINFO(14)    涨幅度 DYNAINFO(40)    成交方向
DYNAINFO(15)    委托比 DYNAINFO(50)    采样点数
DYNAINFO(16)    委量差 DYNAINFO(51)    内外比
DYNAINFO(17)    量比  DYNAINFO(52)    多空平衡
DYNAINFO(20)    最新叫买价   DYNAINFO(53)    多头获利
DYNAINFO(21)    最新叫卖价   DYNAINFO(54)    空头回补
DYNAINFO(22)    内盘  DYNAINFO(55)    多头止损
DYNAINFO(23)    外盘  DYNAINFO(56)    空头止损
DYNAINFO(25)    买一量 DYNAINFO(57)    笔升跌
DYNAINFO(26)    买二量     
DYNAINFO(27)    买三量     
十二、大盘函数(10个)
获取大盘指数相关数据。

函数  说明
INDEXA  大盘成交额
INDEXC  大盘收盘价
INDEXH  大盘最高价
INDEXL  大盘最低价
INDEXO  大盘开盘价
INDEXV  大盘成交量
INDEXADV    上涨家数
INDEXDEC    下跌家数
十三、交易系统函数(10个)
用于编写交易系统公式。

函数  说明
ENTERLONG   多头买入信号
EXITLONG    多头卖出信号
ENTERSHORT  空头开仓信号
EXITSHORT   空头平仓信号
CLOSEPOS    平仓信号
SELL    卖出信号
BUY 买入信号
SELLSHORT   空头卖出信号
BUYSHORT    空头买入信号
CLOSEALL    全部平仓
十四、横向统计函数(5个)
对板块内的股票进行统计。

函数  说明
BLOCKSETNUM 返回该板块股票个数
HORCALC 多股横向统计
INSORT  板块排序选股
OUTSORT 板块排序反向选股
SORT    排序
十五、线形和颜色属性(20+个)
属性  说明
COLORRED    红色
COLORGREEN  绿色
COLORBLUE   蓝色
COLORBLACK  黑色
COLORWHITE  白色
COLORYELLOW 黄色
COLORCYAN   青色
COLORMAGENTA    洋红色
COLORBROWN  棕色
COLORGRAY   灰色
LINETHICK1-9    线宽1-9
STICK   柱状线
COLORSTICK  彩色柱状线
VOLSTICK    成交量柱状线
CROSSDOT    小叉线
CIRCLEDOT   小圆圈线
POINTDOT    小圆点线
重要使用提示
未来函数警示 ⚠️:ZIG、PEAK、TROUGH、BACKSET、REFX、DHIGH、DOPEN、DLOW、DCLOSE、DVOL等属于未来函数,历史信号会漂移,复盘看似完美但实盘无效,非必要请完全避开。

函数适用范围:

ASKPRICE、BIDPRICE、BUYVOL、SELLVOL等仅分笔成交周期有效

ADVANCE、DECLINE仅对大盘指数有效

FINANCE类函数依赖最新财报数据
######################################
ABI
ABI:100*ABS(ADVANCE-DECLINE)/(ADVANCE+DECLINE);
MAABI:EMA(ABI,M);
输出绝对广量指标:100*上涨家数-下跌家数的绝对值/(上涨家数+下跌家数)
输出MAABI:ABI的M日指数移动平均

ADL腾落指标
ADL:SUM(ADVANCE-DECLINE,0);
MAADL:MA(ADL,M);
输出腾落指标:上涨家数-下跌家数的历史累和
输出MAADL:ADL的M日简单移动平均

ADR涨跌比率
ADR:SUM(ADVANCE,N)/SUM(DECLINE,N);
MAADR:MA(ADR,M);
输出涨跌比率:上涨家数的N日累和/下跌家数的N日累和
输出MAADR:ADR的M日简单移动平均

ARMS阿姆氏指标
ARMS:EMA(ADVANCE/DECLINE,N);
MAARMS:MA(ARMS,M);
输出阿姆氏指标:上涨家数/下跌家数的N日指数移动平均
输出MAARMS:ARMS的M日简单移动平均

BTI广量冲力指标
BTI:EMA(100*ADVANCE/(ADVANCE+DECLINE),N);
MABTI:MA(BTI,M);
输出广量冲力指标:100*上涨家数/(上涨家数+下跌家数)的N日指数移动平均
输出MABTI:BTI的M日简单移动平均

MCL麦克连指标
DIF:=ADVANCE-DECLINE;
EMA1:=EMA(DIF,N1);
EMA2:=EMA(DIF,N2);
MCL:EMA1-EMA2;
MAMCL1:EMA1;
MAMCL2:EMA2;
DIF赋值:上涨家数-下跌家数
EMA1赋值:DIF的N1日指数移动平均
EMA2赋值:DIF的N2日指数移动平均
输出麦克连指标:EMA1-EMA2
输出MAMCL1:EMA1
输出MAMCL2:EMA2

OBOS超买超卖指标
OBOS:EMA(ADVANCE-DECLINE,N);
MAOBOS:MA(OBOS,M);
输出超买超卖指标:上涨家数-下跌家数的N日指数移动平均
输出MAOBOS:OBOS的M日简单移动平均

STIX指数平滑广量
TBR:100*ADVANCE/(ADVANCE+DECLINE);
MATBR:EMA(TBR,M);
输出TBR:100*上涨家数/(上涨家数+下跌家数)
输出MATBR:TBR的M日指数移动平均

SCAMO市场总额(需下载日线)
总量能:("999999$AMO"+"399001$AMO")/100000000,NODRAW;
STICKLINE(总量能>0,0,总量能,2,0),COLORLIGRAY;
沪主板:("SH999999$AMO"-"SH000688$AMO")/100000000,LINETHICK2,COLORRED;
深主板:("SZ399001$AMO"-"SZ399006$AMO")/100000000,LINETHICK2,COLORMAGENTA;
创业科创:("SZ399006$AMO")/100000000+("SH000688$AMO")/100000000,LINETHICK2,COLORYELLOW;
输出总量能:("999999$成交额(元)"+"399001$成交额(元)")/100000000,NODRAW
当满足条件总量能>0时,在0和总量能位置之间画柱状线,宽度为2,0不为0则画空心柱.,画淡灰色
输出沪主板:("SH999999$成交额(元)"-"SH000688$成交额(元)")/100000000,线宽为2,画红色
输出深主板:("SZ399001$成交额(元)"-"SZ399006$成交额(元)")/100000000,线宽为2,画洋红色
输出创业科创:("SZ399006$成交额(元)")/100000000+("SH000688$成交额(元)")/100000000,线宽为2,画黄色
#####################################
CCI商品路径指标
TYP:=(HIGH+LOW+CLOSE)/3;
CCI:(TYP-MA(TYP,N))*1000/(15*AVEDEV(TYP,N));
TYP赋值:(最高价+最低价+收盘价)/3
输出CCI:(TYP-TYP的N日简单移动平均)*1000/(15*TYP的N日平均绝对偏差)

KDJ随机指标
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
J:3*K-2*D;
RSV赋值:(收盘价-N日内最低价的最低值)/(N日内最高价的最高值-N日内最低价的最低值)*100
输出K:RSV的M1日[1日权重]移动平均
输出D:K的M2日[1日权重]移动平均
输出J:3*K-2*D

MFI资金流量指标
TYP := (HIGH + LOW + CLOSE)/3;
V1:=SUM(IF(TYP>REF(TYP,1),TYP*VOL,0),N)/SUM(IF(TYP<REF(TYP,1),TYP*VOL,0),N);
MFI:100-(100/(1+V1));
赋值: (最高价 + 最低价 + 收盘价)/3
V1赋值:如果TYP>1日前的TYP,返回TYP*成交量(手),否则返回0的N日累和/如果TYP<1日前的TYP,返回TYP*成交量(手),否则返回0的N日累和
输出资金流量指标:100-(100/(1+V1))

MTM动量线
MTM:CLOSE-REF(CLOSE,MIN(BARSCOUNT(C),N));
MTMMA:MA(MTM,M);
输出动量线:收盘价-收盘价的有效数据周期数和N的较小值日前的收盘价
输出MTMMA:MTM的M日简单移动平均

OSC变动速率线
OSC:100*(CLOSE-MA(CLOSE,N));
MAOSC:EXPMEMA(OSC,M);
输出变动速率线:100*(收盘价-收盘价的N日简单移动平均)
输出MAOSC:OSC的M日指数平滑移动平均

ROC变动率指标
NN:=MIN(BARSCOUNT(C),N);
ROC:100*(CLOSE-REF(CLOSE,NN))/REF(CLOSE,NN);
MAROC:MA(ROC,M);
NN赋值:收盘价的有效数据周期数和N的较小值
输出ROC:100*(收盘价-NN日前的收盘价)/NN日前的收盘价
输出MAROC:ROC的M日简单移动平均

RSI相对强弱指标
LC:=REF(CLOSE,1);
RSI1:SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;
RSI2:SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100;
RSI3:SMA(MAX(CLOSE-LC,0),N3,1)/SMA(ABS(CLOSE-LC),N3,1)*100;
LC赋值:1日前的收盘价
输出RSI1:收盘价-LC和0的较大值的N1日[1日权重]移动平均/收盘价-LC的绝对值的N1日[1日权重]移动平均*100
输出RSI2:收盘价-LC和0的较大值的N2日[1日权重]移动平均/收盘价-LC的绝对值的N2日[1日权重]移动平均*100
输出RSI3:收盘价-LC和0的较大值的N3日[1日权重]移动平均/收盘价-LC的绝对值的N3日[1日权重]移动平均*100

KD随机指标KD
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
RSV赋值:(收盘价-N日内最低价的最低值)/(N日内最高价的最高值-N日内最低价的最低值)*100
输出K:RSV的M1日[1日权重]移动平均
输出D:K的M2日[1日权重]移动平均

SKDJ慢速随机指标
LOWV:=LLV(LOW,N);
HIGHV:=HHV(HIGH,N);
RSV:=EMA((CLOSE-LOWV)/(HIGHV-LOWV)*100,M);
K:EMA(RSV,M);
D:MA(K,M);
LOWV赋值:N日内最低价的最低值
HIGHV赋值:N日内最高价的最高值
RSV赋值:(收盘价-LOWV)/(HIGHV-LOWV)*100的M日指数移动平均
输出K:RSV的M日指数移动平均
输出D:K的M日简单移动平均

UDL引力线
UDL:(MA(CLOSE,N1)+MA(CLOSE,N2)+MA(CLOSE,N3)+MA(CLOSE,N4))/4;
MAUDL:MA(UDL,M);
输出引力线:(收盘价的N1日简单移动平均+收盘价的N2日简单移动平均+收盘价的N3日简单移动平均+收盘价的N4日简单移动平均)/4
输出MAUDL:UDL的M日简单移动平均

WR威廉指标
WR1:100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N));
WR2:100*(HHV(HIGH,N1)-CLOSE)/(HHV(HIGH,N1)-LLV(LOW,N1));
输出WR1:100*(N日内最高价的最高值-收盘价)/(N日内最高价的最高值-N日内最低价的最低值)
输出WR2:100*(N1日内最高价的最高值-收盘价)/(N1日内最高价的最高值-N1日内最低价的最低值)

LWRLWR威廉指标
RSV:= (HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N))*100;
LWR1:SMA(RSV,M1,1);
LWR2:SMA(LWR1,M2,1);
RSV赋值: (N日内最高价的最高值-收盘价)/(N日内最高价的最高值-N日内最低价的最低值)*100
输出LWR1:RSV的M1日[1日权重]移动平均
输出LWR2:LWR1的M2日[1日权重]移动平均

MARSI相对强弱平均线
DIF:=CLOSE-REF(CLOSE,1);
VU:=IF(DIF>=0,DIF,0);
VD:=IF(DIF<0,-DIF,0);
MAU1:=MEMA(VU,M1);
MAD1:=MEMA(VD,M1);
MAU2:=MEMA(VU,M2);
MAD2:=MEMA(VD,M2);
RSI1:MA(100*MAU1/(MAU1+MAD1),M1);
RSI2:MA(100*MAU2/(MAU2+MAD2),M2);
DIF赋值:收盘价-1日前的收盘价
VU赋值:如果DIF>=0,返回DIF,否则返回0
VD赋值:如果DIF<0,返回-DIF,否则返回0
MAU1赋值:VU的M1日平滑移动平均
MAD1赋值:VD的M1日平滑移动平均
MAU2赋值:VU的M2日平滑移动平均
MAD2赋值:VD的M2日平滑移动平均
输出RSI1:100*MAU1/(MAU1+MAD1)的M1日简单移动平均
输出RSI2:100*MAU2/(MAU2+MAD2)的M2日简单移动平均

BIAS-QL乖离率-传统版
BIAS :(CLOSE-MA(CLOSE,N))/MA(CLOSE,N)*100;
BIASMA :MA(BIAS,M);
输出乖离率 :(收盘价-收盘价的N日简单移动平均)/收盘价的N日简单移动平均*100
输出BIASMA :乖离率的M日简单移动平均

BIAS乖离率
BIAS1 :(CLOSE-MA(CLOSE,N1))/MA(CLOSE,N1)*100;
BIAS2 :(CLOSE-MA(CLOSE,N2))/MA(CLOSE,N2)*100;
BIAS3 :(CLOSE-MA(CLOSE,N3))/MA(CLOSE,N3)*100;
输出BIAS1 :(收盘价-收盘价的N1日简单移动平均)/收盘价的N1日简单移动平均*100
输出BIAS2 :(收盘价-收盘价的N2日简单移动平均)/收盘价的N2日简单移动平均*100
输出BIAS3 :(收盘价-收盘价的N3日简单移动平均)/收盘价的N3日简单移动平均*100

BIAS36三六乖离
BIAS36:MA(CLOSE,3)-MA(CLOSE,6);
BIAS612:MA(CLOSE,6)-MA(CLOSE,12);
MABIAS:MA(BIAS36,M);
输出三六乖离:收盘价的3日简单移动平均-收盘价的6日简单移动平均
输出BIAS612:收盘价的6日简单移动平均-收盘价的12日简单移动平均
输出MABIAS:BIAS36的M日简单移动平均

ACCER幅度涨速
ACCER:SLOPE(CLOSE,N)/CLOSE;
输出幅度涨速:收盘价的N日线性回归斜率/收盘价

CYD承接因子
CYDS:WINNER(CLOSE)/(VOL/CAPITAL);
CYDN:WINNER(CLOSE)/MA(VOL/CAPITAL,N);
输出CYDS:以收盘价计算的获利盘比例/(成交量(手)/当前流通股本(手))
输出CYDN:以收盘价计算的获利盘比例/成交量(手)/当前流通股本(手)的N日简单移动平均

CYF市场能量
CYF:100-100/(1+EMA(HSL,N));
输出市场能量:100-100/(1+换手线的N日指数移动平均)

FSL分水岭
SWL:(EMA(CLOSE,5)*7+EMA(CLOSE,10)*3)/10;
SWS:DMA(EMA(CLOSE,12),MAX(1,100*(SUM(VOL,5)/(3*CAPITAL))));
输出SWL:(收盘价的5日指数移动平均*7+收盘价的10日指数移动平均*3)/10
输出SWS:以1和100*(成交量(手)的5日累和/(3*当前流通股本(手)))的较大值为权重收盘价的12日指数移动平均的动态移动平均

ADTM动态买卖气指标
DTM:=IF(OPEN<=REF(OPEN,1),0,MAX((HIGH-OPEN),(OPEN-REF(OPEN,1))));
DBM:=IF(OPEN>=REF(OPEN,1),0,MAX((OPEN-LOW),(REF(OPEN,1)-OPEN)));
STM:=SUM(DTM,N);
SBM:=SUM(DBM,N);
ADTM:IF(STM>SBM,(STM-SBM)/STM,IF(STM=SBM,0,(STM-SBM)/SBM));
MAADTM:MA(ADTM,M);
DTM赋值:如果开盘价<=1日前的开盘价,返回0,否则返回(最高价-开盘价)和(开盘价-1日前的开盘价)的较大值
DBM赋值:如果开盘价>=1日前的开盘价,返回0,否则返回(开盘价-最低价)和(1日前的开盘价-开盘价)的较大值
STM赋值:DTM的N日累和
SBM赋值:DBM的N日累和
输出动态买卖气指标:如果STM>SBM,返回(STM-SBM)/STM,否则返回如果STM=SBM,返回0,否则返回(STM-SBM)/SBM
输出MAADTM:ADTM的M日简单移动平均

ATR真实波幅
MTR:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:MA(MTR,N);
输出MTR:(最高价-最低价)和1日前的收盘价-最高价的绝对值的较大值和1日前的收盘价-最低价的绝对值的较大值
输出真实波幅:MTR的N日简单移动平均

DKX多空线
MID:=(3*CLOSE+LOW+OPEN+HIGH)/6;
DKX:(20*MID+19*REF(MID,1)+18*REF(MID,2)+17*REF(MID,3)+
16*REF(MID,4)+15*REF(MID,5)+14*REF(MID,6)+
13*REF(MID,7)+12*REF(MID,8)+11*REF(MID,9)+
10*REF(MID,10)+9*REF(MID,11)+8*REF(MID,12)+
7*REF(MID,13)+6*REF(MID,14)+5*REF(MID,15)+
4*REF(MID,16)+3*REF(MID,17)+2*REF(MID,18)+REF(MID,20))/210;
MADKX:MA(DKX,M);
MID赋值:(3*收盘价+最低价+开盘价+最高价)/6
输出多空线:(20*MID+19*1日前的MID+18*2日前的MID+17*3日前的MID+16*4日前的MID+15*5日前的MID+14*6日前的MID+13*7日前的MID+12*8日前的MID+11*9日前的MID+10*10日前的MID+9*11日前的MID+8*12日前的MID+7*13日前的MID+6*14日前的MID+5*15日前的MID+4*16日前的MID+3*17日前的MID+2*18日前的MID+20日前的MID)/210
输出MADKX:DKX的M日简单移动平均
###########################
import pandas as pd
import numpy as np
def RD(N,D=3):
    #四舍五入取3位小数 
    return np.round(N,D)        
def RET(S,N=1):
    '''
    返回序列倒数第N个值,默认返回最后一个
    '''
    return np.array(S)[-N]     
def ABS(S):  
    '''
    返回N的绝对值
    '''   
    return np.abs(S)            
def MAX(S1,S2): 
    '''
    序列max
    '''
    return np.maximum(S1,S2)    
def MIN(S1,S2):  
    '''
    序列min
    '''
    return np.minimum(S1,S2)   
def IF(S,A,B):   
    '''
    序列布尔判断 return=A  if S==True  else  B
    '''
    return np.where(S,A,B)      

def REF(S, N=1):  
    '''        
    对序列整体下移动N,返回序列(shift后会产生NAN)    
    '''
    return pd.Series(S).shift(N).values  
def DIFF(S, N=1):        
    '''
    前一个值减后一个值,前面会产生nan 
    np.diff(S)直接删除nan,会少一行
    '''
    return pd.Series(S).diff(N).values    
def STD(S,N):   
    '''
    求序列的N日标准差,返回序列   
    '''           
    return  pd.Series(S).rolling(N).std(ddof=0).values     

def SUM(S, N): 
    '''
    对序列求N天累计和,返回序列    N=0对序列所有依次求和  
    '''                 
    return pd.Series(S).rolling(N).sum().values if N>0 else pd.Series(S).cumsum().values  

def CONST(S):  
    '''
    返回序列S最后的值组成常量序列
    '''           
    return np.full(len(S),S[-1])
def AND(S1,S2):
    #and
    return np.logical_and(S1,S2)
def OR(S1,S2):
    #or
    return np.logical_or(S1,S2)
def NOT(S1,S2):
    '''
    not
    '''
    return np.logical_not(S1,S2)
def RANGE(A,B,C):
    '''
    期间函数
    B<=A<=C
    '''
    df=pd.DataFrame()
    df['select']=A.tolist()
    df['select']=df['select'].apply(lambda x: True if (x>=B and x<=C) else False)
    return df['select']
def HHV(S,N):   
    '''
    HHV(C, 5) 最近5天收盘最高价   
    '''               
    return pd.Series(S).rolling(N).max().values     

def LLV(S,N):  
    '''
    LLV(C, 5) 最近5天收盘最低价     
    '''           
    return pd.Series(S).rolling(N).min().values    

def HHVBARS(S,N):
    '''
    求N周期内S最高值到当前周期数, 返回序列  
    '''       
    return pd.Series(S).rolling(N).apply(lambda x: np.argmax(x[::-1]),raw=True).values 

def LLVBARS(S,N): 
    '''
    求N周期内S最低值到当前周期数, 返回序列
    '''        
    return pd.Series(S).rolling(N).apply(lambda x: np.argmin(x[::-1]),raw=True).values    

def MA(S,N):    
    '''
    求序列的N日简单移动平均值,返回序列     
    '''                         
    return pd.Series(S).rolling(N).mean().values  

def EMA(S,N):
    '''
    指数移动平均,为了精度 S>4*N  EMA至少需要120周期     alpha=2/(span+1) 
    '''                
    return pd.Series(S).ewm(span=N, adjust=False).mean().values     

def SMA(S, N, M=1):   
    '''
    SMA,至少需要120周期才精确 (雪球180周期)    alpha=1/(1+com)    
    '''    
    return pd.Series(S).ewm(alpha=M/N,adjust=False).mean().values           #com=N-M/M

def DMA(S, A):  
    '''
    求S的动态移动平均,A作平滑因子,必须 0<A<1  (此为核心函数,非指标)
    '''         
    return pd.Series(S).ewm(alpha=A, adjust=True).mean().values

def WMA(S, N): 
    '''
    通达信S序列的N日加权移动平均 Yn = (1*X1+2*X2+3*X3+...+n*Xn)/(1+2+3+...+Xn)
    '''           
    return pd.Series(S).rolling(N).apply(lambda x:x[::-1].cumsum().sum()*2/N/(N+1),raw=True).values 

def AVEDEV(S, N): 
    '''
    平均绝对偏差  (序列与其平均值的绝对差的平均值)   
    '''       
    return pd.Series(S).rolling(N).apply(lambda x: (np.abs(x - x.mean())).mean()).values 

def SLOPE(S, N):    
    '''
    返S序列N周期回线性回归斜率   
    '''               
    return pd.Series(S).rolling(N).apply(lambda x: np.polyfit(range(N),x,deg=1)[0],raw=True).values

def FORCAST(S, N):   
    '''
    返回S序列N周期回线性回归后的预测值, jqz1226改进成序列出   
    '''      
    return pd.Series(S).rolling(N).apply(lambda x:np.polyval(np.polyfit(range(N),x,deg=1),N-1),raw=True).values  

def LAST(S, A, B): 
    '''
    从前A日到前B日一直满足S_BOOL条件, 要求A>B & A>0 & B>=0 
    '''       
    return np.array(pd.Series(S).rolling(A+1).apply(lambda x:np.all(x[::-1][B:]),raw=True),dtype=bool)

#------------------   1级:应用层函数(通过0级核心函数实现) ----------------------------------
def COUNT(S, N):    
    '''
    # COUNT(CLOSE>O, N):  最近N天满足S_BOO的天数  True的天数
    '''                  
    return SUM(S,N)    

def EVERY(S, N):  
    '''
    EVERY(CLOSE>O, 5)   最近N天是否都是True
    '''                     
    return  IF(SUM(S,N)==N,True,False)                    

def EXIST(S, N):   
    '''
    EXIST(CLOSE>3010, N=5)  n日内是否存在一天大于3000点  
    '''                    
    return IF(SUM(S,N)>0,True,False)

def FILTER(S, N): 
    '''
    FILTER函数,S满足条件后,将其后N周期内的数据置为0, FILTER(C==H,5)
    '''                      
    for i in range(len(S)): S[i+1:i+1+N]=0  if S[i] else S[i+1:i+1+N]        
    return S                           # 例:FILTER(C==H,5) 涨停后,后5天不再发出信号 

def BARSLAST(S):
    '''
    上一次条件成立到当前的周期, BARSLAST(C/REF(C,1)>=1.1) 上一次涨停到今天的天数 
    '''                       
    M=np.concatenate(([0],np.where(S,1,0)))  
    for i in range(1, len(M)):  M[i]=0 if M[i] else M[i-1]+1    
    return M[1:]                       

def BARSLASTCOUNT(S):
    '''
    统计连续满足S条件的周期数
    '''                   
    rt = np.zeros(len(S)+1)            # BARSLASTCOUNT(CLOSE>OPEN)表示统计连续收阳的周期数
    for i in range(len(S)): rt[i+1]=rt[i]+1  if S[i] else rt[i+1]
    return rt[1:]  

def BARSSINCEN(S, N):  
    '''
     N周期内第一次S条件成立到现在的周期数,N为常量  
    '''                
    return pd.Series(S).rolling(N).apply(lambda x:N-1-np.argmax(x) if np.argmax(x) or x[0] else 0,raw=True).fillna(0).values.astype(int)


def CROSS(S1, S2): 
    '''
    判断向上金叉穿越 CROSS(MA(C,5),MA(C,10))  判断向下死叉穿越 CROSS(MA(C,10),MA(C,5))   
    '''                   
    return np.concatenate(([False], np.logical_not((S1>S2)[:-1]) & (S1>S2)[1:]))    # 不使用0级函数,移植方便  by jqz1226

def CROSS_UP(S1, S2):   
    '''
    #判断向上金叉穿越 CROSS(MA(C,5),MA(C,10))  判断向下死叉穿越 CROSS(MA(C,10),MA(C,5))   
    '''                  
    return np.concatenate(([False], np.logical_not((S1>S2)[:-1]) & (S1>S2)[1:]))    # 不使用0级函数,移植方便  by jqz1226
def CROSS_DOWN(S1, S2): 
    '''
    判断向上死叉穿越 CROSS(MA(C,5),MA(C,10))  判断向下死叉穿越 CROSS(MA(C,5),MA(C,10))   
    '''               
    return np.concatenate(([False], np.logical_not((S1<S2)[:-1]) & (S1<S2)[1:]))    # 不使用0级函数,移植方便  by jqz1226

def LONGCROSS(S1,S2,N): 
    '''
    两条线维持一定周期后交叉,S1在N周期内都小于S2,本周期从S1下方向上穿过S2时返回1,否则返回0
    '''                        
    return  np.array(np.logical_and(LAST(S1<S2,N,1),(S1>S2)),dtype=bool)            # N=1时等同于CROSS(S1, S2)

def VALUEWHEN(S, X):
    '''
    当S条件成立时,取X的当前值,否则取VALUEWHEN的上个成立时的X值   by jqz1226
    '''                   
    return pd.Series(np.where(S,X,np.nan)).ffill().values  
def BACKSET(X, N):
    '''
    属于未来函数,将当前位置到若干周期前的数据设为1.
    用法:
    BACKSET(X,N),若X非0,则将当前位置到N周期前的数值设为1.
    例如:
    BACKSET(CLOSE>OPEN,2)若收阳则将该周期及前一周期数值设为1,否则为0
    '''
    # 创建一个与X相同形状的全零数组
    result = np.zeros_like(X)

    # 遍历X的元素,根据条件设置result的值
    for i in range(len(X)):
        if X[i] != 0:
            start_index = max(0, i - N + 1)
            result[start_index:i+1] = 1
    return result
def ALIGNRIGHT(X):
    '''
    有效数据右对齐.
    用法:
    ALIGNRIGHT(X)有效数据向右移动,左边空出来的周期填充无效值
    例如:TC:=IF(CURRBARSCOUNT=2 || CURRBARSCOUNT=5,DRAWNULL,C);XC:ALIGNRIGHT(TC);删除了两天的收盘价,并将剩余数据右移
    '''
    # 获取有效数据的索引
    valid_indices = np.where(X != np.nan)[0]

    # 计算需要填充的无效数据的数量
    invalid_count = len(X) - len(valid_indices)

    # 创建一个新的数组,将有效数据向右移动,左边填充无效值
    result = np.empty_like(X)
    result[:] = np.nan
    result[invalid_count:len(valid_indices)+invalid_count] = X[valid_indices]
    return result
def BARSCOUNT(X):
    '''
    有效数据周期数.
    用法:
    BARSCOUNT(X)第一个有效数据到当前的间隔周期数
    注意:判断范围为指标或条件选股计算时公式使用的数据,
    如果给画线指标的数据少(比如没有按下箭头取更多K线)或给条件选股给的数据少,这个有效值也可能少
    '''
    # 获取有效数据的索引
    valid_indices = np.where(~np.isnan(X))[0]
    # 如果数组中没有有效数据,返回0
    if len(valid_indices) == 0:
        return 0
    # 计算第一个有效数据到当前位置的间隔周期数
    first_valid_index = valid_indices[0]
    current_index = len(X) - 1
    bars_count = current_index - first_valid_index + 1

    return bars_count
def BARSLASTS(X, N):
    '''
    倒数第N次成立时距今的周期数.
    用法:
    BARSLASTS(X,N):X倒数第N满足到现在的周期数,N支持变量
    '''
    # 获取有效数据的索引
    valid_indices = np.where(~np.isnan(X))[0]

    # 如果数组中没有有效数据,返回-1
    if len(valid_indices) == 0:
        return -1

    # 计算倒数第N次满足条件到现在的周期数
    last_n_indices = valid_indices[-N:]
    if len(last_n_indices) < N:
        return -1

    current_index = len(X) - 1
    bars_since_last_n = current_index - last_n_indices[-1] + 1
    return bars_since_last_n
def ZIG(CLOSE,X=0.05):
        '''
        未来函数
        计算之字转向
        x=5%之子转向
        :return:
        '''
        ZIG_STATE_START = 0
        ZIG_STATE_RISE = 1
        ZIG_STATE_FALL = 2
        x = X
        k = CLOSE
        peer_i = 0
        candidate_i = None
        scan_i = 0
        peers = [0]
        z = np.zeros(len(k))
        state = ZIG_STATE_START
        while True:
            scan_i += 1
            if scan_i == len(k) - 1:
                # 扫描到尾部
                if candidate_i is None:
                    peer_i = scan_i
                    peers.append(peer_i)
                else:
                    if state == ZIG_STATE_RISE:
                        if k[scan_i] >= k[candidate_i]:
                            peer_i = scan_i
                            peers.append(peer_i)
                        else:
                            peer_i = candidate_i
                            peers.append(peer_i)
                            peer_i = scan_i
                            peers.append(peer_i)
                    elif state == ZIG_STATE_FALL:
                        if k[scan_i] <= k[candidate_i]:
                            peer_i = scan_i
                            peers.append(peer_i)
                        else:
                            peer_i = candidate_i
                            peers.append(peer_i)
                            peer_i = scan_i
                            peers.append(peer_i)
                break
            if state == ZIG_STATE_START:
                if k[scan_i] >= k[peer_i] * (1 + x):
                    candidate_i = scan_i
                    state = ZIG_STATE_RISE
                elif k[scan_i] <= k[peer_i] * (1 - x):
                    candidate_i = scan_i
                    state = ZIG_STATE_FALL
            elif state == ZIG_STATE_RISE:
                if k[scan_i] >= k[candidate_i]:
                    candidate_i = scan_i
                elif k[scan_i] <= k[candidate_i] * (1 - x):
                    peer_i = candidate_i
                    peers.append(peer_i)
                    state = ZIG_STATE_FALL
                    candidate_i = scan_i
            elif state == ZIG_STATE_FALL:
                if k[scan_i] <= k[candidate_i]:
                    candidate_i = scan_i
                elif k[scan_i] >= k[candidate_i] * (1 + x):
                    peer_i = candidate_i
                    peers.append(peer_i)
                    state = ZIG_STATE_RISE
                    candidate_i = scan_i
        for i in range(len(peers) - 1):
            peer_start_i = peers[i]
            peer_end_i = peers[i + 1]
            start_value = k[peer_start_i]
            end_value = k[peer_end_i]
            a = (end_value - start_value) / (peer_end_i - peer_start_i)  # 斜率
            for j in range(peer_end_i - peer_start_i + 1):
                z[j + peer_start_i] = start_value + a * j
        return pd.Series(z)
def calculate_zigzag(data, percent):
    """
    计算ZigZag指标。

    参数:
    data : pandas.DataFrame
        包含价格数据的DataFrame,必须包含'High'和'Low'列。
    percent : float
        百分比阈值,用于确定局部高点和低点。

    返回:
    zigzag : pandas.Series
        ZigZag指标值。
    """
    # 初始化ZigZag序列
    zigzag = pd.Series(index=data.index)

    # 初始方向为向上
    direction = 'up'

    # 遍历数据
    for i in range(1, len(data)):
        if direction == 'up':
            if data['high'][i] >= data['high'][i-1] * (1 + percent / 100):
                zigzag[i] = data['high'][i]
                direction = 'down'
            elif data['low'][i] <= data['low'][i-1] * (1 - percent / 100):
                zigzag[i] = data['low'][i]
                direction = 'down'
            else:
                zigzag[i] = zigzag[i-1]
        else:
            if data['low'][i] <= data['low'][i-1] * (1 - percent / 100):
                zigzag[i] = data['low'][i]
                direction = 'up'
            elif data['high'][i] >= data['high'][i-1] * (1 + percent / 100):
                zigzag[i] = data['high'][i]
                direction = 'up'
            else:
                zigzag[i] = zigzag[i-1]

    return zigzag

def TROUGHBARS(data, K, N, M):
    """
    计算前M个ZIG转向波谷到当前的周期数。

    参数:
    data : pandas.DataFrame
        包含价格数据的DataFrame,必须包含'High'和'Low'列。
    K : int
        百分比阈值,用于计算ZigZag指标。
    N : int
        未使用的参数,保留以符合函数签名。
    M : int
        前M个波谷的数量。

    返回:
    result : pandas.Series
        每个周期的前M个波谷到当前的周期数。
    """
    # 计算ZigZag指标
    zigzag = calculate_zigzag(data, K)

    # 找到波谷的位置
    valleys = zigzag[zigzag.notna() & (zigzag.shift(1) > zigzag)].index

    # 计算每个周期的前M个波谷到当前的周期数
    result = pd.Series(index=data.index)
    for i in range(len(data)):
        if i < len(valleys):
            result[i] = np.nan
        else:
            distances = [i - v for v in valleys[-M:]]
            result[i] = min(distances)

    return result
#df,DATE,CLOSE,OPEN,LOW,HIGH,VOL,CAPITAL,HSL,AMOUNT=set_start_data()
def params_data(test='test.txt',to_path='result.txt'):
    '''
    解析通达信公式
    test原来通达信公式文件
    to_path结果文件,python可以直接运行的文件
    '''
    test=open(r'{}'.format(test),'r',encoding='utf-8')
    result=test.readlines()
    columns=[]
    #挑选需要返回的数据
    for i in result:
        if ':' in i and ':=' not in i:
            name_list=i.split(':')
            columns.append(name_list[0])
    text=''.join(result)
    text1=text.replace(':=','=')
    text2=text1.replace(':','=')
    text4=text2.replace('&&',' and ')
    text5=text4.replace('||','or')
    text6=text5.replace('AND','and')
    text7=text6.replace('OR','or')
    text8=text7.replace('NOT','not')
    text9=text8.replace('DRAWNULL','None')
    text10=text9.replace(',NODRAW','')
    text11=text10.replace('MF0>MF1 and MF0>MF2','np.logical_and(MF0>MF1,MF0>MF2)')
    text12=text11.replace('MF0<MF1 and MF0<MF2','np.logical_and(MF0<MF1,MF0<MF2)')
    text3=text12.split(';')
    del text3[-1]
    fill=open(r'{}'.format(to_path),'w+',encoding='utf-8')
    fill.truncate()
    for i in text3:
        try:
            m=i.split('=')
            var=m[0]
            result=m[1]
            fill.write(var +'='+result)
        except:
           fill.write(var +'='+result)
    fill.write('\n')
    fill.write('return {}'.format(','.join(columns)))
    fill.close()
    print('公式分析成功')
def data_to_pandas(func=''):
    '''
    将函数的计算结果数据变成pandas数据,需要自动补充列名称
    func计算公式,例子data_to_pandas(CCI(CLOSE,HIGH,LOW)),CCI函数,也可以计算在返回
    print(data_to_pandas(CCI(CLOSE,HIGH,LOW)))
                   0       
    300          NaN       
    301          NaN       
    302          NaN       
    303          NaN       
    304          NaN       
    ...          ...       
    4634   10.314220       
    4635   68.462799       
    4636  106.677513       
    4637  116.201078       
    4638   85.026126  
    '''
    df=pd.DataFrame(func)
    #自己补充列明,列名称就是返回的参数
    columns=[]
    #df.columns=columns
    df1=df.T
    return df1
def CCI(CLOSE,HIGH,LOW,N=14):
    '''
    超卖超买类
    CCI商品路劲指标
    TYP赋值:(最高价+最低价+收盘价)/3
    输出CCI:(TYP-TYP的N日简单移动平均)*1000/(15*TYP的N日平均绝对偏差)
    '''
    TYP=(HIGH+LOW+CLOSE)/3
    result=(TYP-MA(TYP,N))*1000/(15*AVEDEV(TYP,N))
    return result
def KDJ(CLOSE,HIGH,LOW, N=9,M1=3,M2=3):
    '''
    超卖超买类
    RSV赋值:(收盘价-N日内最低价的最低值)/(N日内最高价的最高值-N日内最低价的最低值)*100
    输出K:RSV的M1日[1日权重]移动平均
    输出D:K的M2日[1日权重]移动平均
    输出J:3*K-2*D
    '''
    RSV=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100
    K=SMA(RSV,M1,1)
    D=SMA(K,M2,1)
    J=3*K-2*D
    return K,D,J
def MFI(CLOSE,HIGH,LOW,VOL,N=14):
    '''
    最近流量指标
    超卖超买类
    赋值: (最高价 + 最低价 + 收盘价)/3
    V1赋值:如果TYP>1日前的TYP,返回TYP*成交量(手),否则返回0的N日累和/如果TYP<1日前的TYP,返回TYP*成交量(手),否则返回0的N日累和
    输出资金流量指标:100-(100/(1+V1))
    '''
    TYP = (HIGH + LOW + CLOSE)/3
    V1=SUM(IF(TYP>REF(TYP,1),TYP*VOL,0),N)/SUM(IF(TYP<REF(TYP,1),TYP*VOL,0),N)  
    return 100-(100/(1+V1))  
def MTM(CLOSE,N=12,M=6):
    '''
    动量线指标
    超卖超买类
    输出动量线:收盘价-收盘价的有效数据周期数和N的较小值日前的收盘价
    输出MTMMA:MTM的M日简单移动平均
    '''
    MTM=CLOSE-REF(CLOSE,N)
    MTMMA=MA(MTM,M)
    return MTM,MTMMA
def EXPMEMA(data,N=20):
    '''
    data pandas.Series数据
    超卖超买类
    指数平滑移动平均
    '''
    result=data.ewm(com=N).mean()
    return result
def OSC(CLOSE,N=20,M=6):
    '''
    变动速度线
    超卖超买类
    输出变动速率线:100*(收盘价-收盘价的N日简单移动平均)
    输出MAOSC:OSC的M日指数平滑移动平均
    '''
    OSC=100*(CLOSE-MA(CLOSE,N))
    MAOSC=EXPMEMA(OSC,M)
    return OSC,MAOSC
def BARSCOUNT(CLOSE):
    df=pd.DataFrame()
    df['数据']=range(len(CLOSE))
    return df['数据']
def ROC(CLOSE,N=12,M=6):
    '''
    超卖超买类
    变动率指标
    NN赋值:收盘价的有效数据周期数和N的较小值
    输出ROC:100*(收盘价-NN日前的收盘价)/NN日前的收盘价
    输出MAROC:ROC的M日简单移动平均
    '''
    NN=MIN(BARSCOUNT(CLOSE),N)
    ROC=100*(CLOSE-REF(CLOSE,NN))/REF(CLOSE,NN)
    MAROC=MA(ROC,M)
    return ROC,MAROC
def RSI(CLOSE, N1=6,N2=12,N3=24):
    '''
    相对强弱指标
    LC赋值:1日前的收盘价
    输出RSI1:收盘价-LC和0的较大值的N1日[1日权重]移动平均/收盘价-LC的绝对值的N1日[1日权重]移动平均*100
    输出RSI2:收盘价-LC和0的较大值的N2日[1日权重]移动平均/收盘价-LC的绝对值的N2日[1日权重]移动平均*100
    输出RSI3:收盘价-LC和0的较大值的N3日[1日权重]移动平均/收盘价-LC的绝对值的N3日[1日权重]移动平均*100
    '''
    LC=REF(CLOSE,1)
    RSI1=SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100
    RSI2=SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100
    RSI3=SMA(MAX(CLOSE-LC,0),N3,1)/SMA(ABS(CLOSE-LC),N3,1)*100
    return RSI1,RSI2,RSI3
def KD(CLOSE,LOW,HIGH,N=9,M1=3,M2=3):
    '''
    相对强弱指标
    RSV赋值:(收盘价-N日内最低价的最低值)/(N日内最高价的最高值-N日内最低价的最低值)*100
    输出K:RSV的M1日[1日权重]移动平均
    输出D:K的M2日[1日权重]移动平均
    '''
    RSV=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100
    K=SMA(RSV,M1,1)
    D=SMA(K,M2,1)
    return K,D
def SKDJ(CLOSE,LOW,HIGH,N=9,M=3):
    '''
    慢速随机指标
    LOWV赋值:N日内最低价的最低值
    HIGHV赋值:N日内最高价的最高值
    RSV赋值:(收盘价-LOWV)/(HIGHV-LOWV)*100的M日指数移动平均
    输出K:RSV的M日指数移动平均
    输出D:K的M日简单移动平均
    '''
    LOWV=LLV(LOW,N)
    HIGHV=HHV(HIGH,N)
    RSV=EMA((CLOSE-LOWV)/(HIGHV-LOWV)*100,M)
    K=EMA(RSV,M)
    D=MA(K,M)
    return K,D
def UDL(CLOSE,N1=3,N2=5,N3=10,N4=20,M=6):
    '''
    引力线
    输出引力线:(收盘价的N1日简单移动平均+收盘价的N2日简单移动平均+收盘价的N3日简单移动平均+收盘价的N4日简单移动平均)/4
    输出MAUDL:UDL的M日简单移动平均
    '''
    UDL=(MA(CLOSE,N1)+MA(CLOSE,N2)+MA(CLOSE,N3)+MA(CLOSE,N4))/4
    MAUDL=MA(UDL,M)
    return UDL,MAUDL
def WR(CLOSE,LOW,HIGH,N=10,N1=6):
    '''
    威廉指标
    输出WR1:100*(N日内最高价的最高值-收盘价)/(N日内最高价的最高值-N日内最低价的最低值)
    输出WR2:100*(N1日内最高价的最高值-收盘价)/(N1日内最高价的最高值-N1日内最低价的最低值)
    '''
    WR1=100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N))
    WR2=100*(HHV(HIGH,N1)-CLOSE)/(HHV(HIGH,N1)-LLV(LOW,N1))
    return WR1,WR2
def LWR(CLOSE,LOW,HIGH,N=9,M1=3,M2=3):
    '''
    LWR指标
    RSV赋值: (N日内最高价的最高值-收盘价)/(N日内最高价的最高值-N日内最低价的最低值)*100
    输出LWR1:RSV的M1日[1日权重]移动平均
    输出LWR2:LWR1的M2日[1日权重]移动平均
    '''
    RSV= (HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N))*100
    LWR1=SMA(RSV,M1,1)
    LWR2=SMA(LWR1,M2,1)
    return LWR1,LWR2
def MEMA(S,N,M=1):
    '''
    平滑移动平均
    '''
    return SMA(S,N,M)
def MARSI(CLOSE,M1=10,M2=6):
    '''
    相对强弱平均线
    DIF赋值:收盘价-1日前的收盘价
    VU赋值:如果DIF>=0,返回DIF,否则返回0
    VD赋值:如果DIF<0,返回-DIF,否则返回0
    MAU1赋值:VU的M1日平滑移动平均
    MAD1赋值:VD的M1日平滑移动平均
    MAU2赋值:VU的M2日平滑移动平均
    '''
    DIF=CLOSE-REF(CLOSE,1)
    VU=IF(DIF>=0,DIF,0)
    VD=IF(DIF<0,-DIF,0)
    MAU1=MEMA(VU,M1)
    MAD1=MEMA(VD,M1)
    MAU2=MEMA(VU,M2)
    MAD2=MEMA(VD,M2)
    RSI1=MA(100*MAU1/(MAU1+MAD1),M1)
    RSI2=MA(100*MAU2/(MAU2+MAD2),M2)
    return RSI1,RSI2
def BIAS_QL(CLOSE,N=6,M=6):
    '''
    乖离率-传统版
    输出乖离率 :(收盘价-收盘价的N日简单移动平均)/收盘价的N日简单移动平均*100
    输出BIASMA :乖离率的M日简单移动平均
    '''
    BIAS=(CLOSE-MA(CLOSE,N))/MA(CLOSE,N)*100
    BIASMA=MA(BIAS,M)
    return BIAS,BIASMA
def BIAS(CLOSE,N1=6,N2=12,N3=24):
    '''
    乖离率
    输出BIAS1 :(收盘价-收盘价的N1日简单移动平均)/收盘价的N1日简单移动平均*100
    输出BIAS2 :(收盘价-收盘价的N2日简单移动平均)/收盘价的N2日简单移动平均*100
    输出BIAS3 :(收盘价-收盘价的N3日简单移动平均)/收盘价的N3日简单移动平均*100
    '''
    BIAS1=(CLOSE-MA(CLOSE,N1))/MA(CLOSE,N1)*100
    BIAS2=(CLOSE-MA(CLOSE,N2))/MA(CLOSE,N2)*100
    BIAS3=(CLOSE-MA(CLOSE,N3))/MA(CLOSE,N3)*100
    return BIAS1,BIAS2,BIAS3
def BIAS36(CLOSE,M=6):
    '''
    三六乖离
    输出三六乖离:收盘价的3日简单移动平均-收盘价的6日简单移动平均
    输出BIAS612:收盘价的6日简单移动平均-收盘价的12日简单移动平均
    输出MABIAS:BIAS36的M日简单移动平均
    '''
    BIAS36=MA(CLOSE,3)-MA(CLOSE,6)
    BIAS612=MA(CLOSE,6)-MA(CLOSE,12)
    MABIAS=MA(BIAS36,M)
    return BIAS36,BIAS612,MABIAS
def ACCER(CLOSE,N=8):
    '''
    幅度涨速
    输出幅度涨速:收盘价的N日线性回归斜率/收盘价
    '''
    ACCER=SLOPE(CLOSE,N)/CLOSE
    return ACCER
#需要编写活力函数
def CYD(CLOSE,CAPITAL,N=21):
    '''
    承接因子
    输出CYDS:以收盘价计算的获利盘比例/(成交量(手)/当前流通股本(手))
    输出CYDN:以收盘价计算的获利盘比例/成交量(手)/当前流通股本(手)的N日简单移动平均
    '''
    CYDS=WINNER(CLOSE)/(VOL/CAPITAL)
    CYDN=WINNER(CLOSE)/MA(VOL/CAPITAL,N);   
    return CYDS,CYDN
def CYF(HSL,N=21):
    '''
    市场能量
    输出市场能量:100-100/(1+换手线的N日指数移动平均)
    '''
    CYF=100-100/(1+EMA(HSL,N))
    return CYF
def SFL(CLOSE):
    '''
    分水岭
    输出SWL:(收盘价的5日指数移动平均*7+收盘价的10日指数移动平均*3)/10
    输出SWS:以1和100*(成交量(手)的5日累和/(3*当前流通股本(手)))的较大值为权重收盘价的12日指数移动平均的动态移动平均
    '''
    SWL=(EMA(CLOSE,5)*7+EMA(CLOSE,10)*3)/10
    IF(100*(SUM(VOL,5)/(3*CAPITAL)>1),100*(SUM(VOL,5)/(3*CAPITAL)),1)
    SWS=DMA(EMA(CLOSE,12),MAX(1,1))
    return SWL,SWS
def ATR(CLOSE,HIGH,LOW,N=14):
    '''
    真实波幅
    输出MTR:(最高价-最低价)和1日前的收盘价-最高价的绝对值的较大值和1日前的收盘价-最低价的绝对值的较大值
    输出真实波幅:MTR的N日简单移动平均
    '''
    MTR=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW))
    ATR=MA(MTR,N)
    return MTR,ATR
def DKX(CLOSE,LOW,OPEN,HIGH,M=10):
    '''
    多空线
    MID赋值:(3*收盘价+最低价+开盘价+最高价)/6
    输出多空线:(20*MID+19*1日前的MID+18*2日前的MID+17*3日前的MID+16*4日前的MID+15*5日前的MID+14*6日前的MID+13*7日前的MID+12*8日前的MID+11*9日前的MID+10*10日前的MID+9*11日前的MID+8*12日前的MID+7*13日前的MID+6*14日前的MID+5*15日前的MID+4*16日前的MID+3*17日前的MID+2*18日前的MID+20日前的MID)/210
    输出MADKX:DKX的M日简单移动平均
    '''
    MID=(3*CLOSE+LOW+OPEN+HIGH)/6
    DKX=(20*MID+19*REF(MID,1)+18*REF(MID,2)+17*REF(MID,3)+
    16*REF(MID,4)+15*REF(MID,5)+14*REF(MID,6)+
    13*REF(MID,7)+12*REF(MID,8)+11*REF(MID,9)+
    10*REF(MID,10)+9*REF(MID,11)+8*REF(MID,12)+
    7*REF(MID,13)+6*REF(MID,14)+5*REF(MID,15)+
    4*REF(MID,16)+3*REF(MID,17)+2*REF(MID,18)+REF(MID,20))/210
    MADKX=MA(DKX,M)
    return DKX,MADKX
#*******************************************
#******************************************
#趋势类型
def ASI(OPEN,CLOSE,HIGH,LOW,M1=26,M2=10):   
    '''
     振动升降指标
    '''        
    LC=REF(CLOSE,1)
    AA=ABS(HIGH-LC)   
    BB=ABS(LOW-LC)
    CC=ABS(HIGH-REF(LOW,1))  
    DD=ABS(LC-REF(OPEN,1))
    R=IF( (AA>BB) & (AA>CC),AA+BB/2+DD/4,IF( (BB>CC) & (BB>AA),BB+AA/2+DD/4,CC+DD/4))
    X=(CLOSE-LC+(CLOSE-OPEN)/2+LC-REF(OPEN,1))
    SI=16*X/R*MAX(AA,BB)
    ASI=SUM(SI,M1)
    ASIT=MA(ASI,M2)
    return ASI,ASIT  
def CHO(CLOSE,OPEN,LOW,HIGH,VOL,N1=10,N2=20,M=6):
    '''
    佳庆指标
    MID赋值:成交量(手)*(2*收盘价-最高价-最低价)/(最高价+最低价)的历史累和
    输出佳庆指标:MID的N1日简单移动平均-MID的N2日简单移动平均
    输出MACHO:CHO的M日简单移动平均
    '''
    MID=SUM(VOL*(2*CLOSE-HIGH-LOW)/(HIGH+LOW),0)
    CHO=MA(MID,N1)-MA(MID,N2)
    MACHO=MA(CHO,M)
    return CHO,MACHO
def DMA_XT(CLOSE,N1=10,N2=50,M=10):
    '''
    平均差
    输出DIF:收盘价的N1日简单移动平均-收盘价的N2日简单移动平均
    输出DIFMA:DIF的M日简单移动平均
    '''
    DIF=MA(CLOSE,N1)-MA(CLOSE,N2)
    DIFMA=MA(DIF,M)
    return DIF,DIFMA
def DMI(CLOSE,HIGH,LOW,N=14,M=6):
    '''
    趋向指标
    MTR赋值:最高价-最低价和最高价-1日前的收盘价的绝对值的较大值和1日前的收盘价-最低价的绝对值的较大值的N日累和
    赋值:最高价-1日前的最高价
    赋值:1日前的最低价-最低价
    DMP赋值:如果HD>0并且HD>LD,返回HD,否则返回0的N日累和
    DMM赋值:如果LD>0并且LD>HD,返回LD,否则返回0的N日累和
    输出PDI: DMP*100/MTR
    输出MDI: DMM*100/MTR
    输出ADX: MDI-PDI的绝对值/(MDI+PDI)*100的M日简单移动平均
    输出ADXR:(ADX+M日前的ADX)/2
    '''
    MTR=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(REF(CLOSE,1)-LOW)),N)
    HD =HIGH-REF(HIGH,1)
    LD =REF(LOW,1)-LOW
    list_A=[]
    list_B=[]
    for m,n in zip(LD>0,LD>HD):
        if m==n and m==True:
            list_A.append(True)
        else:
            list_A.append(False)
    for i,j in zip(LD>0,LD>HD):
        if i==j and i==True:
            list_B.append(True)
        else:
            list_B.append(False)
    DMP=SUM(IF(list_A,HD,0),N)
    DMM=SUM(IF(list_B,LD,0),N)
    PDI= DMP*100/MTR
    MDI=DMM*100/MTR
    ADX=MA(ABS(MDI-PDI)/(MDI+PDI)*100,M)
    ADXR=(ADX+REF(ADX,M))/2
    return PDI,MDI,ADX,ADXR
def DPO(CLOSE,N=21,M=6):
    '''
    区间震荡线
    输出区间震荡线:收盘价-N/2+1日前的收盘价的N日简单移动平均
    输出MADPO:DPO的M日简单移动平均
    '''
    #print(REF(MA(CLOSE,N),N/2))
    DPO=CLOSE-REF(MA(CLOSE,7),6)
    MADPO=MA(DPO,M)
    return DPO,MADPO
def EMV(HIGH,LOW,VOL,N=14,M=9):
    '''
    简易波动指标
    VOLUME赋值:成交量(手)的N日简单移动平均/成交量(手)
    MID赋值:100*(最高价+最低价-1日前的最高价+最低价)/(最高价+最低价)
    输出EMV:MID*VOLUME*(最高价-最低价)/最高价-最低价的N日简单移动平均的N日简单移动平均
    输出MAEMV:EMV的M日简单移动平均
    '''
    VOLUME=MA(VOL,N)/VOL
    MID=100*(HIGH+LOW-REF(HIGH+LOW,1))/(HIGH+LOW)
    EMV=MA(MID*VOLUME*(HIGH-LOW)/MA(HIGH-LOW,N),N)
    MAEMV=MA(EMV,M)
    return EMV,MAEMV
def MACD(CLOSE,SHORT=12,LONG=26,MID=9):
    '''
    平滑异同平均线
    输出DIF:收盘价的SHORT日指数移动平均-收盘价的LONG日指数移动平均
    输出DEA:DIF的MID日指数移动平均
    输出平滑异同平均线:(DIF-DEA)*2,COLORSTICK
    '''
    DIF=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG)
    DEA=EMA(DIF,MID)
    MACD=(DIF-DEA)*2
    return DIF,DEA,MACD
def VMACD(VOL,SHORT=12,LONG=26,MID=9):
    '''
    量平滑异同平均线
    输出DIF:成交量(手)的SHORT日指数移动平均-成交量(手)的LONG日指数移动平均
    输出DEA:DIF的MID日指数移动平均
    输出平滑异同平均线:DIF-DEA,COLORSTICK
    '''
    DIF=EMA(VOL,SHORT)-EMA(VOL,LONG)
    DEA=EMA(DIF,MID)
    MACD=DIF-DEA
    return DIF,DEA,MACD
def SMACD(CLOSE,SHORT=12,LONG=26,MID=9):
    '''
    单线平滑异同平均线
    DIF赋值:收盘价的SHORT日指数移动平均-收盘价的LONG日指数移动平均
    输出DEA:DIF的MID日指数移动平均
    输出平滑异同平均线:DIF,COLORSTICK
    '''
    DIF=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG)
    DEA=EMA(DIF,MID)
    MACD=DIF
    return DEA,MACD
def QACD(CLOSE,N1=12,N2=12,M=9):
    '''
    快速异同平均线
    输出DIF:收盘价的N1日指数移动平均-收盘价的N2日指数移动平均
    输出平滑异同平均线:DIF的M日指数移动平均
    输出DDIF:DIF-MACD
    '''
    DIF=EMA(CLOSE,N1)-EMA(CLOSE,N2)
    MACD=EMA(DIF,M)
    DDIF=DIF-MACD
    return DIF,MACD,DDIF
def TRIX(CLOSE,N=12,M=9):
    '''
    三重指数平均线
    MTR赋值:收盘价的N日指数移动平均的N日指数移动平均的N日指数移动平均
    输出三重指数平均线:(MTR-1日前的MTR)/1日前的MTR*100
    输出MATRIX:TRIX的M日简单移动平均 
    '''
    MTR=EMA(EMA(EMA(CLOSE,N),N),N)
    TRIX=(MTR-REF(MTR,1))/REF(MTR,1)*100
    MATRIX=MA(TRIX,M) 
    return TRIX,MATRIX
def UOS(CLOSE,HIGH,LOW,N1=7,N2=14,N3=28,M=6):
    '''
    终极指标
    TH赋值:最高价和1日前的收盘价的较大值
    TL赋值:最低价和1日前的收盘价的较小值
    ACC1赋值:收盘价-TL的N1日累和/TH-TL的N1日累和
    ACC2赋值:收盘价-TL的N2日累和/TH-TL的N2日累和
    ACC3赋值:收盘价-TL的N3日累和/TH-TL的N3日累和
    输出终极指标:(ACC1*N2*N3+ACC2*N1*N3+ACC3*N1*N2)*100/(N1*N2+N1*N3+N2*N3)
    输出MAUOS:UOS的M日指数平滑移动平均
    '''
    TH=MAX(HIGH,REF(CLOSE,1))
    TL=MIN(LOW,REF(CLOSE,1))
    ACC1=SUM(CLOSE-TL,N1)/SUM(TH-TL,N1)
    ACC2=SUM(CLOSE-TL,N2)/SUM(TH-TL,N2)
    ACC3=SUM(CLOSE-TL,N3)/SUM(TH-TL,N3)
    UOS=(ACC1*N2*N3+ACC2*N1*N3+ACC3*N1*N2)*100/(N1*N2+N1*N3+N2*N3)
    MAUOS=EXPMEMA(pd.Series(UOS),M)
    return UOS,np.array(MAUOS)
def VTP(CLOSE,VOL,N=51,M=6):
    '''
    量价曲线
    输出量价曲线:成交量(手)*(收盘价-1日前的收盘价)/1日前的收盘价的N日累和
    输出MAVPT:VPT的M日简单移动平均
    '''
    VPT=SUM(VOL*(CLOSE-REF(CLOSE,1))/REF(CLOSE,1),N)
    MAVP=MA(VPT,M)
    return VPT,MAVP
def WVAD(CLOSE,OPEN,HIGH,LOW,VOL,N=24,M=6):
    '''
    威廉变异离散量
    输出WVAD:(收盘价-开盘价)/(最高价-最低价)*成交量(手)的N日累和/10000
    输出MAWVAD:WVAD的M日简单移动平均
    '''
    WVAD=SUM((CLOSE-OPEN)/(HIGH-LOW)*VOL,N)/10000
    MAWVAD=MA(WVAD,M)
    return WVAD,MAWVAD
def DBQR(CLOSE,N=5,M1=10,M2=20,M3=60):
    '''
    对比强弱(需下载日线)
    输出ZS:(大盘的收盘价-N日前的大盘的收盘价)/N日前的大盘的收盘价
    输出GG:(收盘价-N日前的收盘价)/N日前的收盘价
    输出MADBQR1:GG的M1日简单移动平均
    输出MADBQR2:GG的M2日简单移动平均
    输出MADBQR3:GG的M3日简单移动平均
    '''
    ZS=(INDEXC-REF(INDEXC,N))/REF(INDEXC,N)
    GG=(CLOSE-REF(CLOSE,N))/REF(CLOSE,N)
    MADBQR1=MA(GG,M1)
    MADBQR2=MA(GG,M2)
    MADBQR3=MA(GG,M3)
    return ZS,GG,MADBQR1,MADBQR2,MADBQR3
def JS(CLOSE,N=5,M1=5,M2=10,M3=20):
    '''
    加数线
    输出加速线:100*(收盘价-N日前的收盘价)/(N*N日前的收盘价)
    输出MAJS1:JS的M1日简单移动平均
    输出MAJS2:JS的M2日简单移动平均
    输出MAJS3:JS的M3日简单移动平均
    '''
    JS=100*(CLOSE-REF(CLOSE,N))/(N*REF(CLOSE,N))
    MAJS1=MA(JS,M1)
    MAJS2=MA(JS,M2)
    MAJS3=MA(JS,M3)
    return JS,MAJS1,MAJS2,MAJS3
def CYE(CLOSE):
    '''
    市场趋势
    MAL赋值:收盘价的5日简单移动平均
    MAS赋值:收盘价的20日简单移动平均的5日简单移动平均
    输出CYEL:(MAL-1日前的MAL)/1日前的MAL*100
    输出CYES:(MAS-1日前的MAS)/1日前的MAS*100
    '''
    MAL=MA(CLOSE,5)
    MAS=MA(MA(CLOSE,20),5)
    CYEL=(MAL-REF(MAL,1))/REF(MAL,1)*100
    CYES=(MAS-REF(MAS,1))/REF(MAS,1)*100
    return CYEL,CYES
def QR(CLOSE,N=21):
    '''
    强弱指标(需下载日线)
    NN赋值:收盘价的有效数据周期数和N的较小值
    输出 个股: (收盘价-NN日前的收盘价)/NN日前的收盘价*100
    输出 大盘: (大盘的收盘价-NN日前的大盘的收盘价)/NN日前的大盘的收盘价*100
    输出 强弱值:个股-大盘的2日指数移动平均,COLORSTICK
    '''
    NN=MIN(BARSCOUNT(CLOSE),N)
    GG=(CLOSE-REF(CLOSE,NN))/REF(CLOSE,NN)*100
    DP=(INDEXC-REF(INDEXC,NN))/REF(INDEXC,NN)*100
    value=EMA(GG-DP,2)
    return GG,DP,value
def GDX(CLOSE,HIGH,LOW,N=30,M=9):
    '''
    轨道线
    AA赋值:(2*收盘价+最高价+最低价)/4-收盘价的N日简单移动平均的绝对值/收盘价的N日简单移动平均
    输出 轨道:以AA为权重收盘价的动态移动平均
    输出压力线:(1+M/100)*轨道
    输出 支撑线:(1-M/100)*轨道
    '''
    AA=ABS((2*CLOSE+HIGH+LOW)/4-MA(CLOSE,N))/MA(CLOSE,N)
    轨道 =DMA(AA,0.5)
    压力线=(1+M/100)*轨道 
    支撑线=(1-M/100)*轨道
    return 轨道,压力线,支撑线
def JLHB(CLOSE,LOW,N=7,M=5):
    '''
    绝路航标
    VAR1赋值:(收盘价-60日内最低价的最低值)/(60日内最高价的最高值-60日内最低价的最低值)*80
    输出 B:VAR1的N日[1日权重]移动平均
    输出 VAR2:B的M日[1日权重]移动平均
    输出 绝路航标:如果B上穿VAR2ANDB<40,返回50,否则返回0
    '''
    VAR1=(CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60))*80
    B=SMA(VAR1,N,1)
    VAR2=SMA(B,M,1)
    绝路航标=IF(np.logical_and(B,VAR2),50,0)
    return B,VAR2,绝路航标
#********************************************
#********************************************
#能量类型
def BRAR(OPEN,HIGH,LOW,N=26):
    '''
    情绪指标
    输出BR:0和最高价-1日前的收盘价的较大值的N日累和/0和1日前的收盘价-最低价的较大值的N日累和*100
    输出AR:最高价-开盘价的N日累和/开盘价-最低价的N日累和*100
    '''
    BR=SUM(MAX(0,HIGH-REF(CLOSE,1)),N)/SUM(MAX(0,REF(CLOSE,1)-LOW),N)*100
    AR=SUM(HIGH-OPEN,N)/SUM(OPEN-LOW,N)*100
    return BR,AR
def CR(HIGH,LOW,N=26,M1=10,M2=20,M3=40,M4=60):
    '''
    带状能量线
    MID赋值:1日前的最高价+最低价/2
    输出带状能量线:0和最高价-MID的较大值的N日累和/0和MID-最低价的较大值的N日累和*100
    输出MA1:M1/2.5+1日前的CR的M1日简单移动平均
    输出均线:M2/2.5+1日前的CR的M2日简单移动平均
    输出MA3:M3/2.5+1日前的CR的M3日简单移动平均
    输出MA4:M4/2.5+1日前的CR的M4日简单移动平均
    '''
    MID=REF(HIGH+LOW,1)/2
    CR=SUM(MAX(0,HIGH-MID),N)/SUM(MAX(0,MID-LOW),N)*100
    MA1=pd.DataFrame(CR).shift(11).mean()
    MA2=pd.DataFrame(CR).shift(5).mean()
    MA3=pd.DataFrame(CR).shift(17).mean()
    MA4=pd.DataFrame(CR).shift(25).mean()
    return CR,MA1,MA2,MA3,MA4
def MASS(HIGH,LOW,N1=9,N2=25,M=6):
    '''
    梅斯线
    输出梅斯线:最高价-最低价的N1日简单移动平均/最高价-最低价的N1日简单移动平均的N1日简单移动平均的N2日累和
    输出MAMASS:MASS的M日简单移动平均
    '''
    MASS=SUM(MA(HIGH-LOW,N1)/MA(MA(HIGH-LOW,N1),N1),N2)
    MAMASS=MA(MASS,M)
    return MASS,MAMASS
def PSY(CLOSE,N=12,M=6):
    '''
    心理线
    输出PSY:统计N日中满足收盘价>1日前的收盘价的天数/N*100
    输出PSYMA:PSY的M日简单移动平均
    '''
    PSY=COUNT(CLOSE>REF(CLOSE,1),N)/N*100
    PSYMA=MA(PSY,M)
    return PSY,PSYMA
def VR(CLOSE,N=26,M=6):
    '''
    成交量变异率
    TH赋值:如果收盘价>1日前的收盘价,返回成交量(手),否则返回0的N日累和
    TL赋值:如果收盘价<1日前的收盘价,返回成交量(手),否则返回0的N日累和
    TQ赋值:如果收盘价=1日前的收盘价,返回成交量(手),否则返回0的N日累和
    输出VR:100*(TH*2+TQ)/(TL*2+TQ)
    输出MAVR:VR的M日简单移动平均
    '''
    TH=SUM(IF(CLOSE>REF(CLOSE,1),VOL,0),N)
    TL=SUM(IF(CLOSE<REF(CLOSE,1),VOL,0),N)
    TQ=SUM(IF(CLOSE==REF(CLOSE,1),VOL,0),N)
    VR=100*(TH*2+TQ)/(TL*2+TQ)
    MAVR=MA(VR,M)
    return VR,MAVR
def WAD(CLOSE,LOW,M=30):
    '''
    威廉多空力度线
    MIDA赋值:收盘价-1日前的收盘价和最低价的较小值
    MIDB赋值:如果收盘价<1日前的收盘价,返回收盘价-1日前的收盘价和最高价的较大值,否则返回0
    输出威廉多空力度线:如果收盘价>1日前的收盘价,返回MIDA,否则返回MIDB的历史累和
    输出MAWAD:WAD的M日简单移动平均
    '''
    MIDA=CLOSE-MIN(REF(CLOSE,1),LOW)
    MIDB=IF(CLOSE<REF(CLOSE,1),CLOSE-MAX(REF(CLOSE,1),HIGH),0)
    WAD=SUM(IF(CLOSE>REF(CLOSE,1),MIDA,MIDB),0)
    MAWAD=MA(WAD,M)
    return WAD,MAWAD
def EXPMEMA(CLOSE,M=5):
    '''
    指数平滑
    '''
    return pd.Series(CLOSE).ewm(span=M, adjust=False).mean().values
def PCNT(CLOSE,M=5):
    '''
    输出幅度比:(收盘价-1日前的收盘价)/收盘价*100
    输出MAPCNT:PCNT的M日指数平滑移动平均
    '''
    PCNT=(CLOSE-REF(CLOSE,1))/CLOSE*100
    MAPCNT=EXPMEMA(PCNT,M)
    return PCNT,MAPCNT
def CYR(AMOUNT,N=13,M=5):
    '''
    市场强弱
    AMOUNT成交量=price*volume
    DIVE赋值:0.01*成交额(元)的N日指数移动平均/成交量(手)的N日指数移动平均
    输出市场强弱:(DIVE/1日前的DIVE-1)*100
    输出MACYR:CYR的M日简单移动平均
    '''
    DIVE=0.01*EMA(AMOUNT,N)/EMA(VOL,N)
    CYR=(DIVE/REF(DIVE,1)-1)*100
    MACYR=MA(CYR,M)
    return CYR,MACYR
#*********************************************
#*********************************************
#能量型
def AMO(AMOUNT,M1=5,M2=10):
    '''
    成交金额
    输出AMOW:成交额(元)/10000.0,VOLSTICK
    输出AMO1:AMOW的M1日简单移动平均
    输出AMO2:AMOW的M2日简单移动平均
    '''
    AMOW=AMOUNT/10000.0
    AMO1=MA(AMOW,M1)
    AMO2=MA(AMOW,M2)
    return AMOW,AMO1,AMO2
def OBV(VOL,CLOSE,M=30):
    '''
    累积能量线
    VA赋值:如果收盘价>1日前的收盘价,返回成交量(手),否则返回-成交量(手)
    输出OBV:如果收盘价=1日前的收盘价,返回0,否则返回VA的历史累和
    输出MAOBV:OBV的M日简单移动平均
    '''
    VA=IF(CLOSE>REF(CLOSE,1),VOL,-VOL)
    OBV=SUM(IF(CLOSE==REF(CLOSE,1),0,VA),0)
    MAOBV=MA(OBV,M)
    return OBV,MAOBV
def VOL_XT(VOL,M1=5,M2=10):
    '''
    成交量
    输出VOLUME:成交量(手),VOLSTICK
    输出MAVOL1:VOLUME的M1日简单移动平均
    输出MAVOL2:VOLUME的M2日简单移动平均
    '''
    VOLUME=VOL
    MAVOL1=MA(VOLUME,M1)
    MAVOL2=MA(VOLUME,M2)
    return MAVOL1,MAVOL2
def VRSI(VOL,N1=6,N2=12,N3=24):
    '''
    相对强弱量
    LC赋值:1日前的成交量(手)
    输出RSI1:成交量(手)-LC和0的较大值的N1日[1日权重]移动平均/成交量(手)-LC的绝对值的N1日[1日权重]移动平均*100
    输出RSI2:成交量(手)-LC和0的较大值的N2日[1日权重]移动平均/成交量(手)-LC的绝对值的N2日[1日权重]移动平均*100
    输出RSI3:成交量(手)-LC和0的较大值的N3日[1日权重]移动平均/成交量(手)-LC的绝对值的N3日[1日权重]移动平均*100
    '''
    LC=REF(VOL,1)
    RSI1=SMA(MAX(VOL-LC,0),N1,1)/SMA(ABS(VOL-LC),N1,1)*100
    RSI2=SMA(MAX(VOL-LC,0),N2,1)/SMA(ABS(VOL-LC),N2,1)*100
    RSI3=SMA(MAX(VOL-LC,0),N3,1)/SMA(ABS(VOL-LC),N3,1)*100
    return RSI1,RSI2,RSI3
def HSL(HSL,N=5):
    '''
    换手线
    '''
    HSL=HSL
    MAHSL=MA(HSL,N)
    return HSL,MAHSL
#******************************************
#******************************************
#均线系统
def MA_XT(CLOSE,M1=5,M2=10,M3=20,M4=60):
    '''
    均线
    输出MA1:收盘价的M1日简单移动平均
    输出均线:收盘价的M2日简单移动平均
    输出MA3:收盘价的M3日简单移动平均
    输出MA4:收盘价的M4日简单移动平均
    输出MA5:收盘价的M5日简单移动平均
    输出MA6:收盘价的M6日简单移动平均
    输出MA7:收盘价的M7日简单移动平均
    输出MA8:收盘价的M8日简单移动平均
    '''
    MA1=MA(CLOSE,M1)
    MA2=MA(CLOSE,M2)
    MA3=MA(CLOSE,M3)
    MA4=MA(CLOSE,M4)
    return MA1,MA2,MA3,MA4
def MA2(CLOSE,M1=5,M2=10,M3=20,M4=60,M5=120,M6=240,M7=360,M8=420,M9=680,M10=720):
    '''
    均线2
    输出MA1:收盘价的M1日简单移动平均
    输出均线:收盘价的M2日简单移动平均
    输出MA3:收盘价的M3日简单移动平均
    输出MA4:收盘价的M4日简单移动平均
    输出MA5:收盘价的M5日简单移动平均
    输出MA6:收盘价的M6日简单移动平均
    输出MA7:收盘价的M7日简单移动平均
    输出MA8:收盘价的M8日简单移动平均
    输出MA9:收盘价的M9日简单移动平均
    输出MA10:收盘价的M10日简单移动平均
    '''
    MA1=MA(CLOSE,M1)
    MA2=MA(CLOSE,M2)
    MA3=MA(CLOSE,M3)
    MA4=MA(CLOSE,M4)
    MA5=MA(CLOSE,M5)
    MA6=MA(CLOSE,M6)
    MA7=MA(CLOSE,M7)
    MA8=MA(CLOSE,M8)
    MA9=MA(CLOSE,M9)
    MA10=MA(CLOSE,M10)
    return MA1,MA2,MA3,MA4,MA5,MA6,MA7,MA8,MA8,MA9,MA10
def ACD(CLOSE,HIGH,LOW,M=20):
    '''
    升降线
    LC赋值:1日前的收盘价
    DIF赋值:收盘价-如果收盘价>LC,返回最低价和LC的较小值,否则返回最高价和LC的较大值
    输出升降线:如果收盘价=LC,返回0,否则返回DIF的历史累和
    输出MAACD:ACD的M日指数平滑移动平均
    '''
    LC=REF(CLOSE,1)
    DIF=CLOSE-IF(CLOSE>LC,MIN(LOW,LC),MAX(HIGH,LC))
    ACD=SUM(IF(CLOSE==LC,0,DIF),0)
    MAACD=EXPMEMA(ACD,M)
    return ACD,MAACD
def BBI(CLOSE,M1=3,M2=6,M3=12,M4=24):
    '''
    多空均线
    输出多空均线:(收盘价的M1日简单移动平均+收盘价的M2日简单移动平均+收盘价的M3日简单移动平均+收盘价的M4日简单移动平均)/4
    '''
    BBI=(MA(CLOSE,M1)+MA(CLOSE,M2)+MA(CLOSE,M3)+MA(CLOSE,M4))/4
    return BBI
def EXPMA(CLOSE,M1=12,M2=50):
    '''
    指数平均线
    输出EXP1:收盘价的M1日指数移动平均
    输出EXP2:收盘价的M2日指数移动平均
    '''
    EXP1=EMA(CLOSE,M1)
    EXP2=EMA(CLOSE,M2)
    return EXP1,EXP2
def HMA(HIGH,M1=6,M2=12,M3=30,M4=70,M5=90):
    '''
    高价平均线
    输出HMA1:最高价的M1日简单移动平均
    输出HMA2:最高价的M2日简单移动平均
    输出HMA3:最高价的M3日简单移动平均
    输出HMA4:最高价的M4日简单移动平均
    输出HMA5:最高价的M5日简单移动平均
    '''
    HMA1=MA(HIGH,M1)
    HMA2=MA(HIGH,M2)
    HMA3=MA(HIGH,M3)
    HMA4=MA(HIGH,M4)
    HMA5=MA(HIGH,M5)
    return HMA1,HMA2,HMA3,HMA4,HMA5
def LMA(LOW,M1=6,M2=12,M3=30,M4=70,M5=90):
    '''
    低价平均线
    输出LMA1:最低价的M1日简单移动平均
    输出LMA2:最低价的M2日简单移动平均
    输出LMA3:最低价的M3日简单移动平均
    输出LMA4:最低价的M4日简单移动平均
    输出LMA5:最低价的M5日简单移动平均
    '''
    LMA1=MA(LOW,M1)
    LMA2=MA(LOW,M2)
    LMA3=MA(LOW,M3)
    LMA4=MA(LOW,M4)
    LMA5=MA(LOW,M5)
    return LMA1,LMA2,LMA3,LMA4,LMA5
def VMA(HIGH,OPEN,LOW,CLOSE,M1=6,M2=12,M3=30,M4=70,M5=90):
    '''
    变异平均线
    VV赋值:(最高价+开盘价+最低价+收盘价)/4
    输出VMA1:VV的M1日简单移动平均
    输出VMA2:VV的M2日简单移动平均
    输出VMA3:VV的M3日简单移动平均
    输出VMA4:VV的M4日简单移动平均
    输出VMA5:VV的M5日简单移动平均
    '''
    VV=(HIGH+OPEN+LOW+CLOSE)/4
    VMA1=MA(VV,M1)
    VMA2=MA(VV,M2)
    VMA3=MA(VV,M3)
    VMA4=MA(VV,M4)
    VMA5=MA(VV,M5)
    return VMA1,VMA2,VMA3,VMA4,VMA5
def AMV(OPEN,CLOSE,VOL,M1=5,M2=13,M3=34,M4=60):
    '''
    成本均线
    AMOV赋值:成交量(手)*(开盘价+收盘价)/2
    输出AMV1:AMOV的M1日累和/成交量(手)的M1日累和
    输出AMV2:AMOV的M2日累和/成交量(手)的M2日累和
    输出AMV3:AMOV的M3日累和/成交量(手)的M3日累和
    输出AMV4:AMOV的M4日累和/成交量(手)的M4日累和
    '''
    AMOV=VOL*(OPEN+CLOSE)/2
    AMV1=SUM(AMOV,M1)/SUM(VOL,M1)
    AMV2=SUM(AMOV,M2)/SUM(VOL,M2)
    AMV3=SUM(AMOV,M3)/SUM(VOL,M3)
    AMV4=SUM(AMOV,M4)/SUM(VOL,M4)
    return AMV1,AMV2,AMV3,AMV4
def BBIBOLL(CLOSE,N=11,M=6):
    '''
    多空布林线
    CV赋值:收盘价
    输出多空布林线:(CV的3日简单移动平均+CV的6日简单移动平均+CV的12日简单移动平均+CV的24日简单移动平均)/4
    输出UPR:BBIBOLL+M*BBIBOLL的N日估算标准差
    输出DWN:BBIBOLL-M*BBIBOLL的N日估算标准差
    '''
    CV=CLOSE
    BBIBOLL=(MA(CV,3)+MA(CV,6)+MA(CV,12)+MA(CV,24))/4
    UPR=BBIBOLL+M*STD(BBIBOLL,N)
    DWN=BBIBOLL-M*STD(BBIBOLL,N)
    return BBIBOLL,UPR,DWN
def ALLIGAT(HIGH,LOW):
    '''
    鳄鱼线
    NN赋值:(最高价+最低价)/2
    输出上唇:3日前的NN的5日简单移动平均,COLOR40FF40
    输出牙齿:5日前的NN的8日简单移动平均,COLOR0000C0
    输出下颚:8日前的NN的13日简单移动平均,COLORFF4040
    '''
    H=HIGH
    L=LOW
    NN=(H+L)/2
    上唇=REF(MA(NN,5),3)
    牙齿=REF(MA(NN,8),5)
    下颚=REF(MA(NN,13),8)
    return 上唇,牙齿,下颚
def GMMA(CLOSE):
    '''
    顾比均线
    '''
    MA3=EMA(CLOSE,3)
    MA5=EMA(CLOSE,5)
    MA8=EMA(CLOSE,8)
    MA10=EMA(CLOSE,10)
    MA12=EMA(CLOSE,12)
    MA15=EMA(CLOSE,15)
    MA30=EMA(CLOSE,30)
    MA35=EMA(CLOSE,35)
    MA40=EMA(CLOSE,40)
    MA45=EMA(CLOSE,45)
    MA50=EMA(CLOSE,50)
    MA60=EMA(CLOSE,60)
    return MA3,MA5,MA8,MA10,MA12,MA15,MA30,MA35,MA40,MA45,MA50,MA60
#*******************************************
#*******************************************
#路径类
def BOLL(CLOSE,M=20):
    '''
    布林线
    输出BOLL:收盘价的M日简单移动平均
    输出UB:BOLL+2*收盘价的M日估算标准差
    输出LB:BOLL-2*收盘价的M日估算标准差
    '''
    BOLL=MA(CLOSE,M)
    UB=BOLL+2*STD(CLOSE,M)
    LB=BOLL-2*STD(CLOSE,M)
    return BOLL,UB,LB
def PBX(CLOSE,M1=4,M2=6,M3=9,M4=13,M5=18,M6=24):
    '''
    瀑布线
    输出PBX1:(收盘价的M1日指数移动平均+收盘价的M1*2日简单移动平均+收盘价的M1*4日简单移动平均)/3
    输出PBX2:(收盘价的M2日指数移动平均+收盘价的M2*2日简单移动平均+收盘价的M2*4日简单移动平均)/3
    输出PBX3:(收盘价的M3日指数移动平均+收盘价的M3*2日简单移动平均+收盘价的M3*4日简单移动平均)/3
    输出PBX4:(收盘价的M4日指数移动平均+收盘价的M4*2日简单移动平均+收盘价的M4*4日简单移动平均)/3
    输出PBX5:(收盘价的M5日指数移动平均+收盘价的M5*2日简单移动平均+收盘价的M5*4日简单移动平均)/3
    输出PBX6:(收盘价的M6日指数移动平均+收盘价的M6*2日简单移动平均+收盘价的M6*4日简单移动平均)/3
    '''
    PBX1=(EMA(CLOSE,M1)+MA(CLOSE,M1*2)+MA(CLOSE,M1*4))/3
    PBX2=(EMA(CLOSE,M2)+MA(CLOSE,M2*2)+MA(CLOSE,M2*4))/3
    PBX3=(EMA(CLOSE,M3)+MA(CLOSE,M3*2)+MA(CLOSE,M3*4))/3
    PBX4=(EMA(CLOSE,M4)+MA(CLOSE,M4*2)+MA(CLOSE,M4*4))/3
    PBX5=(EMA(CLOSE,M5)+MA(CLOSE,M5*2)+MA(CLOSE,M5*4))/3
    PBX6=(EMA(CLOSE,M6)+MA(CLOSE,M6*2)+MA(CLOSE,M6*4))/3
    return PBX1,PBX2,PBX3,PBX4,PBX5,PBX6
def ENE(CLOSE,N=25,M1=6,M2=6):
    '''
    轨道线
    输出UPPER:(1+M1/100)*收盘价的N日简单移动平均
    输出LOWER:(1-M2/100)*收盘价的N日简单移动平均
    输出轨道线:(UPPER+LOWER)/2
    '''
    UPPER=(1+M1/100)*MA(CLOSE,N)
    LOWER=(1-M2/100)*MA(CLOSE,N)
    ENE=(UPPER+LOWER)/2
    return UPPER,LOWER,ENE
def MIKE(HIGH,LOW,CLOSE,N=10):
    '''
    麦克支撑压力
    HLC赋值:1日前的(最高价+最低价+收盘价)/3的N日简单移动平均
    HV赋值:N日内最高价的最高值的3日指数移动平均
    LV赋值:N日内最低价的最低值的3日指数移动平均
    输出STOR:2*HV-LV的3日指数移动平均
    输出MIDR:HLC+HV-LV的3日指数移动平均
    输出WEKR:HLC*2-LV的3日指数移动平均
    '''
    HLC=REF(MA((HIGH+LOW+CLOSE)/3,N),1)
    HV=EMA(HHV(HIGH,N),3)
    LV=EMA(LLV(LOW,N),3)
    STOR=EMA(2*HV-LV,3)
    MIDR=EMA(HLC+HV-LV,3)
    WEKR=EMA(HLC*2-LV,3)
    WEKS=EMA(HLC*2-HV,3)
    MIDS=EMA(HLC-HV+LV,3)
    STOS=EMA(2*LV-HV,3)
    return STOR,MIDR,WEKR,WEKS,MIDS,STOS
def XS(CLOSE,VOL,N=13):
    '''
    薛斯通道
    VAR2赋值:收盘价*成交量(手)
    VAR3赋值:(VAR2的3日指数移动平均/成交量(手)的3日指数移动平均+VAR2的6日指数移动平均/成交量(手)的6日指数移动平均+VAR2的12日指数移动平均/成交量(手)的12日指数移动平均+VAR2的24日指数移动平均/成交量(手)的24日指数移动平均)/4的N日指数移动平均
    输出SUP:1.06*VAR3
    输出SDN:VAR3*0.94
    VAR4赋值:收盘价的9日指数移动平均
    输出LUP:VAR4*1.14的5日指数移动平均
    输出LDN:VAR4*0.86的5日指数移动平均
    '''
    VAR2=CLOSE*VOL
    VAR3=EMA((EMA(VAR2,3)/EMA(VOL,3)+EMA(VAR2,6)/EMA(VOL,6)+EMA(VAR2,12)/EMA(VOL,12)+EMA(VAR2,24)/EMA(VOL,24))/4,N)
    SUP=1.06*VAR3
    SDN=VAR3*0.94
    VAR4=EMA(CLOSE,9)
    LUP=EMA(VAR4*1.14,5)
    LDN=EMA(VAR4*0.86,5)
    return SUP,SDN,LUP,LDN
def XS2(CLOSE,HIGH,LOW,N=102,M=7):
    '''
    薛斯通道II
    AA赋值:(2*收盘价+最高价+最低价)/4的5日简单移动平均
    输出 通道1:AA*N/100
    输出 通道2:AA*(200-N)/100
    CC赋值:(2*收盘价+最高价+最低价)/4-收盘价的20日简单移动平均的绝对值/收盘价的20日简单移动平均
    DD赋值:以CC为权重收盘价的动态移动平均
    输出 通道3:(1+M/100)*DD
    '''
    AA=MA((2*CLOSE+HIGH+LOW)/4,5)
    通道1=AA*N/100
    通道2=AA*(200-N)/100
    CC=ABS((2*CLOSE+HIGH+LOW)/4-MA(CLOSE,20))/MA(CLOSE,20)
    DD=DMA(CLOSE,0.5)
    通道3=(1+M/100)*DD
    通道4=(1-M/100)*DD
    return 通道1,通道2,通道3,通道4
def TQN(HIGH,LOW,X1=20,x2=20):
    '''
    唐奇安通道
    输出周期高点:1日前的X1日内最高价的最高值
    输出周期低点:1日前的X2日内最低价的最低值
    平空开多赋值:最高价>=周期高点
    平多开空赋值:最低价<=周期低点
    先平空仓再开多仓
    先平多仓再开空仓
    自动过滤交易信号
    '''
    H=HIGH
    L=LOW
    周期高点=REF(HHV(H,X1),1)
    周期低点=REF(LLV(L,X2),1)
    平空开多=HIGH>=周期高点
    平多开空=LOW<=周期低点
    return 周期高点,周期低点,平空开多,平多开空
#*******************************************
#*******************************************
#停损
def SAR(HIGH,LOW,M=10,af= 2, amax=20):
    '''
    抛物线指标
    '''
    af=af/100
    amax=amax/100
    data=pd.DataFrame()
    data['high']=HIGH
    data['low']=LOW
    data['high - low']=data['high']-data['low']
    high, low =data['high'].shift(M),data['low'].shift(M)

        # Starting values
    sig0, xpt0, af0 = True, high.tolist()[0], af
    _sar = [low.tolist()[0] - data['high - low'].std()]

    for i in range(1, len(LOW)):
        sig1, xpt1, af1 = sig0, xpt0, af0

        lmin = min(low.tolist()[i - 1], low.tolist()[i])
        lmax = max(high.tolist()[i - 1], high.tolist()[i])

        if sig1:
            sig0 = low.tolist()[i] > _sar[-1]
            xpt0 = max(lmax, xpt1)
        else:
            sig0 = high.tolist()[i] >= _sar[-1]
            xpt0 = min(lmin, xpt1)

        if sig0 == sig1:
            sari = _sar[-1] + (xpt1 - _sar[-1]) * af1
            af0 = min(amax, af1 + af)

            if sig0:
                af0 = af0 if xpt0 > xpt1 else af1
                sari = min(sari, lmin)
            else:
                af0 = af0 if xpt0 < xpt1 else af1
                sari = max(sari, lmax)
        else:
            af0 = af
            sari = xpt0

        _sar.append(sari)

    return _sar
#*******************************
#******************************
#交易类型
def MA_交易(CLOSE,SHORT=5,LONG=20):
    '''
    MA_交易
    MA1赋值:收盘价的SHORT日简单移动平均
    MA2赋值:收盘价的LONG日简单移动平均
    平空开多赋值:MA1上穿MA2
    平多开空赋值:MA2上穿MA1
    先平空仓再开多仓
    先平多仓再开空仓
    '''
    MA1=MA(CLOSE,SHORT)
    MA2=MA(CLOSE,LONG)
    平空开多=CROSS(MA1,MA2)
    平多开空=CROSS(MA2,MA1)
    return MA1,MA2,平空开多,平多开空
def MACD_交易(CLOSE,SHORT=12,LONG=26,MID=9):
    '''
    MACD交易
    DIFF赋值:收盘价的SHORT日指数移动平均-收盘价的LONG日指数移动平均
    DEA赋值:DIFF的MID日指数移动平均
    MACD赋值:2*(DIFF-DEA)
    平空开多赋值:MACD上穿0
    平多开空赋值:0上穿MACD
    先平空仓再开多仓
    '''
    DIFF=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG)
    DEA=EMA(DIFF,MID)
    MACD=2*(DIFF-DEA)
    平空开多=CROSS(MACD,0)
    平空开多=CROSS(0,MACD)
    return DIFF,DEA,MACD,平空开多,平空开多
def KDJ_交易(CLOSE,HIGH,LOW,N=9,M1=3):
    '''
    KDJ交易
    RSV赋值:(收盘价-N日内最低价的最低值)/(N日内最高价的最高值-N日内最低价的最低值)*100
    K赋值:RSV的M1日[1日权重]移动平均
    D赋值:K的M1日[1日权重]移动平均
    J赋值:3*K-2*D
    平空开多赋值:J上穿0
    平多开空赋值:100上穿J
    先平空仓再开多仓
    先平多仓再开空仓
    自动过滤交易信号
    '''
    RSV=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100
    K=SMA(RSV,M1,1)
    D=SMA(K,M1,1)
    J=3*K-2*D
    平空开多=CROSS(J,0)
    平多开空=CROSS(100,J)
    return K,D,J,平空开多,平多开空
#*****************************************
#*****************************************
#神系
def SG_XDT(CLOSE,INDEXC,P1=5,P2=10):
    '''
    心电图(需下载日线)
    输出强弱指标(需下载日线):收盘价/大盘的收盘价*1000
    输出MQR1:QR的5日简单移动平均
    输出MQR2:QR的10日简单移动平均
    ''' 
    QR=CLOSE/INDEXC*1000
    MQR1=MA(QR,5)
    MQR2=MA(QR,10)
    return QR,MQR1,MQR2
def SG_NDB(CLOSE,HIGH,LOW,P1=5,P2=10):
    '''
    脑电波(神系)
    HH赋值:如果收盘价/1日前的收盘价>1.093ANDL>1日前的最高价,返回2*收盘价-1日前的收盘价-最高价,否则返回2*收盘价-最高价-最低价
    V1赋值:收盘价的有效数据周期数
    V2赋值:2*V1日前的收盘价-V1日前的最高价-V1日前的最低价
    输出DK:HH的历史累和+V2
    输出MDK1:DK的P1日简单移动平均
    输出MDK2:DK的P2日简单移动平均
    '''
    C=CLOSE
    H=HIGH
    L=LOW
    HH=IF(np.logical_or(C/REF(C,1)>1.093 ,L>REF(H,1)),2*C-REF(C,1)-H,2*C-H-L)
    V1=1
    V2=2*REF(C,V1)-REF(H,V1)-REF(L,V1)
    DK=SUM(HH,0)+V2
    MDK1=MA(DK,P1)
    MDK2=MA(DK,P2)
    return DK,MDK1,MDK2
def SG_SMX(CLOSE,HIGH,LOW,INDEXH,INDEXL,INDEXC,N=50):
    '''
    生命线(需下载日线)
    INDEXH,INDEXL,INDEXC指数的高,低收盘价,可以通过akshare.stock_zh_a_daily(sybol='sh000001')获取
    H1赋值:N日内最高价的最高值
    L1赋值:N日内最低价的最低值
    H2赋值:N日内大盘的最高价的最高值
    L2赋值:N日内大盘的最低价的最低值
    ZY赋值:收盘价/大盘的收盘价*2000
    输出ZY1:ZY的3日指数移动平均
    输出ZY2:ZY的17日指数移动平均
    输出ZY3:ZY的34日指数移动平均
    '''
    H1=HHV(HIGH,N)
    L1=LLV(LOW,N)
    H2=HHV(INDEXH,N)
    L2=LLV(INDEXL,N)
    ZY=CLOSE/INDEXC*2000
    ZY1=EMA(ZY,3)
    ZY2=EMA(ZY,17)
    ZY3=EMA(ZY,34)
    return ZY1,ZY2,ZY3
def SG_LB(VOl,INDEXV):
    '''
    量比(需下载日线)
    VOl个股成交量,INDXEXV大盘成交量,可以通过ak.stock_zh_a_daily()获取
    ZY2赋值:成交量(手)/大盘的成交量*1000
    输出量比:ZY2
    输出MA5:ZY2的5日简单移动平均
    输出MA10:ZY2的10日简单移动平均
    '''
    ZY2=VOL/INDEXV*1000
    量比=ZY2
    MA5=MA(ZY2,5)
    MA10=MA(ZY2,10)
    return 量比,MA5,MA10
def SG_PF(CLOSE,INDEXV):
    '''
    强势股评分(需下载日线)
    ZY1赋值:收盘价/大盘的收盘价*1000
    A1赋值:如果ZY1>3日内ZY1的最高值,返回10,否则返回0
    A2赋值:如果ZY1>5日内ZY1的最高值,返回15,否则返回0
    A3赋值:如果ZY1>10日内ZY1的最高值,返回20,否则返回0
    A4赋值:如果ZY1>2日内ZY1的最高值,返回10,否则返回0
    A5赋值:统计9日中满足ZY1>1日前的ZY1的天数*5
    输出强势股评分:A1+A2+A3+A4+A5
    '''
    ZY1=CLOSE/INDEXC*1000
    A1=IF(ZY1>HHV(ZY1,3),10,0)
    A2=IF(ZY1>HHV(ZY1,5),15,0)
    A3=IF(ZY1>HHV(ZY1,10),20,0)
    A4=IF(ZY1>HHV(ZY1,2),10,0)
    A5=COUNT(ZY1>REF(ZY1,1) ,9)*5
    强势股评分=A1+A2+A3+A4+A5
    return 强势股评分
#*************************************************
#*************************************************
#龙系
def RAD(OPEN,HIGH,CLOSE,LOW,INDEXO,INDEXH,INDEXL,INDEXC,D=3,S=30,M=30):
    '''
    威力雷达(需下载日线)
    OPEN+HIGH+CLOSE+LOW个股
    INDEXO+INDEXH+INDEXL+INDEXC大盘数据,可以通过akshare获取
    SM赋值:(开盘价+最高价+收盘价+最低价)/4
    SMID赋值:SM的D日简单移动平均
    IM赋值:(大盘的开盘价+大盘的最高价+大盘的最低价+大盘的收盘价)/4
    IMID赋值:IM的D日简单移动平均
    SI1赋值:(SMID-1日前的SMID)/SMID
    II赋值:(IMID-1日前的IMID)/IMID
    输出RADER1:(SI1-II)*2的S日累和*1000
    输出RADERMA:RADER1的M日[1日权重]移动平均
    '''
    SM=(OPEN+HIGH+CLOSE+LOW)/4
    SMID=MA(SM,D)
    IM=(INDEXO+INDEXH+INDEXL+INDEXC)/4
    IMID=MA(IM,D)
    SI1=(SMID-REF(SMID,1))/SMID
    II=(IMID-REF(IMID,1))/IMID
    RADER1=SUM((SI1-II)*2,S)*1000
    RADERMA=SMA(RADER1,M,1)
    return RADER1,RADERMA
    return 
def LON(CLOSE,HIGH,LOW,VOL,N=10):
    '''
    龙系长线
    赋值: 1日前的收盘价
    赋值: 成交量(手)的2日累和/(((2日内最高价的最高值-2日内最低价的最低值))*100)
    赋值: (收盘价-LC)*VID
    赋值: RC的历史累和
    赋值: LONG的10日[1日权重]移动平均
    赋值: LONG的20日[1日权重]移动平均
    输出龙系长线 : DIFF-DEA
    输出LONMA : 龙系长线的N日简单移动平均
    输出LONT : 龙系长线, COLORSTICK
    '''
    LC = REF(CLOSE,1)
    VID = SUM(VOL,2)/(((HHV(HIGH,2)-LLV(LOW,2)))*100)
    RC = (CLOSE-LC)*VID
    LONG = SUM(RC,0)
    DIFF = SMA(LONG,10,1)
    DEA = SMA(LONG,20,1)
    LON = DIFF-DEA
    LONMA = MA(LON,N)
    LONT = LON
    return LON,LONMA,LONT
def SHT(CLOSE,VOL,N=5):
    '''
    龙系短线
    VAR1赋值:(成交量(手)-1日前的成交量(手))/1日前的成交量(手)的5日简单移动平均
    VAR2赋值:(收盘价-收盘价的24日简单移动平均)/收盘价的24日简单移动平均*100
    输出MY: VAR2*(1+VAR1)
    输出龙系短线: MY, COLORSTICK
    输出SHTMA: SHT的N日简单移动平均
    '''
    VAR1=MA((VOL-REF(VOL,1))/REF(VOL,1),5)
    VAR2=(CLOSE-MA(CLOSE,24))/MA(CLOSE,24)*100
    MY= VAR2*(1+VAR1)
    SHT= MY#COLORSTICK
    SHTMA= MA(SHT,N)
    return SHT,SHTMA
def ZLJC(CLOSE,LOW,HIGH):
    '''
    主力进出
    VAR1赋值:(收盘价+最低价+最高价)/3
    VAR2赋值:((VAR1-1日前的最低价)-(最高价-VAR1))*成交量(手)/100000/(最高价-最低价)的历史累和
    VAR3赋值:VAR2的1日指数移动平均
    输出 JCS:VAR3
    输出 JCM:VAR3的12日简单移动平均
    输出 JCL:VAR3的26日简单移动平均
    '''
    VAR1=(CLOSE+LOW+HIGH)/3
    VAR2=SUM(((VAR1-REF(LOW,1))-(HIGH-VAR1))*VOL/100000/(HIGH-LOW),0)
    VAR3=EMA(VAR2,1)
    JCS=VAR3
    JCM=MA(VAR3,12)
    JCL=MA(VAR3,26)
    return JCS,JCM,JCL
def ZLMM(CLOSE):
    '''
    赋值:1日前的收盘价
    RSI2赋值:收盘价-LC和0的较大值的12日[1日权重]移动平均/收盘价-LC的绝对值的12日[1日权重]移动平均*100
    RSI3赋值:收盘价-LC和0的较大值的18日[1日权重]移动平均/收盘价-LC的绝对值的18日[1日权重]移动平均*100
    输出MMS:3*RSI2-2*收盘价-LC和0的较大值的16日[1日权重]移动平均/收盘价-LC的绝对值的16日[1日权重]移动平均*100的3日简单移动平均
    输出MMM:MMS的8日指数移动平均
    输出MML:3*RSI3-2*收盘价-LC和0的较大值的12日[1日权重]移动平均/收盘价-LC的绝对值的12日[1日权重]移动平均*100的5日简单移动平均
    '''
    LC =REF(CLOSE,1)
    RSI2=SMA(MAX(CLOSE-LC,0),12,1)/SMA(ABS(CLOSE-LC),12,1)*100
    RSI3=SMA(MAX(CLOSE-LC,0),18,1)/SMA(ABS(CLOSE-LC),18,1)*100
    MMS=MA(3*RSI2-2*SMA(MAX(CLOSE-LC,0),16,1)/SMA(ABS(CLOSE-LC),16,1)*100,3)
    MMM=EMA(MMS,8)
    MML=MA(3*RSI3-2*SMA(MAX(CLOSE-LC,0),12,1)/SMA(ABS(CLOSE-LC),12,1)*100,5)
    return MMS,MMM,MML
def SLZT(CLOSE,LOW):
    '''
    神龙在天
    输出白龙: 收盘价的125日简单移动平均
    输出黄龙: 白龙+2*收盘价的170日估算标准差
    输出紫龙: 白龙-2*收盘价的145日估算标准差
    输出青龙: 步长为1极限值为7的125日抛物转向, LINESTICK
    VAR2赋值:70日内最高价的最高值
    VAR3赋值:20日内最高价的最高值
    输出红龙: VAR2*0.83
    输出蓝龙: VAR3*0.91
    '''
    白龙=MA(CLOSE,125)
    黄龙=白龙+2*STD(CLOSE,170)
    紫龙=白龙-2*STD(CLOSE,145)
    青龙=SAR(HIGH,LOW,125,1,7)# LINESTICK;
    VAR2=HHV(HIGH,70)
    VAR3=HHV(HIGH,20)
    红龙= VAR2*0.83
    蓝龙=VAR3*0.91
    return 白龙,黄龙,紫龙,青龙,红龙,蓝龙
def ADVOL(CLOSE,HIGH,LOW,VOL):
    '''
    龙系离散量
    A赋值:((收盘价-最低价)-(最高价-收盘价))*成交量(手)/10000/(最高价-最低价)的历史累和
    输出龙系离散量:A
    输出MA1:A的30日简单移动平均
    输出均线:MA1的100日简单移动平均
    '''
    A=SUM(((CLOSE-LOW)-(HIGH-CLOSE))*VOL/10000/(HIGH-LOW),0)
    ADVOL=A
    MA1=MA(A,30)
    MA2=MA(MA1,100)
    return ADVOL,MA1,MA2
#*********************************************
#*********************************************
#鬼系
def CYC(code='sh600031',start_date='20210101',end_date='20221022',P1=5,P2=13,P3=34):
    '''
    成本均线
    JJJ赋值:如果总量>0.01,简单理解流通股,返回0.01*总金额/总量,否则返回昨收盘价
    DDD赋值:(最高价<0.01 或者 最低价<0.01)
    JJJT赋值:如果DDD,返回1,否则返回(JJJ<(最高价+0.01)并且JJJ>(最低价-0.01))
    输出CYC1:如果JJJT,返回0.01*成交额(元)的P1日指数移动平均/成交量(手)的P1日指数移动平均,否则返回(最高价+最低价+收盘价)/3的P1日指数移动平均
    输出CYC2:如果JJJT,返回0.01*成交额(元)的P2日指数移动平均/成交量(手)的P2日指数移动平均,否则返回(最高价+最低价+收盘价)/3的P2日指数移动平均
    输出CYC3:如果JJJT,返回0.01*成交额(元)的P3日指数移动平均/成交量(手)的P3日指数移动平均,否则返回(最高价+最低价+收盘价)/3的P3日指数移动平均
    输出CYC∞:如果JJJT,返回以100*成交量(手)/流通股本(股)为权重成交额(元)/(100*成交量(手))的动态移动平均,否则返回(最高价+最低价+收盘价)/3的120日指数移动平均
    '''
    pass
    def DYNAINFO_10(M=10):
        '''
        总金额=price*volume
        '''
        result=df['close']*df['volume']
        return result
    def DYNAINFO_3(M=3):
        '''
        昨日收盘价
        '''
        return df['close'].shift(1)
    def DYNAINFO_5(M=5):
        '''
        最高价
        '''
        return df['high']
    def DYNAINFO_6(M=6):
        '''
        最低价
        '''
        return df['low']
    AMOUNT=AMOUNT=df['close']*df['volume']
    VOL=df['volume']
    HIGH=df['high']
    LOW=df['low']
    CLOSE=df['close']
    def FINANCE_7(M=7):
        '''
        100*成交量
        '''
        return 100*df['volume']
    JJJ=IF(DYNAINFO_8(8)>0.01,0.01*DYNAINFO_10(10)/DYNAINFO_8(8),DYNAINFO_3(3))
    DDD=np.logical_or(DYNAINFO_5(5)<0.01,DYNAINFO_6(6)<0.01)
    JJJT=IF(DDD,False,np.logical_and(JJJ<(DYNAINFO_5(5)+0.01),JJJ>(DYNAINFO_6(6)-0.01)))
    CYC1=IF(JJJT,0.01*EMA(AMOUNT,P1)/EMA(VOL,P1),EMA((HIGH+LOW+CLOSE)/3,P1))
    CYC2=IF(JJJT,0.01*EMA(AMOUNT,P2)/EMA(VOL,P2),EMA((HIGH+LOW+CLOSE)/3,P2))
    CYC3=IF(JJJT,0.01*EMA(AMOUNT,P3)/EMA(VOL,P3),EMA((HIGH+LOW+CLOSE)/3,P3))
    #CYC_a=IF(JJJT,DMA(AMOUNT/(100*VOL),100*VOL/FINANCE_7(7)),EMA((HIGH+LOW+CLOSE)/3,120))
    return CYC1,CYC2,CYC3
def CYS(CLOSE,AMOUNT,VOL):
    '''
    市场盈亏
    AMOUNT成交额,VOL成交量
    CYC13赋值:0.01*成交额(元)的13日指数移动平均/成交量(手)的13日指数移动平均
    输出市场盈亏:(收盘价-CYC13)/CYC13*100
    '''
    CYC13=0.01*EMA(AMOUNT,13)/EMA(VOL,13)
    CYS=(CLOSE-CYC13)/CYC13*100
    return CYS
def CYQKL(CLOSE,OPEN):
    '''
    博弈K线长度
    输出KL:100*(以收盘价计算的获利盘比例-以开盘价计算的获利盘比例)
    '''
    KL=100*(WINNER(CLOSE)-WINNER(OPEN))
    return KL
def CYW(CLOSE,HIGH,LOW,VOL):
    '''
    主力控盘
    VAR1赋值:收盘价-最低价
    VAR2赋值:最高价-最低价
    VAR3赋值:收盘价-最高价
    VAR4赋值:如果最高价>最低价,返回(VAR1/VAR2+VAR3/VAR2)*成交量(手),否则返回0
    输出主力控盘: VAR4的10日累和/10000, COLORSTICK
    '''
    VAR1=CLOSE-LOW
    VAR2=HIGH-LOW
    VAR3=CLOSE-HIGH
    VAR4=IF(HIGH>LOW,(VAR1/VAR2+VAR3/VAR2)*VOL,0)
    CYW=SUM(VAR4,10)/10000 #COLORSTICK
    return CYW
#***************************************************
#***************************************************
#其他系
def PEAK(CLOSE,N,n=1):
    '''
    计算倾效
    np.polyfit(range(N),x,deg=1)
    '''
    pass
def TROUGH(CLOSE,N,n=1):
    '''
    箱底
    '''
    pass
def XT(CLOSE):
    '''
    箱体
    '''
    箱顶=PEAK(CLOSE,N,1)*0.98
    箱底=TROUGH(CLOSE,N,1)*1.02
    箱高=100*(箱顶-箱底)/箱底,#NODRAW
def  MOD(M,N):
    '''
    计算模
    M/N的余数
    '''
    return M//N
def SQJZ(CLSOE):
    '''
    N赋值:到最后交易的周期
    B赋值:收盘价<4日前的收盘价
    T1赋值: 条件连续成立次数
    A_B1赋值:(T1>9) AND T1关于9的模=1
    A_B2赋值:(T1>9) AND T1关于9的模=2
    A_B8赋值:(T1>9) AND T1关于9的模=8
    A_B9赋值:(T1>9) AND T1关于9的模=0
    B1赋值:(N=6 AND 5日后的(平滑处理)统计6日中满足B的天数=6) OR (N=7 AND 6日后的(平滑处理)统计7日中满足B的天数=7) OR (N=8 AND 7日后的(平滑处理)统计8日中满足B的天数=8) OR (N>=9 AND 8日后的(平滑处理)统计9日中满足B的天数=9)
    当满足条件B1AND(1日前的B=0ORA_B1)时,在最低价位置书写数字,画洋红色
    B2赋值:(N=5 AND 4日后的(平滑处理)统计6日中满足B的天数=6) OR (N=6 AND 5日后的(平滑处理)统计7日中满足B的天数=7) OR (N=7 AND 6日后的(平滑处理)统计8日中满足B的天数=8) OR (N>=8 AND 7日后的(平滑处理)统计9日中满足B的天数=9)
    当满足条件B2AND(2日前的B=0ORA_B2)时,在最低价位置书写数字,画洋红色
    B8赋值:(N=1 AND 统计8日中满足B的天数=8) OR (N>=2 AND 1日后的(平滑处理)统计9日中满足B的天数=9)
    当满足条件B8AND(8日前的B=0ORA_B8)时,在最低价位置书写数字,画洋红色
    B9赋值:(N>=1 AND 统计9日中满足B的天数=9)
    当满足条件B9AND(9日前的B=0ORA_B9)时,在最低价位置书写数字,画红色
    S赋值:收盘价>4日前的收盘价
    T2赋值: 条件连续成立次数
    A_S1赋值:(T2>9) AND T2关于9的模=1
    A_S2赋值:(T2>9) AND T2关于9的模=2
    A_S8赋值:(T2>9) AND T2关于9的模=8
    A_S9赋值:(T2>9) AND T2关于9的模=0
    S1赋值:(N=6 AND 5日后的(平滑处理)统计6日中满足S的天数=6) OR (N=7 AND 6日后的(平滑处理)统计7日中满足S的天数=7) OR (N=8 AND 7日后的(平滑处理)统计8日中满足S的天数=8) OR (N>=9 AND 8日后的(平滑处理)统计9日中满足S的天数=9)
    当满足条件S1AND(1日前的S=0ORA_S1)时,在最高价位置书写数字,画洋红色,显示在位置之上
    S2赋值:(N=5 AND 4日后的(平滑处理)统计6日中满足S的天数=6) OR (N=6 AND 5日后的(平滑处理)统计7日中满足S的天数=7) OR (N=7 AND 6日后的(平滑处理)统计8日中满足S的天数=8) OR (N>=8 AND 7日后的(平滑处理)统计9日中满足S的天数=9)
    当满足条件S2AND(2日前的S=0ORA_S2)时,在最高价位置书写数字,画洋红色,显示在位置之上
    S8赋值:(N=1 AND 统计8日中满足S的天数=8) OR (N>=2 AND 1日后的(平滑处理)统计9日中满足S的天数=9)
    当满足条件S8AND(8日前的S=0ORA_S8)时,在最高价位置书写数字,画洋红色,显示在位置之上
    S9赋值:(N>=1 AND 统计9日中满足S的天数=9)
    当满足条件S9AND(9日前的S=0ORA_S9)时,在最高价位置书写数字,画绿色,显示在位置之上
    C=CLOSE
    N=CURRBARSCOUNT()
    B=C<REF(C,4)
    T1= BARSLASTCOUNT(B)
    A_B1=IF(T1>=9,1,None)
    A_B2=IF(T1>9,2,None)
    A_B8=IF(T1>9,8,None)
    A_B9=IF(T1>9,0,None)
    B1:=(N=6 AND REFXV(COUNT(B,6),5)=6) OR (N=7 AND REFXV(COUNT(B,7),6)=7) OR (N=8 AND REFXV(COUNT(B,8),7)=8) OR (N>=9 AND REFXV(COUNT(B,9),8)=9);
    DRAWNUMBER(B1 AND (REF(B,1)=0 OR A_B1),L,1),COLORMAGENTA;
    B2:=(N=5 AND REFXV(COUNT(B,6),4)=6) OR (N=6 AND REFXV(COUNT(B,7),5)=7) OR (N=7 AND REFXV(COUNT(B,8),6)=8) OR (N>=8 AND REFXV(COUNT(B,9),7)=9);
    DRAWNUMBER(B2 AND(REF(B,2)=0 OR A_B2),L,2),COLORMAGENTA;
    B8:=(N=1 AND COUNT(B,8)=8) OR (N>=2 AND REFXV(COUNT(B,9),1)=9);
    DRAWNUMBER(B8 AND (REF(B,8)=0 OR A_B8),L,8),COLORMAGENTA;
    B9:=(N>=1 AND COUNT(B,9)=9);
    DRAWNUMBER(B9 AND (REF(B,9)=0 OR A_B9),L,9),COLORRED;
    S:=C>REF(C,4);
    T2:= BARSLASTCOUNT(S);
    A_S1:=(T2>9) AND MOD(T2,9)=1;
    A_S2:=(T2>9) AND MOD(T2,9)=2;
    A_S8:=(T2>9) AND MOD(T2,9)=8;
    A_S9:=(T2>9) AND MOD(T2,9)=0;
    S1:=(N=6 AND REFXV(COUNT(S,6),5)=6) OR (N=7 AND REFXV(COUNT(S,7),6)=7) OR (N=8 AND REFXV(COUNT(S,8),7)=8) OR (N>=9 AND REFXV(COUNT(S,9),8)=9);
    DRAWNUMBER(S1 AND (REF(S,1)=0 OR A_S1),H,1),COLORMAGENTA,DRAWABOVE;
    S2:=(N=5 AND REFXV(COUNT(S,6),4)=6) OR (N=6 AND REFXV(COUNT(S,7),5)=7) OR (N=7 AND REFXV(COUNT(S,8),6)=8) OR (N>=8 AND REFXV(COUNT(S,9),7)=9);
    DRAWNUMBER(S2 AND (REF(S,2)=0 OR A_S2),H,2),COLORMAGENTA,DRAWABOVE;
    S8:=(N=1 AND COUNT(S,8)=8) OR (N>=2 AND REFXV(COUNT(S,9),1)=9);
    DRAWNUMBER(S8 AND (REF(S,8)=0 OR A_S8),H,8),COLORMAGENTA,DRAWABOVE;
    S9:=(N>=1 AND COUNT(S,9)=9);
    DRAWNUMBER(S9 AND (REF(S,9)=0 OR A_S9),H,9),COLORGREEN,DRAWABOVE;
    '''
    pass
def JAX(CLOSE,HIGH,LOW,N=30):
    '''
    济安线
    AA赋值:(2*收盘价+最高价+最低价)/4-收盘价的N日简单移动平均的绝对值/收盘价的N日简单移动平均
    输出济安线:以AA为权重(2*收盘价+最低价+最高价)/4的动态移动平均,线宽为3,画洋红色
    CC赋值:(收盘价/济安线)
    MA1赋值:CC*(2*收盘价+最高价+最低价)/4的3日简单移动平均
    MAAA赋值:((MA1-济安线)/济安线)/3
    TMP赋值:MA1-MAAA*MA1
    输出J:如果TMP<=济安线,返回济安线,否则返回无效数,线宽为3,画青色
    输出A:TMP,线宽为2,画棕色
    输出X:如果TMP<=济安线,返回TMP,否则返回无效数,线宽为2,画绿色
    '''
    AA=ABS((2*CLOSE+HIGH+LOW)/4-MA(CLOSE,N))/MA(CLOSE,N)
    data=pd.DataFrame()
    data['数据']=(2*CLOSE+LOW+HIGH)/4
    #alpha中值0.5
    济安线=data['数据'].ewm(alpha=0.5, adjust=True).mean()#LINETHICK3,COLORMAGENTA
    CC=(CLOSE/济安线)
    MA1=MA(CC*(2*CLOSE+HIGH+LOW)/4,3)
    MAAA=((MA1-济安线)/济安线)/3
    TMP=MA1-MAAA*MA1
    J=IF(TMP<=济安线,济安线,None)#LINETHICK3,COLORCYAN
    A=TMP#LINETHICK2,COLORBROWN
    X=IF(TMP<=济安线,TMP,None)#LINETHICK2,COLORGREEN
    return J,A,X
def XJDX(CLOSE,HIGH,LOW):
    '''
    超级短线
    VAR1赋值:(2*收盘价+最高价+最低价)/4
    VAR2赋值:VAR1的4日指数移动平均的4日指数移动平均的4日指数移动平均
    输出J: (VAR2-1日前的VAR2)/1日前的VAR2*100, COLORSTICK
    输出D: J的3日简单移动平均
    输出K: J的1日简单移动平均
    '''
    VAR1=(2*CLOSE+HIGH+LOW)/4
    VAR2=EMA(EMA(EMA(VAR1,4),4),4)
    J=(VAR2-REF(VAR2,1))/REF(VAR2,1)*100# COLORSTICK
    D=MA(J,3)
    K= MA(J,1)
    return J,D,K
def ZJTJ(CLOSE):
    '''
    庄家抬轿
    获利盘,和成本函数需要写
    VAR1赋值:收盘价的9日指数移动平均的9日指数移动平均
    控盘赋值:(VAR1-1日前的VAR1)/1日前的VAR1*1000
    当满足条件控盘<0时,在控盘和0位置之间画柱状线,宽度为1,0不为0则画空心柱.,画白色
    A10赋值:控盘上穿0
    输出无庄控盘:如果控盘<0,返回控盘,否则返回0,画白色,NODRAW
    输出开始控盘:如果A10,返回5,否则返回0,线宽为1,画棕色
    当满足条件控盘>1日前的控盘AND控盘>0时,在控盘和0位置之间画柱状线,宽度为1,0不为0则画空心柱.,画红色
    输出有庄控盘:如果控盘>1日前的控盘AND控盘>0,返回控盘,否则返回0,画红色,NODRAW
    VAR2赋值:100*以收盘价*0.95计算的获利盘比例
    当满足条件VAR2>50ANDCOST(85)<CLOSEAND控盘>0时,在控盘和0位置之间画柱状线,宽度为1,0不为0则画空心柱.,COLORFF00FF
    输出高度控盘:如果VAR2>50ANDCOST(85)<CLOSEAND控盘>0,返回控盘,否则返回0,COLORFF00FF,NODRAW
    当满足条件控盘<1日前的控盘AND控盘>0时,在控盘和0位置之间画柱状线,宽度为1,0不为0则画空心柱.,COLOR00FF00
    输出主力出货:如果控盘<1日前的控盘AND控盘>0,返回控盘,否则返回0,COLOR00FF00,NODRAW
    '''
    VAR1=EMA(EMA(CLOSE,9),9)
    控盘=(VAR1-REF(VAR1,1))/REF(VAR1,1)*1000
    #STICKLINE(控盘<0,控盘,0,1,0),COLORWHITE;
    A10=CROSS(控盘,0)
    无庄控盘=IF(控盘<0,控盘,0)#COLORWHITE,NODRAW;
    开始控盘=IF(A10,1,0)#LINETHICK1,COLORBROWN;
    #STICKLINE(控盘>REF(控盘,1) AND 控盘>0,控盘,0,1,0),COLORRED;
    有庄控盘=IF(np.logical_and(控盘>REF(控盘,1),控盘>0),控盘,0)#COLORRED,NODRAW;
    #VAR2=100*WINNER(CLOSE*0.95)
    #STICKLINE(VAR2>50 AND COST(85)<CLOSE AND 控盘>0,控盘,0,1,0),COLORFF00FF;
    #高度控盘:IF(VAR2>50 AND COST(85)<CLOSE AND 控盘>0,控盘,0),COLORFF00FF,NODRAW;
    #STICKLINE(控盘<REF(控盘,1) AND 控盘>0,控盘,0,1,0),COLOR00FF00;
    主力出货=IF(np.logical_and(控盘<REF(控盘,1),控盘>0),控盘,0)#COLOR00FF00,NODRAW;
    return 无庄控盘,开始控盘,有庄控盘,主力出货
def ZBCD(HIGH,LOW,OPEN,AMOUNT,VOL,N=10):
    '''
    准备抄底
    VAR1赋值:成交额(元)/成交量(手)/7
    VAR2赋值:(3*最高价+最低价+开盘价+2*收盘价)/7
    VAR3赋值:成交额(元)的N日累和/VAR1/7
    VAR4赋值:以成交量(手)/VAR3为权重VAR2的动态移动平均
    输出抄底:(收盘价-VAR4)/VAR4*100,画淡洋红色
    当满足条件-7.0上穿抄底时,在抄底位置画1号图标
    '''
    VAR1=AMOUNT/VOL/7
    VAR2=(3*HIGH+LOW+OPEN+2*CLOSE)/7
    VAR3=SUM(AMOUNT,N)/VAR1/7
    VAR4=DMA(VAR2,VOL/VAR3)
    抄底=(CLOSE-VAR4)/VAR4*100#COLORLIMAGENTA
    #DRAWICON(CROSS(-7.0,抄底),抄底,1)
    return 抄底
def BDZX(HIGH,LOW,CLOSE):
    '''
    波段之星
    VAR2赋值:(最高价+最低价+收盘价*2)/4
    VAR3赋值:VAR2的21日指数移动平均
    VAR4赋值:VAR2的21日估算标准差
    VAR5赋值:((VAR2-VAR3)/VAR4*100+200)/4
    VAR6赋值:(VAR5的5日指数移动平均-25)*1.56
    输出AK: VAR6的2日指数移动平均*1.22
    输出AD1: AK的2日指数移动平均
    输出AJ: 3*AK-2*AD1
    输出AA:100
    输出布林极限:0
    输出CC:80
    输出买进: 如果AK上穿AD1,返回58,否则返回20
    输出卖出: 如果AD1上穿AK,返回58,否则返回20
    '''
    VAR2=(HIGH+LOW+CLOSE*2)/4
    VAR3=EMA(VAR2,21)
    VAR4=STD(VAR2,21)
    VAR5=((VAR2-VAR3)/VAR4*100+200)/4
    VAR6=(EMA(VAR5,5)-25)*1.56
    AK= EMA(VAR6,2)*1.22
    AD1= EMA(AK,2)
    AJ= 3*AK-2*AD1
    AA=100
    BB=0
    CC=80
    买进= IF(CROSS(AK,AD1),58,20)
    卖出= IF(CROSS(AD1,AK),58,20)
    return AK,AD1,AJ,AA,BB,CC,买进,卖出
def LHXJ(HIGH,LOW,CLOSE):
    '''
    猎狐先觉
    VAR1赋值:(收盘价*2+最高价+最低价)/4
    VAR2赋值:VAR1的13日指数移动平均-VAR1的34日指数移动平均
    VAR3赋值:VAR2的5日指数移动平均
    输出主力弃盘: (-2)*(VAR2-VAR3)*3.8
    输出主力控盘: 2*(VAR2-VAR3)*3.8
    '''
    VAR1=(CLOSE*2+HIGH+LOW)/4
    VAR2=EMA(VAR1,13)-EMA(VAR1,34)
    VAR3=EMA(VAR2,5)
    主力弃盘=(-2)*(VAR2-VAR3)*3.8
    主力控盘=2*(VAR2-VAR3)*3.8
    return 主力弃盘,主力控盘
def LYJH(CLOSE,HIGH,LOW,M=80,M1=50):
    '''
    猎鹰歼狐
    VAR1赋值:(36日内最高价的最高值-收盘价)/(36日内最高价的最高值-36日内最低价的最低值)*100
    输出机构做空能量线: VAR1的2日[1日权重]移动平均
    VAR2赋值:(收盘价-9日内最低价的最低值)/(9日内最高价的最高值-9日内最低价的最低值)*100
    输出机构做多能量线: VAR2的5日[1日权重]移动平均-8
    输出LH: M
    输出LH1: M1
    '''
    VAR1=(HHV(HIGH,36)-CLOSE)/(HHV(HIGH,36)-LLV(LOW,36))*100
    机构做空能量线=SMA(VAR1,2,1)
    VAR2=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100
    机构做多能量线=SMA(VAR2,5,1)-8
    LH=M
    LH1=M1
    return 机构做空能量线,机构做多能量线,LH,LH1
def JFZX(OPEN,CLOSE,VOL,N=30):
    '''
    飓风智能中线
    VAR2赋值:如果收阳线,返回成交量(手),否则返回0的N日累和/成交量(手)的N日累和*100
    VAR3赋值:100-如果收阳线,返回成交量(手),否则返回0的N日累和/成交量(手)的N日累和*100
    输出多头力量: VAR2
    输出空头力量: VAR3
    输出多空平衡: 50
    '''
    VAR2=SUM(IF(CLOSE>OPEN,VOL,0),N)/SUM(VOL,N)*100
    VAR3=100-SUM(IF(CLOSE>OPEN,VOL,0),N)/SUM(VOL,N)*100
    多头力量= VAR2
    空头力量= VAR3
    多空平衡= 50
    return 多头力量,空头力量,多空平衡
def CYHT(CLOSE,HIGH,LOW,OPEN):
    '''
    财运亨通
    VAR1赋值:(2*收盘价+最高价+最低价+开盘价)/5
    输出高抛: 80
    VAR2赋值:34日内最低价的最低值
    VAR3赋值:34日内最高价的最高值
    输出SK: (VAR1-VAR2)/(VAR3-VAR2)*100的13日指数移动平均
    输出SD: SK的3日指数移动平均
    输出低吸: 20
    输出强弱分界: 50
    VAR4赋值:如果SK上穿SD,返回40,否则返回22
    VAR5赋值:如果SD上穿SK,返回60,否则返回78
    输出卖出: VAR5
    输出买进: VAR4
    '''
    VAR1=(2*CLOSE+HIGH+LOW+OPEN)/5
    高抛= 80
    VAR2=LLV(LOW,34)
    VAR3=HHV(HIGH,34)
    SK= EMA((VAR1-VAR2)/(VAR3-VAR2)*100,13)
    SD= EMA(SK,3)
    低吸= 20
    强弱分界= 50
    VAR4=IF(CROSS(SK,SD),40,22)
    VAR5=IF(CROSS(SD,SK),60,78)
    卖出= VAR5
    买进= VAR4
    return 高抛,SK,SD,低吸,强弱分界,卖出,买进
def BSQJ(CLOSE):
    '''
    买卖区间
    买线赋值:收盘价的2日指数移动平均
    卖线赋值:收盘价的21日线性回归斜率*20+收盘价的42日指数移动平均
    当满足条件买线>=卖线时,在日期日0日内最高价的最高值和日期日0日内最低价的最低值位置之间画柱状线,宽度为6,0不为0则画空心柱.,COLOR001050
    当满足条件买线<卖线时,在日期日0日内最高价的最高值和日期日0日内最低价的最低值位置之间画柱状线,宽度为6,0不为0则画空心柱.,COLOR404050
    K线
    指导赋值:(收盘价的4日指数移动平均+收盘价的6日指数移动平均+收盘价的12日指数移动平均+收盘价的24日指数移动平均)/4的2日指数移动平均
    界赋值:收盘价的27日简单移动平均
    输出B买:如果指导上穿界ORCROSS(买线,卖线),返回收盘价,否则返回无效数,画洋红色,NODRAW
    输出持仓:如果买线>=卖线,返回收盘价,否则返回无效数,画红色,NODRAW
    输出S卖:如果界上穿指导ORCROSS(卖线,买线),返回收盘价,否则返回无效数,画淡灰色,NODRAW
    输出空仓:如果买线<卖线,返回收盘价,否则返回无效数,画绿色,NODRAW
    当满足条件买线上穿卖线时,在最低价位置画1号图标
    当满足条件卖线上穿买线时,在最高价位置画2号图标
    '''
    C=CLOSE
    买线=EMA(C,2)
    卖线=EMA(SLOPE(C,21)*20+C,42)
    #STICKLINE(买线>=卖线,REFDATE(HHV(H,0),DATE),REFDATE(LLV(L,0),DATE),6,0),COLOR001050
    #STICKLINE(买线<卖线,REFDATE(HHV(H,0),DATE),REFDATE(LLV(L,0),DATE),6,0),COLOR404050;
    #DRAWKLINE(H,O,L,C);
    指导=EMA((EMA(CLOSE,4)+EMA(CLOSE,6)+EMA(CLOSE,12)+EMA(CLOSE,24))/4,2)
    界=MA(CLOSE,27)
    B买=IF(np.logical_or(CROSS(指导,界),CROSS(买线,卖线)),C,None)#COLORMAGENTA,NODRAW;
    持仓=IF(买线>=卖线,C,None)#COLORRED,NODRAW
    S卖=IF(np.logical_or(CROSS(界,指导),CROSS(卖线,买线)),C,None)#COLORLIGRAY,NODRAW
    空仓=IF(买线<卖线,C,None)#COLORGREEN,NODRAW
    #DRAWICON(CROSS(买线,卖线),L,1);
    #DRAWICON(CROSS(卖线,买线),H,2);
    return B买,持仓,S卖,空仓
def CDP_STD(CLOSE,HIGH,LOW):
    '''
    逆势操作
    CH赋值:1日前的最高价
    CL赋值:1日前的最低价
    CC赋值:1日前的收盘价
    输出CDP:(CH+CL+CC)/3
    输出AH:2*CDP+CH-2*CL
    输出NH:CDP+CDP-CL
    输出NL:CDP+CDP-CH
    输出AL:2*CDP-2*CH+CL
    '''
    H=HIGH,
    L=LOW
    C=CLOSE
    CH=REF(H,1)
    CL=REF(L,1)
    CC=REF(C,1)
    CDP=(CH+CL+CC)/3
    AH=2*CDP+CH-2*CL
    NH=CDP+CDP-CL
    NL=CDP+CDP-CH
    AL=2*CDP-2*CH+CL
    return CDP,AH,NH,NL,AL
def TBP_STD(HIGH,LOW,CLOSE):
    '''
    趋势平衡点
    APX赋值:(最高价+最低价+收盘价)/3
    TR0赋值:最高价-最低价和最高价-1日前的收盘价的绝对值和最低价-1日前的收盘价的绝对值的较大值的较大值
    MF0赋值:收盘价-2日前的收盘价
    MF1赋值:1日前的MF0
    MF2赋值:2日前的MF0
    DIRECT1赋值:上次MF0>MF1ANDMF0>MF2距今天数
    DIRECT2赋值:上次MF0<MF1ANDMF0<MF2距今天数
    DIRECT0赋值:如果DIRECT1<DIRECT2,返回100,否则返回-100
    输出TBP:1日前的1日前的收盘价+如果DIRECT0>50,返回MF0和MF1的较小值,否则返回MF0和MF1的较大值
    输出多头获利:1日前的如果DIRECT0>50,返回APX*2-最低价,否则返回无效数,NODRAW
    输出多头停损:1日前的如果DIRECT0>50,返回APX-TR0,否则返回无效数,NODRAW
    输出空头回补:1日前的如果DIRECT0<-50,返回APX*2-最高价,否则返回无效数,NODRAW
    输出空头停损:1日前的如果DIRECT0<-50,返回APX+TR0,否则返回无效数,NODRAW
    '''
    H=HIGH
    L=LOW
    C=CLOSE
    APX=(H+L+C)/3
    TR0=MAX(H-L,MAX(ABS(H-REF(C,1)),ABS(L-REF(C,1))))
    MF0=C-REF(C,2)
    MF1=REF(MF0,1)
    MF2=REF(MF0,2)
    DIRECT1=BARSLAST(np.logical_and(MF0>MF1,MF0>MF2))
    DIRECT2=BARSLAST(np.logical_and(MF0<MF1,MF0<MF2))
    DIRECT0=IF(DIRECT1<DIRECT2,100,-100)
    TBP=REF(REF(C,1)+IF(DIRECT0>50,MIN(MF0,MF1),MAX(MF0,MF1)),1)
    多头获利=REF(IF(DIRECT0>50,APX*2-L,None),1)
    多头停损=REF(IF(DIRECT0>50,APX-TR0,None),1)
    空头回补=REF(IF(DIRECT0<-50,APX*2-H,None),1)
    空头停损=REF(IF(DIRECT0<-50,APX+TR0,None),1)
    return TBP,多头获利,多头停损,空头回补,空头停损
#***********************************************
#***********************************************
#****************有空写****************************
#############################################
1.基本公式编写实例 
本章主要介绍一些基础的公式编写的表达方法、方式,例如上面所列出来的放量、上涨等等,这些都是在公式编写过程当中要用到的基本形态特征,许多的技术指标的选股条件都是由它们组成的。
对公式编写有问题进行提问,可以点击客户端上方栏财富圈→论坛→公式天堂加入,或者点击公式论坛地址直接进入:
https://sns.tdx.com.cn/site/tdx_sns/page_index.html#/CircleDetail?id=12&systemType=1

1.1放量
1、 今日比昨日的成交量放大了1倍:
VOL/REF(VOL,1)>2;
2、今日的五日均量比五天前的五日均量放大了3倍:
AA:=MA(VOL,5);
BB:=REF(AA,5);
AA/BB>4;
3、今天的成交量达到了整个流通盘的10%以上:
VOL/CAPITAL>10/100;
(注意,10%的表达式是10/100,或者0.1)

1.2 缩量
1、今日比昨日的成交量缩小了1倍:
VOL/REF(VOL,1)<0.5;
2、今日的五日均量比五天前的五日均量缩小了一半:
AA:=MA(VOL,5);
BB:=REF(AA,5);
AA/BB<0.5;
3、今天的成交量不足整个流通盘的0.5%:
VOL/CAPITAL<0.5/100;


1.3上涨

1、今日涨幅达到了7%以上:
CLOSE/REF(CLOSE,1)>1.07;
2、十日均价继续上涨:
AA:=MA(CLOSE,10);
BB:=REE(AA,1);
AA>BB;

1.4下跌

收阳、收阴:
1、当天收阳:CLOSE>OPEN;
2、当天收阴:CLOSE<OPEN;
1.5高开、低开

1、当天股价高开,即开盘高于昨日收盘:OPEN>REF(CLOSE,1);
2、当天股价低开:OPEN<REF(CLOSE,1);

1.6跳空

跳空亦有向上和向下两种:
当日开盘在昨日最高之上,即为向上跳空:OPEN>REF(HIGH,1);
反之,开盘小于昨日的最高价,为向下跳空:OPEN<REF(LOW,1);

1.7放量上攻

AA:=VOL/REF(VOL,1)>2;{成交量是昨日的两倍}
BB:=CLOSE/REF(CLOSE,1)>1.07;{涨幅大于7%}
AA AND BB;

1.8高开高走

AA:=VOL/REF(VOL,1)>2;{成交量是昨日的两倍}
BB:=CLOSE/REF(CLOSE,1)>1.07;{涨幅大于7%}
AA AND BB;
1.9创新高

创新高指当日最高价是最近一段时间的最高价:
HIGH=HHV(HIGH,N);
其中的HIGH为当期最高价,HHV(X,N)是求N周期内X最高值。因此该公式的含义是当日最高价创N日新高时返回值为1,否则为0。

1.10横盘整理
横盘整理指最近一段时期价格在一定幅度之内摆动:
(HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE<0.05;
其中的LLV(X,N)是求N周期内X最低值。因此该公式表示10日收盘价振幅振幅在5%以内。








2. 公式组合实例
下面介绍如何对基本公式进行组合,描述一些简单的K线形态。在编写公示前,需要准确对K线形态进行定义。
2.1 向上跳空之后两天内并未回补

定义:实际上就是昨天发生了跳空缺口,这两天的最低价一直在两天前的最高价之上。

AA:=REF(OPEN,1)>REF(HIGH,2);
BB:=REF(LOW,1)>REF(HIGH,2);
CC:=LOW>REF(HIGH,2);
AA AND BB AND CC;
仔细一想,若BB成立,AA一定成立,AA实际上没有存在的必要。
更简单的方法,下面的一句话可以的上面的四句:
COUNT(LOW>REF(HIGH,2),2)=2;
2.2 5日,10日,30日均线多头排列

定义:均线多头排列,是指从短周期到长周期均线,从上而下的依次排列

AA:=MA(CLOSE,5);
BB:=MA(CLOSE,10);
CC:=MA(CLOSE,30);
T1:AA>BB AND BB>CC;
以上情况维持一段时间,假设我们这里定为4天以上:
COUNT(T1,4)=4;
COUNT(X,N)表示统计在N天内满足条件X的有几天。
最终的结果就是如下所示:
AA:=MA(CLOSE,5);
BB:=MA(CLOSE,10);
CC:=MA(CLOSE,30);
T1:=AA>BB AND BB>CC;
COUNT(T1,4)=4;


2.3逃顶K线形态之--黄昏之星

定义:当市场出现一条大阳线后,通常会产生跳空高开的情况,有时便会出现十字星或类似十字星的小阴线(小阳线),当该形态出现在一段上升行情的当中,就很容易形成经典K线形态--黄昏之星。

为了结构简单起见,首先将二天的高开低收用中间表达式表达出来,因为我们在后面的编写过程中会分别使用到这些数据。
1、今日K线的:
开-a1, a1:=open;
收-a2, a2:=close;
高-a3, a3:=high;

2、昨天K线的:
开-b1, b1:=ref(open,1);
收-b2, b2:=ref(close,1);
高-b3, b3:=ref(high,1);
低-b4, b4:=ref(low,1);

3、前天K线的:
开-c1, c1:=ref(open,2);
收-c2, c2:=ref(close,2);
高-c3, c3:=ref(high,2);
低-c4, c4:=ref(low,2);

4、我们将会分别描述出三天的K线形态,然后汇总,首先我们观察今日K线的特征,今天 
   是一根低开低走的大阴线,我们给它一些数字上的定义:
  a、今日开盘价小于昨日收盘价: aa:=a1<b2 and
  b、今日的阴线实体较长,我们用开盘价和收盘价相比,长度大于4%:a1/a2>1.04;
5、昨日K线的特征,是一根十字形态的K线,并且在左右两根K线之上,分别表达为:
  a、昨日跳开,高于前天的收盘: bb:=b1>c3
  b、昨日收盘同样在缺口之上: and b2>c3
  c、线形实体长度很小,也就是昨日开盘和收盘之差比昨日开盘的值小于0.01:
and abs(b1-b2)/b1<0.01
d、K线有上下影线,可以表示为最高价和最低价不等于收盘价也不等于开盘价:
and b3>b1 and b3>b2 and b4<b1 and b4<b2
e、当日的最高价为20天以来的最高价: and b3=hhv(high,20);
6、前日K线的特征:股价大幅上扬,幅度较前一日收盘高出4%并且收盘大于开盘:cc:=c2/ref(close,3)>1.04 and c2>c1;

综合选股条件:最后我们将三天的K线特征结合起来,合成一个最后的条件就是由图所示内容: aa and bb and cc

最终结果就是(可以直接加进通达信公式编辑器): 
a1:=open;
a2:=close;
a3:=high;
b1:=ref(open,1);
b2:=ref(close,1);
b3:=ref(high,1);
b4:=ref(low,1);
c1:=ref(open,2);
c2:=ref(close,2);
c3:=ref(high,2);
c4:=ref(low,2);
aa:=a1<b2 and a1/a2>1.04;
bb:=b1>c3 and b2>c3 and abs(b1-b2)/b1<0.01 and b3>b1 and b3>b2 and b4<b1 and b4<b2 and b3=hhv(high,20);
cc:=c2/ref(close,3)>1.04 and c2>c1;
aa and bb and cc;

如果我们想把这个选股公式改为指标公式,修改最后一个语句就可以了。
将aa and bb and cc; 改为DRAWICON((AA AND BB AND CC),HIGH*1.02,2);
这时在符合条件的K线上方出现了一个绿色的向下箭头,提示卖出。效果如下:


黄昏之星是一个卖出信号,与之相对应的是一个买入信号,称为早晨之星,如下图:

指标源码请参考通达信中的相关选股公式。 
2.4突破底部横盘整理创新高


定义:股价突破长期盘整区间,之后放量上攻进入主升段。“长期”设定为150天;“横盘”设定股价在150日均线上下15%波动;放量;并且股价创下150天以来的历史新高。

首先用公式描述放量
a、将会使用5日均量来进行比较,成交量比昨日成交量放大两倍;
b、V1是五日均量,REF(V1,1)就是昨日的均量;
V1:=MA(VOL,5); 
V2:VOL/REF(V1,1)>2;
长期横盘
a、PZ1是当天150日均价: PZ1:=MA(CLOSE,M);
b、PZ2是150日的最高价; PZ2:=HHV(HIGH,M);
c、PZ3是150日的最低价; PZ3:=LLV(LOW,M);
d、PZ4是150日的最高价和150日均价的距离的百分比,PZ5刚好相反是最低价和均价的差的百分比; PZ4:=(PZ2-PZ1)/PZ1; PZ5:=(PZ1-PZ3)/PZ1;
e、设为股价在150日均线上下15%波动,也就是PZ4、PZ5都小于0.15;
PZ:=REF(PZ4,1)<0.15 AND REF(PZ5,1)<0.15;
3、今天创下历史新高,也就是今天的最高价是150天内的最高价! 
TP1:HHV(HIGH,M); 
TP:=HIGH=TP1;
综合三个条件的最后的逻辑判断式就是我们的最后结论:
V2 AND PZ AND TP(参数M=150天)

最终结果就是: 
(参数M=150天)
V1:=MA(VOL,5);
V2:=VOL/REF(V1,1)>2;
PZ1:=MA(CLOSE,M);
PZ2:=HHV(HIGH,M);
PZ3:=LLV(LOW,M);
PZ4:=(PZ2-PZ1)/PZ1; 
PZ5:=(PZ1-PZ3)/PZ1;
PZ:=REF(PZ4,1)<0.15 AND REF(PZ5,1)<0.15;
TP1:HHV(HIGH,M);
TP:=HIGH=TP1;
V2 AND PZ AND TP;
注意:如果源码加入到公式编辑器后显示错误,请多注意标点符号,需要将中文模式下的标点改成英文模式下的标点,例如:“:”改成“:”, “,”改成“,”以及括号等等。

3. 各种指标公式编辑器的详细区别
公式管理器可管理四种类型的公式:指 标 公 式: 用于指标图形的绘制。条件选股公式:用于条件选股。交易系统公式:用于专家指示及测参、测指。五彩K线公式:用于K线模式指示。这四种公式相互独立,名称可以相同,但其内容和作用不同。每种类型的公式包括四种形式: 系统加密公式:用绿色图标和锁形符号显示,要进行密码确认 系统公式:用绿色图标显示,可进行删改 用户加密公式:用红色图标和锁形符号显示,要进行密码确认 用户公式:用红色图标显示,可进行删改指标公式附加买卖逻辑判断式,得到交易系统公式;指标公式附加选股条件逻辑判断式,得到条件选股公式。指标公式附加色彩逻辑判断,得到五彩K线公式。 

3.1 技术指标公式编辑器 
技术指标公式即通常所说画线指标,此类公式的主要目的是通过对数据采取一定的运算,将输出结果直观的显现在分析图上,为投资者提供研判行情的基本依据。此类指标至少要有一条输出线,输出包括文字,图标等,本系统老版本允许最多6条的输出线,新版本可以输出50条输出线。技术指标公式编辑器实现对技术图表分析中各类技术指标和自我定义的技术分析指标的编写,并且通过TDX的分析界面形成图表、曲线,以方便和寻找有意义的技术图形和技术特征。 

3.2 条件选股公式编辑器 
也就是通常意义上解释的智能选股。但我们的目的在于建立一个完全开放、自由的选股平台,可以通过对该平台的熟练使用,借助计算机的高速和准确的检索功能寻找满足您的理解的股票形态和技术特征,如果和预警系统结合起来用,将可以在盘中实时提示符合条件的股票。条件选股公式有且仅有一个输出,这是它和技术指标不同的地方。

3.3 五彩K线公式编辑器 
准确讲,该编辑器的功能是附属于条件选股功能之上的,我们可以通过该功能将满足条件的连续K线形态赋予颜色,区别了其它的K线。 条件选股公式与五彩K线公式的区别:条件选股公式和五彩K线公式都有且仅有一个输出,其目的都是为投资者提供买入或卖出点的指示,不同之处在于:条件选股公式仅对最近数据提示买入或卖出,而五彩K线公式则对输入的所有历史数据进行提示。另外,五彩K线公式的输出是在K线图上,通过各种颜色对提示数据进行标识,条件选股公式的输出是找出符合最近条件的所有股票。

3.4 交易系统公式编辑器
交易系统公式是通过设定买入和卖出点(有且仅有这两个输出),由计算机进行模拟操作。以此为依据,系统一方面可以进行五彩K线公式的功能,同时提示买入和卖出;另一方面可以通过模拟操作,对指标买卖的收益、指标的最佳参数及最佳指标等各情形进行测试。交易系统是在条件选股功能上的一次大的延伸,旨在建立一套完整的交易规则体系,通过该编辑器对各个相关的交易环节,包括买入的切入、卖出、止损以及整体的交易性能检验等等作出定量的规定,帮助投资者建立一套属于自己的买卖规则和理论。
##########################################
1. 特殊公式脚本编写
要编写一个公式,必须要明确这个公式对应的理论知识。一套完整的理论知识且能在通达信的公式平台上做成公式还要满足如下要求:
1.从该理论应能分析出公式启动的起始数据。如股票的开高低收价格、成交量、各财
务数据、各即时数据、时间数据、一些常见的技术分析概念、其他理论的结果等,这些数据大部分是系统提供的,而最后两项则要从其他公式中得来也就是对应于公式编写中的指标引用操作(当然在这公式编写前要确保该要引用的指标已实现)。
2.从理论中应能分析出起始数据到结果的明确运算过程。在公式平台中提供了一些系
统函数,这些函数包含了部分常用的运算过程(如HHV(X,N) 可求N周期内X最高值)。如果理论中的运算过程拆解完全后,能由公式平台中的函数及允许的基本运算全部组成就可以编写成公式了。
在之前的学习当中,我们已经对公式系统、公式脚本编辑有了基本的认识。公式系统提
供给我们的基本函数、系统公式,就是我们运用公式系统编写自己的公式时的基本元素。对于一些常见的技术分析概念的编写在上一章节已经给出了介绍和示例,本章节主要来9介绍一下在公式脚本编写如果用系统函数及基本运算来解决一些特殊难题。
对公式编写有问题进行提问,可以点击客户端上方栏财富圈→论坛→公式天堂加入,或者点击公式论坛地址直接进入:
https://sns.tdx.com.cn/site/tdx_sns/page_index.html#/CircleDetail?id=12&systemType=1


1.1在分钟周期下划分交易日

1. 均线(分钟):

指标名称:均线(分钟)
指标原理:均价=累加自当日开市到当前K线时间内的成交金额/累加自当日开市到当前K线时间内的成交量。
编写分析:
1.确定交易日内第一根K线的位置(难点);
    2.自1中确定的位置累加成交金额、成交量(由系统函数SUM实现);
    3.由成交金额、成交量求均价(由除法操作符实现)。
公式脚本:
FIRST:=IF(PERIOD=0,HOUR=9 AND MINUTE=31,
IF(PERIOD=1,HOUR=9 AND MINUTE=35,
IF(PERIOD=2,HOUR=9 AND MINUTE=45,
IF(PERIOD=3,HOUR=10 AND MINUTE=0,
IF(PERIOD=4,HOUR=10 AND MINUTE=30,0)))));
SUM(AMO,BARSLAST(FIRST)+1)/SUM(VOL,BARSLAST(FIRST)+1);

上面的公式适用于1分钟,5分钟,15分钟,30分钟,60分钟等五个周期下。将给出每个交易日中各周期下均线的走势。公式脚本编写中的重点就是First变量的确定,这也是这段脚本的亮点。First变量表示的是当日当前周期的第一根K线位置,是通过IF函数的嵌套使用结合各分钟周期的第一根K线的时间得来的。

1.2 跨周期引用数据
在同一个公式脚本中,所有变量的数据周期都是相同的,就是调用公式时设置的周期。在公式脚本中要用其它周期的数据,共有两种方式:

1)对变量用变周期符号(#),改变其周期。这种方式有局限性,只能在小周期公式中得到大周期数据,且仅适用于一些基本数据,如close,high,low,open等。
示例脚本: 
日最高价:H;
周最高价:H#WEEK;

运行示例:

2)在公式脚本中调用其它公式以取得其它周期的数据。调用其它公式,并用#设置其周期。
比如,公式脚本在日线下运行时,可用Kdj.k#week;来获得kdj在周线下的k值,另属于于同一周线的日线将获得相同的K值。
示例脚本:
公式1:
公式名称:JBSJ
公式描述:基本数据
公式脚本:
JC:C;{当前周期收盘价}
JH:H;{当前周期最高价}
JL:L;{当前周期最低价}
JO:O;{当前周期开盘价}
JYC:REF(C,1);{前一个周期收盘价}

公式2:
公式名称:TEST049
公式脚本:
日线开盘价:JBSJ.JO#DAY;
周线开盘价:O;
月线开盘价:JBSJ.JO#MONTH;

运行示例:

公式3:
E:=CURRBARSCOUNT;
E1:=DAY!=REF(DAY,1);
E2:=BARSLAST(E1)+1;
E3:=MA(C,E2);
E4:=SUM(AMO,E2)/SUM(VOL,E2)/100;
E5:=IF(CAPITAL>0,E4,E3);
昨开:IF(E<=CONST(E2),TMP#DAY,DRAWNULL),COLORCYAN,LINETHICK3; 

TMP的指标源码如下:
REF(OPEN,1);

此指标用于分钟周期线,同时在昨开盘价的位置上画一根线。
运行示例:

3)使用跨周期引用数据时注意点

  可供引用的周期类型有:
  MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH
  分别表示将1,5,15,30,60分钟K线数据,以及日,周,月K线数据,代入被引用的公式,进行运算。    
  
  {非指标引用时只可用于OPEN,HIGH,LOW,CLOSE,VOL,AMOUNT,VOLINSTK等,当前周期不支持多秒线,多分钟线和多日线,并且引用周期必须要高于当前周期,5秒线只支持引用1分钟线和5分钟线,周期数据转换得到}

TMP2:=KDJ.K#WEEK;
{跨周期指标引用,引用品种的对应周期的数据必须要先下载到本地}
跨周期指标引用不支持带参数
提示:跨周期时,可能会引用到未来数据
1.3 对某个时间段统计
1)某绝对时间段最高价
    此脚本段求2022年8月3日到2022年12月31日间的最高价:
    HH:=IF(YEAR=2022 AND (MONTH>8 OR (MONTH=8 AND DAY>=3) ) AND (MONTH<12 OR (MONTH=12 AND DAY<=31) ),H,0);{HH变量在该时间段内等于H,其他时间为0}
  HHV(HH,0);{此例求2022年8月3日到2022年12月31日间的最高价}

2)某相对时间段最高价
    60天前到40天前之间的最高价
  REF(HHV(H,60-40),40);

1.4 在某个时间段内某条件满足
TT:=C/REF(C,1)>1.095;{是否涨停} 
COUNT(TT,20)>0;{二十个交易日内时候涨停过}
上面的脚本配合1.3中示例可以写出历史某绝对时间段,或相对时间内是否涨停过的选股公式。


上图中的效果还可以借助Filter这个函数来实现。
1.5 K线绘制
示例公式:博弈K线
公式名称:博弈K线
公式脚本:
BKO:WINNER(O),NODRAW;
BKH:WINNER(H),NODRAW;
BKL:WINNER(L),NODRAW;
BKC:WINNER(C),NODRAW;
DRAWKLINE(BKH,BKO,BKL,BKC);
运行示例:

1.6 创新高周期数
成交量创新高周期数脚本:
FV:=IF(BARSCOUNT(C)=0,9999999999,VOL);
量创新高周期数:SUMBARS(REF(FV,1)-FV,0);



1.7脚本控制
在通达信的公式脚本中没有专门的控制语句,一切都是变量(仅有输出与不输出的区别),所以要实现应用于多种情况的脚本也要依靠变量来控制。
系统函数中有几个重要的函数就是IF,IFF,IFN,TESTSKIP.请大家注意的是通达信的函数的参数都是先计算出结果然后将参数传给函数的。因此对于TESTSKIP,最好作为一条单独的语句来使用。
公式脚本1:同1.2中的JBSJ公式。
{用于引用股票的基本数据。}
公式脚本2:FZMN分钟模拟
{用于通过几种分钟周期的数据模拟出当天对应于改周期的各项数据}
N:=IF(PERIOD=0,1,
IF(PERIOD=1,5,
IF(PERIOD=2,15,
IF(PERIOD=3,30,
IF(PERIOD=4,60,0)))));
CTRL:=TESTSKIP(N=0);{仅用于分钟周期}

TTIME1:=(TIME/100);
TTIME2:=IF(TTIME1<1000,TTIME1-930,
    IF(TTIME1<1100,TTIME1-1000+30,
    IF(TTIME1<1131,TTIME1-1100+90,
    IF(TTIME1<1300,120,
    IF(TTIME1<1400,TTIME1-1300+120,
    IF(TTIME1<1500,TTIME1-1400+180,
    240))))));

TTIME:=TTIME2/N;
YTC:="JBSJ.JYC#DAY";
YTDPC:="399300$CLOSE#DAY";
ZFS:=(C*1000/YTC)-1000;
AC:="399300$CLOSE";
ZFA:=(AC*1000/YTDPC)-1000;

DJC:(ZFS-ZFA)*YTC/1000+YTC;
DJH:IF(TTIME<2,DJC,HHV(DJC,TTIME-1));
DJL:IF(TTIME<2,DJC,LLV(DJC,TTIME-1));
DJO:REFV(DJC,TTIME-1);
{DRAWKLINE(DJH,DJO,DJL,DJC);};

公式脚本3:
在日线周期下,引用公式2中的数据(通过引用指标设置周期的方法来获得分钟周期的数据),通过K线绘制的函数就可以画出模拟 的K线了。
JH:="FZMN.DJH#MIN5";
JO:=" FZMN.DJO#MIN5";
JLC:=" FZMN.DJL#MIN5";
JC:=" FZMN.DJC#MIN5";
DRAWKLINE(JH,JO,JLC,JC);




1.8横向统计函数

横向统计类函数是板块中所有股票都参与计算的函数,有:BLOCKSETNUM,HORCALC,INSORT,INSUM等四个。
其中INSUM是新加入的函数,其用法如下:
INSUM(板块名称,指标名称,指标线,计算类型),
返回板块各成分该指标相应输出安计算类型得到的计算值.计算类型:0-累加,1-平均数,2-最大值,3-最小值.

现在用INSUM计算出个股所在行业中最大和最小的涨跌幅:
1.首先新建一个指标ZDF,用于计算个股的涨跌幅。
示例公式:ZDF
公式名称:涨跌幅
公式脚本:
(C-REF(C,1))/REF(C,1);

2.新建指标TJZDF,通过INSUM函数调用ZDF指标计算出该个股所在板块成分股最大最小涨跌幅。
示例公式:TJZDF
公式名称:统计涨跌幅
公式脚本:
INSUM(HYBLOCK,'ZDF',1,2);{ZDF指标第一个输出的最大值}
INSUM(HYBLOCK,'ZDF',1,3);{ZDF指标第一个输出的最大值};
注释:
1.指标TJZDF中HYBLOCK函数用来取当前成份股所在板块



1.9指标窗口定点输出函数
在新版本的公式编辑器中新加了两个绘图函数,用于定点输出文字或数字。他们就是DRAWTEXT_FIX,DRAWNUMBER_FIX。
1.RAWTEXT_FIX
固定位置显示文字.
用法:DRAWTEXT_FIX(COND,X,Y,TYPE,TEXT),当COND条件满足时,在当前指标窗口内(X,Y)位置书写文字TEXT,X,Y为书写点在窗口中相对于左上角的百分比,TYPE:0为左对齐,1为右对齐。
例如:DRAWTEXT_FIX(CURRBARSCOUNT=1 AND CLOSE/OPEN>1.08,0.5,0.5,0,'大阳线')表示最后一个交易日涨幅大于8%时在窗口中间位置显示'大阳线'字样。

2. DRAWNUMBER_FIX
固定位置显示数字.
用法:DRAWNUMBER_FIX(COND,X,Y,TYPE,NUMBER),当COND条件满足时,在当前指标窗口内(X,Y)位置书写数字NUMBER,X,Y为书写点在窗口中相对于左上角的百分比,TYPE:0为左对齐,1为右对齐。
例如:DRAWNUMBER_FIX(CURRBARSCOUNT=1 AND CLOSE/OPEN>1.08,0.5,0.5,0,C)表示最后一个交易日涨幅大于8%时在窗口中间位置显示收盘价。

现在我们举例说明这两个函数的用法:
示例公式:DRAWFIX
公式名称:DRAWFIX
公式脚本:
DRAWTEXT_FIX(ISLASTBAR,0.5,0,0,HYBLOCK),COLORYELLOW;
DRAWTEXT_FIX(ISLASTBAR,0,0,0,'股本结构:'),COLORRED;
DRAWTEXT_FIX(ISLASTBAR,0,0.1,0,'总股本:'),COLORRED;
DRAWNUMBER_FIX(ISLASTBAR,0,0.2,0,FINANCE(1)),COLORMAGENTA;
DRAWTEXT_FIX(ISLASTBAR,0.3,0.1,0,'流通A股:'),COLORGREEN; 
DRAWNUMBER_FIX(ISLASTBAR,0.3,0.2,0,FINANCE(7)),COLORYELLOW;
DRAWTEXT_FIX(ISLASTBAR,0.5,0.1,0,'今日换手率:'),COLORGREEN; 
DRAWNUMBER_FIX(ISLASTBAR,0.5,0.2,0,V*100/CAPITAL),COLORYELLOW;
效果图:

注:
1.当窗口大小改变时,DRAWFIX各输出文字或数字的相对位置不变;
2.通过方向键等方式改变分析图中K线个数时,DRAWFIX窗口内的文字或数字位置不随之改变;

1.10字符串函数
    新加入公式管理器的字符串函数有:HYBLOCK、DYBLOCK、INBLOCK、NAMELIKE、CODELIKE、CON2STR、STR2CON、STRCAT、STRCMP、FINSTR;在公式管理器的插入函数列表中有它们的介绍。
注:字符串中含百分号时,2个百分号代表一个。如’%%’ 显示时为一个%

示例公式:DRAWFIX2
公式名称: DRAWFIX2
公式脚本:
ST股:=NAMELIKE('S') OR NAMELIKE('*');
BE显示:=INBLOCK('上证A股') AND NOT(ST股) AND CODELIKE('600');
DRAWTEXT_FIX(NOT(BE显示),0,0,0,'本公式不适用该品种!适用品种:上证A股 且 不是ST股 且 品种代码以600开头!'),COLORYELLOW;
DRAWTEXT_FIX(BE显示,0,0,0,STRCAT('品种行业:',HYBLOCK)),COLORYELLOW;
DRAWTEXT_FIX(BE显示,0.5,0,0,STRCAT('品种地域:',DYBLOCK)),COLORYELLOW;
DRAWTEXT_FIX(BE显示,0,0.1,0,'股本结构:'),COLORRED;
DRAWTEXT_FIX(BE显示,0,0.2,0,STRCAT('总股本:',STRCAT(CON2STR(FINANCE(1)/10000,0),'万股'))),COLORRED;
DRAWTEXT_FIX(BE显示,0.3,0.2,0,STRCAT('流通A股:',STRCAT(CON2STR(FINANCE(7)/10000,1),'万股'))),COLORGREEN; 
DRAWTEXT_FIX(BE显示,0.5,0.2,0,STRCAT('今日换手率:',STRCAT(CON2STR(V*100/CAPITAL,2),'%%'))),COLORGREEN; 

公式演示截图:
600361 创新新材


000008 神州高铁
###########################################
专业财务数据系统指标
指标B系列指标是通达信官方从专业数据中挑选的重要级别较高的数据项实现的,供大家直接查看的通达信系统指标。包括两融资金、打板资金、市盈率(大盘行业)等方面。

专业财务数据
通达信软件提供了丰富的专业财务数据,涵盖偿债能力、经营效率、发展能力、获利能力、资本结构、现金流量等多个方面。通达信的专业财务数据来源于上市公告数据,可靠性较高。
例如:
偿债能力分析:速动比率、流动负债比率、有形资产净值债务率等。
经营效率分析:应收账款周转率、存货周转率、总资产周转率等。
发展能力分析:营业收入增长率、净利润增长率、净资产增长率等。
获利能力分析:成本费用利润率、营业利润率、净资产收益率等。
现金流量分析:每股经营性现金流、营业收入现金含量、经营活动现金流入、流出等
专业财务数据
专业财务数据项
数据编号    类别  数据项
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  资产负债表   工程物资
30  资产负债表   固定资产清理
31  资产负债表   生产性生物资产
32  资产负债表   油气资产
33  资产负债表   无形资产
34  资产负债表   开发支出
35  资产负债表   商誉
36  资产负债表   长期待摊费用
37  资产负债表   递延所得税资产
38  资产负债表   其他非流动资产
39  资产负债表   非流动资产合计
40  资产负债表   资产总计
41  资产负债表   短期借款
42  资产负债表   交易性金融负债
43  资产负债表   应付票据
44  资产负债表   应付账款
45  资产负债表   预收款项
46  资产负债表   应付职工薪酬
47  资产负债表   应交税费
48  资产负债表   应付利息
49  资产负债表   应付股利
50  资产负债表   其他应付款
51  资产负债表   应付关联公司款
52  资产负债表   一年内到期的非流动负债
53  资产负债表   其他流动负债
54  资产负债表   流动负债合计
55  资产负债表   长期借款
56  资产负债表   应付债券
57  资产负债表   长期应付款
58  资产负债表   专项应付款
59  资产负债表   预计负债(非流动负债)
60  资产负债表   递延所得税负债
61  资产负债表   其他非流动负债
62  资产负债表   非流动负债合计
63  资产负债表   负债合计
64  资产负债表   实收资本(或股本)
65  资产负债表   资本公积
66  资产负债表   盈余公积
67  资产负债表   减:库存股
68  资产负债表   未分配利润
69  资产负债表   少数股东权益
70  资产负债表   外币报表折算价差
71  资产负债表   非正常经营项目收益调整
72  资产负债表   所有者权益(或股东权益)合计
73  资产负债表   负债和所有者(或股东权益)合计
74  利润表 其中:营业收入
75  利润表 其中:营业成本
76  利润表 营业税金及附加
77  利润表 销售费用
78  利润表 管理费用
79  利润表 勘探费用
80  利润表 财务费用
81  利润表 资产减值损失
82  利润表 加:公允价值变动净收益
83  利润表 投资收益
84  利润表 其中:对联营企业和合营企业的投资收益
85  利润表 影响营业利润的其他科目
86  利润表 三、营业利润
87  利润表 加:补贴收入
88  利润表 营业外收入
89  利润表 减:营业外支出
90  利润表 其中:非流动资产处置净损失
91  利润表 加:影响利润总额的其他科目
92  利润表 四、利润总额
93  利润表 减:所得税
94  利润表 加:影响净利润的其他科目
95  利润表 五、净利润
96  利润表 归属于母公司所有者的净利润
97  利润表 少数股东损益
98  现金流量表   销售商品、提供劳务收到的现金
99  现金流量表   收到的税费返还
100 现金流量表   收到其他与经营活动有关的现金
101 现金流量表   经营活动现金流入小计
102 现金流量表   购买商品、接受劳务支付的现金
103 现金流量表   支付给职工以及为职工支付的现金
104 现金流量表   支付的各项税费
105 现金流量表   支付其他与经营活动有关的现金
106 现金流量表   经营活动现金流出小计
107 现金流量表   经营活动产生的现金流量净额
108 现金流量表   收回投资收到的现金
109 现金流量表   取得投资收益收到的现金
110 现金流量表   处置固定资产、无形资产和其他长期资产收回的现金净额
111 现金流量表   处置子公司及其他营业单位收到的现金净额
112 现金流量表   收到其他与投资活动有关的现金
113 现金流量表   投资活动现金流入小计
114 现金流量表   购建固定资产、无形资产和其他长期资产支付的现金
115 现金流量表   投资支付的现金
116 现金流量表   取得子公司及其他营业单位支付的现金净额
117 现金流量表   支付其他与投资活动有关的现金
118 现金流量表   投资活动现金流出小计
119 现金流量表   投资活动产生的现金流量净额
120 现金流量表   吸收投资收到的现金
121 现金流量表   取得借款收到的现金
122 现金流量表   收到其他与筹资活动有关的现金
123 现金流量表   筹资活动现金流入小计
124 现金流量表   偿还债务支付的现金
125 现金流量表   分配股利、利润或偿付利息支付的现金
126 现金流量表   支付其他与筹资活动有关的现金
127 现金流量表   筹资活动现金流出小计
128 现金流量表   筹资活动产生的现金流量净额
129 现金流量表   四、汇率变动对现金的影响
130 现金流量表   四(2)、其他原因对现金的影响
131 现金流量表   五、现金及现金等价物净增加额
132 现金流量表   期初现金及现金等价物余额
133 现金流量表   期末现金及现金等价物余额
134 现金流量表补充资料   净利润
135 现金流量表补充资料   加:资产减值准备
136 现金流量表补充资料   固定资产折旧、油气资产折耗、生产性生物资产折旧
137 现金流量表补充资料   无形资产摊销
138 现金流量表补充资料   长期待摊费用摊销
139 现金流量表补充资料   处置固定资产、无形资产和其他长期资产的损失
140 现金流量表补充资料   固定资产报废损失
141 现金流量表补充资料   公允价值变动损失
142 现金流量表补充资料   财务费用
143 现金流量表补充资料   投资损失
144 现金流量表补充资料   递延所得税资产减少
145 现金流量表补充资料   递延所得税负债增加
146 现金流量表补充资料   存货的减少
147 现金流量表补充资料   经营性应收项目的减少
148 现金流量表补充资料   经营性应付项目的增加
149 现金流量表补充资料   其他
150 现金流量表补充资料   经营活动产生的现金流量净额2
151 现金流量表补充资料   债务转为资本
152 现金流量表补充资料   一年内到期的可转换公司债券
153 现金流量表补充资料   融资租入固定资产
154 现金流量表补充资料   现金的期末余额
155 现金流量表补充资料   减:现金的期初余额
156 现金流量表补充资料   加:现金等价物的期末余额
157 现金流量表补充资料   减:现金等价物的期初余额
158 现金流量表补充资料   现金及现金等价物净增加额
159 偿债能力分析  流动比率(非金融类指标)
160 偿债能力分析  速动比率(非金融类指标)
161 偿债能力分析  现金比率(%)(非金融类指标)
162 偿债能力分析  利息保障倍数(非金融类指标)
163 偿债能力分析  非流动负债比率(%)(非金融类指标)
164 偿债能力分析  流动负债比率(%)(非金融类指标)
166 偿债能力分析  有形资产净值债务率(%)
167 偿债能力分析  权益乘数(%)
168 偿债能力分析  股东的权益/负债合计(%)
169 偿债能力分析  有形资产/负债合计(%)
170 偿债能力分析  经营活动产生的现金流量净额/负债合计(%) (非金融类指标)
171 偿债能力分析  EBITDA/负债合计(%)(非金融类指标)
172 经营效率分析  应收账款周转率(非金融类指标)
173 经营效率分析  存货周转率(非金融类指标)
174 经营效率分析  运营资金周转率(非金融类指标)
175 经营效率分析  总资产周转率(非金融类指标)
176 经营效率分析  固定资产周转率(非金融类指标)
177 经营效率分析  应收账款周转天数(非金融类指标)
178 经营效率分析  存货周转天数(非金融类指标)
179 经营效率分析  流动资产周转率(非金融类指标)
180 经营效率分析  流动资产周转天数(非金融类指标)
181 经营效率分析  总资产周转天数(非金融类指标)
182 经营效率分析  股东权益周转率(非金融类指标)
183 发展能力分析  营业收入增长率(%)
184 发展能力分析  净利润增长率(%)
185 发展能力分析  净资产增长率(%)
186 发展能力分析  固定资产增长率(%)
187 发展能力分析  总资产增长率(%)
188 发展能力分析  投资收益增长率(%)
189 发展能力分析  营业利润增长率(%)
190 发展能力分析  扣非每股收益同比(%)
191 发展能力分析  扣非净利润同比(%)
192 发展能力分析  暂无
193 获利能力分析  成本费用利润率(%)
194 获利能力分析  营业利润率(非金融类指标)
195 获利能力分析  营业税金率(非金融类指标)
196 获利能力分析  营业成本率(非金融类指标)
197 获利能力分析  净资产收益率
198 获利能力分析  投资收益率
199 获利能力分析  销售净利率(%)
200 获利能力分析  总资产净利率
201 获利能力分析  净利润率(非金融类指标)
202 获利能力分析  销售毛利率(%) (非金融类指标)
203 获利能力分析  三费比重(非金融类指标)
204 获利能力分析  管理费用率(非金融类指标)
205 获利能力分析  财务费用率(非金融类指标)
206 获利能力分析  扣除非经常性损益后的净利润
207 获利能力分析  息税前利润(EBIT)
208 获利能力分析  息税折旧摊销前利润(EBITDA)
209 获利能力分析  EBITDA/营业总收入(%) (非金融类指标)
210 资本结构分析  资产负债率(%)
211 资本结构分析  流动资产比率(非金融类指标)
212 资本结构分析  货币资金比率(非金融类指标)
213 资本结构分析  存货比率(非金融类指标)
214 资本结构分析  固定资产比率
215 资本结构分析  负债结构比(非金融类指标)
216 资本结构分析  归属于母公司股东权益/全部投入资本(%)
217 资本结构分析  股东的权益/带息债务(%)
218 资本结构分析  有形资产/净债务(%)
219 现金流量分析  每股经营性现金流(元)
220 现金流量分析  营业收入现金含量(%) (非金融类指标)
221 现金流量分析  经营活动产生的现金流量净额/经营活动净收益(%)
222 现金流量分析  销售商品提供劳务收到的现金/营业收入(%)
223 现金流量分析  经营活动产生的现金流量净额/营业收入
224 现金流量分析  资本支出/折旧和摊销
225 现金流量分析  每股现金流量净额(元)
226 现金流量分析  经营净现金比率(短期债务)(非金融类指标)
227 现金流量分析  经营净现金比率(全部债务)
228 现金流量分析  经营活动现金净流量与净利润比率
229 现金流量分析  全部资产现金回收率
230 单季度财务指标 营业收入
231 单季度财务指标 营业利润
232 单季度财务指标 归属于母公司所有者的净利润
233 单季度财务指标 扣除非经常性损益后的净利润
234 单季度财务指标 经营活动产生的现金流量净额
235 单季度财务指标 投资活动产生的现金流量净额
236 单季度财务指标 筹资活动产生的现金流量净额
237 单季度财务指标 现金及现金等价物净增加额
238 股本股东    总股本
239 股本股东    已上市流通A股
240 股本股东    已上市流通B股
241 股本股东    已上市流通H股
242 股本股东    股东人数(户)
243 股本股东    第一大股东的持股数量
244 股本股东    十大流通股东持股数量合计(股)
245 股本股东    十大股东持股数量合计(股)
246 机构持股    机构总量(家)
247 机构持股    机构持股总量(股)
248 机构持股    QFII机构数
249 机构持股    QFII持股量
250 机构持股    券商机构数
251 机构持股    券商持股量
252 机构持股    保险机构数
253 机构持股    保险持股量
254 机构持股    基金机构数
255 机构持股    基金持股量
256 机构持股    社保机构数
257 机构持股    社保持股量
258 机构持股    私募机构数
259 机构持股    私募持股量
260 机构持股    财务公司机构数
261 机构持股    财务公司持股量
262 机构持股    年金机构数
263 机构持股    年金持股量
264 新增指标    十大流通股东持有的流通A股合计(股)
265 新增指标    第一大流通股东持股量(股)
266 新增指标    自由流通股(股)
267 新增指标    受限流通A股(股)
268 新增指标    一般风险准备(金融类)
269 新增指标    其他综合收益(利润表)
270 新增指标    综合收益总额(利润表)
271 新增指标    归属于母公司股东权益(资产负债表)
272 新增指标    银行机构数(家)(机构持股)
273 新增指标    银行持股量(股)(机构持股)
274 新增指标    一般法人机构数(家)(机构持股)
275 新增指标    一般法人持股量(股)(机构持股)
276 新增指标    近一年净利润(元)
277 新增指标    信托机构数(家)(机构持股)
278 新增指标    信托持股量(股)(机构持股)
279 新增指标    特殊法人机构数(家)(机构持股)
280 新增指标    特殊法人持股量(股)(机构持股)
281 新增指标    加权净资产收益率(每股指标)
282 新增指标    扣非每股收益(单季度财务指标)
283 新增指标    最近一年营业收入(万元)
284 新增指标    国家队持股数量(万股)
285 新增指标    业绩预告-本期归母净利润同比增幅下限(%)
286 新增指标    业绩预告-本期归母净利润同比增幅上限(%)
287 新增指标    业绩快报-归母净利润
288 新增指标    业绩快报-扣非净利润
289 新增指标    业绩快报-总资产
290 新增指标    业绩快报-净资产
291 新增指标    业绩快报-每股收益
292 新增指标    业绩快报-摊薄净资产收益率
293 新增指标    业绩快报-加权净资产收益率
294 新增指标    业绩快报-每股净资产
295 新增指标    应付票据及应付账款(资产负债表)
296 新增指标    应收票据及应收账款(资产负债表)
297 新增指标    递延收益(资产负债表-非流动负债)
298 新增指标    其他综合收益(资产负债表)
299 新增指标    其他权益工具(资产负债表)
300 新增指标    其他收益(利润表)
301 新增指标    资产处置收益(利润表)
302 新增指标    持续经营净利润(利润表)
303 新增指标    终止经营净利润(利润表)
304 新增指标    研发费用(利润表)
305 新增指标    其中:利息费用(利润表-财务费用)
306 新增指标    其中:利息收入(利润表-财务费用)
307 新增指标    近一年经营活动现金流净额
308 新增指标    近一年归母净利润(万元)
309 新增指标    近一年扣非净利润(万元)
310 新增指标    近一年现金净流量(万元)
311 新增指标    基本每股收益(单季度)
312 新增指标    营业总收入(单季度)(万元)
313 新增指标    业绩预告公告日期
314 新增指标    财报公告日期
315 新增指标    业绩快报公告日期
316 新增指标    近一年投资活动现金流净额(万元)
317 新增指标    业绩预告-本期归母净利润下限(万元)
318 新增指标    业绩预告-本期归母净利润上限(万元)
319 新增指标    营业总收入TTM(万元)
320 新增指标    员工总数(人)
321 新增指标    每股企业自由现金流
322 新增指标    每股股东自由现金流
323 新增指标    近一年营业利润(万元)
324 新增指标    净利润(单季度)(万元)
325 新增指标    北上资金数(家)(机构持股)
326 新增指标    北上资金持股量(股)(机构持股)
327 新增指标    有息负债率
328 新增指标    营业成本(单季度)(万元)
329 新增指标    投入资本回报率(ROIC)(获利能力分析)
330 新增指标    业绩快报-营业收入(本期)
331 新增指标    业绩快报-营业收入(上期)
332 新增指标    业绩快报-营业利润(本期)
333 新增指标    业绩快报-营业利润(上期)
334 新增指标    业绩快报-利润总额(本期)
335 新增指标    业绩快报-利润总额(上期)
336 新增指标    审计意见
337 新增指标    股利支付率(%)
338 新增指标    近一年营业成本-非金融类(万元)
339 新增指标    近一年营业成本-金融类(万元)
401 资产负债表新增指标   专项储备(万元)
402 资产负债表新增指标   结算备付金(万元)
403 资产负债表新增指标   拆出资金(万元)
404 资产负债表新增指标   发放贷款及垫款(万元)(流动资产科目)
405 资产负债表新增指标   衍生金融资产(万元)
406 资产负债表新增指标   应收保费(万元)
407 资产负债表新增指标   应收分保账款(万元)
408 资产负债表新增指标   应收分保合同准备金(万元)
409 资产负债表新增指标   买入返售金融资产(万元)
410 资产负债表新增指标   划分为持有待售的资产(万元)
411 资产负债表新增指标   发放贷款及垫款(万元)(非流动资产科目)
412 资产负债表新增指标   向中央银行借款(万元)
413 资产负债表新增指标   吸收存款及同业存放(万元)
414 资产负债表新增指标   拆入资金(万元)
415 资产负债表新增指标   衍生金融负债(万元)
416 资产负债表新增指标   卖出回购金融资产款(万元)
417 资产负债表新增指标   应付手续费及佣金(万元)
418 资产负债表新增指标   应付分保账款(万元)
419 资产负债表新增指标   保险合同准备金(万元)
420 资产负债表新增指标   代理买卖证券款(万元)
421 资产负债表新增指标   代理承销证券款(万元)
422 资产负债表新增指标   划分为持有待售的负债(万元)
423 资产负债表新增指标   预计负债(万元) (流动负债)
424 资产负债表新增指标   递延收益(万元)(流动负债科目)
425 资产负债表新增指标   其中:优先股(万元)(非流动负债科目)
426 资产负债表新增指标   永续债(万元)(非流动负债科目)
427 资产负债表新增指标   长期应付职工薪酬(万元)
428 资产负债表新增指标   其中:优先股(万元)(所有者权益科目)
429 资产负债表新增指标   永续债(万元)(所有者权益科目)
430 资产负债表新增指标   债权投资(万元)
431 资产负债表新增指标   其他债权投资(万元)
432 资产负债表新增指标   其他权益工具投资(万元)
433 资产负债表新增指标   其他非流动金融资产(万元)
434 资产负债表新增指标   合同负债(万元)
435 资产负债表新增指标   合同资产(万元)
436 资产负债表新增指标   其他资产(万元)
437 资产负债表新增指标   应收款项融资(万元)
438 资产负债表新增指标   使用权资产(万元)
439 资产负债表新增指标   租赁负债(万元)
440 资产负债表新增指标   发放贷款及垫款(万元) [注:金融类科目]
441 资产负债表新增指标   应收款项(万元) [注:证券类指标]
442 资产负债表新增指标   存出保证金(万元) [注:证券类指标]
401 资产负债表新增指标   专项储备(万元)
402 资产负债表新增指标   结算备付金(万元)
501 利润表新增指标 稀释每股收益(元)
502 利润表新增指标 营业总收入(万元)
503 利润表新增指标 汇兑收益(万元)
504 利润表新增指标 其中:归属于母公司综合收益(万元)
505 利润表新增指标 其中:归属于少数股东综合收益(万元)
506 利润表新增指标 利息收入(万元)
507 利润表新增指标 已赚保费(万元)
508 利润表新增指标 手续费及佣金收入(万元)
509 利润表新增指标 利息支出(万元)
510 利润表新增指标 手续费及佣金支出(万元)
511 利润表新增指标 退保金(万元)
512 利润表新增指标 赔付支出净额(万元)
513 利润表新增指标 提取保险合同准备金净额(万元)
514 利润表新增指标 保单红利支出(万元)
515 利润表新增指标 分保费用(万元)
516 利润表新增指标 其中:非流动资产处置利得(万元)
517 利润表新增指标 信用减值损失(万元)
518 利润表新增指标 净敞口套期收益(万元)
519 利润表新增指标 营业总成本(万元)
520 利润表新增指标 信用减值损失(万元、2019格式)
521 利润表新增指标 资产减值损失(万元、2019格式)
561 现金流量表新增指标   加:其他原因对现金的影响2(万元)(现金的期末余额科目)
562 现金流量表新增指标   客户存款和同业存放款项净增加额(万元)
563 现金流量表新增指标   向中央银行借款净增加额(万元)
564 现金流量表新增指标   向其他金融机构拆入资金净增加额(万元)
565 现金流量表新增指标   收到原保险合同保费取得的现金(万元)
566 现金流量表新增指标   收到再保险业务现金净额(万元)
567 现金流量表新增指标   保户储金及投资款净增加额(万元)
568 现金流量表新增指标   处置以公允价值计量且其变动计入当期损益的金融资产净增加额(万元)
569 现金流量表新增指标   收取利息、手续费及佣金的现金(万元)
570 现金流量表新增指标   拆入资金净增加额(万元)
571 现金流量表新增指标   回购业务资金净增加额(万元)
572 现金流量表新增指标   客户贷款及垫款净增加额(万元)
573 现金流量表新增指标   存放中央银行和同业款项净增加额(万元)
574 现金流量表新增指标   支付原保险合同赔付款项的现金(万元)
575 现金流量表新增指标   支付利息、手续费及佣金的现金(万元)
576 现金流量表新增指标   支付保单红利的现金(万元)
577 现金流量表新增指标   其中:子公司吸收少数股东投资收到的现金(万元)
578 现金流量表新增指标   其中:子公司支付给少数股东的股利、利润(万元)
579 现金流量表新增指标   投资性房地产的折旧及摊销(万元)
580 现金流量表新增指标   信用减值损失(万元)
581 现金流量表新增指标   使用权资产折旧(万元)
专业财务数据序列函数
函数说明
FINVALUE引用专业财务数据序列数值.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
FINVALUE(ID),ID为数据编号
数据编号如下:
0--返回报告期(YYMMDD格式),150930表示为2015年第三季
说明:
1.所有指标没有标注单位的都是个位,如资金项单位都是元,股本单位都是股。
2.所有的空值数据显示为0,以方便客户加减运算,非金融类指标在指标名称后有标注。
示例
{公式名称:最新报告期}
报告期:FINVALUE(0),NODRAW;
每股收益:FINVALUE(1);


专业财务数据指定日期函数
函数说明
FINONE引用指定年和月日的某类型的财务数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
FINONE(ID,Y,MMDD),ID为数据编号,Y和MMDD表示年和月日.
如果Y和MMDD都为0,表示最新的财报;
如果Y为0,MMDD为小于300的数字,表示最近一期向前推MMDD期的数据,如果是331,630,930,1231这些,表示最近一期的对应季报的数据;
如果MMDD为0,Y为一数字,表示最近一期向前推Y年的同期数据;
季报分界点为:0331,0630,0930,1231
数据编号如下:
0--返回报告期(YYMMDD格式),150930表示为2015年第三季
说明:
1.所有指标没有标注单位的都是个位,如资金项单位都是元,股本单位都是股。
2.所有的空值数据显示为0,以方便客户加减运算,非金融类指标在指标名称后有标注。

示例
如果Y和MMDD都为0,表示最新的财报;
{公式名:指定财务数据}
{ FINONE(ID,Y,MMDD),ID为数据编号,Y和MMDD表示年和月日}
FINONE(0,0,0);{最近一期报告期} 
FINONE(1,0,0);{最近一期报告期的每股收益}

如果Y为0,MMDD为小于300的数字,表示最近一期向前推MMDD期的数据,如果是331,630,930,1231这些,表示最近一期的对应季报的数据;
{公式名:指定分支1}
FINVALUE(266);{和下面推测的数据对比验证用}
{如果Y为0,MMDD为小于300的数字,表示最近一期向前推MMDD期的数据}
{当前日期是20250304 大多数最近报告期是20240930即2024第3期数据}
D:FINONE(266,0,3);{最近一期240930往前推3期 推1期240630  推2期240331  推3期231231}

{
如果是331,630,930,1231这些,表示最近一期的对应季报的数据
}
FINONE(266,0,0331);{专业财务数据函数,指定报告期数据}  {20240331}
FINONE(266,0,0630);{专业财务数据函数,指定报告期数据}  {20240630}
FINONE(266,0,0930);{专业财务数据函数,指定报告期数据}  {20240930} 
FINONE(266,0,1231);{专业财务数据函数,指定报告期数据}  {20231231};
如果MMDD为0,Y为一数字,表示最近一期向前推Y年的同期数据;
季报分界点为:0331,0630,0930,1231
{公式名:指定分支2}
FINVALUE(266);{和下面推测的数据对比验证用}
{当前时间20250304   20240930期最近一期  }
FINONE(266,0,0);{专业财务数据函数,指定报告期数据}  {20240930 当期20240930期推0年}
FINONE(266,1,0);{专业财务数据函数,指定报告期数据}  {20220331 当期20240930期前一年 20230930期};
注意示例中的往前推,要去对应id号序列数据的当前期去看数据,所以如果只是验证帮忙理解函数,可以直接用0号ID的报告期数据来这样儿,可以直接展示推到的报告期日期,不用根据报告期再去找数据。
股票交易类数据
股票交易类数据项
数据编号    数据项 第1个数据   第2个数据
1   股东信息    股东人数    股东户数(户)
2   龙虎榜 [注:20230717日之后数据]   买入总计(万元)    卖出总计(万元)
3   融资融券1   融资余额(万元)    融券余量(股)
4   大宗交易    成交均价(元) 成交额(万元)
5   增减持1    成交均价(元) 变动股数(股)
6   陆股通持股量 [注:20170317日之后数据]    持股数量(股) -
7   陆股通市场成交净额 [注:每日前十名数据]   陆股通市场净买入(万元)    -
8   龙虎榜机构(卖方)数据 卖方机构个数  机构卖出金额(万元)
9   龙虎榜机构(买方)数据 买方机构个数  机构买入金额(万元)
10  近3月机构调研情况   近3月机构调研次数   近3月调研机构数量
11  融资融券2   融资买入额(万元)   融资偿还额(万元)
12  融资融券3   融券卖出量(股)    融券偿还量(股)
13  融资融券4   融资净买入(万元)   融券净卖出(股)
14  涨停数据 [注:20180319日之后数据]  涨停金额(万元)    开板次数
15  涨跌停 [注:涨停取2,曾涨停取1,跌停取-2,曾跌停取-1;跌停和曾跌停时,封单金额取负值;20160926日之后数据]   涨跌停状态   封单金额(万元)
16  总市值 总市值(万元) -
17  龙虎榜营业部数据    买入金额(万元)    卖出金额(万元)
18  龙虎榜沪深股通数据   买入金额(万元)    卖出金额(万元)
19  每周股票质押数量[注:20180316日之后数据]   无限售股份质押数(万) 有限售股份质押数(万) 
20  每周股票质押比例[注:20180316日之后数据]   质押比例(%)     -
21  股息率 股息率(%)  -
22  涨跌停 [注:20180319日之后数据]   封成比 封流比
23  拟增减持    拟增持数量(万股)   拟减持数量(万股)
24  涨停  首次涨停时间 [注:20160301之后数据] 涨停最大封单额(万) [注:20200730之后数据]
25  盘前盘后成交量 开盘成交量(手)    盘后固定成交量(手) [注:仅科创板有]
26  拟增减持金额  拟增持金额(万元)   拟减持金额(万元)
27  人气排名    市场人气排名  行业人气排名 [注:行业排名为通达信二级研究行业排名]
28  股票回购    回购均价(元) 回购数量(万股)
29  证券信息    是否复牌日 [注:0-不是复牌日,n(n>0)-停牌n个交易日之后的复牌日]   是否更名日 [注:0-未更名,1-常规更名,2-加ST,3-加*ST,4-摘帽,5-其他]
30  分红送转    派息金额(万元) [注:数据展示日期为除权除息日]   送转数量(股) [注:数据展示日期为除权除息日]
31  转融券 期初余量(股) 期末余量(股)
32  转融券 融出数量(股) 融出市值(元)
33  跌停数据 [注:20180319日之后数据]  跌停金额(万元)    开板次数
34  跌停  首次跌停时间 [注:20160301之后数据] 跌停最大封单额(万) [注:20200730之后数据]
35  增减持2    增持数量(股) 减持数量(股)
36  竞价涨停买   买入金额(万元) [注:20241101日之后数据]  -
37  龙虎榜2    上榜类型连续交易日(天) [注:上榜类型中指代的连续交易日类型]    -

股票交易数据序列函数
函数说明
GPJYVALUE引用股票交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场,不支持获取太早时间的数据.
GPJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理;2表示没有数据则为0.
示例
{没数据做平滑处理,展示最近一个值}
总市值亿:GPJYVALUE(16,1,1)/10000;{16号数据单位万元};
总市值亿最新:GPJYONE(16,1,0,0)/10000;{16号数据单位万元};
总市值亿次新:GPJYONE(16,1,0,1)/10000;{16号数据单位万元};
总市值亿次新1:GPJYONE(16,1,0,2)/10000;{16号数据单位万元};
总市值亿指定:GPJYONE(16,1,2025,0303)/10000;{16号数据单位万元};
股票交易数据指定日期函数
函数说明
GPJYONE引用某天某种类型的股票交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场,不支持获取太早时间的数据.
GPJYONE(ID,N,Y,MMDD),ID为数据编号,N表示第几个数据(取1或2),Y和MMDD表示年和月日.
如果Y为0,MMDD为0,表示最新数据,MMDD为1,2,3...,表示倒数第2,3,4...个数据
如果Y不为0,就按照Y、MMDD年月日的形式指定
示例
{没数据就没数据不做平滑处理}
总市值亿:GPJYVALUE(16,0,1)/10000;{16号数据单位万元};
总市值亿最新:GPJYONE(16,0,0,0)/10000;{16号数据单位万元};
总市值亿次新:GPJYONE(16,0,0,1)/10000;{16号数据单位万元};
总市值亿次新1:GPJYONE(16,0,0,2)/10000;{16号数据单位万元};
总市值亿指定:GPJYONE(16,0,2025,0303)/10000;{16号数据单位万元};
股票单个数据非序列
股票单个数据项
数据编号    数据项
1   发行价(元)
2   总发行数量(万股)
3   一致预期目标价(元) [注:近半年内平均预测值]
4   一致预期T年度
5   一致预期T年每股收益
6   一致预期T+1年每股收益
7   一致预期T+2年每股收益
8   一致预期T年净利润(万元)
9   一致预期T+1年净利润(万元)
10  一致预期T+2年净利润(万元)
11  一致预期T年营业收入(万元)
12  一致预期T+1年营业收入(万元)
13  一致预期T+2年营业收入(万元)
14  一致预期T年营业利润(万元)
15  一致预期T+1年营业利润(万元)
16  一致预期T+2年营业利润(万元)
17  一致预期T年每股净资产(元)
18  一致预期T+1年每股净资产(元)
19  一致预期T+2年每股净资产(元)
20  一致预期T年净资产收益率(%)
21  一致预期T+1年净资产收益率(%)
22  一致预期T+2年净资产收益率(%)
23  一致预期T年PE
24  一致预期T+1年PE
25  一致预期T+2年PE
26  最新解禁日(YYMMDD格式)
27  最新解禁数量(万股)
28  下一报告期的预约披露时间
29  最新持股机构家数
30  最新机构持股总量(万股)
31  最新持股基金家数
32  最新基金持股量(万股)
33  最新总股本(万股)
34  最新实际流通A股(万股)
35  最新业绩预告 - 报告期(YYMMDD格式)
36  最新业绩预告 - 本期归母净利润下限(万元)
37  最新业绩预告 - 本期归母净利润上限(万元)
38  最新业绩预告 - 本期归母净利润预计同比增减幅下限%
39  最新业绩预告 - 本期归母净利润预计同比增减幅上限%
40  最新业绩快报 - 报告期
41  最新业绩快报 - 归母净利润(万元)
42  分红募资 - 派现总额(万元)
43  分红募资 - 募资总额(万元)
44  最新业绩预告 - 本期扣非净利润下限(万元)
45  最新业绩预告 - 本期扣非净利润上限(万元)
46  最新业绩预告 - 本期扣非净利润预计同比增减幅下限%
47  最新业绩预告 - 本期扣非净利润预计同比增减幅上限%

股票单个数据函数
函数说明
GPONEDAT引用股票的某种数据,该函数只适用于沪深京市场.
GPONEDAT(ID),ID为数据编号
示例
{公式名:发行价}
发行价P:GPONEDAT(1);

板块交易类数据
板块交易类数据项
数据编号    数据项 第1个数据   第2个数据
5   市盈率TTM  整体法 算术平均
6   市净率MRQ  整体法 算术平均
7   市销率TTM  整体法 算术平均
8   市现率TTM  整体法 算术平均
9   涨跌数 上涨家数    下跌家数
10  板块总市值(亿元)   整体法 算术平均
11  板块流通市值(亿元)  整体法 算术平均
12  涨停数[注:20160926日之后数据]    涨停家数    曾涨停家数 
13  跌停数[注:20160926日之后数据]    跌停家数    曾跌停家数 
14  涨停数据[注:20180319日之后数据]   市场高度(不含ST股和未开板新股)   2板及以上涨停个数(不含ST股和未开板新股) 
15  融资融券    沪深京融资余额(万元) 沪深京融券余额(万元)
16  陆股通资金流入[注:20170320日之后数据]    沪股通流入金额(亿元)     深股通流入金额(亿元) 
17  开盘成交数   开盘成交额(万元)   开盘成交量(万股)
18  板块股息率(%)    算数平均    整体法
19  板块自由流通市值(亿元)    整体法 算术平均

板块交易数据序列函数
函数说明
BKJYVALUE引用板块交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
BKJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理;2表示没有数据则为0.
板块交易类数据函数,数据编号如下:
几个主要指数(总市值等指数,上证指数,深圳成指,沪深300,创业板指,科创50,北证50)和通达信二、三级行业、通达信研究行业板块指数指标
如果是880001总市值,相当于是整个A股市场的数据。
示例
{公式名称:涨跌家数}
{BKJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),
TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;
为0表示不做平滑处理;2表示没有数据则为0.}
上涨家数:BKJYVALUE(9,1,1);
下跌家数:BKJYVALUE(9,2,1);

20250304当天880637涨15,跌1


板块交易数据指定日期函数
函数说明
BKJYONE引用某天某种类型的板块交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
BKJYONE(ID,N,Y,MMDD),ID为数据编号,N表示第几个数据(取1或2),Y和MMDD表示年和月日.
如果Y为0,MMDD为0,表示最新数据,MMDD为1,2,3...,表示倒数第2,3,4...个数据
如果Y不为0,就按照Y、MMDD年月日的形式指定
板块交易类数据函数,数据编号如下:
几个主要指数(总市值等指数,上证指数,深圳成指,沪深300,创业板指,科创50,北证50)和通达信二、三级行业、通达信研究行业板块指数指标
如果是880001总市值,相当于是整个A股市场的数据
示例
{公式名:涨跌家数定}
{BKJYONE(ID,N,Y,MMDD),ID为数据编号,N表示第几个数据(取1或2),Y和MMDD表示年和月日.}
上涨家数:BKJYONE(9,1,0,0);
下跌家数:BKJYONE(9,2,0,0);

市场交易类数据
市场交易类数据项
数据编号    数据项 第1个数据   第2个数据
1   融资融券    沪深京融资余额(万元) 沪深京融券余额(万元)
2   陆股通资金流入[注:沪股通限制展示2000条数据,深股通展示自20161205以后的数据]
    沪股通流入金额(亿元) 深股通流入金额(亿元)
3   沪深京涨停股个数 [注:该指标展示20160926日之后的数据]    涨停股个数   曾涨停股个数
4   沪深京跌停股个数 [注:该指标展示20160926日之后的数据]    跌停股个数   曾跌停股个数
5   上证50股指期货[注:该指标展示20171009日之后的数据] 净持仓(手)  -
6   沪深300股指期货[注:该指标展示20171009日之后的数据]    净持仓(手)  -
7   中证500股指期货[注:该指标展示20171009日之后的数据]    净持仓(手)  -
8   ETF基金规模份额数据 ETF基金规模(亿份) ETF净申赎(亿份)
9   每月新增投资者数量-日期    新增自然人数量(户)  新增非自然人数量(户)
10  增减持统计[注:部分公司公告滞后,造成每天查看的数据可能会不一样] 
    增持额(万元) 减持额(万元)
11  大宗交易    溢价的大宗交易额(万元)    折价的大宗交易额(万元)
12  限售解禁[注:该指标展示201802月之后的数据;部分股票的解禁日期延后,造成不同日期提取的某天的计划额可能不同]   限售解禁计划额(亿元) 限售解禁股份实际上市金额(亿元)
13  分红  市场总分红额(亿元)  -
14  募资  市场总募资额(亿元)  -
15  打板资金    封板成功资金(亿元)  封板失败资金(亿元)
16  龙虎榜 买入总金额(亿元)   卖出总金额(亿元)
17  龙虎榜机构数据 买入金额(亿元)    卖出金额(亿元)
18  龙虎榜营业部数据    买入金额(亿元)    卖出金额(亿元)
19  龙虎榜沪深股通数据   买入金额(亿元)    卖出金额(亿元)
20  陆股通净买入  沪股通净买入额(亿元) 深股通净买入额(亿元)
21  每周无限售质押率    深市质押率(%)    沪市质押率(%)
22  每周有限售质押率    深市质押率(%)    沪市质押率(%)
23  连板家数    连板股个数(包含ST和未开板新股)   连板股个数(不含ST股和未开板新股)
24  沪深京涨跌停股个数   涨停股个数(不含ST股和未开板新股)  跌停股个数(不含ST股)
25  融资融券    沪深京融资买入额(万元)    沪深京融券卖出量(万股)
26  每周市场质押比 每周市场质押比例(%) -
27  央行公开市场净投放   央行公开市场净投放(亿元)   -
28  历史A股新高新低数   历史新高A股股票个数  历史新低A股股票个数
29  120天A股新高新低数 120天新高A股股票个数    120天新低A股股票个数
30  涨停数据    市场高度(不含ST股和未开板新股)   2板以上涨停个数(不含ST股和未开板新股)
31  涨跌家数    涨家数(剔除停牌)   跌家数(剔除停牌)
32  20天A股新高新低数  20天新高A股股票个数 20天新低A股股票个数
33  市场总封单金额 涨停封单金额(亿元)  跌停封单金额(亿元)
34  涨跌股成交量  上涨股成交量(万手)  下跌股成交量(万手)
35  涨停数据    换手板家数   回封率(%)
36  曾涨跌停股个数 曾涨停股个数(剔除ST股和未开板新股) 曾跌停股个数(剔除ST股)
37  转融券 融出市值(亿元)    期末余额(亿元)
38  ETF基金规模金额数据 ETF基金规模(亿元) ETF净申赎(亿元)
39  涨跌5%家数  涨幅大于等于5%家数  跌幅大于等于5%家数
40  陆股通成交   陆股通成交总额(亿元) 陆股通成交总笔(万笔)
41  中证1000股指期货 [注:该指标展示20220722日之后的数据]
    净持仓(手)  -

市场交易数据序列函数
函数说明
SCJYVALUE引用市场总的交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
SCJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理;2表示没有数据则为0.
示例

查看20250304市场融资规模的数据情况。
{公式名:融资融券规模}
{SCJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),
TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;
为0表示不做平滑处理;2表示没有数据则为0.
}
HSJ融资余额:SCJYVALUE(1,1,1);{单位万元}
HSJ融券余额:SCJYVALUE(1,2,1);{单位万元}


市场交易数据指定日期函数
函数说明
SCJYONE引用某天某种类型的市场总的交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
SCJYONE(ID,N,Y,MMDD),ID为数据编号,N表示第几个数据(取1或2),Y和MMDD表示年和月日.
如果Y为0,MMDD为0,表示最新数据,MMDD为1,2,3...,表示倒数第2,3,4...个数据
如果Y不为0,就按照Y、MMDD年月日的形式指定
示例
{公式名:融资融券规定}
{SCJYONE(ID,N,Y,MMDD),ID为数据编号,N表示第几个数据(取1或2),Y和MMDD表示年和月日.}
HSJ融资余额:SCJYONE(1,1,0,0);{单位万元}
HSJ融券余额:SCJYONE(1,2,0,0);{单位万元};

###############################################
新函数列表
序号  函数名 描述  用法备注
1   ISJYDATE    A股行情已初始化    今日为A股交易日,行情已初始化
常量输出,非序列数据
2   HQCRBK  行情区背景色  当前行情区背景色,黑色系为0,白色系为1
SPD:=C;
IF(HQCRBK=0,SPD,DRAWNULL),COLORWHITE;
IF(HQCRBK=1,SPD,DRAWNULL),COLORBLACK;
输出收盘价线,黑色背景画白线,白色背景画黑线
3   LEVEL1HYBLOCK   返回品种所属一级研究行业    DRAWTEXT_FIX(ISLASTBAR,0,0,0,LEVEL1HYBLOCK);在屏幕左上角显示所属一级研究行业板块
4   TOKENWORD   返回用户在客户端设置的标识简字 DRAWTEXT_FIX(ISLASTBAR,0.1,0.5,0,TOKENWORD);
5   STRCAT6 将六个字符串相加成一个字符串  STRCAT6('多头','开仓','或者','空头','平仓','')
6   VARCAT6 将六个字符串相加成一个字符串,每个数据都进行序列运算  VARCAT6('多头',VAR2STR(C,2),' ',VAR2STR(O,2),' ',VAR2STR(MA(C,5),2))
7   UPDOWN  返回数据相对上一周期的大小   UPDOWN(X); 表示X相对上一周期的大小,-1为变小,0表示不变,1为变大
8   PARTLINE    条件颜色线   PARTLINE(VAL,COLOR,DIRECT); VAL表示数值,COLOR为RGB颜色函数,DIRECT为画法
9   DRAWNUMBER_DIF  画连续数字和字母,画等差数字和字母   DRAWNUMBER_DIF(COND,STYLE,START,NUM); 显示NUM个数字或字母
10  LOCALDAYNUM 本地日线数据个数    客户端本地已下载的该品种的日线数据个数(含当日)
11  IST0CODE    是否是T+0品种    沪深京市场中支持T+0交易的品种
12  FINANCE(88) 最近北上大额增仓日离现在的自然日天数  不支持序列
13  FINANCE(89) 最近北上大额减仓日离现在的自然日天数  不支持序列
14  FINANCE(90) 最近回购预案日离现在的自然日天数    不支持序列
15  FINANCE(91) 最近股权激励预案日离现在的自然日天数  不支持序列
16  FINANCE(99) 是否为注册制股票    沪深京品种
17  FINANCE(101)    用户在客户端设置的标识 若没有,则为0
18  FINANCE(102)    沪深京股票的发行价   此函数仅用于PC客户端
19  SAFESCORE   安全分(0-100)  通达信扫雷宝数据,仅供参考
20  DYNAINFO(28)    笼子买入价上限 适用于沪深京品种
21  DYNAINFO(29)    笼子卖出价下限 适用于沪深京品种
22  DYNAINFO(30)    上个交易日的开盘成交量(手)  适用于沪深京品种
23  DYNAINFO(31)    开盘集合竞价期间的未撤单涨停价买入金额 适用于沪深京品种
24  DYNAINFO(35)    最近3日的流通换手率(使用最新的自由流通股本) 转换成幅度需要乘100
25  DYNAINFO(36)    自由流通换手率(序列数据,每个周期的数据不同) 转换成幅度需要乘100
26  DYNAINFO(69)    月初至今涨幅  转换成幅度需要乘100
27  DYNAINFO(70)    一年涨幅    转换成幅度需要乘100
28  DYNAINFO(93)    昨成交额    对沪深京有效
29  DYNAINFO(94)    最近3日成交额 对沪深京有效
30  DYNAINFO(95)    昨封单额    昨封单额(对沪深京有效),若为负值,表示昨日为跌停状态
31  DYNAINFO(96)    前封单额    前日封单额(对沪深京有效),若为负值,表示前日为跌停状态
32  DYNAINFO(99)    主买净额    按主动性口径统计的净流入额(对沪深有效).报价界面行情数据
33  DYNAINFO(100)   主力净额    按主力口径统计的净流入额(对沪深有效).报价界面行情数据
34  DYNAINFO(101)   量涨速 (对沪深京有效),周期由涨速周期决定,一般为5分钟.报价界面行情数据
35  DYNAINFO(102)   分钟换手率   (对沪深京有效),周期由涨速周期决定,一般为5分钟.报价界面行情数据
36  DYNAINFO(103)   2分钟金额   (对沪深京有效).报价界面行情数据
37  DYNAINFO(104)   开盘抢筹    (对沪深京有效).报价界面行情数据
38  DYNAINFO(105)   委比  (对沪深京有效).报价界面行情数据
39  DYNAINFO(106)   总委买量    (对沪深有效).Level2报价界面行情数据
40  DYNAINFO(107)   总委卖量    (对沪深有效).Level2报价界面行情数据
41  DYNAINFO(108)   总撤买量    (对沪深有效).Level2报价界面行情数据
42  DYNAINFO(109)   总撤卖量    (对沪深有效).Level2报价界面行情数据
43  DYNAINFO(110)   L2逐笔成交数 (对沪深有效).Level2报价界面行情数据
44  DYNAINFO(111)   L2逐笔委托数 (对沪深有效).Level2报价界面行情数据
45  DYNAINFO(117)   量比(序列)  量比序列值
46  DYNAINFO(118)   52周最高价  该函数只适用于沪深京市场
47  DYNAINFO(119)   52周最低价  该函数只适用于沪深京市场
48  MAINZSHQ(M,N)   主要指数行情  M:0:当前品种所属指数 1:上证指数 2:深圳成指 3:创业板指 4:科创50指数 5:北证50指数 N:0现价 1:昨收 2:今开 3:最高 4:最低 5:成交额 6:上涨家数 7:下跌家数 8:涨幅 9:3日涨幅
49  TOTALHQINFO(N)  沪深京市场表现 N:1:上涨家数 2:下跌家数 3:涨停家数 4:跌停家数 5:昨日上涨家数 6:总成交金额(亿元)
50  TOTALMMORAMO(N) 沪深京买卖盘金额    N:1:买一总金额 2:卖一总金额 3:前5档或前10档(Level2时)的买盘总金额 4:前5档或前10档(Level2时)的卖盘总金额 5:总委买金额(Level2时) 6:总委卖金额(Level2时) 
单位为亿元,即时行情数据
########################################
----------------------------------------
序列行情函数

HIGH 最高价
返回该周期最高价.
用法:
 HIGH

H 最高价
返回该周期最高价.
用法:
 同HIGH

LOW 最低价
返回该周期最低价.
用法:
 LOW

L 最低价
返回该周期最低价.
用法:
 同LOW

CLOSE 收盘价
返回该周期收盘价.
用法:
 CLOSE 
如果是复权状态,序列行情数据为复权后的数据;
对于A股,若复权时需要当时的真实均价,可以用AMO/(VOL*100)来替代

C 收盘价
返回该周期收盘价.
用法:
 同CLOSE

VOL 成交量(手)
返回该周期成交量.
用法:
 VOL

V 成交量(手)
返回该周期成交量.
用法:
 同VOL

OPEN 开盘价
返回该周期开盘价.
用法:
 OPEN

O 开盘价
返回该周期开盘价.
用法:
 同OPEN

ADVANCE 上涨家数
返回该周期上涨家数.
用法:
 ADVANCE(本函数仅对沪深京指数有效,用于分时图数据无意义),若为880005/880006等指数,则为涨幅在0-3%的家数

DECLINE 下跌家数
返回该周期下跌家数.
用法:
 DECLINE(本函数仅对沪深京指数有效,用于分时图数据无意义),若为880005/880006等指数,则为涨幅在-3%-0的家数

AMOUNT 成交额(元)
返回该周期成交额.期货和期权无成交金额,返回持仓量
用法:
 AMOUNT

AMO 成交额(元)
返回该周期成交额.期货和期权无成交金额,返回持仓量
用法:
 AMO

ZSTJJ 分时图均价
返回该周期的分时图均价线,对于分时图周期指标有效.
用法:
 ZSTJJ

VOLINSTK 持仓量
返回该周期持仓量,对于期货和期权有意义.
用法:
 VOLINSTK

QHJSJ 结算价
返回该周期结算价,对于期货和期权有意义.
用法:
 QHJSJ

HKSHORTVOL 抛空量
返回该周期抛空量,对于港股有意义.
用法:
 HKSHORTVOL

DHIGH 不定周期最高价
返回该不定周期最高价,属于未来函数.
用法:
 DHIGH

DOPEN 不定周期开盘价
返回该不定周期开盘价,属于未来函数.
用法:
 DOPEN

DLOW 不定周期最低价
返回该不定周期最低价,属于未来函数.
用法:
 DLOW

DCLOSE 不定周期收盘价
返回该不定周期收盘价,属于未来函数.
用法:
 DCLOSE

DVOL 不定周期成交量
返回该不定周期成交量价,属于未来函数.
用法:
 DVOL

----------------------------------------
时间系统函数

PERIOD 周期类型
取得周期类型.
结果从0到13,依次分别是1/5/15/30/60分钟,日/周/月,多分钟,多日/季/年,5秒线/多秒线,13以上为自定义周期

DATE 日期
取得该周期从1900以来的的年月日.
用法:
 DATE
 例如函数返回1000101,表示2000年1月1日,DATE+19000000后才是真正的日期值,公式内容中请不要直接写8位长的日期数字

TIME 时间(时分)
取得该周期的时分,适用于日线以下周期
用法: 
 TIME
 函数返回有效值范围为(0000-2359)

TIME2 时间(时分秒)
取得该周期的时分秒,适用于日线以下周期.
用法: 
 TIME2
 函数返回有效值范围为(000000-235959)

YEAR 年份
取得该周期的年份.
用法:
 YEAR

注:YEAR关键字也可用于跨周期年线引用

MONTH 月份
取得该周期的月份.
用法:
 MONTH
 函数返回有效值范围为(1-12)

注:MONTH关键字也可用于跨周期月线引用

WEEKOFYEAR 年内星期
取得该周是年内第几个周.
用法:
 WEEKOFYEAR


WEEKDAY 星期
取得该周期的星期数.
用法:
 WEEKDAY
 函数返回有效值范围为(1,2,3,4,5,6,0)

DAYSTOTODAY 离今天的天数
取得该周期的日期离今天的天数.
用法:
 DAYSTOTODAY


DAY 日
取得该周期的日期.
用法:
 DAY
 函数返回有效值范围为(1-31)

注:DAY关键字也可用于跨周期日线引用

HOUR 小时
取得该周期的小时数.
用法:
 HOUR
 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为0

MINUTE 分钟
取得该周期的分钟数.
用法:
 MINUTE
 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为0

FROMOPEN 当前离开盘分钟数
求该品种当前时刻已开盘有多少分钟,若在开市时间之前,则为0分钟.
用法:
 FROMOPEN
 FROMOPEN.返回当前时刻距开盘有多少分钟(开市期间的相对时间).

TOTALFZNUM 总分钟数
求该品种的每天的总交易分钟数.
用法:
 TOTALFZNUM
 TOTALFZNUM.返回当前品种的每天的总交易分钟数,单位为分钟.

DATETODAY 转换天数
指定日期到1990.12.19的天数.
用法:
 DATETODAY(date)
 DATETODAY(date).返回date到1990.12.19的天数.有效日期为(901219-1341231)
例如:
 DATETODAY(901219)返回0.

DAYTODATE 转换日期
求1990.12.19后第若干天的日期.
用法:
 DAYTODATE(N)
 DAYTODATE(N).返回1990.12.19后第N天的日期.有效天数为(0-20000)
例如:
 DAYTODATE(0)返回901219.

TIMETOSEC 当日秒数
求指定时刻距0时有多长时间.
用法:
 TIMETOSEC(time)
 TIMETOSEC(time).返回time时刻距0时有多长时间,单位为秒.有效时间为(0-235959)
例如:
 TIMETOSEC(93000)返回34200.

SECTOTIME 转换时间
求0时后若干秒是什么时间.
用法:
 SECTOTIME(N)
 SECTOTIME(N).返回0时后N秒是什么时间.有效秒数为(0-86399)
例如:
 SECTOTIME(34200)返回93000.

MACHINEDATE 当前系统的日期
取得当前客户端机器从1900以来的的年月日,比如2016年10月1日为:01161001,MACHINEDATE+19000000后才是真正的日期值,公式内容中请不要直接写8位长的日期数字

MACHINETIME 当前系统的时间
取得当前客户端机器的时间,比如11:01:15时为110115

MACHINEWEEK 当前系统的星期
取得当前客户端机器为星期几(1,2,3,4,5,6,0)

ISJYDATE [新]A股行情已初始化
今日为A股交易日,行情已初始化

HQCRBK [新]行情区背景色
当前行情区背景色,黑色系为0,白色系为1

----------------------------------------
引用函数

DRAWNULL 无效数
返回无效数.
用法:
 DRAWNULL
例如:
 IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL)表示下跌时不画线

BACKSET 向前赋值
属于未来函数,将当前位置到若干周期前的数据设为1.
用法:
 BACKSET(X,N),若X非0,则将当前位置到N周期前的数值设为1.
 例如:
 BACKSET(CLOSE>OPEN,2)若收阳则将该周期及前一周期数值设为1,否则为0

ALIGNRIGHT 有效数据右对齐
有效数据右对齐.
用法:
 ALIGNRIGHT(X)有效数据向右移动,左边空出来的周期填充无效值
例如:TC:=IF(CURRBARSCOUNT=2 || CURRBARSCOUNT=5,DRAWNULL,C);XC:ALIGNRIGHT(TC);删除了两天的收盘价,并将剩余数据右移

BARSCOUNT 有效数据周期数
有效数据周期数.
用法:
 BARSCOUNT(X)第一个有效数据到当前的间隔周期数
注意:判断范围为指标或条件选股计算时公式使用的数据,如果给画线指标的数据少(比如没有按下箭头取更多K线)或给条件选股给的数据少,这个有效值也可能少

BARSTATUS 数据位置状态
BARSTATUS返回数据的位置信息,结果1表示第一根K线,2表示最后一根K线,0表示在中间位置.
例如:
 BARSTATUS=2表示当前是序列数据的最后一个.

CURRBARSCOUNT 到最后交易的周期
求到最后K线的周期数.从最新一根K线倒数编号,从1开始计数.
用法:
 CURRBARSCOUNT 


TOTALBARSCOUNT 总的周期数
求总的周期数.
用法:
 TOTALBARSCOUNT 求总的周期数


ISLASTBAR 是否最后一个周期
判断是否为最后一个周期.
用法:
 ISLASTBAR 判断是否为最后一个周期


BARSLAST 上一条件成立位置
上一次条件成立到当前的周期数.
用法:
 BARSLAST(X):上一次X不为0到现在的周期数
例如:
 BARSLAST(CLOSE/REF(CLOSE,1)>=1.1)表示上一个涨停板到当前的周期数

BARSLASTS 倒数第N次成立时距今的周期数
倒数第N次成立时距今的周期数.
用法:
 BARSLASTS(X,N):X倒数第N满足到现在的周期数,N支持变量

BARSNEXT 下一条件成立位置
属于未来函数,下一次条件成立到当前的周期数.
用法:
 BARSNEXT(X):下一次X不为0到现在的周期数
例如:
 BARSNEXT(CLOSE/REF(CLOSE,1)>=1.1)表示下一个涨停板到当前的周期数

BARSSINCEN N周期内首个条件成立位置
N周期内第一个条件成立到当前的周期数.
用法:
 BARSSINCEN(X,N):N周期内第一次X不为0到现在的周期数,N为常量
例如:
 BARSSINCEN(HIGH>10,10)表示10个周期内股价超过10元时到当前的周期数

BARSSINCE 首个条件成立位置
第一个条件成立到当前的周期数.
用法:
 BARSSINCE(X):第一次X不为0到现在的周期数
例如:
 BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数

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

BARSLASTCOUNT 条件连续成立次数
统计连续满足条件的周期数.
用法:
 BARSLASTCOUNT(X),统计连续满足X条件的周期数.
例如:
 BARSLASTCOUNT(CLOSE>OPEN)表示统计连续收阳的周期数

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日的第几个高价

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

LLVBARS 上一低点位置
求上一低点到当前的周期数.
用法:
 LLVBARS(X,N):求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计
例如:
 LLVBARS(LOW,20)求得20日最低点到当前的周期数

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

HHVLLV 阶段最高最低值
阶段最高最低值.
用法:
 HHVLLV(X,T,N1,N2),表示前N1日到前N2日时段内的X最高值(T=0时)或最低值(T=1时)。 若N1为0,表示从第一天开始,N2为0,表示到最后日止,当N1,N2非0时,N1应>=N2。

REVERSE 求相反数
求相反数.
用法:
 REVERSE(X)返回-X.
例如:
 REVERSE(CLOSE)返回-CLOSE

REF 日前的
引用若干周期前的数据.
用法:
 REF(X,A),引用A周期前的X值.A可以是变量.
例如:
 REF(CLOSE,BARSCOUNT(C)-1)表示第二根K线的收盘价.

REFX 日后的
属于未来函数,引用若干周期后的数据.
用法:
 REFX(X,A),引用A周期后的X值.A可以是变量.
例如:
 TT:=IF(C>O,1,2);
 REFX(CLOSE,TT);表示阳线引用下一周期的收盘价,阴线引用日后第二周期的收盘价.

REFV 日前的(平滑处理)
引用若干周期前的数据(平滑处理).
用法:
 REFV(X,A),引用A周期前的X值.A可以是变量.
例如:
 REFV(CLOSE,BARSCOUNT(C)-1)表示第二根K线的收盘价.

REFXV 日后的(平滑处理)
属于未来函数,引用若干周期后的数据(平滑处理).
用法:
 REFXV(X,A),引用A周期后的X值.A可以是变量.
例如:
 REFXV(CLOSE,1)表示下一周期的收盘价,在日线上就是明天收盘价

REFDATE 日
引用自1900年以来指定日期的数据.
用法:
 REFDATE(X,A),引用A日期的X值.
例如:
 REFDATE(CLOSE,1011208)表示2001年12月08日的收盘价

CALCSTOCKINDEX 指标引用
指标引用.
用法:CALCSTOCKINDEX(品种代码,指标名称,指标输出),返回该指标相应输出的计算值.
例如:
 CALCSTOCKINDEX('SH600000','KDJ',3)表示上证600000的KDJ指标第3个输出即J之值(注意:公式不能自己嵌套自己),第一个参数可在前面加SZ(深市),SH(沪市),BJ(京市),或市场_,,
CALCSTOCKINDEX('47_IFL0','MACD',2)表示IFL0品种的MACD指标第2个输出值.

注意:引用品种的对应周期的数据必须要先下载到本地

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

MULAR 累乘
求累乘.
用法:
 MULAR(X,N),统计N周期中X的乘积.N=0则从第一个有效值开始.
例如:
 MULAR(C/REF(C,1),0)表示统计从上市第一天以来的复利

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

FILTERX 反向过滤
反向过滤连续出现的信号.
用法:FILTERX(X,N):X满足条件后,将其前N周期内的数据置为0,N为常量.
例如:
 FILTERX(CLOSE>OPEN,5)查找阳线,前5天内出现过的阳线不被记录在内

TFILT 区间过滤
对指定时间段的数据进行过滤,该时间段以外的数据无效.
用法:
 TFILT(X,D1,M1,D2,M2)
例如:
 TFILT(CLOSE,1040101,1025,1040101,1345)表示在2004年1月1日的10:25到2004年1月1日的13:45的收盘价是有效的.
周期以日为基本单位的,分时为0有效.

TFILTER 信号过滤(多头)
过滤连续出现的信号.
用法:TFILTER(买入条件,卖出条件,N);过滤掉买入(卖出)信号发出后,下一个反向信号发出前的所有买入(卖出)信号.

N=1表示仅对买入信号过滤;
N=2表示仅对卖出信号过滤;
N=0表示对买入和卖出信号都过滤,返回1,2表示买入或卖出条件成立;
同一K线上只能有一个信号;

例如:
ENTERLONG:TFILTER(买入,卖出,1);
EXITLONG:TFILTER(买入,卖出,2);

TTFILTER 信号过滤(多空)
按照开平配对等原则过滤不合理的信号.
用法:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,N);

主要规则有:
1.连续的同方向指令只有第一个有效,其他的将被过滤;
2.交易信号必须配对出现(比如前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被过滤掉);

N=1表示仅对买入开仓信号过滤;
N=2表示仅对卖出平仓信号过滤;
N=3表示仅对卖出开仓信号过滤;
N=4表示仅对买入平仓信号过滤;
N=0表示都过滤,返回1,2,3,4分别表示对应的条件成立;
同一K线上只能有一个信号;

例如:
ENTERLONG:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,1);
EXITLONG:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,2);
ENTERSHORT:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,3);
EXITSHORT:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,4);

TR 真实波幅
求真实波幅, (最高-最低),(最高-昨收),(最低-昨收)三者绝对值中的最大值.
用法:
 TR,求真实波幅.
 例如:ATR:=MA(TR,10);
 表示求真实波幅的10周期均值


SUMBARS 累加到指定值的周期数
向前累加到指定值到现在的周期数.
用法:
 SUMBARS(X,A):将X向前累加直到大于等于A,返回这个区间的周期数,若所有的数据都累加后还不能达到A,则返回此时前面的总周期数.
 例如:SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数

SUMBARSX 累加到指定值的周期数
向前累加到指定值到现在的周期数.
用法:
 SUMBARSX(X,A):将X向前累加直到大于等于A,返回这个区间的周期数,若所有的数据都累加后还不能达到A,则返回无效值

MA 简单移动平均
返回简单移动平均
用法:
 MA(X,N):X的N日简单移动平均,算法(X1+X2+X3+...+Xn)/N,N支持变量

SMA 移动平均
返回移动平均
用法:
 SMA(X,N,M):X的N日移动平均,M为权重,如Y=(X*M+Y'*(N-M))/N

TMA 移动平均
返回移动平均
用法:
 TMA(X,A,B),A和B必须小于1,算法 Y=(A*Y'+B*X),其中Y'表示上一周期Y值.初值为X

MEMA 平滑移动平均
返回平滑移动平均
用法:
 MEMA(X,N):X的N日平滑移动平均,如Y=(X+Y'*(N-1))/N
 MEMA(X,N)相当于SMA(X,N,1)

EMA 指数移动平均
返回指数移动平均
用法:
 EMA(X,N):X的N日指数移动平均.算法:Y=(X*2+Y'*(N-1))/(N+1)
 EMA(X,N)相当于SMA(X,N+1,2),N支持变量

EXPMA 指数移动平均
与EMA的用法一致

EXPMEMA 指数平滑移动平均
返回指数平滑移动平均
用法:
 EXPMEMA(X,N):X的N日指数平滑移动平均,N不支持变量
 EXPMEMA同EMA(EXPMA)的差别在于周期不满足N时,返回无效值

WMA 加权移动平均
返回加权移动平均
用法:
 WMA(X,N):X的N日加权移动平均.算法:Yn=(1*X1+2*X2+...+n*Xn)/(1+2+...+n)

DMA 动态移动平均
求动态移动平均.
用法:
 DMA(X,A),求X的动态移动平均.
算法:Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须大于0且小于1.A支持变量.
例如:
 DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价

AMA 自适应均线
求自适应均线值.
用法:
 AMA(X,A),A为自适应系数,必须小于1.
算法:
 Y=Y'+A*(X-Y').初值为X

XMA 偏移移动平均
属于未来函数,返回偏移移动平均
用法:
 XMA(X,N):X的N日偏移移动平均,用到了当日以后N/2日的数据,N支持变量,只供内部测试使用

RANGE 介于某个范围之间
RANGE(A,B,C):A在B和C范围之间,B<A<C.
用法:
 RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0

CONST 取值设为常数
CONST(A):取A最后的值为常量.
用法:
 CONST(INDEXC)表示取指数现价

TOPRANGE 当前值是近多少周期内的最大值
当前值是近多少周期内的最大值.
用法:
 TOPRANGE(X):X是近多少周期内X的最大值
例如:
 TOPRANGE(HIGH)表示当前最高价是近多少周期内最高价的最大值

LOWRANGE 当前值是近多少周期内的最小值
当前值是近多少周期内的最小值.
用法:
 LOWRANGE(X):X是近多少周期内X的最小值
例如:
 LOWRANGE(LOW)表示当前最低价是近多少周期内最低价的最小值

FINDHIGH 寻找指定周期内的特定最大值
N周期前的M周期内的第T个最大值.
用法:
 FINDHIGH(VAR,N,M,T):VAR在N日前的M天内第T个最高价

FINDHIGHBARS 寻找指定周期内的特定最大值到当前的周期数
N周期前的M周期内的第T个最大值到当前周期的周期数.
用法:
 FINDHIGHBARS(VAR,N,M,T):VAR在N日前的M天内第T个最高价到当前周期的周期数

FINDLOW 寻找指定周期内的特定最小值
N周期前的M周期内的第T个最小值.
用法:
 FINDLOW(VAR,N,M,T):VAR在N日前的M天内第T个最低价

FINDLOWBARS 寻找指定周期内的特定最小值到当前的周期数
N周期前的M周期内的第T个最小值到当前周期的周期数.
用法:
 FINDLOWBARS(VAR,N,M,T):VAR在N日前的M天内第T个最低价到当前周期的周期数.

SPLIT 除权除息数据
除权除息数据
SPLIT(N,TYPE),取得之前第N次除息除权(送转股,分红)的除权除息数据,参数为0表示送转股的比例(送转/(送转+10)),1表示每股分红(分红/10)),例如:SPLIT(0,0)=0.5表示最近一次除权可能是10送10

SPLITBARS 除权除息到现在的周期数
除权除息到现在的周期数
SPLITBARS(N,TYPE),取得之前第N次除权除息到当前的周期数,参数为0表示送转股,1表示分红,2表示送转股或分红,例如:SPLITBARS(0,0)=0表示当天发生除权

DIVFACTOR 除权因子
除权因子
DIVFACTOR(TYPE),TYPE=0表示根据使用公式时带进来的复权方式(自适应) 1表示前复权 2表示后复权

ZTPRICE 计算涨停价
返回涨停价
用法:
 ZTPRICE(REF(CLOSE,1),0.1):按10%计算得到在昨收盘基础上的涨停价(对于复权序列K线,由于复权处理或不复权时的分红转增,根据前一天的收盘价计算结果可能与涨停价不符)
比如:
 ZTPrice(REF(QHJSJ,1),0.1),得到期货的涨停价

DTPRICE 计算跌停价
返回跌停价
用法:
 DTPRICE(REF(CLOSE,1),0.1):按10%计算得到在昨收盘基础上的跌停价(对于复权序列K线,由于复权处理或不复权时的分红转增,根据前一天的收盘价计算结果可能与跌停价不符)
比如:
 DTPrice(REF(QHJSJ,1),0.6),得到期货的跌停价(跌停比例为0.6的话)

TDXDLL1 第1号DLL
调用DLL中的函数.
用法:
 DLL1(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

TDXDLL2 第2号DLL
调用DLL中的函数.
用法:
 DLL2(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

TDXDLL3 第3号DLL
调用DLL中的函数.
用法:
 DLL3(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

TDXDLL4 第4号DLL
调用DLL中的函数.
用法:
 DLL4(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

TDXDLL5 第5号DLL
调用DLL中的函数.
用法:
 DLL5(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

TDXDLL6 第6号DLL
调用DLL中的函数.
用法:
 DLL6(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

TDXDLL7 第7号DLL
调用DLL中的函数.
用法:
 DLL7(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

TDXDLL8 第8号DLL
调用DLL中的函数.
用法:
 DLL8(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

TDXDLL9 第9号DLL
调用DLL中的函数.
用法:
 DLL9(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

TDXDLL10 第10号DLL
调用DLL中的函数.
用法:
 DLL10(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

USERFUNC0 DLL函数(无参数)
调用DLL中的函数,DLL中内部对应定义.
用法:
 USERFUNC0

USERFUNC1 DLL函数(1参数)
调用DLL中的函数,DLL中内部对应定义.
用法:
 USERFUNC1(param1)

USERFUNC2 DLL函数(2参数)
调用DLL中的函数,DLL中内部对应定义.
用法:
 USERFUNC2(param1,param2)

USERFUNC3 DLL函数(3参数)
调用DLL中的函数,DLL中内部对应定义.
用法:
 USERFUNC3(param1,param2,param3)

USERFUNC4 DLL函数(4参数)
调用DLL中的函数,DLL中内部对应定义.
用法:
 USERFUNC4(param1,param2,param3,param4)

----------------------------------------
板块字符函数

CODE 品种代码
返回品种代码.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,CODE);在屏幕左上角显示品种代码

STKNAME 品种名称
返回品种名称.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,STKNAME);在屏幕左上角显示品种名称

HYBLOCK 所属行业(字串)
返回品种所属行业(按系统设置为普通行业或研究行业).
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,HYBLOCK);在屏幕左上角显示所属行业板块

DYBLOCK 所属地域(字串)
返回品种所属地域.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,DYBLOCK);在屏幕左上角显示所属地域板块

MOREHYBLOCK 所属细分行业(字串)
返回品种所属细分行业.此函数仅用于PC客户端.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,MOREHYBLOCK);在屏幕左上角显示所属细分行业板块

LEVEL1HYBLOCK [新]所属一级研究行业(字串)
返回品种所属一级研究行业.此函数仅用于PC客户端.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,LEVEL1HYBLOCK);在屏幕左上角显示所属一级研究行业板块

MAINBUSINESS 主营构成(字串)
返回主营构成.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,MAINBUSINESS);在屏幕左上角显示主营构成,PC端有增强功能集的版本支持

GNBLOCK 所属概念板块(字串)
返回所属概念板块.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,GNBLOCK);在屏幕左上角显示所属概念板块

FGBLOCK 所属风格板块(字串)
返回所属风格板块.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,FGBLOCK);在屏幕左上角显示所属风格板块

ZSBLOCK 所属指数板块(字串)
返回所属指数板块.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,ZSBLOCK);在屏幕左上角显示所属指数板块

ZHBLOCK 所属组合板块(字串)
返回所属组合板块.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,ZHBLOCK);在屏幕左上角显示所属组合板块

ZDBLOCK 所属自定义板块(字串)
返回所属自定义板块.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,ZDBLOCK);在屏幕左上角显示所属自定义板块

GNBLOCKNUM 所属概念板块(个数)
返回所属概念板块的个数,比如:IF(GNBLOCKNUM>5,1,0);.

FGBLOCKNUM 所属风格板块(个数)
返回所属风格板块的个数.

ZSBLOCKNUM 所属指数板块(个数)
返回所属指数板块的个数.

ZHBLOCKNUM 所属组合板块(个数)
返回所属组合板块的个数.

ZDBLOCKNUM 所属自定义板块(个数)
返回所属自定义板块的个数

HYZSCODE 所属行业的板块指数代码
返回品种所属行业(按系统设置为普通行业或研究行业)的板块指数代码.比如: CALCSTOCKINDEX(HYZSCODE,'KDJ',3);

HYSYL 指数市盈率或个股所属行业的市盈率
返回指数市盈率或个股所属行业的市盈率.

HYSJL 指数市净率或个股所属行业的市净率
返回指数市净率或个股所属行业的市净率.

GNBKZSCODE 所属概念板块的指数代码
返回品种所属概念板块的指数代码,参数表示是第几个,支持1-60.
用于支持Level2行情的版本
比如: CALCSTOCKINDEX(GNBKZSCODE(1),'KDJ',3);

FGBKZSCODE 所属风格板块的指数代码
返回品种所属风格板块的指数代码,参数表示是第几个,支持1-60.
用于支持Level2行情的版本
比如: CALCSTOCKINDEX(FGBKZSCODE(1),'KDJ',3);

TOKENWORD [新]标识简字
返回用户在客户端设置的标识简字
用法:
 DRAWTEXT_FIX(ISLASTBAR,0.1,0.5,0,TOKENWORD);

INBLOCK 属于某板块
返回品种是否属于某板块.
用法:
 if(INBLOCK('沪深300'),x,y);

板块名称支持系统板块(上证A股,深证A股,沪深A股/全部A股,创业板,科创板,北证A股,自选股,板块指数等),地区,行业(按系统设置的通达信二级或研究二级),概念,风格,指数,组合和自定义板块,注意名称要准确(HY.和GN.和MY.开头就直接找行业和概念和自定义板块)

NAMELIKE 模糊匹配品种名称
品种名称是否以参数开头.
用法:
 if(NAMELIKE('ST'),x,y);

CODELIKE 模糊匹配品种代码
品种代码是否以参数开头.
用法:
 if(CODELIKE('600'),x,y);

NAMEINCLUDE 品种名称中包含
品种名称中是否包含参数.
用法:
 if(NAMEINCLUDE('文化'),x,y);

GETNAMEOFCODE 根据品种代码得到品种名称
根据品种代码和市场(比如深交所为0,上交所和板块指数为1,未知时可传-1),得到品种名称.
用法:
 DRAWTEXT_FIX(ISLASTBAR,0,0,0,GETNAMEOFCODE(1,HYZSCODE));

CON2STR 取值转为字符串
CON2STR(A,N):取A最后的值(非序列值)转为字符串,小数位数N.
用法:
 CON2STR(FINANCE(20),3)表示取营业收入,以3位小数转为字符串

VAR2STR 取值转为字符串(序列)
VAR2STR(A,N):取A的每一个值转为字符串,小数位数N. 
每个数据都进行序列运算,若用于多股选股,建议换用非系列计算CON2STR 
用法:
 VAR2STR(C,3)表示取收盘价,以3位小数转为字符串

STR2CON 字符串转为数字
STR2CON(S):将字符串S转化为数字.
用法:
 STR2CON('2365.02')表示将字符串'2365.02'转化为数字2365.02

STRLEN 得到字符串的长度
STRLEN(S):得到字符串S(非序列值)的长度.
用法:
 STRLEN('通达信')表示字符串'通达信'为6

STRCAT 字符串相加
STRCAT(A,B):将两个字符串A,B(非序列化)相加成一个字符串.
用法:
 STRCAT('多头','开仓')将两个字符串'多头','开仓'相加成一个字符串'多头开仓'

STRCAT6 [新]字符串相加
STRCAT6(A,B,C,D,E,F):将六个字符串A,B,C,D,E,F(非序列化)相加成一个字符串.
用法:
 STRCAT6('多头','开仓','或者','空头','平仓','')将六个字符串相加成一个字符串

STRSPACE 字符串加一空格
STRSPACE(A):字符串附带一空格

SUBSTR 字符串中取一部分
SUBSTR(S,A,N):取字符串S中从位置A取N长的子字符串,A从1开始

VARCAT 字符串相加(序列)
VARCAT(A,B):将两个字符串A,B相加成一个字符串.
每个数据都进行序列运算,若用于多股选股,建议换用STRCAT 
用法:
 DRAWTEXT(CLOSE>OPEN,LOW,VARCAT('多头',VAR2STR(C,2))) 将两个字符串相加成一个字符串并按条件显示出来

VARCAT6 [新]字符串相加(序列)
VARCAT6(A,B,C,D,E,F):将六个字符串A,B,C,D,E,F相加成一个字符串.
每个数据都进行序列运算,若用于多股选股,建议换用STRCAT6
用法:
 VARCAT6('多头',VAR2STR(C,2),' ',VAR2STR(O,2),' ',VAR2STR(MA(C,5),2))将六个字符串相加成一个字符串

STRCMP 字符串比较
STRCMP(A,B):比较两个字符串A,B是否相等.
用法:
 STRCMP(HYBLOCK,'房地产')将成分股行业字符串与'房地产'比较,是否相等,如果相等表示属于房地产板块

FINDSTR 字符串查找
FINDSTR(A,B):在字符串A中查找字符串B,如果找到返回1,否则返回0.
用法:
 FINDSTR('多头开仓','开仓')在字符串'多头开仓'中查找字符串'开仓',返回1

----------------------------------------
逻辑函数

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

LONGCROSS 持续周期后上穿
两条线维持一定周期后交叉.
 用法:LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0

UPDOWN [新]大小变化
返回数据相对上一周期的大小.
用法:
 UPDOWN(X)
 表示X相对上一周期的大小,-1为变小,0表示不变,1为变大

UPNDAY 连涨
返回周期数内是否连涨.
用法:
 UPNDAY(CLOSE,M)
 表示连涨M个周期,M为常量

DOWNNDAY 连跌
返回周期数内是否连跌.
用法:
 DOWNNDAY(CLOSE,M)
 表示连跌M个周期,M为常量

NDAY 连大
返回是否持续存在X>Y
用法:
 NDAY(CLOSE,OPEN,3)
 表示连续3日收阳线

EXIST 存在
是否存在.
例如:
 EXIST(CLOSE>OPEN,10) 
 表示10日内存在着阳线,第2个参数为常量(N应大于0)

EXISTR 存在
EXISTR(X,A,B):是否存在(前几日到前几日间).
例如:
 EXISTR(CLOSE>OPEN,10,5) 
 表示从前10日内到前5日内存在着阳线
 若A为0,表示从第一天开始,B为0,表示到最后日止,第2,3个参数为常量

EVERY 一直存在
一直存在.
例如:
 EVERY(CLOSE>OPEN,N) 
 表示N日内一直阳线(N应大于0,小于总周期数,N支持变量)

LAST 持续存在
LAST(X,A,B):持续存在.
例如:
 LAST(CLOSE>OPEN,10,5) 
 表示从前10日到前5日内一直阳线
 若A为0,表示从第一天开始,B为0,表示到最后日止

NOT 取反
求逻辑非.
用法:
 NOT(X)返回非X,即当X=0时返回1,否则返回0
例如:
 NOT(ISUP)表示平盘或收阴

ISVALID 判断有效值
判断是否是有效数值.


----------------------------------------
选择函数

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

IFF 条件判断
用法同IF一样

IFN 条件反判断
根据条件求不同的值,同IF判断相反.
用法:
 IFN(X,A,B)若X不为0则返回B,否则返回A
例如:
 IFN(CLOSE>OPEN,HIGH,LOW)表示该周期收阴则返回最高值,否则返回最低值

IFC 条件判断,可中止
根据条件执行不同的语句(根据序列的最后一个数值来判断).
用法:
 IFC(X,A,B)若X不为0则执行A,否则执行B.IFC与IF函数的区别:IFC根据X的值来选择性执行A或B表达式,并且只根据X序列的最后一个数据来判断.
例如:
 IFC(CLOSE>OPEN,HIGH,TESTSKIP(1));L;表示当日收阳则返回最高值,并执行下一句"L;",否则退出公式计算

VALUEWHEN 条件跟随
VALUEWHEN(COND,X) 
当COND条件成立时,取X的当前值,否则取VALUEWHEN的上个值.

TESTSKIP 是否就此返回
TESTSKIP(A):满足A则直接返回.
用法:
 TESTSKIP(A) 
 表示如果满足条件A则该公式直接返回,不再计算接下来的表达式 注意:A为非序列数据,只取最后一个数据

----------------------------------------
数学函数

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

MIN 较小值
求最小值.
用法:
 MIN(A,B)返回A和B中的较小值
例如:
 MIN(CLOSE,OPEN)返回开盘价和收盘价中的较小值

MAX6 较大值
求6个参数中的最大值.
用法:
 MAX6(A,B,C,D,E,F)返回最大值

MIN6 较小值
求6个参数中的最小值.
用法:
 MIN6(A,B,C,D,E,F)返回最小值

ACOS 反余弦
反余弦值.
用法:
 ACOS(X)返回X的反余弦值

ASIN 反正弦
反正弦值.
用法:
 ASIN(X)返回X的反正弦值

ATAN 反正切
反正切值.
用法:
 ATAN(X)返回X的反正切值

COS 余弦
余弦值.
用法:
 COS(X)返回X的余弦值

SIN 正弦
正弦值.
用法:
 SIN(X)返回X的正弦值

TAN 正切
正切值.
用法:
 TAN(X)返回X的正切值

EXP 指数
指数.
用法:
 EXP(X)为e的X次幂
例如:
 EXP(CLOSE)返回e的CLOSE次幂

LN 自然对数
求自然对数.
用法:
 LN(X)以e为底的对数
例如:
 LN(CLOSE)求收盘价的对数

LOG 对数
求10为底的对数.
用法:
 LOG(X)取得X的对数
例如:
 LOG(100)等于2

SQRT 开方
开平方.
用法:
 SQRT(X)为X的平方根
例如:
 SQRT(CLOSE)收盘价的平方根

ABS 绝对值
求绝对值.
用法:
 ABS(X)返回X的绝对值
例如:
 ABS(-34)返回34

POW 乘幂
乘幂.
用法:
 POW(A,B)返回A的B次幂
例如:
 POW(CLOSE,3)求得收盘价的3次方

CEILING 向上舍入
向上舍入.
用法:
 CEILING(A)返回沿A数值增大方向最接近的整数
例如:
 CEILING(12.3)求得13,CEILING(-3.5)求得-3

FLOOR 向下舍入
向下舍入.
用法:
 FLOOR(A)返回沿A数值减小方向最接近的整数
例如:
 FLOOR(12.3)求得12,FLOOR(-3.5)求得-4

INTPART 整数部分
取整.
用法:
 INTPART(A)返回沿A绝对值减小方向最接近的整数
例如:
 INTPART(12.3)求得12,INTPART(-3.5)求得-3

BETWEEN 介于
介于.
用法:
 BETWEEN(A,B,C)表示A处于B和C之间时返回1(B<=A<=C或C<=A<=B),否则返回0
例如:
 BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间

FRACPART 小数部分
小数部分.
用法:
 FRACPART(X),返回X的小数部分

ROUND 四舍五入
四舍五入.
用法:
 ROUND(X),返回X四舍五入到个位的数值

ROUND2 四舍五入
四舍五入.
用法:
 ROUND2(X,N),返回X四舍五入到N位小数的数值
由于精度问题,数据越大误差可能越大
注:所有数值类型输出在一个公式内都是由此公式编辑器右上方[显示小数]的设置来决定的

SIGN 求符号值
取符号.
用法:
 SIGN(X),返回X的符号.当X>0,X=0,X<0分别返回1,0,-1

SGN 求符号值
用法同SIGN

MOD 模
取模.
用法:
 MOD(M,N),返回M关于N的模(M除以N的余数)
例如:
 MOD(5,3)返回2 注意:公式系统对有效数字部分有要求,如果数字部分超过7-8位,会有精度丢失

RAND 随机正整数
取随机数.
用法:
 RAND(N),返回一个范围在1-N的随机整数

----------------------------------------
统计函数

AVEDEV 平均绝对偏差
AVEDEV(X,N) 返回平均绝对偏差

DEVSQ 数据偏差平方和
DEVSQ(X,N) 返回数据偏差平方和

FORCAST 线性回归预测值
FORCAST(X,N) 返回线性回归预测值,N支持变量

SLOPE 线性回归斜率
SLOPE(X,N) 返回线性回归斜率,N支持变量

STD 估算标准差
STD(X,N) 返回估算标准差,N支持变量

STDP 总体标准差
STDP(X,N) 返回总体标准差,N支持变量

STDDEV 标准偏差
STDDEV(X,N) 返回标准偏差

VAR 估算样本方差
VAR(X,N) 返回估算样本方差,N支持变量

VARP 总体样本方差
VARP(X,N) 返回总体样本方差,N支持变量

COVAR 协方差
COVAR(X,Y,N) 返回X和Y的N周期的协方差,N支持变量

RELATE 相关系数
RELATE(X,Y,N) 返回X和Y的N周期的相关系数,N支持变量

BETA β(Beta)系数
β(Beta)系数
BETA(N) 返回当前证券N周期收益与对应大盘指数收益相比的贝塔系数,N支持变量

(对应指数的数据必须要先下载到本地)

BETAEX 相关放大系数
BETAEX(X,Y,N) 返回X与Y的N周期的相关放大系数,N支持变量

IVOLAT 期权波动率
IVOLAT(N,M) 返回期权波动率 N表示计算周期 M表示类型,0:标的证券的历史波动率 1:隐含波动率

BLOCKSETNUM 板块股个数
BLOCKSETNUM.返回板块的股票个数
用法:
 BLOCKSETNUM(板块名称),
返回该板块的股票个数.
板块名称支持系统板块(上证A股,深证A股,沪深A股/全部A股,创业板,科创板,北证A股,自选股,板块指数等),地区,行业(按系统设置的通达信二级或研究二级),概念,风格,指数,组合和自定义板块,
注意名称要准确(HY.和GN.和MY.开头就直接找行业和概念和自定义板块),
第一个参数也可以是HYBLOCK等,某板块指数的STKNAME

HORCALC 板块统计
HORCALC.横向统计
用法:
 HORCALC(板块名称,数据项,计算方式,权重),
数据项:
 100-HIGH,101-OPEN,102-LOW,103-CLOSE,104-VOL,105-涨幅,106-成交额,107-上涨的涨幅,108-下跌的涨幅,109-上涨的成交额,110-下跌的成交额
计算方式:
 0-累加,1-排名次(当前品种的数据在这个板块各成份股的数据中排名次),2-平均值
平均值权重:
 0-总股本,1-流通股本,2-等同权重,3-流通市值,4-总市值.
板块名称支持系统板块(上证A股,深证A股,沪深A股/全部A股,创业板,科创板,北证A股,自选股,板块指数等),地区,行业(按系统设置的通达信二级或研究二级),概念,风格,指数,组合和自定义板块,注意名称要准确(HY.和GN.和MY.开头就直接找行业和概念和自定义板块,此函数计算有较大耗时,请慎用于画线指标),
第一个参数也可以是HYBLOCK等,某板块指数的STKNAME

INSORT 板块指标排序
INSORT.横向统计
用法:INSORT(板块名称,指标名称,指标输出,升降序),
返回该股在板块成份股中某项指标输出数值的排序序号
例如:
 INSORT('房地产','KDJ',3,0)表示该股的KDJ指标第三个输出即J之值在房地产板块中的排名,
最后一个参数为0表示降序排名.
板块名称支持系统板块(上证A股,深证A股,沪深A股/全部A股,创业板,科创板,北证A股,自选股,板块指数等),地区,行业(按系统设置的通达信二级或研究二级),概念,风格,指数,组合和自定义板块,注意名称要准确(HY.和GN.和MY.开头就直接找行业和概念和自定义板块,此函数计算有较大耗时,请慎用于画线指标,画线时,若数据个数超过6000个,不进行函数计算),
第一个参数也可以是HYBLOCK等,某板块指数的STKNAME;
对于支持Level2行情的版本,若第一个参数为HYINSORT,则表示其所属行业板块指数在所有行业板块指数中的排名;若为GNINSORT.?或FGINSORT.?,则表示其所属的第?个概念或风格板块指数在所有概念或风格指数中的排名,若为CLOUDGPS,则为用户提交到云端的板块(算法交易版本)

INSUM 板块指标统计
INSUM.横向统计
用法:INSUM(板块名称,指标名称,指标输出,计算类型),
返回板块各成分该指标相应输出按计算类型得到的计算值.计算类型:0-累加,1-平均数,2-最大值,3-最小值,4-最大值所处的品种序号,5-最小值所处的品种序号.
例如:
 INSUM('房地产','KDJ',3,0)表示房地产板块中所有股票的KDJ指标第三个输出即J之值的累加值.
板块名称支持系统板块(上证A股,深证A股,沪深A股/全部A股,创业板,科创板,北证A股,自选股,板块指数等),地区,行业(按系统设置的通达信二级或研究二级),概念,风格,指数,组合和自定义板块,注意名称要准确(HY.和GN.和MY.开头就直接找行业和概念和自定义板块,此函数计算有较大耗时,请慎用于画线指标,画线时,若数据个数超过6000个,不进行函数计算),
第一个参数也可以是HYBLOCK等,某板块指数的STKNAME,
若为MYGNBK和MYFGBK(Level2行情的版本),则为它所属的一些概念板块指数和风格板块指数,若为CLOUDGPS,则为用户提交到云端的板块(算法交易版本),例如:INSUM('MYGNBK','KDJ',3,4)

----------------------------------------
形态函数

COST 成本分布
成本分布情况.
用法:
 COST(10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上,为套牢盘
该函数仅对日线分析周期有效

PEAK 波峰值
属于未来函数,前M个ZIG转向波峰值.
用法:
 PEAK(K,N,M)表示之字转向ZIG(K,N)的前M个波峰的数值,M必须大于等于1
例如:
 PEAK(1,5,1)表示%5最高价ZIG转向的上一个波峰的数值

PEAKBARS 波峰位置
属于未来函数,前M个ZIG转向波峰到当前距离.
用法:
 PEAKBARS(K,N,M)表示之字转向ZIG(K,N)的前M个波峰到当前的周期数,M必须大于等于1
例如:
 PEAKBARS(0,5,1)表示%5开盘价ZIG转向的上一个波峰到当前的周期数

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函数相同

TROUGH 波谷值
属于未来函数,前M个ZIG转向波谷值.
用法:
 TROUGH(K,N,M)表示之字转向ZIG(K,N)的前M个波谷的数值,M必须大于等于1
例如:
 TROUGH(2,5,2)表示%5最低价ZIG转向的前2个波谷的数值

TROUGHBARS 波谷位置
属于未来函数,前M个ZIG转向波谷到当前距离.
用法:
 TROUGHBARS(K,N,M)表示之字转向ZIG(K,N)的前M个波谷到当前的周期数,M必须大于等于1
例如:
 TROUGHBARS(2,5,2)表示%5最低价ZIG转向的前2个波谷到当前的周期数

WINNER 获利盘比例
获利盘比例.
用法:
 WINNER(CLOSE),表示以当前收市价卖出的获利盘比例,例如返回0.1表示10%获利盘;WINNER(10.5)表示10.5元价格的获利盘比例
该函数仅对日线分析周期有效

LWINNER 近期获利盘比例
近期获利盘比例.
用法: LWINNER(5,CLOSE),表示最近5天的那部分成本以当前收市价卖出的获利盘比例
例如:
 返回0.1表示10%获利盘

PWINNER 远期获利盘比例
远期获利盘比例.
用法: PWINNER(5,CLOSE),表示5天前的那部分成本以当前收市价卖出的获利盘比例
例如:
 返回0.1表示10%获利盘

COSTEX 区间成本
区间成本.
用法:
 例如COSTEX(CLOSE,REF(CLOSE,1)),表示近两日收盘价格间筹码的成本
该函数仅对日线分析周期有效

PPART 远期成本分布比例
远期成本分布比例.
用法:
 PPART(10),表示10个周期前的成本占总成本的比例,0.2表示20%

ZIG 之字转向
属于未来函数,之字转向.
用法:
 ZIG(K,N),当价格变化量超过N%时转向,K表示0:开盘价,1:最高价,2:最低价,3:收盘价,其余:数组信息
例如:
 ZIG(3,5)表示收盘价的5%的ZIG转向

ZIGA 之字转向
属于未来函数,之字转向.
用法:
 ZIGA(K,X),当价格变化超过X时转向,K表示0:开盘价,1:最高价,2:最低价,3:收盘价,其余:数组信息
例如:
 ZIGA(3,1.5)表示收盘价变化1.5元的ZIGA转向

NEWSAR 新抛物转向
新抛物转向函数
用法:
 NewSAR(N,S),N为起始统计天数,S为加速因子
例如:
 NewSAR(10,2)表示从10日后开始统计,加速因子为2的抛物转向

LFS 锁定因子
LFS    返回个股锁定因子

----------------------------------------
指数标的函数

INDEXA 大盘的成交额
INDEXA    返回对应的大盘成交额,分别是上证指数,深证成指,科创50,创业板指,北证50,港股为恒生指数,国内期货为对应的L9指数品种(持仓量)

(对应指数的数据必须要先下载到本地)

INDEXADV 大盘的上涨家数
INDEXADV  返回对应的上涨家数,分别是上证指数,深证成指,科创50,创业板指,北证50

(对应指数的数据必须要先下载到本地)

INDEXDEC 大盘的下跌家数
INDEXDEC  返回对应的下跌家数,分别是上证指数,深证成指,科创50,创业板指,北证50

(对应指数的数据必须要先下载到本地)

INDEXC 大盘的收盘价
INDEXC    返回对应的大盘收盘价,分别是上证指数,深证成指,科创50,创业板指,北证50,港股为恒生指数,国内期货为对应的L9指数品种

(对应指数的数据必须要先下载到本地) 
注:多日线周期(除缺省45日),需要对应数据日期一致

INDEXH 大盘的最高价
INDEXH    返回对应的大盘最高价,分别是上证指数,深证成指,科创50,创业板指,北证50,港股为恒生指数,国内期货为对应的L9指数品种

(对应指数的数据必须要先下载到本地)

INDEXL 大盘的最低价
INDEXL    返回对应的大盘最低价,分别是上证指数,深证成指,科创50,创业板指,北证50,港股为恒生指数,国内期货为对应的L9指数品种

(对应指数的数据必须要先下载到本地)

INDEXO 大盘的开盘价
INDEXO    返回对应的大盘开盘价,分别是上证指数,深证成指,科创50,创业板指,北证50,港股为恒生指数,国内期货为对应的L9指数品种

(对应指数的数据必须要先下载到本地)

INDEXV 大盘的成交量
INDEXV    返回对应的大盘成交量,分别是上证指数,深证成指,科创50,创业板指,北证50,港股为恒生指数,国内期货为对应的L9指数品种

(对应指数的数据必须要先下载到本地)

HY_INDEXA 行业指数的成交额
HY_INDEXA    返回对应的行业指数成交额,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持

(对应指数的数据必须要先下载到本地)

HY_INDEXADV 行业指数的上涨家数
HY_INDEXADV  返回对应的行业指数上涨家数,如果没有通达信板块指数,则不支持

(对应指数的数据必须要先下载到本地)

HY_INDEXDEC 行业指数的下跌家数
HY_INDEXDEC  返回对应的行业指数下跌家数,如果没有通达信板块指数,则不支持

(对应指数的数据必须要先下载到本地)

HY_INDEXC 行业指数的收盘价
HY_INDEXC    返回对应的行业指数收盘价,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持

(对应指数的数据必须要先下载到本地)

HY_INDEXH 行业指数的最高价
HY_INDEXH    返回对应的行业指数最高价,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持

(对应指数的数据必须要先下载到本地)

HY_INDEXL 行业指数的最低价
HY_INDEXL    返回对应的行业指数最低价,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持

(对应指数的数据必须要先下载到本地)

HY_INDEXO 行业指数的开盘价
HY_INDEXO    返回对应的行业指数开盘价,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持

(对应指数的数据必须要先下载到本地)

HY_INDEXV 行业指数的成交量
HY_INDEXV    返回对应的行业指数成交量,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持

(对应指数的数据必须要先下载到本地)

DPZSCODE 所属的大盘指数的代码
所属的大盘指数的代码.比如: CALCSTOCKINDEX(DPZSCODE,'KDJ',3);

DPZSNAME 所属的大盘指数的名称
所属的大盘指数的名称.比如: DRAWTEXT_FIX(ISLASTBAR,0,0,0,DPZSNAME);

UNDERCODE 对应标的的代码
返回对应标的的代码,对于股票期权品种和可转债品种等有效.
比如: CALCSTOCKINDEX(UNDERCODE,'KDJ',3);

UNDERLYC 对应标的的收盘价
UNDERLYC 返回对应标的的收盘价,对于股票期权品种和可转债品种等有效

(对应指数的数据必须要先下载到本地)

----------------------------------------
资金流向函数

TRADENUM 总成交单数
TRADENUM
逐笔成交总单数,沪深品种的资金流向,仅日线以上周期,用于特定版本

TRADEINNUM 逐笔买入成交单数
TRADEINNUM
逐笔买入成交单数,相当于L2_VOLNUM(0,0)+L2_VOLNUM(1,0),沪深品种的资金流向,仅日线以上周期,用于特定版本

TRADEOUTNUM 逐笔卖出成交单数
TRADEOUTNUM
逐笔卖出成交单数,相当于L2_VOLNUM(0,1)+L2_VOLNUM(1,1),沪深品种的资金流向,仅日线以上周期,用于特定版本

LARGETRDINNUM 逐笔买入大单成交单数
LARGETRDINNUM
逐笔买入大单成交单数,相当于L2_VOLNUM(0,0),沪深品种的资金流向,仅日线以上周期,用于特定版本

LARGETRDOUTNUM 逐笔卖出大单成交单数
LARGETRDOUTNUM
逐笔卖出大单成交单数,相当于L2_VOLNUM(0,1),沪深品种的资金流向,仅日线以上周期,用于特定版本

L2_VOLNUM 单数分档
L2_VOLNUM(N,M)
单数分档,按: N(0--1):(超大+大)/(中+小),M(0--1):买/卖二类,沪深品种的资金流向,仅日线以上周期,用于特定版本

L2_VOL 成交量分档
L2_VOL(N,M)
成交量分档,按: N(0--3):超大/大/中/小四档处理,M(0--3):买入/卖出/主买/主卖四类,沪深品种的资金流向,仅日线以上周期,用于特定版本

L2_AMO 成交额分档
L2_AMO(N,M)
成交额分档,按: N(0--3):超大/大/中/小四档处理,M(0--3):买入/卖出/主买/主卖四类,沪深品种的资金流向,仅日线以上周期,用于特定版本

CUR_BUYORDER 总委买量
CUR_BUYORDER
总委买量,序列数据,专业版等(资金流向功能)沪深京品种行情专用

CUR_SELLORDER 总委卖量
CUR_SELLORDER
总委卖量,序列数据,专业版等(资金流向功能)沪深京品种行情专用

ACTINVOL 主动买成交量
ACTINVOL
主动买成交量,相当于L2_VOL(0,2)+L2_VOL(1,2)+L2_VOL(2,2)+L2_VOL(3,2),沪深品种的资金流向,仅日线以上周期,用于特定版本

ACTOUTVOL 主动卖成交量
ACTOUTVOL
主动卖成交量,相当于L2_VOL(0,3)+L2_VOL(1,3)+L2_VOL(2,3)+L2_VOL(3,3),沪深品种的资金流向,仅日线以上周期,用于特定版本

LARGEINTRDVOL 逐笔买入大单成交量
LARGEINTRDVOL
逐笔买入大单成交量,相当于L2_VOL(0,0)+L2_VOL(1,0),沪深品种的资金流向,仅日线以上周期,用于特定版本

LARGEOUTTRDVOL 逐笔卖出大单成交量
LARGEOUTTRDVOL
逐笔卖出大单成交量,相当于L2_VOL(0,1)+L2_VOL(1,1),沪深品种的资金流向,仅日线以上周期,用于特定版本

BIDORDERVOL 累计总有效委买量
BIDORDERVOL
累计总有效委买量,专业版等(资金流向功能)沪深京品种行情专用 累计总有效委买量-累计总有效撤买量=总买+总成交量

BIDCANCELVOL 累计总有效撤买量
BIDCANCELVOL
累计总有效撤买量,专业版等(资金流向功能)沪深京品种行情专用  累计总有效委买量-累计总有效撤买量=总买+总成交量

AVGBIDPX 最新委买均价
AVGBIDPX
专业版等(资金流向功能)沪深京品种行情专用:最新委买均价

OFFERORDERVOL 累计总有效委卖量
OFFERORDERVOL
累计总有效委卖量,专业版等(资金流向功能)沪深京品种行情专用  累计总有效委卖量-累计总有效撤卖量=总卖+总成交量

OFFERCANCELVOL 累计总有效撤卖量
OFFERCANCELVOL
累计总有效撤卖量,专业版等(资金流向功能)沪深京品种行情专用  累计总有效委卖量-累计总有效撤卖量=总卖+总成交量

AVGOFFERPX 最新委卖均价
AVGOFFERPX
专业版等(资金流向功能)沪深京品种行情专用:最新委卖均价

----------------------------------------
绘图函数

PLOYLINE 折线段
绘制折线段.
用法:
 PLOYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接.
例如:
 PLOYLINE(HIGH>=HHV(HIGH,20),HIGH)表示在创20天新高点之间画折线

DRAWLINE 直线段
属于未来函数,绘制直线段.
用法:
 DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND),当COND1条件满足时,在PRICE1位置画直线起点,当COND2条件满足时,在PRICE2位置画直线终点,EXPAND为1表示是延长类型.
例如:
 DRAWLINE(HIGH>=HHV(HIGH,20),HIGH,LOW<=LLV(LOW,20),LOW,1)表示在创20天新高与创20天新低之间画直线并且向右延长.

DRAWSL 斜线
绘制斜线.
用法:
 DRAWSL(COND,PRICE,SLOPE,LEN,DIRECT),当COND条件满足时,在PRICE位置画斜线,SLOPE为斜率,LEN为长度,DIRECT为0向右延伸,1向左延伸,2双向延伸.若COND太容易满足,此函数可能会很耗时
注意:
1.K线间的纵向高度差为SLOPE;
2.SLOPE为0时,为水平线;
3.SLOPE为10000时,为垂直线,LEN为向上的像素高度,DIRECT表示向上或向下延伸;
4.SLOPE和LEN支持变量;

PARTLINE [新]条件颜色线
条件颜色线.
用法:
 PARTLINE(VAL,COLOR,DIRECT),VAL表示数值,COLOR为RGB颜色函数,DIRECT为画法(0表示颜色从当前数据开始,1表示颜色从上个数据到当前数据)
例如:PARTLINE(C,IF(C=O,RGB(192,192,192),IF(C>O,RGB(255,0,0),RGB(0,128,0))),0),LINETHICK3;

DRAWKLINE K线
DRAWKLINE(HIGH,OPEN,LOW,CLOSE).
用法:
 以HIGH为最高价,OPEN为开盘价,LOW为最低,CLOSE收盘画K线

STICKLINE 柱状线
绘制柱线.
用法:
 STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH(4为标准间距),EMPTY为0画实心柱,-1画虚线空心柱,1画实线空心柱,
2从中间向上下画实线柱(满占,PRICE1无用),3表示从中间向上下画实线柱(半满占,PRICE1无用).
例如:
 STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.8,1)表示画K线中阳线的空心柱体部分.

DRAWICON 图标
绘制小图标.
用法:
 DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标(TYPE为1--51),可在后面加DRAWABOVE,图标向下靠齐.
例如:
 DRAWICON(CLOSE>OPEN,LOW,1)表示当收阳时在最低价位置画1号图标.

DRAWTEXT 文字
1.显示文字;2.在指标排序中显示字符串栏目.
用法:
 DRAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT.
例如:
 DRAWTEXT(CLOSE/OPEN>1.08,LOW,'大阳线')表示当日实体阳线大于8%时在最低价位置显示'大阳线'字样.若文字中含有&,则进行折行.最多只能显示250个字符.若想在输出线行也显示的话,请在前面设置输出线名;如果只想显示在输出线行,在语句后面加NODRAW

DRAWTEXT_FIX 定点文字
1.固定位置显示文字;2.在指标排序中显示字符串栏目.
用法:
 DRAWTEXT_FIX(COND,X,Y,TYPE,TEXT),COND中一般需要加ISLASTBAR,当COND条件满足时,在当前指标窗口内(X,Y)位置书写文字TEXT,X,Y为书写点在窗口中相对于左上角的百分比,TYPE:0为左对齐,1为右对齐.
例如:
 DRAWTEXT_FIX(ISLASTBAR AND CLOSE/OPEN>1.08,0.5,0.5,0,'大阳线')表示最后一个交易日实体阳线大于8%时在窗口中间位置显示'大阳线'字样.若文字中含有&,则进行折行.最多只能显示250个字符

DRAWNUMBER 画数字
画出数字.
用法:
 DRAWNUMBER(COND,PRICE,DATA),当COND条件满足时,在PRICE位置书写DATA.
例如:
 DRAWNUMBER(CLOSE/OPEN>1.08,LOW,C)表示当日实体阳线大于8%时在最低价位置显示收盘价.

DRAWNUMBER_FIX 画定点数字
固定位置显示数字.
用法:
 DRAWNUMBER_FIX(COND,X,Y,TYPE,DATA),COND中一般需要加ISLASTBAR,当COND条件满足时,在当前指标窗口内(X,Y)位置书写DATA,X,Y为书写点在窗口中相对于左上角的百分比,
TYPE:0为左对齐,1为右对齐.
例如:
 DRAWNUMBER_FIX(ISLASTBAR AND CLOSE/OPEN>1.08,0.5,0.5,0,C)表示最后一个交易日实体阳线大于8%时在窗口中间位置显示收盘价.

DRAWNUMBER_DIF [新]画连续数字和字母
画等差数字和字母.
用法:
 DRAWNUMBER_DIF(COND,STYLE,START,NUM),当COND条件满足时,用STYLE方式书写数字或字母START(0-9或11-36(显示为A-Z)),后面依次显示增加1的内容,显示NUM个.
STYLE,0:普通 1:加引线 2:加引线加框 后面可以加入颜色或DRAWABOVE等,建议用于主图指标

RGB 自定色
将自定颜色作为数值输出.
用法:
 RGB(Red,Green,Blue),输出为0XBBGGRR,参数使用十进制数,范围为0至255,以最近一个周期数值为准.
例如:
 RGB(0,0,255)输出结果为16进制的0XFF0000.

DRAWBAND 画带状线
画出带状线.
用法:
 DRAWBAND(VAL1,COLOR1,VAL2,COLOR2),当VAL1>VAL2时,在VAL1和VAL2之间填充COLOR1;当VAL1<VAL2时,填充COLOR2,这里的颜色均使用RGB函数计算得到.
例如:
 DRAWBAND(OPEN,RGB(0,224,224),CLOSE,RGB(255,96,96));

DRAWBMP 画图片
画出图片.
用法:
 DRAWBMP(COND,PRICE,'Bmp文件名'),当条件COND满足时,在PRICE位置画T0002目录下面的signals目录下面的"Bmp文件名";
例如:
 DRAWBMP(O>C,CLOSE,'高开');

DRAWGBK 填充背景
填充背景.
用法:
 DRAWGBK(COND,COLOR1,COLOR2,是否横向渐进,'BMP或PNG文件名',是否拉升BMP或PNG文件名),当条件COND满足时填充背景,如果COLOR1和COLOR2有一个不为0,则以COLOR1到COLOR2的渐变色为背景,
否则画T0002目录下面的signals目录下面的'Bmp或Png文件名'(优先使用BMP文件).
例如:
 DRAWGBK(ISLASTBAR AND O>C,RGB(0,255,0),RGB(255,0,0),0,'背景图',0);

DRAWGBK_DIV 填充部分背景
填充部分背景.
用法:
 DRAWGBK_DIV(COND,COLOR1,COLOR2,填色方式,填充范围),填充满足COND条件的背景区域
填色方式:0是上下渐进 1是左右渐进 2是用COLOR1画框线 3是用COLOR1画框线,用COLOR2填充 10-20时表示透明度选择,用COLOR1填充
填充范围:0为整个区域 1为最高最低区(主图) 2为开盘收盘区(主图) 
例如:
 DRAWGBK_DIV(C>O,RGB(0,255,0),RGB(255,0,0),0,0);

DRAWRECTREL 相对位置上画矩形
相对位置上画矩形.
用法:
 DRAWRECTREL(LEFT,TOP,RIGHT,BOTTOM,COLOR),以图形窗口(LEFT,TOP)为左上角,(RIGHT,BOTTOM)为右下角绘制矩形,坐标单位是窗口沿水平和垂直方向的1/1000,
取值范围是0—999,超出范围则可能显示在图形窗口外,矩形中间填充颜色COLOR,COLOR为0表示不填充.
例如:
 DRAWRECTREL(0,0,500,500,RGB(255,255,0)),NOFRAME;表示在图形最左上部1/4位置用黄色绘制矩形.NOFRAME表示不加边框

----------------------------------------
关联财务函数

SETCODE 市场类型
SETCODE 市场类型
0:深圳 1:上海 2:北京 47:中金所期货 28:郑州商品 29:大连商品 30:上海商品,27:香港指数 31:香港主板,48:香港创业板...

MINDIFF 最小变动价位
MINDIFF  返回某品种的最小变动价位(也是交易价格的最小间隔单位)

MULTIPLIER 期货每手乘数
MULTIPLIER  期货每手乘数

TQFLAG 当前的复权状态
TQFLAG  当前的复权状态,0:无复权 1:前复权 2:后复权 

USEDDATANUM 当前使用的数据个数
USEDDATANUM  当前使用的数据个数

LOCALDAYNUM [新]本地日线数据个数
LOCALDAYNUM  客户端本地已下载的该品种的日线数据个数(含当日)

IST0CODE [新]是否是T+0品种
IST0CODE 沪深京市场中支持T+0交易的品种(T+0基金,可转债等)

TOTALCAPITAL 当前总股本(手)
TOTALCAPITAL  当前总股本,单位为手,债券1手为10张,其它为100

CAPITAL 当前流通股本(手)
CAPITAL  当前流通股本,单位为手,债券1手为10张,其它为100
对于可转债,为剩余规模(100张)

FINANCE(1) 总股本(股)
FINANCE(1) 总股本(序列数据,随时间每天可能变化)

FINANCE(2) 市场类型
FINANCE(2) 用法同SETCODE

FINANCE(3) 沪深京品种类型
FINANCE(3) 沪深京品种类型
0:指数,1:A股主板,2:北证A股,3:创业板,4:科创板,5:B股,6:债券,7:基金,8:权证,9:其它,10:非沪深京品种

FINANCE(4) 沪深京行业代码
FINANCE(4) 沪深京品种行业代码(二级)


FINANCE(5) B股
FINANCE(5) B股

FINANCE(6) H股
FINANCE(6) H股

FINANCE(7) 流通股本(股)
FINANCE(7)  流通股本(序列数据,随时间每天可能变化)

FINANCE(8) 股东人数(户)
FINANCE(8)  股东人数(户)(上市公司的最新数据)

FINANCE(9) 资产负债率%
FINANCE(9)  资产负债率
即:(总资产-净资产-少数股东权益)/总资产*100,上市公司最近一期财报数据

FINANCE(10) 总资产
FINANCE(10) 总资产,上市公司最近一期财报数据

FINANCE(11) 流动资产
FINANCE(11) 流动资产,上市公司最近一期财报数据

FINANCE(12) 固定资产
FINANCE(12) 固定资产,上市公司最近一期财报数据

FINANCE(13) 无形资产
FINANCE(13) 无形资产,上市公司最近一期财报数据

FINANCE(15) 流动负债
FINANCE(15) 流动负债,上市公司最近一期财报数据

FINANCE(16) 少数股东权益
FINANCE(16) 少数股东权益,上市公司最近一期财报数据

FINANCE(17) 资本公积金
FINANCE(17) 资本公积金,上市公司最近一期财报数据

FINANCE(18) 每股公积金
FINANCE(18)  每股公积金,上市公司最近一期财报数据

FINANCE(19) 股东权益(净资产)
FINANCE(19) 股东权益(净资产),上市公司最近一期财报数据

FINANCE(20) 营业收入
FINANCE(20) 营业收入,上市公司最近一期财报数据

FINANCE(21) 营业成本
FINANCE(21) 营业成本,上市公司最近一期财报数据

FINANCE(22) 应收账款
FINANCE(22) 应收帐款,上市公司最近一期财报数据

FINANCE(23) 营业利润
FINANCE(23) 营业利润,上市公司最近一期财报数据

FINANCE(24) 投资收益
FINANCE(24) 投资收益,上市公司最近一期财报数据

FINANCE(25) 经营现金流量
FINANCE(25) 经营现金流量,上市公司最近一期财报数据

FINANCE(26) 总现金流量
FINANCE(26) 总现金流量,上市公司最近一期财报数据

FINANCE(27) 存货
FINANCE(27) 存货,上市公司最近一期财报数据

FINANCE(28) 利润总额
FINANCE(28) 利润总额,上市公司最近一期财报数据

FINANCE(29) 税后利润
FINANCE(29) 税后利润,上市公司最近一期财报数据

FINANCE(30) 净利润
FINANCE(30) 归母净利润,上市公司最近一期财报数据

FINANCE(31) 未分配利润
FINANCE(31) 未分配利润,上市公司最近一期财报数据

FINANCE(32) 每股未分配利润
FINANCE(32)  每股未分配利润,上市公司最近一期财报数据

FINANCE(33) 每股收益(全年折算)
FINANCE(33)  每股收益(折算为全年收益),对于沪深京品种有效

FINANCE(34) 每股净资产
FINANCE(34)  每股净资产,上市公司最近一期财报数据

FINANCE(35) 季报调整净资产
FINANCE(35) 季报中调整后的每股净资产(如果没有调整过,则为0),上市公司最近一期财报数据

FINANCE(36) 股东权益比
FINANCE(36)  股东权益比,上市公司最近一期财报数据

FINANCE(37) 第几季报
FINANCE(37)  第几期季度报告,1为一季报,2为中报,3为三季报,4为年报,对于沪深京品种有效

FINANCE(38) 每股收益(最近一期)
FINANCE(38)  每股收益,上市公司最近一期财报数据

FINANCE(39) 总市值
FINANCE(39)  总市值(包括在香港等地上市的股份市值,按同市场报价汇总)

FINANCE(40) 流通市值
FINANCE(40)  流通市值

FINANCE(41) AB股总市值
FINANCE(41)  AB股总市值(不包括在香港等地上市的股份市值)

FINANCE(42) 上市的天数
FINANCE(42)  上市的天数

FINANCE(43) 利润同比%
FINANCE(43)  净利润同比增长率,上市公司最近一期财报数据

FINANCE(44) 收入同比%
FINANCE(44)  收入同比增长率,上市公司最近一期财报数据

FINANCE(45) 股息率%
FINANCE(45)  股息率

FINANCE(46) 自由流通股本(股)
FINANCE(46)  自由流通股本(股) 流通股本中减去占5%以上股份的部分

FINANCE(47) 是否属于次新股
FINANCE(47)  是否属于次新股,沪深京品种

FINANCE(48) 是否为陆通股标的
FINANCE(48)  是否为陆通股标的

FINANCE(49) 今日权息标识
FINANCE(49)  今日权息标识 0:无 1:分红 2:送转股 3:分红+送转股 4:配股

FINANCE(50) 是否属于沪深300
FINANCE(50)  是否属于沪深300

FINANCE(51) 是否含可转债
FINANCE(51)  是否含可转债,沪深京品种

FINANCE(52) 是否为融资融券标的
FINANCE(52)  是否为融资融券标的,沪深京品种

FINANCE(53) 每股股息(港股,美股)
FINANCE(53) 每股股息(港股,美股)

FINANCE(54) 扣非净利润
FINANCE(54) 扣非净利润,上市公司最近一期财报数据

FINANCE(55) 研发费用
FINANCE(55) 研发费用,上市公司最近一期财报数据

FINANCE(56) 员工人数
FINANCE(56) 员工人数,上市公司最近一期财报数据

FINANCE(57) 货币资金
FINANCE(57) 货币资金,上市公司最近一期财报数据

FINANCE(58) 合同负债
FINANCE(58) 合同负债,上市公司最近一期财报数据

FINANCE(59) 其它权益工具
FINANCE(59) 其它权益工具,上市公司最近一期财报数据

FINANCE(60) 行权比例(权证,期权)
FINANCE(60)  行权比例(权证,期权)

FINANCE(61) 行权价(权证,期权)
FINANCE(61)  行权价(权证,期权)

FINANCE(62) 杠杆比率(权证,期权)
FINANCE(62)  杠杆比率(权证,期权),实际杠杆比率为FINANCE(62)*FINANCE(68)

FINANCE(63) 内在价值(权证,期权)
FINANCE(63)  内在价值(权证,期权)

FINANCE(64) 溢价率(权证,期权)
FINANCE(64)  溢价率(权证,期权)

FINANCE(65) 时间价值(权证,期权)
FINANCE(65)  时间价值(权证,期权)

FINANCE(66) 剩余天数(期货,期权)
FINANCE(66)  剩余天数(期货,期权)

FINANCE(67) 合约乘数(期权)
FINANCE(67)  合约乘数(期权)

FINANCE(68) Delta对冲值(权证,期权)
FINANCE(68)  Delta对冲值(权证,期权)

FINANCE(69) 认购认沽类型(股票期权)
FINANCE(69)  认购认沽类型(股票期权),0表示是认购,1表示是认沽 

FINANCE(80) 最近财报公告离现在的天数
FINANCE(80)  最近财报公告离现在的自然日天数,单值,不支持序列

FINANCE(81) 最后涨停板离现在的天数
FINANCE(81)  最后涨停板离现在的自然日天数,单值,不支持序列

FINANCE(82) 最后跌停板离现在的天数
FINANCE(82)  最后跌停板离现在的自然日天数,单值,不支持序列

FINANCE(83) 最后上榜离现在的天数
FINANCE(83)  最后上榜离现在的自然日天数,单值,不支持序列

FINANCE(84) 最近停牌离现在的天数
FINANCE(84)  最近停牌离现在的自然日天数,单值,不支持序列

FINANCE(85) 最近业绩预告离现在的天数
FINANCE(85)  最近业绩预告离现在的自然日天数,单值,不支持序列

FINANCE(86) 最近股份解禁离现在的天数
FINANCE(86)  最近股份解禁离现在的自然日天数,单值,不支持序列

FINANCE(87) 最近定增股上市离现在的天数
FINANCE(87)  最近定增股上市离现在的自然日天数,单值,不支持序列

FINANCE(88) [新]最近北上大额增仓日离现在的天数
FINANCE(88)  最近北上大额增仓日离现在的自然日天数,单值,不支持序列

FINANCE(89) [新]最近北上大额减仓日离现在的天数
FINANCE(89)  最近北上大额减仓日离现在的自然日天数,单值,不支持序列

FINANCE(90) [新]最近回购预案日离现在的天数
FINANCE(90)  最近回购预案日离现在的自然日天数,单值,不支持序列

FINANCE(91) [新]最近股权激励预案日离现在的天数
FINANCE(91)  最近股权激励预案日离现在的自然日天数,单值,不支持序列

FINANCE(99) [新]是否为注册制股票
FINANCE(99)  是否为注册制股票,沪深京品种

FINANCE(101) [新]标识类型
FINANCE(101) 用户在客户端设置的标识,若没有,则为0 此函数仅用于PC客户端

FINANCE(102) [新]IPO发行价
FINANCE(102) 沪深京股票的发行价 此函数仅用于PC客户端

SAFESCORE 安全分
SAFESCORE  安全分(0-100),通达信扫雷宝数据,仅供参考,PC端有增强功能集的版本支持

----------------------------------------
专业财务函数

EXTERNSTR 引用自定义外部字符串数据
EXTERNSTR(TYPE,ID) 
TYPE为1表示是系统定义数据(需要通达信官方提供,需要[专业财务数据]下载,支持的ID为10001以上,详见自定义数据管理器),
TYPE为0表示是自定义外部数据,读取signals目录下面的的extern_user.txt,请用自定义数据管理器来维护 
 extern_user.txt为文本结构,如下 1|600717|1|好股|0.33 
市场(0:深圳,1:上海,2:北京)|品种代码|数据号|文字串|数值 如果是导出格式,则不需要数据号


EXTERNVALUE 引用自定义外部数值数据
EXTERNVALUE(TYPE,ID),用法同EXTERNSTR类似

SIGNALS_SYS 引用自定义序列数据(系统)
引用自定义序列数据(需要通达信官方提供,需要[专业财务数据]下载,支持的ID为20001以上,详见自定义数据管理器)
SIGNALS_SYS(ID,TYPE),TYPE:1表示做平滑处理,没有自定义数据的周期返回上一周期的值;0表示不做平滑处理;2表示没有数据则为0.

SIGNALS_QS 引用自定义序列数据(券商)
引用自定义序列数据(券商).
SIGNALS_QS(ID,TYPE),TYPE:1表示做平滑处理,没有自定义数据的周期返回上一周期的值;0表示不做平滑处理;2表示没有数据则为0.

SIGNALS_USER 引用自定义序列数据
引用自定义序列数据.
读取个人目录下的signals目录下面的[signals_user_?]目录,请用自定义数据管理器来维护.
SIGNALS_USER(ID,TYPE):表示读当前品种的ID数据号的序列数据(自定义数据需按日期从小到大排序),
TYPE:1表示做平滑处理,没有自定义数据的周期返回上一周期的值;0表示不做平滑处理;2表示没有数据则为0.

EXTDATA_USER 引用扩展数据
引用扩展数据.
请用扩展数据管理器来设置和刷新数据.
EXTDATA_USER(N,TYPE),N取(1-200),表示读当前品种的N号扩展序列数据,TYPE:1表示做平滑处理,没有数据的周期返回上一周期的值;0表示不做平滑处理;2表示没有数据则为0;3表示做反向平滑处理,没有数据的周期返回下一周期的值

FINVALUE 专业财务数据(序列)
引用专业财务数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
FINVALUE(ID),ID为数据编号


FINONE 专业财务数据(指定日期)
引用指定年和月日的某类型的财务数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
FINONE(ID,Y,MMDD),ID为数据编号,Y和MMDD表示年和月日.
如果Y和MMDD都为0,表示最新的财报;
如果Y为0,MMDD为小于300的数字,表示最近一期向前推MMDD期的数据,如果是331,630,930,1231这些,表示最近一期的对应季报的数据;
如果MMDD为0,Y为一数字,表示最近一期向前推Y年的同期数据;
季报分界点为:0331,0630,0930,1231


GPJYVALUE 股票交易类数据(序列)
引用股票交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场,不支持获取太早时间的数据.
GPJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理;2表示没有数据则为0.


GPJYONE 股票交易类数据(指定日期)
引用某天某种类型的股票交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场,不支持获取太早时间的数据.
GPJYONE(ID,N,Y,MMDD),ID为数据编号,N表示第几个数据(取1或2),Y和MMDD表示年和月日.
如果Y为0,MMDD为0,表示最新数据,MMDD为1,2,3...,表示倒数第2,3,4...个数据


BKJYVALUE 板块交易类数据(序列)
引用板块交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
BKJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理;2表示没有数据则为0.


BKJYONE 板块交易类数据(指定日期)
引用某天某种类型的板块交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
BKJYONE(ID,N,Y,MMDD),ID为数据编号,N表示第几个数据(取1或2),Y和MMDD表示年和月日.
如果Y为0,MMDD为0,表示最新数据,MMDD为1,2,3...,表示倒数第2,3,4...个数据


SCJYVALUE 市场交易类数据(序列)
引用市场总的交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
SCJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理;2表示没有数据则为0.


SCJYONE 市场交易类数据(指定日期)
引用某天某种类型的市场总的交易类数据.如果指标支持云数据函数(用于选股除外),则不需要[专业财务数据]下载,该函数只适用于沪深京市场.
SCJYONE(ID,N,Y,MMDD),ID为数据编号,N表示第几个数据(取1或2),Y和MMDD表示年和月日.
如果Y为0,MMDD为0,表示最新数据,MMDD为1,2,3...,表示倒数第2,3,4...个数据


GPONEDAT 股票的单个数据(非序列)
引用股票的某种数据,该函数只适用于沪深京市场.
GPONEDAT(ID),ID为数据编号


----------------------------------------
即时行情函数

DYNAINFO(3) 昨收盘价
DYNAINFO(3)  昨收盘价 即时行情数据 期货和期权品种为昨结算价

DYNAINFO(4) 开盘价
DYNAINFO(4)  开盘价 即时行情数据 在开盘前,值为0,在使用时需要判断(否则分时指标时会影响纵坐标轴)

DYNAINFO(5) 最高价
DYNAINFO(5)  最高价 即时行情数据 在开盘前,值为0,在使用时需要判断(否则分时指标时会影响纵坐标轴)

DYNAINFO(6) 最低价
DYNAINFO(6)  最低价 即时行情数据 在开盘前,值为0,在使用时需要判断(否则分时指标时会影响纵坐标轴)

DYNAINFO(7) 现价
DYNAINFO(7)  现价 即时行情数据 没有现价时(比如在开盘前),返回昨收盘价 盘中可能一直在变化,判断相等时须谨慎

DYNAINFO(8) 总量
DYNAINFO(8) 总量 即时行情数据

DYNAINFO(9) 现量
DYNAINFO(9) 现量 即时行情数据

DYNAINFO(10) 总金额
DYNAINFO(10)  总金额 即时行情数据

DYNAINFO(11) 均价
DYNAINFO(11) 均价 即时行情数据

DYNAINFO(12) 日涨跌
DYNAINFO(12) 日涨跌 即时行情数据

DYNAINFO(13) 振幅
DYNAINFO(13) 振幅 即时行情数据 转换成幅度需要乘100

DYNAINFO(14) 涨幅
DYNAINFO(14) 涨幅 即时行情数据(沪深京早盘竞价期间使用匹配价的涨幅) 转换成幅度需要乘100

DYNAINFO(15) 开盘金额
DYNAINFO(15) 开盘时的成交金额 即时行情数据

DYNAINFO(16) 前5日每分钟均量
DYNAINFO(16) 前5日每分钟均量 盘中不变化

DYNAINFO(17) 量比
DYNAINFO(17) 量比 即时行情数据

DYNAINFO(18) 上涨家数
DYNAINFO(18) 上涨家数(对沪深指数和通达信板块指数有效) 即时行情数据

DYNAINFO(19) 下跌家数
DYNAINFO(19) 下跌家数(对沪深指数和通达信板块指数有效) 即时行情数据

DYNAINFO(20) 买价(即买一价)
DYNAINFO(20)  最新买价 即时行情数据

DYNAINFO(21) 卖价(即卖一价)
DYNAINFO(21)  最新卖价 即时行情数据

DYNAINFO(22) 内盘/板块指数跌停数
DYNAINFO(22) 返回内盘,板块指数则返回跌停家数 即时行情数据

DYNAINFO(23) 外盘/板块指数涨停数
DYNAINFO(23) 返回外盘,板块指数则返回涨停家数 即时行情数据

DYNAINFO(24) 涨速
DYNAINFO(24) 返回涨速 报价界面行情数据 转换成幅度需要乘100

DYNAINFO(25) 几分钟前的价格
DYNAINFO(25) 返回几分钟前的价格,周期由涨速周期决定,一般为5分钟 即时行情数据

DYNA_NOW 现价
DYNA_NOW  现价 即时行情数据 没有现价时(比如在开盘前),返回昨收盘价

DYNA_ZAF 涨幅
DYNA_ZAF 涨幅 即时行情数据(沪深京早盘竞价期间使用匹配价的涨幅) 转换成幅度需要乘100

DYNA_LB 量比
DYNA_LB 量比 即时行情数据

DYNA_ZAS 涨速
DYNA_ZAS  返回涨速 报价界面行情数据 转换成幅度需要乘100

SELLVOL 内盘
返回内盘,即DYNAINFO(22) 即时行情数据

BUYVOL 外盘
返回外盘,即DYNAINFO(23) 即时行情数据

DYNAINFO(26) 涨停价
DYNAINFO(26) 返回涨停价 即时行情数据

DYNAINFO(27) 跌停价
DYNAINFO(27) 返回跌停价 即时行情数据

DYNAINFO(28) [新]笼子买入价上限
DYNAINFO(28) 笼子买入价上限,供参考 即时行情数据 适用于沪深京品种

DYNAINFO(29) [新]笼子卖出价下限
DYNAINFO(29) 笼子卖出价下限,供参考 即时行情数据 适用于沪深京品种

DYNAINFO(30) [新]昨开盘成交量(手)
DYNAINFO(30) 上个交易日的开盘成交量(手),适用于沪深京品种

DYNAINFO(31) [新]竞价涨停委买额
DYNAINFO(31) 开盘集合竞价期间的未撤单涨停价买入金额,适用于沪深京品种

DYNAINFO(34) 昨日涨幅
DYNAINFO(34) 昨日涨幅(对沪深京,沪深指数和通达信板块指数有效) 转换成幅度需要乘100 
比如计算前天的收盘价:DYNAINFO(3)/(1+DYNAINFO(34));

DYNAINFO(35) [新]3日换手Z
DYNAINFO(35) 最近3日的流通换手率(使用最新的自由流通股本) 转换成幅度需要乘100 比如DYNAINFO(35)>0.25表示换手超过25%

DYNAINFO(36) [新]换手率Z
DYNAINFO(36) 自由流通换手率(序列数据,每个周期的数据不同,使用最新的自由流通股本) 转换成幅度需要乘100 比如DYNAINFO(36)>0.25表示换手超过25%

DYNAINFO(37) 换手率
DYNAINFO(37) 换手率(序列数据,每个周期的数据不同,使用的流通股本为最近数据) 转换成幅度需要乘100 比如DYNAINFO(37)>0.1表示换手超过10%

DYNAINFO(38) 市盈(静)
DYNAINFO(38) 静态市盈率 沪深京,港股和美股品种等有效

DYNAINFO(39) 市盈(动)
DYNAINFO(39) 动态市盈率 即时行情数据 沪深京品种有效

DYNAINFO(40) 市盈(TTM)
DYNAINFO(40) 市盈率(根据最近12个月的每股收益得到的市盈率) 即时行情数据 沪深京品种有效

DYNAINFO(49) 成交方向
DYNAINFO(49) 成交方向 即时行情数据 0:主动买 1:主动卖 2:中性单

DYNAINFO(50) 采样点数(分笔数)
DYNAINFO(50)  采样点数,即分时成交明细个数,相当于报价中的活跃度 即时行情数据

DYNAINFO(51) 内外比
DYNAINFO(51) 内外比 即时行情数据

DYNAINFO(52) 港股资金流向
DYNAINFO(52) 港股资金流向(根据当前股票内外盘统计) 单位为万 即时行情数据

DYNAINFO(53) 应计利息/昨净值
DYNAINFO(53) 应计利息/某些基金的昨日净值(100份) 即时行情数据

DYNAINFO(54) IOPV
DYNAINFO(54) 某些基金的单位净值 即时行情数据

DYNAINFO(55) 基金估算涨幅%
DYNAINFO(55) 开放式基金的估算涨幅% 即时行情数据

DYNAINFO(57) 笔涨跌
DYNAINFO(57) 笔涨跌 即时行情数据

DYNAINFO(58) 买量(即买一量)
DYNAINFO(58)  最新叫买量 即时行情数据 如果是早盘或尾盘期间,买一量为匹配量或盘后定价交易盘口量,用此函数预警时请注意

DYNAINFO(59) 卖量(即卖一量)
DYNAINFO(59)  最新叫卖量 即时行情数据 如果是早盘或尾盘期间,卖一量为匹配量或盘后定价交易盘口量,用此函数预警时请注意

DYNAINFO(60) 沪深京总上涨家数
DYNAINFO(60) 沪深京总上涨家数 即时行情数据

DYNAINFO(61) 沪深京总下跌家数
DYNAINFO(61) 沪深京总下跌家数 即时行情数据

DYNAINFO(62) 沪深京总成交金额
DYNAINFO(62) 沪深京总成交金额 即时行情数据

DYNAINFO(63) 3日涨幅
DYNAINFO(63) 3日涨幅(对沪深京,沪深指数和通达信板块指数有效) 转换成幅度需要乘100

DYNAINFO(64) 5日涨幅
DYNAINFO(64) 5日涨幅(对沪深京,沪深指数和通达信板块指数有效) 转换成幅度需要乘100

DYNAINFO(65) 10日涨幅
DYNAINFO(65) 10日涨幅(对沪深京,沪深指数和通达信板块指数有效) 转换成幅度需要乘100

DYNAINFO(66) 20日涨幅
DYNAINFO(66) 20日涨幅(对沪深京,沪深指数和通达信板块指数有效) 转换成幅度需要乘100

DYNAINFO(67) 60日涨幅
DYNAINFO(67) 60日涨幅(对沪深京,沪深指数和通达信板块指数有效) 转换成幅度需要乘100

DYNAINFO(68) 年初至今涨幅
DYNAINFO(68) 年初至今涨幅(对沪深京,沪深指数和通达信板块指数有效) 转换成幅度需要乘100

DYNAINFO(69) [新]月初至今涨幅
DYNAINFO(69) 月初至今涨幅(对沪深京,沪深指数和通达信板块指数有效) 转换成幅度需要乘100

DYNAINFO(70) [新]一年涨幅
DYNAINFO(70) 一年涨幅(对沪深京,沪深指数和通达信板块指数有效) 转换成幅度需要乘100

DYNAINFO(71) 买二价
DYNAINFO(71)  买二价 个股界面的指标或TCI后台使用

DYNAINFO(72) 买二量
DYNAINFO(72)  买二量 如果是早盘或尾盘竞价期间,可能为匹配量,用此函数预警时请注意 个股界面的指标或TCI后台使用

DYNAINFO(73) 卖二价
DYNAINFO(73)  卖二价 个股界面的指标或TCI后台使用

DYNAINFO(74) 卖二量
DYNAINFO(74)  卖二量 如果是早盘或尾盘竞价期间,可能为匹配量,用此函数预警时请注意 个股界面的指标或TCI后台使用

DYNAINFO(75) 买三价
DYNAINFO(75)  买三价 个股界面的指标或TCI后台使用

DYNAINFO(76) 买三量
DYNAINFO(76)  买三量 个股界面的指标或TCI后台使用

DYNAINFO(77) 卖三价
DYNAINFO(77)  卖三价 个股界面的指标或TCI后台使用

DYNAINFO(78) 卖三量
DYNAINFO(78)  卖三量 个股界面的指标或TCI后台使用

DYNAINFO(79) 买四价
DYNAINFO(79)  买四价 个股界面的指标或TCI后台使用

DYNAINFO(80) 买四量
DYNAINFO(80)  买四量 个股界面的指标或TCI后台使用

DYNAINFO(81) 卖四价
DYNAINFO(81)  卖四价 个股界面的指标或TCI后台使用

DYNAINFO(82) 卖四量
DYNAINFO(82)  卖四量 个股界面的指标或TCI后台使用

DYNAINFO(83) 买五价
DYNAINFO(83)  买五价 个股界面的指标或TCI后台使用

DYNAINFO(84) 买五量
DYNAINFO(84)  买五量 个股界面的指标或TCI后台使用

DYNAINFO(85) 卖五价
DYNAINFO(85)  卖五价 个股界面的指标或TCI后台使用

DYNAINFO(86) 卖五量
DYNAINFO(86)  卖五量 个股界面的指标或TCI后台使用

DYNAINFO(88) 封单额
DYNAINFO(88) 涨停或跌停时的实时封单额 如果>0表示是涨停状态 <0表示是跌停状态 即时行情数据

DYNAINFO(89) 年涨停天数
DYNAINFO(89) 年涨停天数(对沪深京有效)

DYNAINFO(90) 连板天数
DYNAINFO(90) 连板天数(对沪深京有效)

DYNAINFO(91) 几天
DYNAINFO(91) 几天几板的统计天数(对沪深京有效)

DYNAINFO(92) 几板
DYNAINFO(92) 几天几板的涨停天数(对沪深京有效)

DYNAINFO(93) [新]昨成交额
DYNAINFO(93) 昨成交额(对沪深京有效)

DYNAINFO(94) [新]3日成交额
DYNAINFO(94) 最近3日成交额(对沪深京有效)

DYNAINFO(95) [新]昨封单额
DYNAINFO(95) 昨封单额(对沪深京有效),若为负值,表示昨日为跌停状态

DYNAINFO(96) [新]前封单额
DYNAINFO(96) 前日封单额(对沪深京有效),若为负值,表示前日为跌停状态

DYNAINFO(99) [新]主买净额
DYNAINFO(99) 按主动性口径统计的净流入额(对沪深有效).报价界面行情数据

DYNAINFO(100) [新]主力净额
DYNAINFO(100) 按主力口径统计的净流入额(对沪深有效).报价界面行情数据

DYNAINFO(101) [新]量涨速
DYNAINFO(101) 量涨速(对沪深京有效),周期由涨速周期决定,一般为5分钟.报价界面行情数据

DYNAINFO(102) [新]分钟换手率
DYNAINFO(102) 分钟换手率(对沪深京有效),周期由涨速周期决定,一般为5分钟.报价界面行情数据

DYNAINFO(103) [新]2分钟金额
DYNAINFO(103) 2分钟金额(对沪深京有效).报价界面行情数据

DYNAINFO(104) [新]开盘抢筹
DYNAINFO(104) 开盘抢筹幅度(对沪深京有效).报价界面行情数据

DYNAINFO(105) [新]委比
DYNAINFO(105) 委比(对沪深京有效).报价界面行情数据

DYNAINFO(106) [新]总委买量
DYNAINFO(106) 当前总委买量(对沪深有效).Level2报价界面行情数据

DYNAINFO(107) [新]总委卖量
DYNAINFO(107) 当前总委卖量(对沪深有效).Level2报价界面行情数据

DYNAINFO(108) [新]总撤买量
DYNAINFO(108) 当前总撤买量(对沪深有效).Level2报价界面行情数据

DYNAINFO(109) [新]总撤卖量
DYNAINFO(109) 当前总撤卖量(对沪深有效).Level2报价界面行情数据

DYNAINFO(110) [新]L2逐笔成交数
DYNAINFO(110) L2逐笔成交数(对沪深有效).Level2报价界面行情数据

DYNAINFO(111) [新]L2逐笔委托数
DYNAINFO(111) L2逐笔委托数(对沪深有效).Level2报价界面行情数据

DYNAINFO(117) [新]量比(序列)
DYNAINFO(117) 量比 序列数据

DYNAINFO(118) [新]52周最高价
DYNAINFO(118) 52周最高价,该函数只适用于沪深京市场

DYNAINFO(119) [新]52周最低价
DYNAINFO(119) 52周最低价,该函数只适用于沪深京市场

MAINZSHQ [新]主要指数行情
MAINZSHQ(M,N) 主要指数行情 
M:0:当前品种所属指数 1:上证指数 2:深圳成指 3:创业板指 4:科创50指数 5:北证50指数 N:0现价 1:昨收 2:今开 3:最高 4:最低 5:成交额 6:上涨家数 7:下跌家数 8:涨幅 9:3日涨幅

TOTALHQINFO [新]沪深京市场表现
TOTALHQINFO(N) 沪深京市场表现 
N:1:上涨家数 2:下跌家数 3:涨停家数 4:跌停家数 5:昨日上涨家数 6:总成交金额(亿元)

TOTALMMPAMO [新]沪深买卖盘金额
TOTALMMPAMO(N) 沪深买卖盘金额 
N:1:买一总金额 2:卖一总金额 3:前5档或前10档(Level2时)的买盘总金额 4:前5档或前10档(Level2时)的卖盘总金额 5:总委买金额(Level2时) 6:总委卖金额(Level2时) 
单位为亿元,即时行情数据

ISBUYORDER 主动性买单
返回当前成交是否为主动性买单.
用法:
 ISBUYORDER
 当本笔成交为主动性买盘时,返回1,否则为0

BETAVALUE 贝塔系数
返回当前品种的贝塔系数

SHAPE_SHORT 短期形态值
返回当前品种的短期形态值(1,2,..14)
1.倒V型反转 2.V型反转 3.W底 4.M顶 5.盘整 6.盘整后上行 7.盘整后下跌 8.上升通道 9.下降通道 10.拐头下跌 11.拐头上升 12.上行盘整 13.下跌盘整 14.其它形态

SHAPE_MID 中期形态值
返回当前品种的中期形态值(1,2,..14)
1.倒V型反转 2.V型反转 3.W底 4.M顶 5.盘整 6.盘整后上行 7.盘整后下跌 8.上升通道 9.下降通道 10.拐头下跌 11.拐头上升 12.上行盘整 13.下跌盘整 14.其它形态

SHAPE_LONG 长期形态值
返回当前品种的长期形态值(1,2,..14)
1.倒V型反转 2.V型反转 3.W底 4.M顶 5.盘整 6.盘整后上行 7.盘整后下跌 8.上升通道 9.下降通道 10.拐头下跌 11.拐头上升 12.上行盘整 13.下跌盘整 14.其它形态

----------------------------------------
线形和资源等

RGBX 自定义色
格式为RGBX+“RRGGBB”:RR、GG、BB表示红色、绿色和的蓝色分量,每种颜色的取值范围是00-FF,采用了16进制。
例如:MA5:MA(CLOSE,5),RGBXFFFF00表示纯红色与纯绿色的混合色:RGBX008080表示淡蓝色和淡绿色的混合色。

COLOR 自定义色
格式为COLOR+“BBGGRR”:BB、GG、RR表示蓝色、绿色和红色的分量,每种颜色的取值范围是00-FF,采用了16进制。
例如:MA5:MA(CLOSE,5),COLOR00FFFF表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。

COLORBLACK 黑色
画黑色

COLORBLUE 蓝色
画蓝色

COLORGREEN 绿色
画绿色

COLORCYAN 青色
画青色

COLORRED 红色
画红色

COLORMAGENTA 洋红色
画洋红色

COLORBROWN 棕色
画棕色

COLORLIGRAY 淡灰色
画淡灰色

COLORGRAY 深灰色
画深灰色

COLORLIBLUE 淡蓝色
画淡蓝色

COLORLIGREEN 淡绿色
画淡绿色

COLORLICYAN 淡青色
画淡青色

COLORLIRED 淡红色
画淡红色

COLORLIMAGENTA 淡洋红色
画淡洋红色

COLORYELLOW 黄色
画黄色

COLORWHITE 白色
画白色

LINETHICK 线形粗细
格式“LINETHICK+(1-9)”;
参数的取值范围在1—9之间,“LINETHICK1”表示最细的线,而“LINETHICK9”表示最粗的线;

DRAWABOVE 显示在位置之上
显示在位置之上,对于DRAWTEXT和DRAWNUMBER等函数有用,放在语句的最后面(不能与LINETHICK等函数共用),比如:
  DRAWNUMBER(CLOSE>OPEN,HIGH,CLOSE),DRAWABOVE;

NOFRAME 不显示边框
不显示边框,对于DRAWRECTREL等函数有用,放在语句的最后面

STICK 柱状线
画柱状线

COLORSTICK 彩色柱状线
彩色柱状线。数据为正数时,向上画红色柱状线,反之向下画绿线

VOLSTICK 成交量柱状线
成交量柱状线。当股价上涨时显示红色空心柱,反之则显示绿色实心柱

LINESTICK 同时画出柱状线和指标线
同时画出柱状线和指标线

CROSSDOT 小叉线
画小叉线

CIRCLEDOT 小圆圈线
画小圆圈线

POINTDOT 小圆点线
画小圆点线

DOTLINE 虚线
画虚线

NODRAW 不显示
在指标区不显示,如果有输出线名的话,只显示在输出线行

PLAYSOUND1 播放1号
播放1号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND2 播放2号
播放2号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND3 播放3号
播放3号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND4 播放4号
播放4号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND5 播放5号
播放5号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND6 播放6号
播放6号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND7 播放7号
播放7号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND8 播放8号
播放8号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND9 播放9号
播放9号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND10 播放10号
播放10号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND11 播放11号
播放11号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND12 播放12号
播放12号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND13 播放13号
播放13号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND14 播放14号
播放14号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND15 播放15号
播放15号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND16 播放16号
播放16号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND17 播放17号
播放17号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND18 播放18号
播放18号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND19 播放19号
播放19号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

PLAYSOUND20 播放20号
播放20号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)

NOTEXT 不显示输出线数据
输出线名称前带有NOTEXT字样时,不显示输出线数据

??MOVE? 指标线向后偏移N个单位
输出线名称中带有MOVE字段时,比如TMPMOVE3,表示整个输出线向后偏移3个单位,画线进入未来时间,N不应超过4

??MOVER? 指标线向前偏移N个单位
输出线名称中带有MOVE字段时,比如TMPMOVER3,表示整个输出线向前偏移3个单位

----------------------------------------
操作符

+ 加
例如: X + Y

- 减
例如: X - Y

* 乘
例如: X * Y

/ 除
例如: X / Y

< 小于
例如: X < Y

> 大于
例如: X > Y

<= 小于等于
例如: X <= Y

>= 大于等于
例如: X >= Y

= 等于
例如: X = Y 
注意:看到的相等,数值不一定相等,可按需处理精度,比如:
INTPART(X/MINDIFF) = INTPART(Y/MINDIFF).

== 等于
与=的用法一致

!= 不等于
例如: X != Y

<> 不等于
与!=的用法一样

{ 注释符号
例如 {注释部分},注:注释中不能再加注释

AND 并且
例如: X>Y AND Y>Z

OR 或者
例如: X>Y OR Y>Z

&& 并且
与AND的用法一样

|| 或者
与OR的用法一致

$ 引用特定数据
例如:"000014$CLOSE",表示取000014的收盘价,注意加入双引号.
可在前面加SZ(深市),SH(沪市),BJ(京市),或市场_,$后支持OPEN,HIGH,LOW,CLOSE,VOL,AMOUNT,VOLINSTK等,支持DYNA_NOW,DYNA_ZAF,DYNA_LB,DYNA_ZAS等(建议在TCI后台使用),也支持引用指标输出线,比如KDJ.K,
"SZ000001$CLOSE"表示平安银行,
"47_IFL8$CLOSE"表示沪深主力合约,
"SH688318$MACD.DIF"表示取财富趋势的MACD指标的DIF输出,

注意:引用品种的对应周期的数据必须要先下载到本地

( 括号
例如:HIGH/(CLOSE+OPEN)

) 反括号
例如:HIGH/(CLOSE+OPEN)

, 逗号
例如: MA(CLOSE,3)

: 输出
例如: 输出:CLOSE+OPEN

:= 赋值
例如: 变量1:=HIGH

" 双引号
例如:"000014$CLOSE",表示取000014的收盘价,$后支持OPEN,HIGH,LOW,CLOSE,VOL,AMOUNT,VOLINSTK等,也支持引用指标输出线,比如KDJ.K

. 引用指标输出
例如: KDJ.K 表示输入KDJ指标的K输出值(公式名不支持带运算符,比如-号),支持带参数,比如KDJ.K(N,3,3),如果没有带参数,则用缺省参数
注:画线指标引用其它指标时,若计算数据超过6000个时,在没连接主站时,不进行函数计算

; 分号
例如: A:=CLOSE;

# 跨周期引用符号
#后可用MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,SEASON,YEAR

例如:TMP1:=CLOSE#WEEK;
{非指标引用时只可用于OPEN,HIGH,LOW,CLOSE,VOL,AMOUNT,VOLINSTK等,当前周期不支持多秒线,多分钟线和多日线,并且引用周期必须要高于当前周期,5秒线只支持引用1分钟线和5分钟线,周期数据转换得到}
TMP2:=KDJ.K#WEEK;
{跨周期指标引用,引用品种的对应周期的数据必须要先下载到本地}
跨周期指标引用支持带参数,比如TMP2:=KDJ.K#WEEK(N,3,3);
提示:跨周期时,可能会引用到未来数据

MIN1 引用1分钟线
用于跨周期1分钟线引用

MIN5 引用5分钟线
用于跨周期5分钟线引用

MIN15 引用15分钟线
用于跨周期15分钟线引用

MIN30 引用30分钟线
用于跨周期30分钟线引用

MIN60 引用60分钟线
用于跨周期60分钟线引用

WEEK 引用周线
用于跨周期周线引用,注:DAY,MONTH,YEAR等也支持引用

SEASON 引用季线
用于跨周期季线引用,注:DAY,MONTH,YEAR等也支持引用

CLOUDREF.T? 云端引用子公式
用于云端运行时引用子公式的情形,比如CLOUDREF.T1#WEEK(9,3,3),编写的子公式名必须是CLOUDREF,参数名为N1,N2...N16(最多16个参数),输出线名为T1,T2...T16(最多16个输出,引用时不带参数值)

----------------------------------------
交易信号函数

ORDERBUY 委托买入
委托买入.此函数只适用于服务器端特定版本的策略交易模式下.
用法:
 ORDERBUY(condition, volumetype, volume, pricetype, price).

ORDERSELL 委托卖出
委托卖出.此函数只适用于服务器端特定版本的策略交易模式下.
用法:
 ORDERSELL(condition, volumetype, volume, pricetype, price).

CANSELLGP 可卖数量
返回可卖数量.此函数只适用于服务器端特定版本的策略交易模式下.
用法:
 CANSELL

CANUSEMONEY 可用资金
返回可用资金.此函数只适用于服务器端特定版本的策略交易模式下.
用法:
 CANUSE

BUY 买入开仓
多头建仓(买入开仓).
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如:
 BUY(CROSS(A,B),LOW),当A上穿B时,在LOW处画标记,同时突出提示或直接下单,如果LOW改为DRAWNULL,就不画标记.(分时图上不支持)

SELL 卖出平仓
多头平仓(卖出平仓).
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如:
 SELL(CROSS(A,B),HIGH),当A上穿B时,在HIGH处画标记,同时突出提示或直接下单,如果HIGH改为DRAWNULL,就不画标记.(分时图上不支持)

SELLSHORT 卖出开仓
空头建仓(卖出开仓).
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如:
 SELLSHORT(CROSS(A,B),HIGH),当A上穿B时,在HIGH处画标记,同时突出提示或直接下单,如果HIGH改为DRAWNULL,就不画标记.(分时图上不支持)

BUYSHORT 买入平仓
空头平仓(买入平仓).
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如:
 BUYSHORT(CROSS(A,B),LOW),当A上穿B时,在LOW处画标记,同时突出提示或直接下单,如果LOW改为DRAWNULL,就不画标记.(分时图上不支持)

BUYSHORT_BUY 先平空仓再开多仓
先平空仓再开多仓.
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如:
 BUYSHORT_BUY(CROSS(A,B),LOW),当A上穿B时,在LOW处画标记,同时突出提示或直接下单,如果LOW改为DRAWNULL,就不画标记.(分时图上不支持)
独立池时,反手时平掉所有的原来仓位

SELL_SELLSHORT 先平多仓再开空仓
先平多仓再开空仓.
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如:
 SELL_SELLSHORT(CROSS(A,B),HIGH),当A上穿B时,在HIGH处画标记,同时突出提示或直接下单,如果HIGH改为DRAWNULL,就不画标记.(分时图上不支持)
独立池时,反手时平掉所有的原来仓位

CLOSEALLD 清多头仓
平掉所有多头仓位.
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如:
 CLOSEALLD(CROSS(A,B),HIGH),当A上穿B时,在HIGH处画标记,同时突出提示或直接下单,如果HIGH改为DRAWNULL,就不画标记.(分时图上不支持)

CLOSEALLK 清空头仓
平掉所有空头仓位.
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如:
 CLOSEALLK(CROSS(A,B),LOW),当A上穿B时,在LOW处画标记,同时突出提示或直接下单,如果LOW改为DRAWNULL,就不画标记.(分时图上不支持)

AUTOFILTER 自动过滤交易信号
对交易信号(BUY,SELL,SELLSHORT,BUYSHORT,BUYSHORT_BUY,SELL_SELLSHORT,CLOSEALLD,CLOSEALLK等)按照开平配对原则过滤.
1.连续的同方向指令只有第一个有效,其他的将被过滤;
2.交易信号必须配对出现(比如前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被过滤掉)
注:使用AUTOFILTER后,就不要再使用其它的信号过滤方式了.此函数只适用于特定版本交易模式下.

ISLASTBUY 上个信号是否买入开仓
上个信号是否买入开仓
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

ISLASTSELL 上个信号是否卖出平仓
上个信号是否卖出平仓
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

ISLASTSELLSHORT 上个信号是否卖出开仓
上个信号是否卖出开仓
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

ISLASTBUYSHORT 上个信号是否买入平仓
上个信号是否买入平仓
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

LASTSIGNAL 上一次的信号类型
上一次的信号类型
1:买入开仓 2:卖出平仓 3:卖出开仓 4:买入平仓 7:清多头仓 8:清空头仓
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

BUYPRICE 买入开仓信号时的价格
买入开仓信号时的价格,当时数据品种的K线的收盘价
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

BUYBARS 买入开仓信号距离当前k线数
买入开仓信号距离当前k线数
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

SELLSHORTPRICE 卖出开仓信号时的价格
卖出开仓信号时的价格,当时数据品种的K线的收盘价
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

SELLSHORTBARS 卖出开仓信号距离当前k线数
卖出开仓信号距离当前k线数
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

SELLPRICE 卖出平仓信号时的价格
卖出平仓信号时的价格,当时数据品种的K线的收盘价
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

SELLBARS 卖出平仓信号距离当前K线数
卖出平仓信号距离当前K线数
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

BUYSHORTPRICE 买入平仓信号时的价格
买入平仓信号时的价格,当时数据品种的K线的收盘价
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

BUYSHORTBARS 买入平仓信号距离当前K线数
买入平仓信号距离当前K线数
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)

----------------------------------------
帐户函数

BUYPOSITION 买持仓
买持仓的数量(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

TODAYBUY 今买持仓
今日买入持仓的数量(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

BUYAVGPRICE 买均价
买持仓的持仓均价(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

BUYPROFITLOSS 买持仓盈利
买持仓的浮动盈亏(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

SELLPOSITION 卖持仓
卖持仓的数量(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

TODAYSELL 今卖持仓
今日卖出持仓的数量(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

SELLAVGPRICE 卖均价
卖持仓的持仓均价(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

SELLPROFITLOSS 卖持仓盈利
卖持仓的浮动盈亏(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

TOTALPOSITION 总持仓
总持仓,针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

CANUSEPOSITION 总可用持仓
总可用的持仓,针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

TOTALAVGPRICE 总持仓均价
总持仓均价,针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

FREEMONEY 总可用资金量
总可用资金量,针对当前交易帐户
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

CURRENTEQUITY 动态权益
动态权益(期货),针对当前交易帐户
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

PREVIOUSEQUITY 昨日结存权益
昨日结存的权益(期货),针对当前交易帐户
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

PROFITLOSS 持仓盈亏
持仓盈亏(期货),针对当前交易帐户的当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

CLOSEPROFIT 平仓盈亏
平仓盈亏(期货),针对当前交易帐户的当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

TOTALMARGIN 持仓保证金
持仓保证金(期货),针对当前交易帐户
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

FEERATE 合约手续费
合约手续费比例(百分比),(具体交易策略中设置)
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

MARGINRATE 合约保证金
合约保证金比例(百分比),(具体交易策略中设置)
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
技术指标公式
我们在技术分析界面中见到的指标为技术指标公式,比如MA,  KDJ , MACD  等;可以通过公式管理器编写技术指标公式,在公式管理器界面选择技术指标公式,点击右边的“新建”就可进入技术指标公式编辑区。如下图:

在指标公式编辑区,可以通过“引入公式”,在已有指标的基础上修改指标公式,也可以通过插入函数来实现指标公式的编写;编写完后测试公式,测试通过后退出,输入公式名称就可调出指标公式使用。

1.2条件选股公式
利用条件选股公式可以把符合一定技术形态的个股选出来,首先在公式管理器中建立条件选股公式,再通过“条件选股”调用条件选股公式。
条件选股调出:公式条件选股 或 快捷键CTRL+T


1.3专家系统公式
编写好专家系统公式后,可以叠加到K线上,交易系统自动列出买卖操作信号。
专家系统公式调出操作如下:
在K线界面点击鼠标右键,选择专家系统指标,如下图:


选择一个专家系统,点击“确定”,专家系统就会叠加在K线上面了。如下图:


1.4.五彩K线公式
编写好五彩公式后,可以叠加到K线上,会把特殊的K线形态用不同的颜色标识出来。
五彩K线公式调出操作如下:
在K线界面点击鼠标右键,选择五彩K线指示,如下图:






选择一五彩K线,点击“确定”,五彩K线就会叠加在K线上面了。如下图:


2.公式函数的使用
函数在公式编写非常重要,如果作个比喻,我们用一种语言去告诉电脑我的想法,并且让它去帮我做,那么函数就是这种语言的单词。
    我们在公式编辑器中选择插入函数,可以看到里面有许多函数,在附录中有一个简表,可以查找栏进行检索。如下图:

例一:
一根K线有四个价格组成:
最高价:HIGH 
收盘价:CLOSE 
最低价:LOW 
开盘价:OPEN 
成交量:VOL
成交额:AMO

例二:
两条均线不断地交叉,就专门设定了一条函数来描述两条线交叉:CROSS(X,Y);
假如下图中的两条均线一条名叫X,另外一条叫Y
CROSS(X,Y);表示X向上穿过了Y
CROSS(Y,X);表示Y向上穿过了X

例三:
前面的CLOSE,还是VOL,都表示当天,或者您使用的不是日线,那就表示本周期的数据,那么前几天的怎么表示呢?
REF(X,M)
例如:
REF(CLOSE,5);表示5天前的收盘;
REF(VOL,10);表示10天前的成交量;
这里的M就是参数。 
什么是参数?
比如讲:10日均线,您可以把10日当作参数,好处在于,您觉得需要修改成5日的时候,就可以使用一些简单的方法,例如参数精灵来很方便的修改和调整。参数需要名字,例如M就不错。还要规定参数的范围,例如1日至260日。这样我们就可以在1到260之间任意调节M的值了,M最常用的数填在“缺省”一栏,例如你最喜欢用10日均线,那就填10吧。

例四:
如果我想把两个条件并列在一起怎么办?
AND
X AND Y就表示条件X和条件Y

3.公式编写举例
3.1 均线指标编写
进入公式管理器,新建一技术指标公式
依次点击菜单“公式公式管理器”,进入公式管理器界面。如下图:

左边的树型列表中选择技术指标公式下面的“均线型”,点击右边的“新建”,就会进入公式编辑界面,如下图:

填写完公式名称,公式描述,点击“插入函数”,选择“简单移动平均”,简单移动平均函数的用法会在对话框下边列出来,点击“确定”按钮,对应的函数会在公式编辑框内显示出来。如下图所示:


填写完 MA函数的两个参数,第一个参数填写收盘价,收盘价在公式函数中用 C 表示,第二个参数填写均线日期,可以直接录入一数字,最后用分号结尾(注:公式编写涉及到符号时用英文字符)。如下图所示:

录入后,下面的动态翻译区会自动翻译公式的意义,“收盘价的10日简单移动平均”,这样一条10日均线的指标就形成了。
编辑器区的相关说明如下:
公式类型:对应的公式可选择加入不同的类型,设定后查看公式时将会在对应的分类项下列出来;
画线方法:
选择副图,指标将会在副图区显示,选择主图叠加,指标将会在主图区显示(如常用指标MA就是主图指标),也可选择在副图上叠加K线,美国线,收盘站线。

坐标线位置:默认的是自动,系统自动根据指标值的范围设定的区间,如上图的 0.60,0.40,0.2,0, -0.2, 0.00 , -0.2  ;可以手动的设置坐标间隔,用分号分开,手动设置后,默认的将会没有。

额外Y轴分界:在指标上加上一些白色的横线,如上图所示。

点击 “测试公式”,若显示测试通过,点击“确定”按钮保存公式。
调出公式时,键盘输入公式名字   JX1  回车,如下图所示:

3.2简单条件选股公式编写
下面编写一选股公式,要求选出“股价小于每股净资产”的个股。
进入公式管理器,新建一条件选股公式
点击菜单“公式公式管理器→点条件选股公式”或者快捷键CTRL +F后点条件选股公式,进入条件选股公式管理器界面。如下图:

选择左边树型列表中条件选股公式下面的其它类型,点击“新建”,如下图:

输入公式名称,公式描述, 如下图所示:


点“插入函数”,选择“收盘价”,点击“确定”,对应的函数就到了编辑区,如下图所示:


录入空格 ,输入 小于号, 再点“插入函数”,在财务函数中找到每股净资产放到后面,以分号结尾,如下图所示:


点击 “测试公式”,若显示测试通过,点击“确定”按钮保存公式。

4.附公式函数列表
4.1序列行情函数 

HIGH 最高价
返回该周期最高价。
用法: HIGH
H 最高价
返回该周期最高价。
用法: H
LOW 最低价
返回该周期最低价。
用法: LOW
L 最低价
返回该周期最低价。
用法: L
CLOSE 收盘价
返回该周期收盘价。
用法: CLOSE
C 收盘价
返回该周期收盘价。
用法: C
VOL 成交量
返回该周期成交量。
用法: VOL
V 成交量
返回该周期成交量。
用法: V
OPEN 开盘价
返回该周期开盘价。
用法: OPEN
O: 开盘价
返回该周期开盘价。
用法: O
ADVANCE 上涨家数
返回该周期上涨家数。
用法: ADVANCE (本函数仅对大盘有效)
DECLINE 下跌家数
返回该周期下跌家数。
用法: DECLINE (本函数仅对大盘有效)
AMOUNT 成交额
返回该周期成交额。
用法: AMOUNT
ZSTJJ 分时图均价
返回该周期的分时图均价线,对于分时图周期指标有效.
VOLINSTK 持仓量
返回该周期持仓量,对于期货和期权有意义.
QHJSJ 结算价
返回该周期结算价,对于期货和期权有意义.
HKSHORTVOL 抛空量
返回该周期抛空量,对于港股有意义.
DHIGH 不定周期最高价
返回该不定周期最高价,属于未来函数.
DOPEN 不定周期开盘价
返回该不定周期开盘价,属于未来函数.
DLOW 不定周期最低价
返回该不定周期最低价,属于未来函数.
DCLOSE 不定周期收盘价
返回该不定周期收盘价,属于未来函数.
DVOL 不定周期成交量
返回该不定周期成交量价,属于未来函数.
4.2时间函数 

PERIOD 周期类型
取得周期类型.
用法:结果从0到13,依次分别是1/5/15/30/60分钟,日/周/月,多分钟,多日/季/年,5秒线/多秒线,13以上为自定义周期
DATE 日期
取得该周期从1900以来的年月日。
用法: DATE 例如函数返回1000101,表示2000年1月1日。
TIME 时间(时分)
取得该周期的时分,,适用于日线以下周期
用法: TIME 函数返回有效值范围为(0000-2359)。
TIME2 时间(时分秒)
取得该周期的时分秒,适用于日线以下周期.
用法:  TIME2 函数返回有效值范围为(000000-235959)
YEAR 年份
取得该周期的年份。
用法:YEAR  (注:YEAR关键字也可用于跨周期年线引用)
MONTH 月份
取得该周期的月份。
用法:MONTH 函数返回有效值范围为(1-12)。
(注:MONTH关键字也可用于跨周期月线引用)
WEEKOFYEAR 年内星期
取得该周是年内第几个周.
用法: WEEKOFYEAR
WEEKDAY 星期
取得该周期的星期数.
用法:  WEEKDAY 函数返回有效值范围为(1,2,3,4,5,6,0)
DAYSTOTODAY 离今天的天数
取得该周期的日期离今天的天数.
用法:  DAYSTOTODAY
DAY 日
取得该周期的日期.
用法:  DAY  函数返回有效值范围为(1-31)
注:DAY关键字也可用于跨周期日线引用
HOUR 小时
取得该周期的小时数.
用法: HOUR 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为0
MINUTE 分钟
取得该周期的分钟数。
用法: MINUTE 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为0。
FROMOPEN 当前离开盘分钟数
求当前时刻距开盘有多长时间。
用法: FROMOPEN 返回当前时刻距开盘有多长时间,单位为分钟。
例如:  FROMOPEN 当前时刻为早上十点,则返回31。
TOTALFZNUM 总分钟数
求该品种的每天的总交易分钟数。
用法:TOTALFZNUM 返回前品种的每天的总交易分钟数,单位为分钟。
DATETODAY 转换天数
指定日期到1990.12.19的天数。
用法:  DATETODAY(date)  返回date到1990.12.19的天数.有效日期为(901219-1341231)
例如:  DATETODAY(901219)返回0。
 DAYTODATE(N)  转换日期
求1990.12.19后第若干天的日期。
用法:  DAYTODATE(N).返回1990.12.19后第N天的日期.有效天数为(0-20000)
例如:  DAYTODATE(0)返回901219。
 TIMETOSEC 当日秒数
求指定时刻距0时有多长时间。
用法:  TIMETOSEC(time).返回time时刻距0时有多长时间,单位为秒.有效时间为(0-235959)
例如:  TIMETOSEC(93000)返回34200。
SECTOTIME 转换时间
求0时后若干秒是什么时间。
用法:  SECTOTIME(N).返回0时后N秒是什么时间.有效秒数为(0-86399)
例如:   SECTOTIME(34200)返回93000。
MACHINEDATE 当前系统的日期
取得当前客户端机器从1900以来的的年月日,比如2016年10月1日为: 01161001, MACHINEDATE+19000000后才是真正的日期值,公式内容中请不要直接写8位长的日期数字。
MACHINTIME  当前系统的时间
取得当前客户端机器的时间,比如11:01:15时为110115。
MACHINWEEK  当前系统的星期
取得当前客户端机器为星期几(1,2,3,4,5,6,0)。



4.3引用函数

DRAWNULL 无效数
返回无效数。
用法: DRAWNULL
例如: IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL)表示下跌时不画线
BACKSET 向前赋值
将当前位置到若干周期前的数据设为1。
用法: BACKSET(X,N) 若X非0,则将当前位置到N周期前的数值设为1。
例如: BACKSET(CLOSE>OPEN,2)若收阳则将该周期及前一周期数值设为1,否则为0
BARSCOUNT 有效数据周期数
求总的周期数。
用法: BARSCOUNT(X) 第一个有效数据到当前的天数。
例如:BARSCOUNT(CLOSE)对于日线数据取得上市以来总交易日数
CURRBARSCOUNT 到最后交易日的周期数
求到最后交易日的周期数.
用法:
CURRBARSCOUNT 求到最后交易日的周期数
TOTALBARSCOUNT 总的周期数
求总的周期数.
用法:
TOTALBARSCOUNT 求总的周期数 
BARSLAST 上一次条件成立位置
上一次条件成立到当前的周期数。
用法: BARSLAST(X) 上一次X不为0到现在的天数。
例如: BARSLAST(CLOSE/REF(CLOSE,1)>=1.1)表示上一个涨停板到当前的周期数
BARSSINCEN  N周期内首个条件成立位置
N周期内第一个条件成立到当前的周期数.
用法:BARSSINCEN(X,N):N周期内第一次X不为0到现在的周期数,N为常量
例如:BARSSINCEN(HIGH>10,10)表示10个周期内股价超过10元时到当前的周期数
BARSSINCE 首个条件成立位置
第一个条件成立到当前的周期数。
用法: BARSSINCE(X) 第一次X不为0到现在的天数。
例如: BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数
COUNT 统计
统计满足条件的周期数。
用法: COUNT(X,N) 统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。
例如: COUNT(CLOSE>OPEN,20)表示统计20周期内收阳的周期数
BARSLASTCOUNT  条件连续成立次数
统计连续满足条件的周期数.
用法:BARSLASTCOUNT(X),统计连续满足X条件的周期数.
例如:BARSLASTCOUNT(CLOSE>OPEN)表示统计连续收阳的周期数
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日的第几个高价。
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日的第几个低价。
HHVLLV  阶段最高最低值
阶段最高最低值.
用法:HHVLLV(X,T,N1,N2),表示前N1日到前N2日时段内的X最高值(T=0时)或最低值(T=1时)。 若N1为0,表示从第一天开始,N2为0,表示到最后日止,当N1,N2非0时,N1应>=N2。
REVERSE 求相反数
求相反数。
用法: REVERSE(X) 返回-X。
例如: REVERSE(CLOSE)返回-CLOSE
REF 向前引用
引用若干周期前的数据。
用法: REF(X,A) 引用A周期前的X值。
例如: REF(CLOSE,BARSCOUNT(C)-1)表示第二根K线的收盘价.
REFX  日后的
属于未来函数,引用若干周期后的数据.
用法:  REFX(X,A),引用A周期后的X值.A可以是变量.
例如:TT:=IF(C>O,1,2);
 REFX(CLOSE,TT);表示阳线引用下一周期的收盘价,阴线引用日后第二周期的收盘价.
REFV  日前的(平滑处理)
引用若干周期前的数据(平滑处理).
用法:  REFV(X,A),引用A周期前的X值.A可以是变量.
例如:  REFV(CLOSE,BARSCOUNT(C)-1)表示第二根K线的收盘价.
REFXV  日后的(平滑处理)
属于未来函数,引用若干周期后的数据(平滑处理).
用法:  REFXV(X,A),引用A周期后的X值.A可以是变量.
例如:  REFXV(CLOSE,1)表示下一周期的收盘价,在日线上就是明天收盘价
REFDATE 日(指定引用)
引用指定日期的数据。
用法: REFDATE(X,A) 引用A日期的X值。
例如: REFDATE(CLOSE,1011208)表示2001年12月08日的收盘价。
CALCSTOCKINDEX   指标引用
指标引用.
用法:CALCSTOCKINDEX(品种代码,指标名称,指标线),返回该指标相应输出的计算值.
例如:
 CALCSTOCKINDEX('SH600000','KDJ',3)表示上证600000的KDJ指标第3个输出即J之值,第一个参数可在前面加SZ(深市),SH(沪市),BJ(京市),或市场_,,
CALCSTOCKINDEX('47_IFL0','MACD',2)表示IFL0品种的MACD指标第2个输出值。
注意:引用品种的对应周期的数据必须要先下载到本地。
SUM 总和
求总和。
用法: SUM(X,N) 统计N周期中X的总和,N=0则从第一个有效值开始。
例如: SUM(VOL,0)表示统计从上市第一天以来的成交量总和
MULAR  累乘
求累乘.
用法:MULAR(X,N),统计N周期中X的乘积.N=0则从第一个有效值开始。
例如:MULAR(C/REF(C,1),0)表示统计从上市第一天以来的复利。
FILTER 过滤
过滤连续出现的信号。
用法: FILTER(X,N) X满足条件后,删除其后N周期内的数据置为0。
例如: FILTER(CLOSE>OPEN,5)查找阳线,5天内再次出现的阳线不被记录在内。
FILTERX  反向过滤
反向过滤连续出现的信号.
用法:FILTERX(X,N):X满足条件后,将其前N周期内的数据置为0,N为常量.
例如:FILTERX(CLOSE>OPEN,5)查找阳线,前5天内出现过的阳线不被记录在内。
TFILT  区间过滤
对指定时间段的数据进行过滤,该时间段以外的数据无效。
用法:TFILT(X,D1,M1,D2,M2)
例如:TFILT(CLOSE,1040101,1025,1040101,1345)表示在2004年1月1日的10:25到2004年1月1日的13:45的收盘价是有效的。
周期以日为基本单位的,分时为0有效。
TFILTER  信号过滤(多头)
过滤连续出现的信号.
用法:TFILTER(买入条件,卖出条件,N);过滤掉买入(卖出)信号发出后,下一个反向信号发出前的所有买入(卖出)信号.
N=1表示仅对买入信号过滤;
N=2表示仅对卖出信号过滤;
N=0表示对买入和卖出信号都过滤,返回1,2表示买入或卖出条件成立;
同一K线上只能有一个信号;
例如:
ENTERLONG:TFILTER(买入,卖出,1);
EXITLONG:TFILTER(买入,卖出,2);
TTFILTER  信号过滤(多空)
按照开平配对等原则过滤不合理的信号.
用法:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,N);
主要规则有:
1.连续的同方向指令只有第一个有效,其他的将被过滤;
2.交易信号必须配对出现(比如前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被过滤掉);

N=1表示仅对买入开仓信号过滤;
N=2表示仅对卖出平仓信号过滤;
N=3表示仅对卖出开仓信号过滤;
N=4表示仅对买入平仓信号过滤;
N=0表示都过滤,返回1,2,3,4分别表示对应的条件成立;
同一K线上只能有一个信号;

例如:
ENTERLONG:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,1);
EXITLONG:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,2);
ENTERSHORT:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,3);
EXITSHORT:TTFILTER(买入开仓,卖出平仓,卖出开仓,买入平仓,4);
TR  真实波幅
求真实波幅, (最高-最价),(最高-昨收),(最低-昨收)三者绝对值中的最大值.
用法:
 TR,求真实波幅.
 例如:ATR:=MA(TR,10);
 表示求真实波幅的10周期均值。
SUMBARS 累加到指定值的周期数
向前累加到指定值到现在的周期数。
用法: SUMBARS(X,A) 将X向前累加直到大于等于A,返回这个区间的周期数。,若所有的数据都累加后还不能达到A,则返回此时前面的总周期数.
例如: SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数。
SUMBARSX 累加到指定值的周期数
向前累加到指定值到现在的周期数.
用法:
 SUMBARSX(X,A):将X向前累加直到大于等于A,返回这个区间的周期数,若所有的数据都累加后还不能达到A,则返回无效值
MA 简单移动平均
返回简单移动平均。
用法: MA(X,M) X的M日简单移动平均。
SMA 移动平均
返回移动平均。
用法: SMA(X,N,M) X的M日移动平均,M为权重,如Y=(X*M+Y'*(N-M))/N。
TMA  移动平均
返回移动平均
用法:TMA(X,A,B),A和B必须小于1,算法   Y=(A*Y'+B*X),其中Y'表示上一周期Y值.初值为X。
EMA(或EXPMA) 指数移动平均
返回指数移动平均。
用法: EMA(X,M) X的M日指数移动平均。
MEMA 平滑移动平均
返回平滑移动平均
用法: MEMA(X,M) X的M日平滑移动平均。
MEMA(X,N)与MA的差别在于起始值为一平滑值,而不是初始值
EXPMEMA 指数平滑移动平均
返回指数平滑移动平均。
用法: EXPMEMA(X,M) X的M日指数平滑移动平均。
EXPMEMA同EMA(即EXPMA)的差别在于他的起始值为一平滑值。
WMA  加权移动平均
返回加权移动平均
用法:  WMA(X,N):X的N日加权移动平均.算法:Yn=(1*X1+2*X2+...+n*Xn)/(1+2+...+n)。
DMA 动态移动平均
求动态移动平均。
用法: DMA(X,A) 求X的动态移动平均。
算法: 若Y=DMA(X,A)则 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1。
例如: DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价。
AMA  自适应均线
求自适应均线值。
用法: AMA(X,A),A为自适应系数,必须小于1.
算法: Y=Y'+A*(X-Y').初值为X。
XMA  偏移移动平均
属于未来函数,返回偏移移动平均
用法:XMA(X,N):X的N日偏移移动平均,用到了当日以后N/2日的数据,N支持变量,只供内部测试使用。
RANGE 介于某个范围之间
用法: RANGE(A,B,C) A在B和C。
例如: RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0
CONST 取值设为常数
用法:  CONST(A) 取A最后的值为常量.
例如: CONST(INDEXC)表示取指数现价
TOPRANGE   当前值是近多少周期内的最大值
当前值是近多少周期内的最大值.
用法: TOPRANGE(X):X是近多少周期内X的最大值
例如:TOPRANGE(HIGH)表示当前最高价是近多少周期内最高价的最大值
LOWRANGE   当前值是近多少周期内的最小值
当前值是近多少周期内的最小值.
用法: LOWRANGE(X):X是近多少周期内X的最小值
例如:LOWRANGE(LOW)表示当前最低价是近多少周期内最低价的最小值
FINDHIGH  寻找指定周期内的特定最大值
N周期前的M周期内的第T个最大值.
用法:FINDHIGH(VAR,N,M,T):VAR在N日前的M天内第T个最高价。
FINDHIGHBARS  寻找指定周期内的特定最大值到当前周期的周期数
N周期前的M周期内的第T个最大值到当前周期的周期数.
用法:FINDHIGHBARS(VAR,N,M,T):VAR在N日前的M天内第T个最高价到当前周期的周期数
FINDLOW   寻找指定周期内的特定最小值
N周期前的M周期内的第T个最小值.
用法:FINDLOW(VAR,N,M,T):VAR在N日前的M天内第T个最低价
FINDLOW   寻找指定周期内的特定最小值到当前周期的周期数
N周期前的M周期内的第T个最小值到当前周期的周期数.
用法:FINDLOWBARS(VAR,N,M,T):VAR在N日前的M天内第T个最低价到当前周期的周期数.
EXTERNSTR   引用自定义外部字符串数据
EXTERNSTR(TYPE,ID) 
TYPE为1表示是系统保留数据,
TYPE为0表示是自定义外部数据,读取signals目录下面的的extern_user.txt,请用自定义数据管理器来维护 
extern_user.txt为文本结构,如下 1|600717|1|好股|0.33 
市场(0:深圳,1:上海,2:北京)|品种代码|数据号|文字串|数值 如果是导出格式,则不需要数据号
EXTERNVALUE   引用自定义外部数值数据
EXTERNVALUE(TYPE,ID),用法同EXTERNSTR类似
SIGNALS_SYS  引用自定义序列数据(系统)
引用自定义序列数据(系统)
SIGNALS_USER  引用自定义序列数据
引用自定义序列数据.
读取个人目录下的signals目录下面的[signals_user_?]目录,请用自定义数据管理器来维护.
SIGNALS_USER(11,TYPE):表示读当前品种的11数据号的序列数据(自定义数据需按日期从小到大排序),TYPE:1表示做平滑处理,没有自定义数据的周期返回上一周期的值;0表示不做平滑处理;2表示没有数据则为0。
EXTDATA_USER   引用扩展数据
引用扩展数据.
请用扩展数据管理器来设置和刷新数据.
EXTDATA_USER(N,TYPE),N取(1-100),表示读当前品种的N号扩展序列数据,TYPE:1表示做平滑处理,没有数据的周期返回上一周期的值;0表示不做平滑处理;2表示没有数据则为0.
SPLIT  除权除息数据
除权除息数据。
SPLIT(N,TYPE),取得之前第N次除息除权(送转股,分红)的除权除息数据,参数为0表示送转股的比例(送转/(送转+10)),1表示每股分红(分红/10)),例如:SPLIT(0,0)=0.5表示最近一次除权可能是10送10。
SPLITBARS  除权除息到现在的周期数
除权除息到现在的周期数
SPLITBARS(N,TYPE),取得之前第N次除权除息到当前的周期数,参数为0表示送转股,1表示分红,2表示送转股或分红,例如:SPLITBARS(0,0)=0表示当天发生除权。
DIVFACTOR   除权因子
除权因子
DIVFACTOR(TYPE),TYPE=0表示根据使用公式时带进来的复权方式(自适应) 1表示前复权 2表示后复权。
ZTPRICE  计算涨停价
返回涨停价
用法:
 ZTPRICE(REF(CLOSE,1),0.1):按10%计算得到在昨收盘基础上的涨停价(对于复权序列K线,由于复权处理或不复权时的分红转增,根据前一天的收盘价计算结果可能与涨停价不符)
比如:
 ZTPrice(REF(QHJSJ,1),0.1),得到期货的涨停价。
DTPRICE   计算跌停价
返回跌停价
用法:DTPRICE(REF(CLOSE,1),0.1):按10%计算得到在昨收盘基础上的跌停价(对于复权序列K线,由于复权处理或不复权时的分红转增,根据前一天的收盘价计算结果可能与跌停价不符)
比如:DTPrice(REF(QHJSJ,1),0.6),得到期货的跌停价(跌停比例为0.6的话)。

TDXDLL1  第1号DLL
调用DLL中的函数.
用法:
 DLL1(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号。
TDXDLL2  第2号DLL
调用DLL中的函数.
用法:
 DLL2(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号。
USERFUNC0  DLL函数(无参数)
调用DLL中的函数,DLL中内部对应定义.
用法: USERFUNC0
USERFUNC1   DLL 函数(1参数)
调用DLL中的函数,DLL中内部对应定义.
用法:USERFUNC1(param1)。
4.4板块字符函数
CODE 品种代码
返回品种代码
用法:DRAWTEXT_FIX(ISLASTBAR,0,0,0,CODE);在屏幕左上角显示品种代码。
STKNAME  品种名称
返回品种名称.
用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,STKNAME);在屏幕左上角显示品种名称。
HYBLOCK  所属行业(字串)
返回品种所属行业.
用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,HYBLOCK);在屏幕左上角显示所属行业板块
DYBLOCK  所属地域(字串)
返回品种所属地域.
用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,DYBLOCK);在屏幕左上角显示所属地域板块
MOREHYBLOCK  所属细分行业(字串)
返回品种所属细分行业.
用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,MOREHYBLOCK);在屏幕左上角显示所属细分行业板块
MAINBUSINESS  主营构成(字串)
返回主营构成.
用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,MAINBUSINESS);在屏幕左上角显示主营构成
GNBLOCK  所属概念板块(字串)
返回所属概念板块.
用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,GNBLOCK);在屏幕左上角显示所属概念板块
FGBLOCK  所属风格板块(字串)
返回所属风格板块.
用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,FGBLOCK);在屏幕左上角显示所属风格板块
ZSBLOCK  所属指数板块(字串)
返回所属指数板块.
用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,ZSBLOCK);在屏幕左上角显示所属指数板块
ZHBLOCK  所属组合板块(字串)
返回所属组合板块.
用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,ZHBLOCK);在屏幕左上角显示所属组合板块
ZDBLOCK  所属自定义板块(字串)
返回所属自定义板块.
用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,ZDBLOCK);在屏幕左上角显示所属自定义板块
GNBLOCKNUM  所属概念板块(个数)
返回所属概念板块的个数,比如:IF(GNBLOCKNUM>5,1,0);.
FGBLOCKNUM  所属风格板块(个数)
返回所属风格板块的个数.
ZSBLOCKNUM 所属指数板块(个数)
返回所属指数板块的个数.
ZHBLOCKNUM 所属组合板块(个数)
返回所属组合板块的个数.
ZDBLOCKNUM 所属自定义板块(个数)
返回所属自定义板块的个数
HYZSCODE  所属行业的板块指数代码
返回品种所属行业的板块指数代码.比如: CALCSTOCKINDEX(HYZSCODE,'KDJ',3);
HYSYL  指数市盈率或个股所属行业的市盈率
返回指数市盈率或个股所属行业的市盈率.
HYSJL  指数市净率或个股所属行业的市净率
返回指数市净率或个股所属行业的市净率.
GNBKZSCODE  所属概念板块的指数代码
返回品种所属概念板块的指数代码,参数表示是第几个,支持1-60.
用于支持Level2行情的版本,比如: CALCSTOCKINDEX(GNBKZSCODE(1),'KDJ',3);
FGBKZSCODE  所属风格板块的指数代码
返回品种所属风格板块的指数代码,,参数表示是第几个,支持1-60.
用于支持Level2行情的版本,比如: CALCSTOCKINDEX(FGBKZSCODE(1),'KDJ',3);
INBLOCK  属于某板块
返回品种是否属于某板块.
用法:if(INBLOCK('沪深300'),x,y);
板块名称支持系统板块(上证A股,深证A股,沪深A股/全部A股,创业板,科创板,自选股,板块指数等),地区,行业(按系统设置的通达信二级或研究二级),概念,风格,指数,组合和自定义板块,注意名称要准确(HY.和GN.和MY.开头就直接找行业和概念和自定义板块)
NAMELIKE  模糊匹配品种名称
品种名称是否以参数开头.
用法: if(NAMELIKE('ST'),x,y);
CODELIKE  模糊匹配品种代码
品种代码是否以参数开头.
用法:if(CODELIKE('600'),x,y);
NAMEINCLUDE  品种名称中包含
品种名称中是否包含参数.
用法: if(NAMEINCLUDE('文化'),x,y);
GETNAMEOFCODE  根据品种代码得到品种名称
根据品种代码和市场(比如深交所为0,上交所和板块指数为1,未知时可传-1),得到品种名称.
用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,GETNAMEOFCODE(1,HYZSCODE));
CON2STR  取值转为字符串
CON2STR(A,N):取A最后的值(非序列值)转为字符串,小数位数N.
用法:CON2STR(FINANCE(20),3)表示取营业收入,以3位小数转为字符串
VAR2STR  取值转为字符串(序列)
VAR2STR(A,N):取A的每一个值转为字符串,小数位数N.
用法:VAR2STR(C,3)表示取收盘价,以3位小数转为字符串
STR2CON  字符串转为数字
STR2CON(S):将字符串S转化为数字.
用法:STR2CON('2365.02')表示将字符串'2365.02'转化为数字2365.02
STRLEN  得到字符串的长度
STRLEN(S):得到字符串S(非序列值)的长度.
用法: STRLEN('通达信')表示字符串'通达信'为6
STRCAT 字符串相加
STRCAT(A,B):将两个字符串A,B(非序列化)相加成一个字符串C.
用法:STRCAT('多头','开仓')将两个字符串'多头','开仓'相加成一个字符串'多头开仓'
STRSPACE  字符串加一空格
STRSPACE(A):字符串附带一空格
SUBSTR  字符串中取一部分
SUBSTR(S,A,N):取字符串S中从位置A取N长的子字符串,A从1开始
VARCAT  字符串相加(序列)
VARCAT(A,B):将两个字符串A,B相加成一个字符串C.
用法:DRAWTEXT(CLOSE>OPEN,LOW,VARCAT('多头',VAR2STR(C,2))) 将两个字符串相加成一个字符串并按条件显示出来
STRCMP  字符串比较
STRCMP(A,B):比较两个字符串A,B是否相等.
用法:STRCMP(HYBLOCK,'房地产')将成分股行业字符串与'房地产'比较,是否相等,如果相等表示属于房地产板块。
FINDSTR  字符串查找
FINDSTR(A,B):在字符串A中查找字符串B,如果找到返回1,否则返回0.
用法: FINDSTR('多头开仓','开仓')在字符串'多头开仓'中查找字符串'开仓',返回1
4.5逻辑函数
CROSS 上穿
两条线交叉。
用法:CROSS(A,B) 表示当A从下方向上穿过B时返回1,否则返回0。
例如:CROSS(MA(CLOSE,5),MA(CLOSE,10))表示5日均线与10日均线交金叉LONGCROSS 维持一定周期后上穿
两条线维持一定周期后交叉。
用法:LONGCROSS(A,B,N) 表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。
UPNDAY 连涨
返回是否连涨周期数。
用法:UPNDAY(CLOSE,M) 表示连涨M个周期。
DOWNNDAY 连跌
返回是否连跌周期。
用法:DOWNNDAY(CLOSE,M) 表示连跌M个周期。
NDAY 连大
返回是否持续存在X>Y。
用法:NDAY(CLOSE,OPEN,3)  表示连续3日收阳线
EXIST 存在
是否存在。
用法:EXIST(CLOSE>OPEN,10)  表示前10日内存在着阳线
EVERY 一直存在
一直存在。
用法:EVERY(CLOSE>OPEN,10)  表示前10日内一直阳线
LAST 持续存在
LAST(X,A,B):持续存在.
例如: LAST(CLOSE>OPEN,10,5) ,表示从前10日到前5日内一直阳线。
 若A为0,表示从第一天开始,B为0,表示到最后日止。
NOT  取反
求逻辑非.
用法:NOT(X)返回非X,即当X=0时返回1,否则返回0
例如:NOT(ISUP)表示平盘或收阴。
ISVALID  判断有效值
判断是否是有效数值。
4.6逻辑函数 

IF 条件判断
根据条件求不同的值。
用法:IF(X,A,B) 若X不为0则返回A,否则返回B。
例如:IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值
IFF 条件判断
根据条件求不同的值。
用法:IFF(X,A,B) 若X不为0则返回A,否则返回B。
例如:IFF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值
IFN 条件反判断
根据条件求不同的值。
用法:IFN(X,A,B) 若X不为0则返回B,否则返回A。
例如: IFN(CLOSE>OPEN,HIGH,LOW)表示该周期收阴则返回最高值,否则返回最低值
IFC  条件判断,可终止
根据条件执行不同的语句,可中止(根据序列的最后一个数值来判断).
用法:IFC(X,A,B)若X不为0则执行A,否则执行B.IFC与IF函数的区别:根据X的值来选择性执行A、B表达式.
例如: IFC(CLOSE>OPEN,HIGH,TESTSKIP(1));L;表示当日收阳则返回最高值,并执行下一句"L;",否则退出公式计算。
VALUEWHEN  条件跟随
VALUEWHEN(COND,X) 
当COND条件成立时,取X的当前值,否则取VALUEWHEN的上个值.
TESTSKIP  是否就此返回
TESTSKIP(A):满足A则直接返回.
用法: TESTSKIP(A) ,表示如果满足条件A则该公式直接返回,不再计算接下来的表达式 注意:A为非序列数据,只取最后一个数据。

4.7数学函数 
MAX 较大值
求最大值。
用法:MAX(A,B) 返回A和B中的较大值。
例如:MAX(CLOSE-OPEN,0)表示若收盘价大于开盘价返回它们的差值,否则返回0
MIN 较小值
求最小值。
用法:MIN(A,B) 返回A和B中的较小值。
例如:MIN(CLOSE,OPEN)返回开盘价和收盘价中的较小值
MAX6  较大值
求6个参数中的最大值.
用法:MAX6(A,B,C,D,E,F)返回较大值
MIN6  较小值
求6个参数中的最小值.
用法:MIN6(A,B,C,D,E,F)返回较小值
ACOS 反余弦
反余弦值。
用法:ACOS(X) 返回X的反余弦值。
ASIN 反正弦
反正弦值。
用法:ASIN(X) 返回X的反正弦值。
ATAN 反正切
反正切值。
用法:ATAN(X) 返回X的反正切值。
COS 余弦
余弦值。
用法:COS(X) 返回X的余弦值。
SIN 正弦
正弦值。
用法:SIN(X) 返回X的正弦值。
TAN 正切
正切值。
用法:TAN(X) 返回X的正切值。
EXP 指数
指数。
用法:EXP(X) e的X次幂。
例如:EXP(CLOSE)返回e的CLOSE次幂
LN 自然对数
求自然对数。
用法:LN(X) 以e为底的对数。
例如:LN(CLOSE)求收盘价的对数
LOG 对数
求10为底的对数。
用法:LOG(X) 取得X的对数。
例如:LOG(100)等于2
SQRT 开方
开平方。
用法:SQRT(X)  求X的平方根。
例如:SQRT(CLOSE)收盘价的平方根
ABS 绝对值
求绝对值。
用法:ABS(X) 返回X的绝对值。
例如:ABS(-34)返回34
POW 乘幂
乘幂。
用法:POW(A,B) 返回A的B次幂。
例如:POW(CLOSE,3)求得收盘价的3次方。
CEILING 向上舍入
向上舍入。
用法:CEILING(A) 返回沿A数值增大方向最接近的整数。
例如:CEILING(12.3)求得13,CEILING(-3.5)求得-3
FLOOR 向下舍入
向下舍入。
用法:FLOOR(A) 返回沿A数值减小方向最接近的整数。
例如:FLOOR(12.3)求得12,FLOOR(-3.5)求得-4
INTPART 整数部分
用法:INTPART(A) 返回沿A绝对值减小方向最接近的整数。
例如:INTPART(12.3)求得12,INTPART(-3.5)求得-3。
BETWEEN: 介于
介于。
用法:BETWEEN(A,B,C) 表示A处于B和C之间时返回1,否则返回0。
例如:BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间。
FRACPART  小数部分
小数部分.
用法: FRACPART(X),返回X的小数部分。
ROUND 四舍五入
四舍五入.
用法:ROUND(X),返回X四舍五入到个位的数值。
ROUND2 四舍五入
四舍五入.
用法:ROUND2(X,N),返回X四舍五入到N位小数的数值。由于精度问题,数据越大误差可能越大。
SIGN  符号
取符号.
用法: SIGN(X),返回X的符号.当X>0,X=0,X<0分别返回1,0,-1。
MOD 模
取模.
用法: MOD(M,N),返回M关于N的模(M除以N的余数)。
例如:MOD(5,3)返回2 注意:公式系统对有效数字部分有要求,如果数字部分超过7-8位,会有精度丢失。
RAND 随机正整数
取随机数.
用法:RAND(N),返回一个范围在1-N的随机整数。
4.8统计函数 
AVEDEV 平均绝对方差
AVEDEV(X,N)  返回平均绝对方差。
DEVSQ 数据偏差平方和
DEVSQ(X,N)  返回数据偏差平方和。
FORCAST 线性回归预测值
FORCAST(X,N)  返回线性回归预测值。
SLOPE 线性回归斜率
SLOPE(X,N)  返回线性回归斜率。
STD 估算标准差
STD(X,N)  返回估算标准差。
STDP 总体标准差
STDP(X,N)  返回总体标准差。
VAR 估算样本方差
VAR(X,N)  返回估算样本方差。
VARP 总体样本方差
VARP(X,N)  返回总体样本方差 。
COVAR  协方差
COVAR(X,Y,N) 返回X和Y的N周期的协方差,N支持变量。
RELATE  相关系数
RELATE(X,Y,N) 返回X和Y的N周期的相关系数,N支持变量。
BETA  β(Beta)系数
β(Beta)系数
BETA(N) 返回当前证券N周期收益与对应大盘指数收益相比的贝塔系数,N支持变量。
(对应指数的数据必须要先下载到本地)
BETAEX  相关放大系数
BETAEX(X,Y,N) 返回X与Y的N周期的相关放大系数,N支持变量。
IVOLAT  期权波动率
IVOLAT(N,M) 返回期权波动率 N表示计算周期 M表示类型,0:标的证券的历史波动率 1:隐含波动率。
BLOCKSETNUM  板块股个数
BLOCKSETNUM.横向统计
用法:BLOCKSETNUM(板块名称),
返回该板块的股票个数.
板块名称支持系统板块(上证A股,深证A股,沪深A股/全部A股,创业板,科创板,自选股,板块指数等),地区,行业(按系统设置的通达信二级或研究二级),概念,风格,指数,组合和自定义板块,注意名称要准确(HY.和GN.和MY.开头就直接找行业和概念和自定义板块,此函数计算有较大耗时,请慎用于画线指标),
第一个参数也可以是HYBLOCK等,某板块指数的STKNAME。
HORCALC  板块统计
HORCALC.横向统计
用法:HORCALC(板块名称,数据项,计算方式,权重),
数据项:100-HIGH,101-OPEN,102-LOW,103-CLOSE,104-VOL,105-涨幅,106-成交额
计算方式:0-累加,1-排名次,2-平均值
平均值权重:0-总股本,1-流通股本,2-等同权重,3-流通市值,4-总市值.
板块名称支持系统板块(上证A股,深证A股,沪深A股/全部A股,创业板,科创板,自选股,板块指数等),地区,行业(按系统设置的通达信二级或研究二级),概念,风格,指数,组合和自定义板块,注意名称要准确(HY.和GN.和MY.开头就直接找行业和概念和自定义板块,此函数计算有较大耗时,请慎用于画线指标),
第一个参数也可以是HYBLOCK等,某板块指数的STKNAME。
INSORT  板块指标排序
INSORT.横向统计
用法:INSORT(板块名称,指标名称,指标线,升降序),
返回该股在板块中的排序序号
例如: INSORT('房地产','KDJ',3,0)表示该股的KDJ指标第三个输出即J之值在房地产板块中的排名,
最后一个参数为0表示降序排名.
板块名称支持系统板块(上证A股,深证A股,沪深A股/全部A股,创业板,科创板,自选股,板块指数等),地区,行业(按系统设置的通达信二级或研究二级),概念,风格,指数,组合和自定义板块,注意名称要准确(HY.和GN.和MY.开头就直接找行业和概念和自定义板块,此函数计算有较大耗时,请慎用于画线指标),
第一个参数也可以是HYBLOCK等,某板块指数的STKNAME。
INSUM   板块指标统计
INSUM.横向统计
用法:INSUM(板块名称,指标名称,指标线,计算类型),
返回板块各成分该指标相应输出按计算类型得到的计算值.计算类型:0-累加,1-平均数,2-最大值,3-最小值,4-最大值所处的品种序号,5-最小值所处的品种序号.
例如:INSUM('房地产','KDJ',3,0)表示房地产板块中所有股票的KDJ指标第三个输出即J之值的累加值.
板块名称支持系统板块(上证A股,深证A股,沪深A股/全部A股,创业板,科创板,自选股,板块指数等),地区,行业(按系统设置的通达信二级或研究二级),概念,风格,指数,组合和自定义板块,注意名称要准确(HY.和GN.和MY.开头就直接找行业和概念和自定义板块,此函数计算有较大耗时,请慎用于画线指标),
第一个参数也可以是HYBLOCK等,某板块指数的STKNAME,
若为MYBGBK和MYFGBK(Level2行情的版本),则为它所属的一些概念板块指数和风格板块指数,例如:INSUM('MYGNBK','KDJ',3,4)。
4.9形态函数 

COST 成本分布
成本分布情况。
用法: COST(10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上,为套牢盘。
该函数仅对日线分析周期有效。
PEAK 波峰值
前M个ZIG转向波峰值。
用法: PEAK(K,N,M) 表示之字转向ZIG(K,N)的前M个波峰的数值,M必须大于等于1。
例如: PEAK(1,5,1)表示%5最高价ZIG转向的上一个波峰的数值
PEAKBARS 波峰位置
前M个ZIG转向波峰到当前距离。
用法: PEAKBARS(K,N,M) 表示之字转向ZIG(K,N)的前M个波峰到当前的周期数,M必须大于等于1。
例如: PEAKBARS(0,5,1)表示%5开盘价ZIG转向的上一个波峰到当前的周期数
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函数相同。
TROUGH 波谷值
前M个ZIG转向波谷值。
用法: TROUGH(K,N,M) 表示之字转向ZIG(K,N)的前M个波谷的数值,M必须大于等于1。
例如: TROUGH(2,5,2)表示%5最低价ZIG转向的前2个波谷的数值
TROUGHBARS 波谷位置
前M个ZIG转向波谷到当前距离。
用法: TROUGHBARS(K,N,M) 表示之字转向ZIG(K,N)的前M个波谷到当前的周期数,M必须大于等于1。
例如: TROUGHBARS(2,5,2)表示%5最低价ZIG转向的前2个波谷到当前的周期数
WINNER 获利盘比例
获利盘比例。
用法: WINNER(CLOSE) 表示以当前收市价卖出的获利盘比例。
例如: 返回0.1表示10%获利盘;WINNER(10.5)表示10.5元价格的获利盘比例
该函数仅对日线分析周期有效。
LWINNER 近期获利盘比例
近期获利盘比例。
用法: LWINNER(5,CLOSE) 表示最近5天的那部分成本以当前收市价卖出的获利盘比例。例如返回0.1表示10%获利盘。
PWINNER 远期获利盘比例
远期获利盘比例。
用法: PWINNER(5,CLOSE) 表示5天前的那部分成本以当前收市价卖出的获利盘比例。例如返回0.1表示10%获利盘。
COSTEX 区间成本
区间成本。
用法: COSTEX(CLOSE,REF(CLOSE,1)),表示近两日收盘价格间筹码的成本,例如返回10表示区间成本为20元。
该函数仅对日线分析周期有效。
PPART 远期成本分布比例
远期成本分布比例。
用法: PPART(10),表示10前的成本占总成本的比例,0.2表示20%。
ZIG 之字转向
之字转向。
用法: ZIG(K,N) 当价格变化量超过N%时转向,K表示0:开盘价,1:最高价,2:最低价,3:收盘价,其余:数组信息。
例如: ZIG(3,5)表示收盘价的5%的ZIG转向。
ZIGA  之字转向
属于未来函数,之字转向.
用法:ZIGA(K,X),当价格变化超过X时转向,K表示0:开盘价,1:最高价,2:最低价,3:收盘价,其余:数组信息。
例如:ZIGA(3,1.5)表示收盘价变化1.5元的ZIGA转向。
NewSAR  新抛物转向
新抛物转向函数
用法:NewSAR(N,S),N为起始统计天数,S为加速因子。
例如:NewSAR(10,2)表示从10日后开始统计,加速因子为2的抛物转向。
LFS    锁定因子
LFS返回个股锁定因子。
4.10 指数标的函数 

INDEXA  大盘的成交额
INDEXA 返回对应的大盘成交额,分别是上证指数,深证成指,科创50,创业板指,港股为恒生指数,国内期货为对应的L9指数品种(持仓量)。
(对应指数的数据必须要先下载到本地)
INDEXADV  大盘的上涨家数
INDEXADV返回对应的上涨家数,分别是上证指数,深证成指,科创50,创业板指。
(对应指数的数据必须要先下载到本地)
INDEXDEC  大盘的下跌家数
INDEXDEC 返回对应的下跌家数,分别是上证指数,深证成指,科创50,创业板指。

(对应指数的数据必须要先下载到本地)
INDEXC  大盘的收盘价
INDEXC 返回对应的大盘收盘价,分别是上证指数,深证成指,科创50,创业板指,港股为恒生指数,国内期货为对应的L9指数品种。
(对应指数的数据必须要先下载到本地) 注:多日线周期(除缺省45日),需要对应数据日期一致
INDEXH  大盘的最高价
INDEXH 返回对应的大盘最高价,分别是上证指数,深证成指,科创50,创业板指,港股为恒生指数,国内期货为对应的L9指数品种。
(对应指数的数据必须要先下载到本地)
INDEXL  大盘的最低价
INDEXL 返回对应的大盘最低价,分别是上证指数,深证成指,科创50,创业板指,港股为恒生指数,国内期货为对应的L9指数品种。
(对应指数的数据必须要先下载到本地)
INDEXO  大盘的开盘价
INDEXO 返回对应的大盘开盘价,分别是上证指数,深证成指,科创50,创业板指,港股为恒生指数,国内期货为对应的L9指数品种。
(对应指数的数据必须要先下载到本地)
INDEXV  大盘的成交量
INDEXV 返回对应的大盘成交量,分别是上证指数,深证成指,科创50,创业板指,港股为恒生指数,国内期货为对应的L9指数品种。
(对应指数的数据必须要先下载到本地)
HY_INDEXA 行业指数的成交额
HY_INDEXA 返回对应的行业指数成交额,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持。
(对应指数的数据必须要先下载到本地)
HY_INDEXADV  行业指数的上涨家数
HY_INDEXADV 返回对应的行业指数上涨家数,如果没有通达信板块指数,则不支持。
(对应指数的数据必须要先下载到本地)
HY_INDEXDEC  行业指数的下跌家数
HY_INDEXDEC 返回对应的行业指数下跌家数,如果没有通达信板块指数,则不支持。
(对应指数的数据必须要先下载到本地)
HY_INDEXC  行业指数的收盘价
HY_INDEXC 返回对应的行业指数收盘价,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持。
(对应指数的数据必须要先下载到本地)
HY_INDEXH  行业指数的最高价
HY_INDEXH 返回对应的行业指数最高价,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持。
(对应指数的数据必须要先下载到本地)
HY_INDEXL   行业指数的最低价
HY_INDEXL 返回对应的行业指数最低价,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持。
(对应指数的数据必须要先下载到本地)
HY_INDEXO   行业指数的开盘价
HY_INDEXO 返回对应的行业指数开盘价,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持。
(对应指数的数据必须要先下载到本地)
HY_INDEXV   行业指数的成交量
HY_INDEXV 返回对应的行业指数成交量,如果没有通达信板块指数,港美股没有扩展板块指数,则不支持。
(对应指数的数据必须要先下载到本地)
DPZSCODE  所属的大盘指数的代码
所属的大盘指数的代码.比如: CALCSTOCKINDEX(DPZSCODE,'KDJ',3);
DPZSNAME  所属的大盘指数的名称
所属的大盘指数的名称.比如: DRAWTEXT_FIX(ISLASTBAR,0,0,0,DPZSNAME)。
UNDERCODE  对应标的的代码
返回对应标的的代码,对于股票期权品种和可转债品种等有效。
比如: CALCSTOCKINDEX(UNDERCODE,'KDJ',3);
UNDERLYC  对应标的的收盘价
UNDERLYC 返回对应标的的收盘价,对于股票期权品种和可转债品种等有效。
(对应指数的数据必须要先下载到本地)
4.11资金流向函数 
TRADENUM  总成交单数
TRADENUM
逐笔成交总单数,沪深京品种的资金流向,仅日线以上周期,用于特定版本。
TRADEINNUM 逐笔买入成交单数
TRADEINNUM
逐笔买入成交单数,相当于L2_VOLNUM(0,0)+L2_VOLNUM(1,0),沪深京品种的资金流向,仅日线以上周期,用于特定版本。
TRADEOUTNUM  逐笔卖出成交单数
TRADEOUTNUM
逐笔卖出成交单数,相当于L2_VOLNUM(0,1)+L2_VOLNUM(1,1),沪深京品种的资金流向,仅日线以上周期,用于特定版本。
LARGETRDINNUM  逐笔买入大单成交单数
LARGETRDINNUM
逐笔买入大单成交单数,相当于L2_VOLNUM(0,0),沪深京品种的资金流向,仅日线以上周期,用于特定版本。
LARGETRDOUTNUM  逐笔卖出大单成交单数
LARGETRDOUTNUM
逐笔卖出大单成交单数,相当于L2_VOLNUM(0,1),沪深京品种的资金流向,仅日线以上周期,用于特定版本。
L2_VOLNUM  单数分档
L2_VOLNUM(N,M)
单数分档,按: N(0--1):(超大+大)/(中+小),M(0--1):买/卖二类,沪深京品种的资金流向,仅日线以上周期,用于特定版本。
L2_VOL  成交量分档
L2_VOL(N,M)
成交量分档,按: N(0--3):超大/大/中/小四档处理,M(0--3):买入/卖出/主买/主卖四类,沪深京品种的资金流向,仅日线以上周期,用于特定版本。
L2_AMO  成交额分档
L2_AMO(N,M)
成交额分档,按: N(0--3):超大/大/中/小四档处理,M(0--3):买入/卖出/主买/主卖四类,沪深京品种的资金流向,仅日线以上周期,用于特定版本。
CUR_BUYORDER  当前总委买量
CUR_BUYORDER
当前总委买量,专业版等(资金流向功能)沪深京品种行情专用。
CUR_SELLORDER  当前总委卖量
CUR_SELLORDER
当前总委卖量,专业版等(资金流向功能)沪深京品种行情专用。
ACTINVOL  主动买成交量
ACTINVOL 
主动买成交量,相当于L2_VOL(0,2)+L2_VOL(1,2)+L2_VOL(2,2)+L2_VOL(3,2),沪深京品种的资金流向,仅日线以上周期,用于特定版本。
ACTOUTVOL  主动卖成交量
ACTOUTVOL 
主动卖成交量,相当于L2_VOL(0,3)+L2_VOL(1,3)+L2_VOL(2,3)+L2_VOL(3,3),沪深京品种的资金流向,仅日线以上周期,用于特定版本。
LARGEINTRDVOL  逐笔买入大单成家量
LARGEINTRDVOL
逐笔买入大单成交量,相当于L2_VOL(0,0)+L2_VOL(1,0),沪深京品种的资金流向,仅日线以上周期,用于特定版本。
LARGEOUTTRDVOL  逐笔卖出大单成交量
LARGEOUTTRDVOL 
逐笔卖出大单成交量,相当于L2_VOL(0,1)+L2_VOL(1,1),沪深京品种的资金流向,仅日线以上周期,用于特定版本。
BIDORDERVOL  累计总有效委买量
BIDORDERVOL 
累计总有效委买量,专业版等(资金流向功能)沪深京品种行情专用 累计总有效委买量-累计总有效撤买量=总买+总成交量。
BIDCANCELVOL  累计总有效委卖量
BIDCANCELVOL
累计总有效撤买量,专业版等(资金流向功能)沪深京品种行情专用  累计总有效委买量-累计总有效撤买量=总买+总成交量。
AVGBIDPX  最新委买均价
AVGBIDPX 
专业版等(资金流向功能)沪深京品种行情专用:最新委买均价。
OFFERORDERVOL  累计总有效委卖量
OFFERORDERVOL
累计总有效委卖量,专业版等(资金流向功能)沪深京品种行情专用  累计总有效委卖量-累计总有效撤卖量=总卖+总成交量。
OFFERCANCELVOL  累计总有效撤卖量
OFFERCANCELVOL
累计总有效撤卖量,专业版等(资金流向功能)沪深京品种行情专用  累计总有效委卖量-累计总有效撤卖量=总卖+总成交量。
AVGOFFERPX  最新委卖均价
AVGOFFERPX
专业版等(资金流向功能)沪深京品种行情专用:最新委卖均价。

4.12绘图函数 
PLOYLINE  折线段
在图形上绘制折线段。
用法:PLOYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接。
例如:PLOYLINE(HIGH>=HHV(HIGH,20),HIGH)表示在创20天新高点之间画折线。
DRAWLINE  制直线段
在图形上绘制直线段。
用法:DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND)
当COND1条件满足时,在PRICE1位置画直线起点,当COND2条件满足时,在PRICE2位置画直线终点,EXPAND为延长类型。
例如:DRAWLINE(HIGH>=HHV(HIGH,20),HIGH,LOW<=LLV(LOW,20),LOW,1)表示在创20天新高与创20天新低之间画直线并且向右延长。
DRAWSL  斜线
绘制斜线.
用法:DRAWSL(COND,PRICE,SLOPE,LEN,DIRECT),当COND条件满足时,在PRICE位置画斜线,SLOPE为斜率,LEN为长度,DIRECT为0向右延伸,1向左延伸,2双向延伸。
注意:
1.K线间的纵向高度差为SLOPE;
2.SLOPE为0时,为水平线;
3.SLOPE为10000时,为垂直线,LEN为向上的像素高度,DIRECT表示向上或向下延伸;
4.SLOPE和LEN支持变量;

DRAWKLINE   K线
用法: DRAWKLINE(HIGH,OPEN,LOW,CLOSE). 以HIGH为最高价,OPEN为开盘价,LOW为最低,CLOSE收盘画K线。
STICKLINE   柱线线
在图形上绘制柱线。
用法:STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH(10为标准间距),EMPTH不为0则画空心柱。
例如: STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.8,1)表示画K线中阳线的空心柱体部分.
DRAWICON  图标
在图形上绘制小图标。
用法:DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。
例如:DRAWICON(CLOSE>OPEN,LOW,1)表示当收阳时在最低价位置画1号图标.
图标一共有九个,图形如附图。序号,最下面的是“1”号,最上面的是“9”号。
DRAWTEXT  文字
在图形上显示文字。
用法:DRAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT。
例如:DRAWTEXT(CLOSE/OPEN>1.08,LOW,'大阳线')表示当日实体阳线大于8%时在最低价位置显示'大阳线'字样.
DRAWTEXT_FIX  定点文字
1.固定位置显示文字;2.在指标排序中显示字符串栏目.
用法:DRAWTEXT_FIX(COND,X,Y,TYPE,TEXT),COND中一般需要加ISLASTBAR,当COND条件满足时,在当前指标窗口内(X,Y)位置书写文字TEXT,X,Y为书写点在窗口中相对于左上角的百分比,TYPE:0为左对齐,1为右对齐。
例如:DRAWTEXT_FIX(ISLASTBAR AND CLOSE/OPEN>1.08,0.5,0.5,0,'大阳线')表示最后一个交易日实体阳线大于8%时在窗口中间位置显示'大阳线'字样.若文字中含有&,则进行折
行。 
DRAWNUMBER  画数字
画出数字.
用法:DRAWNUMBER(COND,PRICE,NUMBER),当COND条件满足时,在PRICE位置书写数字NUMBER.
例如:DRAWNUMBER(CLOSE/OPEN>1.08,LOW,C)表示当日实体阳线大于8%时在最低价位置显示收盘价。
DRAWNUMBER_FIX  画定点数字
固定位置显示数字.
用法:DRAWNUMBER_FIX(COND,X,Y,TYPE,NUMBER),COND中一般需要加ISLASTBAR,当COND条件满足时,在当前指标窗口内(X,Y)位置书写数字NUMBER,X,Y为书写点在窗口中相对于左上角的百分比,TYPE:0为左对齐,1为右对齐。
例如:DRAWNUMBER_FIX(ISLASTBAR AND CLOSE/OPEN>1.08,0.5,0.5,0,C)表示最后一个交易日实体阳线大于8%时在窗口中间位置显示收盘价。
RGB  自定色
将自定颜色作为数值输出.
用法: RGB(Red,Green,Blue),输出为0XBBGGRR,参数使用十进制数,范围为0至255,以最近一个周期数值为准.
例如:RGB(0,0,255)输出结果为16进制的0XFF0000。
DRAWBAND   画带状线
画出带状线.
用法:DRAWBAND(VAL1,COLOR1,VAL2,COLOR2),当VAL1>VAL2时,在VAL1和VAL2之间填充COLOR1;当VAL1<VAL2时,填充COLOR2,这里的颜色均使用RGB函数计算得到.
例如:DRAWBAND(OPEN,RGB(0,224,224),CLOSE,RGB(255,96,96))。
DRAWBMP   画图片
画出图片.
用法:DRAWBMP(COND,PRICE,'Bmp文件名'),当条件COND满足时,在PRICE位置画T0002目录下面的signals目录下面的"Bmp文件名";
例如:DRAWBMP(O>C,CLOSE,'高开')。
DRAWGBK  填充背景
填充背景.
用法:DRAWGBK(COND,COLOR1,COLOR2,是否横向渐进,'BMP或PNG文件名',是否拉升BMP或PNG文件名),当条件COND满足时填充背景,如果COLOR1和COLOR2有一个不为0,则以COLOR1到COLOR2的渐变色为背景,否则画T0002目录下面的signals目录下面的'Bmp或Png文件名'(优先使用BMP文件).
例如:DRAWGBK(ISLASTBAR AND O>C,RGB(0,255,0),RGB(255,0,0),0,'背景图',0)。
 DRAWGBK_DIV  填充部分背景
填充部分背景.
用法: DRAWGBK_DIV(COND,COLOR1,COLOR2,填色方式,填充范围),填充满足COND条件的背景区域。
填色方式:0是上下渐进 1是左右渐进 2是用COLOR1画框线 3是用COLOR1画框线,用COLOR2填充。
填充范围:0为整个区域 1为最高最低区(主图) 2为开盘收盘区(主图) 。
例如:DRAWGBK_DIV(C>O,RGB(0,255,0),RGB(255,0,0),0,0)。
DRAWRECTREL  相对位置上画矩形
相对位置上画矩形.
用法: DRAWRECTREL(LEFT,TOP,RIGHT,BOTTOM,COLOR),以图形窗口(LEFT,TOP)为左上角,(RIGHT,BOTTOM)为右下角绘制矩形,坐标单位是窗口沿水平和垂直方向的1/1000,取值范围是0—999,超出范围则可能显示在图形窗口外,矩形中间填充颜色COLOR,COLOR为0表示不填充.
例如:DRAWRECTREL(0,0,500,500,RGB(255,255,0)),NOFRAME;表示在图形最左上部1/4位置用黄色绘制矩形.NOFRAME表示不加边框。

4.13关联财务函数 
SETCODE        市场类型
MINDIFF         最小变动价位
MULTTPLIER     期货每手乘数
TQFLAG         当前的复权状态
USEDDATANUM  当前使用的数据个数
TOTALCAPITAL   当前总股本(手)
CAPITAL         当前流通股本(手)
FINANCE(1)   总股本(股)
FINANCE(2)   市场类型
FINANCE(3)   沪深京品种类型
FINANCE(4)   沪深京行业代码
FINANCE(5)   B股
FINANCE(6)   H股
FINANCE(7)   流通股本(股)
FINANCE(8)    股东人数(户)
FINANCE(9)    资产负债率%
FINANCE(10)   总资产
FINANCE(11)   流动资产
FINANCE(12)   固定资产
FINANCE(13)   无形资产
FINANCE(15)   流动负债
FINANCE(16)   少数股东权益
FINANCE(17)   资本公积金
FINANCE(18)   每股公积金
FINANCE(19)   股东权益(净资产)
FINANCE(20)   营业收入
FINANCE(21)   营业成本
FINANCE(22)   应收账款
FINANCE(23)   营业利润
FINANCE(24)   投资收益
FINANCE(25)   经营现金流量
FINANCE(26)   总现金流量
FINANCE(27)   存货
FINANCE(28)   利益总额
FINANCE(29)   税后利益
FINANCE(30)   净利益
FINANCE(31)   未分配利益
FINANCE(32)   每股未分配利润
FINANCE(33)   每股收益(全年折算)
FINANCE(34)    每股净资产
FINANCE(35)   季报调整净资产
FINANCE(36)    股东权益比
FINANCE(37)    第几季报
FINANCE(38)    每股收益(最近一期)
FINANCE(39)    总市值
FINANCE(40)   流通市值
FINANCE(41)   AB股总市值
FINANCE(42)   上市的天数
FINANCE(43)   利润同比%
FINANCE(44)   收入同比%
FINANCE(45)   股息率%
FINANCE(46)   自由流通股本(股)
FINANCE(48)   是否为陆股通标的
FINANCE(49)   今日权息标识
FINANCE(50)   是否属于沪深300
FINANCE(51)   是否含可转债
FINANCE(52)   是否为融资融券标的
FINANCE(53)   每股股息(港股,美股)
FINANCE(54)   扣非净利润
FINANCE(55)   研发费用
FINANCE(56)   员工人数
FINANCE(57)   货币资金
FINANCE(58)   合同负债
FINANCE(59)   其他权益工具
FINANCE(60)   行权比例(权证,期权)
FINANCE(61)   行权价(权证,期权)
FINANCE(62)   杠杆比率(权证,期权)
FINANCE(63)   内在价值(权证,期权)
FINANCE(64)   溢价率(权证,期权)
FINANCE(65)   时间价值(权证,期权)
FINANCE(66)   剩余天数(期货,期权)
FINANCE(67)   合约乘数(期权)
FINANCE(68)   Delta对冲值(权证,期权)
FINANCE(69)     认购认沽类型(股票期权)
FINANCE(80)     最近财报公告离现在的天数
FINANCE(81)     最后涨停板离现在的天数
FINANCE(82)     最后跌停板离现在的天数
FINANCE(83)     最后上榜离现在的天数
FINANCE(84)     最近停牌离现在的天数
FINANCE(85)     最近业绩预告离现在的天数
FINANCE(86)     最近股份解禁离现在的天数
FINANCE(87)     最近定增股上市离现在的天数
SAFECORE     安全分
SAFESCORE 安全分(0-100),通达信扫雷宝数据,仅供参考
4.14即时行情函数 
DYNAINFO(3)  昨收盘价
DYNAINFO(4)  开盘价
DYNAINFO(5)  最高价
DYNAINFO(6)  最低价
DYNAINFO(7)  现价
DYNAINFO(8)  总量
DYNAINFO(9)  现量
DYNAINFO(10) 总金额
DYNAINFO(11) 均价
DYNAINFO(12) 日涨跌
DYNAINFO(13) 振幅
DYNAINFO(14) 涨幅
DYNAINFO(15) 开盘金额
DYNAINFO(16) 前5日每分钟均量
DYNAINFO(17) 量比
DYNAINFO(18) 上涨家数
DYNAINFO(19) 下跌家数
DYNAINFO(20) 买价(即买一价)
DYNAINFO(21) 卖价(即卖一价)
DYNAINFO(22) 内盘/板块指数跌停数
DYNAINFO(23) 外盘/板块指数涨停数
SELLVOL      内盘
BUYVOL       外盘
DYNAINFO(24) 涨速
DYNAINFO(25) 几分钟前的价格
DYNAINFO(26) 涨停价
DYNAINFO(27) 跌停价
DYNAINFO(34) 昨日涨幅
DYNAINFO(37) 换手率
DYNAINFO(38) 市盈(静)
DYNAINFO(39) 市盈(动)
DYNAINFO(40) 市盈(TTM)
DYNAINFO(49) 成交方向
DYNAINFO(50) 采样点数(分笔数)
DYNAINFO(51) 内外比
DYNAINFO(52) 港股资金流向
DYNAINFO(53) 应计利息/昨净值
DYNAINFO(54) TOPV
DYNAINFO(55) 基金估算涨幅%
DYNAINFO(57) 笔涨跌
DYNAINFO(58) 买量(即买一量)
DYNAINFO(59) 卖量(即卖一量)
DYNAINFO(60) 沪深总上涨家数
DYNAINFO(61) 沪深总下跌家数
DYNAINFO(62) 沪深总成交金额
DYNAINFO(63) 3日涨幅
DYNAINFO(64) 5日涨幅
DYNAINFO(65) 10日涨幅
DYNAINFO(66) 20日涨幅
DYNAINFO(67) 60日涨幅
DYNAINFO(68) 年初至今涨幅
DYNAINFO(71) 买二价
DYNAINFO(72) 买二量
DYNAINFO(73) 卖二价
DYNAINFO(74) 卖二量
DYNAINFO(75) 买三价
DYNAINFO(76) 买三量
DYNAINFO(77) 卖三价
DYNAINFO(78) 卖三量
DYNAINFO(79) 买四价
DYNAINFO(80) 买四量
DYNAINFO(81) 卖四价
DYNAINFO(82) 卖四量
DYNAINFO(83) 买五价
DYNAINFO(84) 买五量
DYNAINFO(85) 卖五价
DYNAINFO(86) 卖五量
DYNAINFO(88) 封单额
DYNAINFO(89) 年涨停天数
DYNAINFO(90) 连板天数
DYNAINFO(91) 几天
DYNAINFO(92) 几板
ISBUYORDER 主动性买单
BETAVALUE   贝塔系数
SHAPE_SHORT 短期形态值
SHAPE_MID   中期形态值
SHAPE_LONG  长期形态值
4.15线形和资源等
COLOR 自定义色
格式为COLOR+“RRGGBB”:RR、GG、BB表示红色、绿色和蓝色的分量,每种颜色的取值范围是00-FF,采用了16进制。
例如:MA5:MA(CLOSE,5),COLOR00FFFF 表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。
COLORBLACK   画黑色
COLORBLUE    画蓝色
COLORGREEN   画绿色
COLORCYAN    画青色
COLORRED     画红色
COLORMAGENTA 画洋红色
COLORBROWN   画棕色
COLORLIGRAY  画淡灰色
COLORGRAY   画深灰色
COLORLIBLUE  画淡蓝色
COLORLIGREEN 画淡绿色
COLORLICYAN  画淡青色
COLORLIRED   画淡红色
COLORLIMAGENTA 画淡洋红色
COLORYELLOW  画黄色
COLORWHITE   画白色
LINETHICK    线型粗细
格式:“LINETHICK+(1-9)” 参数的取值范围在1—9之间,“LINETHICK1”表示最细的线,而“LINETHICK9”表示最粗的线。
STICK      画柱状线
COLORSTICK 画彩色柱状线
VOLSTICK   画彩色柱状线
成交量柱状线,当股价上涨时显示红色空心柱,则显示绿色实心柱
LINESTICK  同时画出柱状线和指标线
CROSSDOT   画小叉线
CIRCLEDOT  画小圆圈线
POINTDOT   画小圆点线
DOTLINE    虚线
NODRAW    空线条
PLAYSOUND1  播放1号
播放1号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)。
PLAYSOUND2  播放2号
播放2号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)。
........
PLAYSOUND20  播放20号
播放20号
声音和动画在[插入资源]中设置
最后一个数据满足条件后播放(只播放一次)。
NOTEXT    不显示输出线数据
输出线名称前带有NOTEXT字样时,不显示输出线数据。
??MOVE?   指标线向后偏移N个单位 
输出线名称中带有MOVE字段时,比如TMPMOVE3,表示整个输出线向后偏移3个单位,画线进入未来时间,N不应超过4。
??MOVER?   指标线向前偏移N个单位 
输出线名称中带有MOVE字段时,比如TMPMOVER3,表示整个输出线向前偏移3个单位。

4.16交易信号函数
ORDERBUY  委托买入
委托买入.此函数只适用于服务器端特定版本的策略交易模式下。
用法:ORDERBUY(condition, volumetype, volume, pricetype, price).
ORDERSELL  委托卖出
委托卖出.此函数只适用于服务器端特定版本的策略交易模式下。
用法:ORDERSELL(condition, volumetype, volume, pricetype, price)。
CANSELLGP  可卖数量
返回可卖数量.此函数只适用于服务器端特定版本的策略交易模式下.
用法:CANSELL。
CANUSEMONEY  可用资金
返回可用资金.此函数只适用于服务器端特定版本的策略交易模式下.
用法:CANUSE。
BUY  买入开仓
多头建仓(买入开仓).
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如:
 BUY(CROSS(A,B),LOW),当A上穿B时,在LOW处画标记,同时突出提示或直接下单,如果LOW改为DRAWNULL,就不画标记.(分时图上不支持)。
SELL  卖出平仓
多头平仓(卖出平仓).
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如: SELL(CROSS(A,B),HIGH),当A上穿B时,在HIGH处画标记,同时突出提示或直接下单,如果HIGH改为DRAWNULL,就不画标记.(分时图上不支持)。
SELLSHORT   卖出开仓
空头建仓(卖出开仓).
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如: SELLSHORT(CROSS(A,B),HIGH),当A上穿B时,在HIGH处画标记,同时突出提示或直接下单,如果HIGH改为DRAWNULL,就不画标记.(分时图上不支持)。
BUYSHORT   买入平仓
空头平仓(买入平仓).
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如:BUYSHORT(CROSS(A,B),LOW),当A上穿B时,在LOW处画标记,同时突出提示或直接下单,如果LOW改为DRAWNULL,就不画标记.(分时图上不支持)。
BUYSHORT_BUY  先平空仓再开多仓
先平空仓再开多仓.
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下.
例如:BUYSHORT_BUY(CROSS(A,B),LOW),当A上穿B时,在LOW处画标记,同时突出提示或直接下单,如果LOW改为DRAWNULL,就不画标记.(分时图上不支持)
独立池时,反手时平掉所有的原来仓位。
SELL_SELLSHORT   先平多仓再开空仓
先平多仓再开空仓.
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下。
例如:SELL_SELLSHORT(CROSS(A,B),HIGH),当A上穿B时,在HIGH处画标记,同时突出提示或直接下单,如果HIGH改为DRAWNULL,就不画标记.(分时图上不支持)。
独立池时,反手时平掉所有的原来仓位
CLOSEALLD   清多头仓
平掉所有多头仓位.
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下。
例如: CLOSEALLD(CROSS(A,B),HIGH),当A上穿B时,在HIGH处画标记,同时突出提示或直接下单,如果HIGH改为DRAWNULL,就不画标记.(分时图上不支持)。
CLOSEALLK  清空头仓
平掉所有空头仓位.
参数1为触发条件,参数2为标记放置位置.此函数只适用于特定版本交易模式下。
例如: CLOSEALLK(CROSS(A,B),LOW),当A上穿B时,在LOW处画标记,同时突出提示或直接下单,如果LOW改为DRAWNULL,就不画标记.(分时图上不支持)。
AUTOFILTER   自动过滤交易信号
对交易信号(BUY,SELL,SELLSHORT,BUYSHORT,BUYSHORT_BUY,SELL_SELLSHORT,CLOSEALLD,CLOSEALLK等)按照开平配对原则过滤。
1.连续的同方向指令只有第一个有效,其他的将被过滤;
2.交易信号必须配对出现(比如前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被过滤掉)。
注:使用AUTOFILTER后,就不要再使用其它的信号过滤方式了.此函数只适用于特定版本交易模式下。
ISLASTBUY  上个信号是否买入开仓
上个信号是否买入开仓
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)。
ISLASTSELL  上个信号是否卖出平仓
上个信号是否卖出平仓
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)。
ISLASTSELLSHORT  上个信号是否卖出开仓
上个信号是否卖出开仓
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)。
ISLASTBUYSHORT  上个信号是否买入平仓 
上个信号是否买入平仓
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)。
LASTSIGNAL  上一次的信号类型
上一次的信号类型
1:买入开仓 2:卖出平仓 3:卖出开仓 4:买入平仓 7:清多头仓 8:清空头仓
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)。
BUYPRICE  买入开仓信号时的价格
买入开仓信号时的价格,当时数据品种的K线的收盘价
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)。
BUYBARS  买入开仓信号距离当前K线数
买入开仓信号距离当前k线数
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)。
SELLSHORTPRICE  卖出开仓信号时的价格
卖出开仓信号时的价格,当时数据品种的K线的收盘价
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)。
SELLSHORTBARS  卖出开仓信号距离当前k线数
卖出开仓信号距离当前k线数
此函数只适用于特定版本交易模式下.(此函数会逐K线计算,请勿与未来函数同时使用)。

4.17账户函数
BUYPOSITION   买持仓
买持仓的数量(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
TODAYBUY  今买持仓
今日买入持仓的数量(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
BUYAVGPRICE  买均价
买持仓的持仓均价(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
BUYPROFITLOSS  买持仓盈利
买持仓的浮动盈亏(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
SELLPOSITION  卖持仓
卖持仓的数量(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
TODAYSELL  今卖持仓
今日卖出持仓的数量(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
SELLAVGPRICE  卖均价
卖持仓的持仓均价(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
SELLPROFITLOSS   卖持仓盈利
卖持仓的浮动盈亏(期货),针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
TOTALPOSITION   总持仓
总持仓,针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
CANUSEPOSITION  总可用持仓
总可用的持仓,针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
TOTALAVGPRICE  总持仓均价
总持仓均价,针对当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
FREEMONEY  总可用资金量
总可用资金量,针对当前交易帐户
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
CURRENTEQUITY  动态权益
动态权益(期货),针对当前交易帐户
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
PREVIOUSEQUTTY   昨日结存权益
昨日结存的权益(期货),针对当前交易帐户
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
PROFITLOSS  持仓盈利
持仓盈亏(期货),针对当前交易帐户的当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
CLOSEPROFIT  平仓盈利
平仓盈亏(期货),针对当前交易帐户的当前品种
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
TOTALMARGIN   持仓保证金
持仓保证金(期货),针对当前交易帐户
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
FEERATE  合约手续费
合约手续费比例(百分比),(具体交易策略中设置)
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)
MARGINRATE  合约保证金
合约保证金比例(百分比),(具体交易策略中设置)
(两种情况下支持:1.本地策略交易时,2.程序交易评测时配合交易函数使用)

```

常见问题

5 问
答案由本站依据条目字段整理
小果通达信函数量化助手怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_676c825d/xg-tdx-func-quant。安装方式为未标注。装完刷新技能列表或重开客户端。

小果通达信函数量化助手支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

小果通达信函数量化助手权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

小果通达信函数量化助手收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

小果通达信函数量化助手用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。