同花顺软件编程Word下载.docx
《同花顺软件编程Word下载.docx》由会员分享,可在线阅读,更多相关《同花顺软件编程Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
若无return语句,则返回被调用函数里,以函数名命名的变量的值。
若无以函数名命名的变量,则返回最后一个输出的值。
若无输出的值,则返回最后一个被调用的语句的值。
调用KDJ指标。
KDJ函数的名称为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
则当您在其它函数里输入a=KDJ(8,6,6)的时候,相当于计算N1=8,M1=6,M2=6时的J值,并把这个值赋给a。
注意:
(1)、当传递的参数数目不等于被调用函数设置的参数数目时。
1)、没有传递参数。
则采用原来设置的默认参数计算。
2)、传递参数少于被调用函数设置的参数数目。
则将参数传过去,依次改变前面同样数目参数的值,后面其它的参数采用原来设置的默认参数计算。
3)、传递参数大于被调用函数设置的参数数目。
则将参数传过去,依次改变被调用函数的参数值,多余的参数不起作用。
(2)、函数名称不区分大小写。
(3)、新建的函数,其函数名可能与其它以存在的函数里面的内部变量重名。
这样在调用那个函数时,那个内部变量将变成对这个新建函数的函数调用,从而产生错误。
所以,在新建函数起名时要注意。
返回值:
自定义公式里面如果有多数据项输出,则调用此函数的时候返回值默认为最后一个输出。
如果希望确定某项输出则可用return,或者将函数名指定为其中一项输出。
8、关于“空”的问题:
所谓“空”即指没有数据。
在某些情况下,一些数据项可能取不到数据,这时返回值为“空”。
例如,yearrep(&
jlr,4),其含义为取该公司3年前年报的净利润。
如果某家公司上市时间较短,而无三年前的年报数据,则其值为“空”。
(1)、“空”与任何数据作计算时,相应计算被取消。
例如:
7×
NULL(即“空”)得到的结果为7。
(2)、“空”与任何数据比较大小时,“空”较小。
-7>
NULL(即“空”)得到的结果为1(即条件满足)。
这样的结果可能与您原来希望得到的数值不符,如果您想避免这种情况可以用ISNULL函数来判断某个数据是否为“空”(相关说明见后面的系统函数说明部分)。
二、系统函数说明
1、板块函数:
(1)、板块平均:
求板块里某一数据项的平均值。
用法:
BLOCKAVG(&
N),N表示选择的数据项。
NEW)表示这个板块里所有股票当前时刻的平均价。
(2)、板块最小值:
求板块里某一数据项的最小值。
BLOCKMIN(&
N),N表示选择的数据项。
LOW)表示这个板块里所有股票当天的最低价。
(3)、板块最大值:
求板块里某一数据项的最大值。
BLOCKMAX(&
HIGH)表示这个板块里所有股票当天的最高价。
(4)、板块求和:
求板块里某一数据项的和。
BLOCKSUM(&
VOL)表示这个板块里所有股票当前时刻的总成交手数。
(5)、取板块领先股票:
取板块指数的所属个股中数据X最大的股票的数据Y。
适用于板块指数。
BLOCKLEAD(&
X,&
Y)取板块指数中个股数据X最大的股票的数据Y。
VOL,&
ZQMC)取该板块指数中成交量最大的股票名称。
2、财务函数:
(1)、季报:
调用季报数据项。
QUARTERREP(&
N,K,L),N为财务数据项,K可以是1(表示最近一次的季报)、2(表示上一次的季报)、3、4等或者直接输入希望调用的年份,L可以是1或3即第一季度或第三季度的季报。
注意L仅在K选择年份的时候适用。
(2)、年报:
调用年报数据项。
YEARREP(&
N,K),N为财务数据项,K可以是1(表示最近一次的年报)、2(表示上一次的年报)、3、4等或者直接输入希望调用的年份。
N要为基本的财务数据项,而不能是编写的计算项目,即N为功能树里公式栏里面的“财务数据”目录下面的数据项。
(3)、中报:
调用中报数据项。
MIDREP(&
N,K,L),N为财务数据项,K可以是1(表示最近一次的中报)、2(表示上一次的中报)、3、4等或者直接输入希望调用的年份。
(4)、同期报表:
调用最近一次报表或与其同类型报表的数据项。
REP(&
N,K)N为财务数据项,K为1(表示最近一次公布的报表)、2(表示去年与最近一次公布报表同类型报表)、3、4等。
(5)、取报表日期:
取某个财务数据项的报表日期。
REPDATE(&
N,M,K),N=财务数据项。
M=引用周期数,与YEARREP等的调用相同。
K=1、一季度报表,2、中报,3、三季度报表,4、年报。
如REPDATE(&
ZGB,1,4),表示取最近总股本年报的报表日期。
3、指标函数:
(1)、成本:
成本分布情况。
COST(10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上,为套牢盘。
该函数仅对日线分析周期有效。
(2)、分价函数:
用来制作分价表。
在制作分价表的时候选择多数据项输出,然后直接将这个函数拖进数据项选择框就可以了。
(3)、成本分布:
用于画成交分布云。
例如CM(0,1,2,0)。
参数含义:
1、计算天数,0表示计算全部天数。
2、当日成本算法:
0=平均分布,1=三角分布。
3、精度:
一般是2。
4、起始位置:
0是从当天开始计算,1是从前一天开始算,类推。
5、换手:
缺省是3,即300%换手。
参数5可以没有。
基本原理:
我们对历史筹码是依后面的换手率而递减的。
我们相信这样基本反应了一个事实即历史越悠久的成交,对当前的影响越小。
比如说,1000万的盘子,前天均价为10元,成交量为200万,也就是20%换手率;
昨天以均价11元又成交300万,也就是30%换手率;
那前天的200万成交量怎么样了呢?
成本分析假定,前天的200万在昨天也以11元被30%换手了,那么,前天以10元成交的成交量还剩了200*(1-30%)=140万;
若今天以均价12元又成交了400万,同理可算,现在的筹码分布是:
10元筹码为200*(1-30%)*(1-40%)=84万,11元的筹码为300*(1-40%)=180万,12元的筹码是400万。
(4)、之字转向。
ZIG(K,N),当价格变化量超过N%时转向,K表示0:
开盘价,1:
最高价,2:
最低价,3:
收盘价。
ZIG(3,5)表示当前收盘价超过上次ZIG转向输出值的+5%或-5%,则输出当前收盘价并ZIG转向。
(5)、获利盘:
表示获利盘比例。
WINNER(CLOSE),表示以当前收市价卖出的获利盘比例。
例如返回0,1表示10%获利盘;
WINNER(10,5)表示10,5元价格的获利盘比例。
(6)、抛物转向:
计算抛物转向。
用法:
SAR(N,S,M),N为计算周期,S为步长,M为极值。
例如,SAR(10,2,20)表示计算10日抛物转向,步长为2%,极限值为20%。
(7)、远期获利盘比例:
计算远期获利盘比例。
PWINNER(10,CLOSE)表示10天前的那部分成本以当前收市价卖出的获利盘比例,例如返回0.2表示20%获利盘;
4、逻辑函数:
(1)、条件函数:
根据条件求不同的值。
IF(X,A,B)若X不为0则返回A,否则返回B。
IF(CLOSE>
OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值。
参见“条件语句”。
5、引用函数:
(1)、满足条件的周期数:
统计满足条件的周期数。
COUNT(X,N),统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。
COUNT(CLOSE>
OPEN,20)表示统计20周期内收阳的周期数。
(2)、第一个条件成立到当前的周期数:
统计第一个条件成立到当前的周期数。
BARSSINCE(X):
第一次X不为0到现在的天数。
BARSSINCE(HIGH>
10)表示股价超过10元时到当前的周期数。
(3)、上一次条件成立到当前的周期数:
上一次条件成立到当前的周期数。
BARSLAST(X),上一次X不为0到现在的天数。
BARSLAST(CLOSE/REF(CLOSE,1)>
=1,1)表示上一个涨停板到当前的周期数。
(4)、有效周期数:
求总的周期数。
BARSCOUNT(X),第一个有效数据到当前的天数。
(5)、向前赋值:
将当前位置到若干周期前的数据设为1。
BACKSET(X,N),若X非0,则将当前位置到N周期前的数值设为1。
BACKSET(CLOSE>
OPEN,2)若收阳则将该周期及前一周期数值设为1,否则为0。
(6)、求和:
求总和。
SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始。
SUM(VOL,5)周期设为日线时,表示最近5个交易日的成交量之和。
SUM(VOL,0)表示从传数据过来第一天起的成交量总和,具体如在区间统计里统计“总手”SUM(VOL,0)即是指全区间的成交量之和。
(7)、移动平均:
求移动平均。
SMA(X,N,M),求X的N日移动平均,M为权重。
算法:
若Y=SMA(X,N,M)则Y=[M*X+(N-M)*Y'
]/N,其中Y'
表示上一周期Y值,N必须大于M。
SMA(CLOSE,30,1)表示求30日移动平均价。
(8)、向前引用:
引用若干周期前的数据。
REF(X,A),引用A周期前的X值。
REF(CLOSE,1)表示上一周期的收盘价,在日线上就是昨收。
(9)、简单移动平均:
求简单移动平均。
MA(X,N),求X的N日移动平均值。
(X1+X2+X3+,,,+Xn)/N。
MA(CLOSE,10)表示求10日均价。
(10)、最低值:
求最低值。
LLV(X,N),求N周期内X最低值,N=0则从第一个有效值开始。
LLV(LOW,0)表示求历史最低价。
(11)、最高值:
求最高值。
HHV(X,N),求N周期内X最高值,N=0则从第一个有效值开始。
HHV(HIGH,30)表示求30日最高价。
(12)、指数平滑移动平均:
求指数平滑移动平均。
EMA(X,N),求X的N日指数平滑移动平均。
若Y=EMA(X,N)则Y=[2*X+(N-1)*Y'
]/(N+1),其中Y'
表示上一周期Y值。
EMA(CLOSE,30)表示求30日指数平滑均价。
(13)、动态移动平均:
求动态移动平均。
DMA(X,A),求X的动态移动平均。
若Y=DMA(X,A)则Y=A*X+(1-A)*Y'
,其中Y'
表示上一周期Y值,A必须小于1。
DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价。
(14)、最高值周期数:
求上一高点到当前的周期数。
HHVBARS(X,N):
求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计。
HHVBARS(HIGH,0)求得历史新高到到当前的周期数。
(15)、最低值周期数:
求上一低点到当前的周期数。
LLVBARS(X,N):
求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计。
LLVBARS(HIGH,10)求得10日最低点到当前的周期数。
(16)、加权移动平均:
求加权移动平均。
WMA(X,A),求X的加权移动平均。
算法:
若Y=WMA(X,A)则Y=(N*X0+(N-1)*X1+(N-2)*X2)+...+1*XN)/(N+(N-1)+(N-2)+...+1)X0表示本周期值,X1表示上一周期值...。
WMA(CLOSE,20)表示求20日加权均价。
(17)、求和:
向前累加到指定值到现在的周期数。
SUMBARS(X,A):
将X向前累加直到大于等于A,返回这个区间的周期数。
SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数。
5、时间函数:
(1)、总开盘分钟:
求当前代码类型的开市交易时间。
TRADETIME。
返回交易时间,单位为分钟。
目前一般市场都返回242,与日期或具体的股票无关。
(2)、距开盘分钟:
求当前时刻距开盘有多长时间。
FROMOPEN。
返回当前时刻距开盘有多长时间,单位为分钟。
当前时刻为早上十点,则返回31。
(3)、距午夜秒:
FROMNIGHT。
返回当前时刻距午夜有多长时间,单位为秒。
当前时刻为早上十点,则返回36000。
(4)、时间格式:
转换时间格式。
FORMATTIME(N)。
目前只支持N=1把当前时间转换成距开盘分钟数返回。
分时中的量比曲线公式:
(VOL*(TRADETIME+1)*5)/(FORMATTIME
(1)*FIVEDAYVOL)。
(5)、时间差:
计算两个时间之间的差。
COUNTTIME(N,L,K)。
N、L为时间,其格式为YYYYMMDD。
K为1、2或者3。
当K为1时返回第二个之间比第一个时间晚多少年。
当K为2时返回第二个之间比第一个时间晚多少月。
当K为3时返回第二个之间比第一个时间晚多少日。
COUNTTIME其返回值为-2。
这里返回值有正负号。
6、算术函数:
(1)、绝对值:
求绝对值。
ABS(X)返回X的绝对值。
ABS(-34)返回34。
(2)、介于:
介于两个数之间。
BETWEEN(A,B,C)表示A处于B和C之间时返回1,否则返回0
BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间。
(3)、最大值:
求最大值。
MAX(A,B)返回A和B中的较大值。
MAX(CLOSE-OPEN,0)表示若收盘价大于开盘价返回它们的差值,否则返回0。
(4)、最小值:
求最小值。
MIN(A,B)返回A和B中的较小值。
MIN(CLOSE,OPEN)返回开盘价和收盘价中的较小值。
(5)、求模运算:
求模运算。
MOD(A,B)返回A对B求模。
MOD(26,10)返回6。
(6)、求逻辑非:
求逻辑非。
NOT(X)返回非X,即当X=0时返回1,否则返回0。
NOT(5>
3)返回0。
(7)、范围:
介于某个范围之间。
RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0。
RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10))表示收盘价大于5日均线并且小于10日均线。
(8)、求相反数:
求相反数。
REVERSE(X)返回-X。
例如REVERSE(CLOSE)返回-CLOSE。
(9)、余弦值:
求余弦值。
COS(X)返回X的余弦值。
(10)、正弦值:
求正弦值。
SIN(X)返回X的正弦值。
(11)、平方根:
开平方。
SQRT(X)为X的平方根。
SQRT(CLOSE)收盘价的平方根。
(12)、上穿:
两条线交叉。
CROSS(A,B)表示当A从下方向上穿过B时返回1,否则返回0。
CROSS(MA(CLOSE,5),MA(CLOSE,10))表示5日均线与10日均线交金叉。
(13)、维持:
两条线维持一定周期后交叉。
LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。
LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5)表示5日均线维持5周期后与10日均线交金叉。
(14)、空:
判断是否为空。
ISNULL(A)表示如果A为空(即没有数据)则返回1,否则返回0。
(15)、幂:
求幂。
POW(X,Y)。
求X的Y次幂。
POW(2,3)为8。
7、统计函数:
(1)、标准差:
求标准差。
STD(X,N)为X的N日估算标准差。
(2)、商品数据:
求与具体某种商品相关的数据。
INDEXDATA(“N”,&
X,K)。
N为商品代码。
X为数据项。
K为周期数(可以不加)。
INDEXDATA(“1A0001”,&
LOW,3)为3天前上证指数的最低点位。
(3)、线性回归斜率:
求某个数据的线性回归。
SLOPE(X,N)为X的N周期线性回归线的斜率。
例如:
SLOPE(CLOSE,10)表示求10周期线性回归线的斜率
(4)、线性回归预测值:
以某个数据的线性回归斜率向后延伸一个周期得到的数值。
FORCAST(X,N)为X的N周期线性回归预测值。
FORCAST(CLOSE,10)表示求10周期线性回归预测本周期收盘价。
(5)、总体标准差:
求总体标准差
STDP(X,N)为X的N日总体标准差。
(6)、估算样本方差:
求估算样本方差。
VAR(X,N)为X的N日估算样本方差。
(7)、总体样本方差:
求总体样本方差。
VARP(X,N)为X的N日总体样本方差