Divergence
简述
两序列底背离计算,如果数据存在背离且符合约束,则返回一个Array,否则返回0。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()有关。调用时注意系统参数的设置
Divergence(Data:Array;MinTDay:Integer;PriceChange:Numeric;IndicatorsChange:Numeric;DelayDay:Integer;DeviateType:Integer;ReturnType:Integer):Array
名称 | 类型 | 说明 |
---|
Data | Array | 原始数据,格式为
字段 |
类型 |
非空 |
缺省值 |
备注 |
日期 |
DateTime |
否 |
|
|
价格 |
Numeric |
否 |
|
一般是复权后的价格序列,求顶背离用最高价,求底背离用最低价 |
指标 |
Numeric |
否 |
|
复权后的技术指标 |
|
MinTDay | Integer | Int类型,价格序列两个极值间隔天数,可缺省,默认为1 |
PriceChange | Numeric | Numeric类型,价格最小变动(%),可缺省,默认为0.0 |
IndicatorsChange | Numeric | Numeric类型,指标最小变动比例(%),可缺省,默认为0.0 |
DelayDay | Integer | Int类型,指标极值延迟天数,即指标的极值可以在价格极值发生日期前后DelayDay各日期内寻找指标的极值,可缺省,默认为2 |
DeviateType | Integer | Int类型,0表示计算顶背离,1表示计算底背离,可缺省,默认为0 |
ReturnType | Integer | Int类型,0表示计算最后一个点(截止日)是否背离,1表示计算序列历史存在的背离,可缺省,默认为0 |
返回 | Array | 不存在背离,则返回0,否则返回一个表格,表格的格式如下;
字段 |
类型 |
备注 |
极值点日期 |
DateTime |
价格序列最高点发生日期 |
次极值点日期 |
DateTime |
价格序列次最高点发生日期 |
极值点间隔天数 |
Numeric |
价格序列最高点和次最高点间隔天数 |
极值点 |
Numeric |
价格序列最高点值 |
次极值点 |
Numeric |
价格序列次最高点值 |
极值点变化值(%) |
Numeric |
价格序列,abs(最高点/次祖高点-1)*100 |
指标极值点日期 |
DateTime |
指标序列最高点发生日期 |
指标次极值点日期 |
DateTime |
指标序列次最高点发生日期 |
指标极值点 |
Numeric |
指标序列最高点值 |
指标次极值点 |
Numeric |
指标序列次最高点值 |
指标极值点变化值(%) |
Numeric |
指标序列:abs(最高点/次最高点-1)*100 |
|
//单只股票日线DIF(顶背离)
//使用单个股票在指定截止日endt最近N个交易日的日线最高价及平滑异同平均DIF线,计算在指定的截止日endt是否存在顶背离
oV:=BackUpSystemParameters();
Endt:=20140227T;
DayNum:=60;
setsysparam(pn_stock(),'SZ300016');
setsysparam(pn_date(),endt);
Setsysparam(pn_cycle(),cy_day());
Setsysparam(pn_rate(),1);
Setsysparam(pn_rateday(),endt);
Data:=nday(DayNum,"日期",datetostr(sp_time()),"价格",high(),
"指标",MACD_dif_v(12,26,9));
TR:=Divergence(Data,0,0,0,0,0);
RestoreSystemParameters(oV);
return TR;
//结果:
