借由网友的思路需求,本文讨论的是对REFDATE函数的应用,请看留言截图内容:
(资料图)
网友的留言
留言的思路是说: 建立一个数据筛选算法
1、指定某个日期; 2、当日最高价到今天,一直是最高价;
(一)、思路步骤:
1.添加参数M,用于给定确定的日期;
2.DATE与M给定的日期进行对应(这里是相等),用作条件;
3.使用BARSLAST函数限定时间区间;
4.计算时间区间内最高价的最大值;
5.计算时间区间“日前”最高价的最大值;
6.通过上述“4.”与“5.”中得到的最大值“相等”进行数据的筛选。
(二)、算法建立过程:
1.条件判断
M1:=IF(M=0,DATE,M);
2.时间区间的限定
FW:=CONST(BARSLAST(DATE=M1));
3.时间区间内的最大值 与 时间区间“日前”的最大值
FWH:=CONST(HHV(H,FW+1));
REFH:=CONST(REF(H,FW));
4.数据筛选逻辑
FWH=REFH;
(三)、数据筛选的完整代码:
代码流程1
M1:=IF(M=0,DATE,M);
FW:=CONST(BARSLAST(DATE=M1));
FWH:=CONST(HHV(H,FW+1));
REFH:=CONST(REF(H,FW));
FWH=REFH;
(四)、主图标注算法的完整代码:
代码流程2
M1:=IF(M=0,DATE,M);
FW:=CONST(BARSLAST(DATE=M1));
FWH:CONST(HHV(H,FW+1));
REFH:CONST(REF(H,FW));
DRAWNUMBER(DATE=M,L,M)
(五)、最后的筛选效果示意图:
示意图中给定的时期是2023.03.03
效果示意图1
效果示意图2
效果示意图3
(六)、函数的简单介绍,请注意日期的输入格式
① REFDATE---引用自1900年以来指定日期的数据。
用法:REFDATE(X,M),引用M日期的X值。
例如:REFDATE(HIGH,1230303)表示2023年3月3日的最高价。
② DATE --- 取得该周期从1900以来的的年、月、日。
用法:DATE;
例如:函数返回1000101,表示2000年1月1日;DATE+19000000后才是真正的日期值,编辑公式内容不能直接写8位长的日期数字。
标签: