请写出获取所有板块的涨幅数据的通达信公式
时间: 2023-06-26 07:07:10 浏览: 622
获取所有板块的涨幅数据的通达信公式如下:
C1:板块代码(例如:上证指数为000001,深证成指为399001)
C2:涨幅计算周期(例如:5表示5日涨幅,10表示10日涨幅,20表示20日涨幅)
C3:输出字段(例如:输出涨幅百分比)
公式:SELECT CODE,C3 FROM BLOCK WHERE (BLOCK_TYPE='01' OR BLOCK_TYPE='02') AND C1<>'' AND C2=5 ORDER BY C3 DESC
其中,BLOCK表示板块数据表,BLOCK_TYPE='01'表示A股板块,BLOCK_TYPE='02'表示B股板块,C1<>''表示排除掉不正确的板块代码,C2表示涨幅计算周期,ORDER BY C3 DESC表示按照涨幅降序排列。
相关问题
请问如何编写通达信公式显示个股所在板块的涨幅在所有板块涨幅排名
要编写一个通达信公式来显示个股所在板块的涨幅在所有板块涨幅排名,可以按照以下步骤进行:
1. 首先,需要获取个股所在板块的信息。可以通过通达信自带的板块分类功能或者自己编写板块分类公式来实现。假设获取到的板块名称为“板块A”。
2. 接着,需要获取所有板块的涨幅数据。可以通过编写涨幅排名公式来实现。假设获取到的所有板块的涨幅数据为“涨幅数据A”。
3. 将“板块A”的涨幅数据从“涨幅数据A”中筛选出来,并计算“板块A”的涨幅排名。
4. 将“板块A”的涨幅排名与“涨幅数据A”中所有板块的涨幅排名进行比较,得到“板块A”的排名情况。
5. 最后,将“板块A”的排名情况和相应的涨幅数据一起显示出来。
具体的公式编写过程需要根据实际情况进行调整和修改,建议参考通达信公式编写手册和相关教程。
通达信公式 涨幅大于1%的板块中涨幅前三的股票公式
以下是通达信公式,可以筛选出涨幅大于1%的板块中涨幅前三的股票:
```
C1:SELECT IF(ZDF>1,1,0);
C2:SELECT IF(RANK(CLOSE)>=(COUNT(C1)*0.97+1),CLOSE,0);
C3:SELECT IF(RANK(CLOSE)>=(COUNT(C1)*0.98+1),CLOSE,0);
C4:SELECT IF(RANK(CLOSE)>=(COUNT(C1)*0.99+1),CLOSE,0);
C5:SELECT SUM(C2);
C6:SELECT SUM(C3);
C7:SELECT SUM(C4);
C8:SELECT C5/COUNT(C1);
C9:SELECT C6/COUNT(C1);
C10:SELECT C7/COUNT(C1);
C11:SELECT BOARDNAME;
C12:SELECT C8;
C13:SELECT C9;
C14:SELECT C10;
C15:SELECT RANK(C8);
C16:SELECT RANK(C9);
C17:SELECT RANK(C10);
C18:SELECT STOCKNAME;
C19:SELECT GDLB;
C20:SELECT ZDF;
C21:SELECT JSDATE;
FILTER:C1;
SORT:C20;
```
解释:
- `C1`:筛选出涨幅大于1%的板块,将其值设为1,否则设为0;
- `C2`、`C3`、`C4`:筛选出涨幅排名前3的股票,将其收盘价作为其值,否则设为0;
- `C5`、`C6`、`C7`:计算涨幅排名前3的股票的收盘价之和;
- `C8`、`C9`、`C10`:计算涨幅排名前3的股票的平均收盘价;
- `C11`:获取板块名称;
- `C12`、`C13`、`C14`:获取涨幅排名前3的股票的平均收盘价;
- `C15`、`C16`、`C17`:获取涨幅排名前3的股票在板块中的排名;
- `C18`:获取涨幅排名前3的股票的股票名称;
- `C19`:获取涨幅排名前3的股票的股票代码;
- `C20`:获取股票的涨跌幅;
- `C21`:获取股票的交割日期。
使用时,将以上公式复制到通达信的公式编辑器中,然后保存为自定义条件,即可在自选股中筛选出符合条件的股票。