开拓者期货期权程序化系统交易论坛

标题: countif 函数问题 [打印本页]

作者: globenese    时间: 2019-3-31 10:23:00     标题: countif 函数问题

[attach]37840[/attach]

在第二天第一根k线,统计第一天中的K 线close小于第二天白色粗线wline值(假设是80)的数量,  一整天的K线数量为ttbars(345个).
用countif(close[1]<wline, ttbars) 不正确,   公式比较的是close小于第一天白色粗线的wline值(假设是100)的数量。

如何正确实现在第二天第一根k线,统计第一天中的K 线close小于第二天白色粗线wline值(假设是80)的数量,多谢大神指点。


[attach]37840[/attach]
作者: 小米    时间: 2019-4-1 15:52:18

没有太明白您的问题啊。。
首先,是在1分钟K线上是吗?
其次,你是想统计头一天的所有CLOSE小于wline的个数是吧?但是这个wline是第二天才能得到的值的是吗?
作者: globenese    时间: 2019-4-1 20:11:30

是1分钟K线, 要比较的wline是第二天才得到,但目前已经在第二天了,
我试了下,countif 好像不能得到需要的结果。 只能和第一天的wline比较。
作者: 小米    时间: 2019-4-2 08:52:36

本帖最后由 小米 于 2019-4-2 16:40 编辑
globenese 发表于 2019-4-1 20:11
是1分钟K线, 要比较的wline是第二天才得到,但目前已经在第二天了,
我试了下,countif 好像不能得到需要 ...


嗯,countif没法实现的。
试试下面这段代码。。不过还要考虑的是,如果在节假日时,一天的K线数,不足345根时,这个需要特殊处理了。
  1. Params
  2.         Numeric length(7); //一天的K线数
  3. Vars
  4.         Numeric i;
  5.         Numeric flag;
  6.         Numeric wline;
  7. begin
  8.        
  9.         wline = 3730;
  10.         for i = 1 to length
  11.         {       
  12.                 if( close[i]>wline)
  13.                 {
  14.                         flag = flag+1;
  15.                 }
  16.         }
  17.         if(TrueDate(0)!=TrueDate(1))
  18.         {
  19.                 Commentary("flag="+Text(flag));
  20.         }
  21. end
复制代码

作者: globenese    时间: 2019-4-2 13:33:23

谢谢小米。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2