以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 如何编写当前时间到指定日期的周期数? (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=185119) |
-- 作者:qq代人发帖 -- 发布时间:2021/4/12 9:05:59 -- 如何编写当前时间到指定日期的周期数? 请教:我之前是在通达信上写代码,后转到金字塔,发现通达信上的时间函数在金字塔上运行有问题,应该是取数有问题,无法解决, 如何编写当前时间到指定日期的周期数?通达信上我是这么写的,但金字塔上运行有问题
日期2019:=INTPART((DATE+19000000)); 前2019:=日期2019<=20191231; N2019:=BARSLAST(前2019); 我用金字塔写的公式:N2019:=INTPART(if(barpos>=datediff(intpart(20191231-19000000),currentdate)+7,datediff(intpart(20191231-19000000),currentdate),drawnull));;不知道错在哪? 问题: 1、现在到2019年12月31日周期数,如何写代码?此代码在大周月线/周线算的话是否直接输入月线/周线周期数,如果有小数,怎么处理的?还是要用INTPART?intpart加在前面还是加在计算过程 2、运行原理问题:如果是次新股,上市日期是在20191231以后,那么运行函数的话理论上是空值,会有什么结果?是不再运行接下来的代码还是忽略?通达信上是忽略,继续往下算。但我感觉金字塔遇到空值就停算了。 3、金字塔中的时间函数currentdate 和 date函数有什么区别? 4、我写的金字塔公式也感觉有问题, ①、barpos不是代表上市日期,只是有效周期,中间如果停牌很久的话,数据也不准,只是近似值。如何解决? ②、是否有必要用if,drawnull? ③、接下来的代码要用到n2019,用了if,drawnull,算出来是空值的话,后续程序怎么处理? |
-- 作者:FireScript -- 发布时间:2021/4/12 10:20:56 -- 1.指定日期以来的周期数。 Len:BARSLAST(date>=1210204 and ref(date,1)<1210204);//这个能取到值有个前天是你本地数据覆盖到这个日期之前。否则小周期上根本无法到有效值。 2.“如果是次新股,上市日期是在20191231以后,那么运行函数的话理论上是空值,会有什么结果?”会出现无效值。相关的计算都会导致出现问题。 3.date是和K线位置挂钩的,你移动K线时候 能读取到这个K所归属的日期。currentdate 则是当前现实的实际日期。始终只有最新值。 4.“barpos不是代表上市日期,只是有效周期,中间如果停牌很久的话,数据也不准,只是近似值。如何解决” 这个函数是返回当前加载的K线的数据位置。 总之你先看下1中代码的效果。 |
-- 作者:qq代人发帖 -- 发布时间:2021/4/12 12:51:52 -- 问题1:1210204是代表什么? 和日期怎么换算的? 我写的日期是20191231,不是应该20191231-19000000=1191231么? 问题2:barpos是返回数据位置,那么有效周期是否可以写成count(c)?
|
-- 作者:FireScript -- 发布时间:2021/4/12 13:06:24 -- 1. 取得该周期从1900以来的年月日(交易日)。 用法: DATE() 函数返回有效值范围为(101-1991231),表示19000101-20991231。 所属函数组:时间函数 2.当前加载的数据量。 DATACOUNT 用这个。
|