不想停留 发表于 2011-5-31 12:50

求助啊。。。。

在飞狐中,自编指标时,怎样只计算最后两天的值,以前的值不计算。

不想停留 发表于 2011-5-31 13:17

有两个if语句。

一个是判断取值。

一个是判断是否执行。


我需要第二个。

但是,第二个if语句的条件只能为单值变量,怎么区分不同时间,来判断是否执行计算。

zhushualbert 发表于 2011-5-31 14:37

说得这么悬乎,怎么帮你看?

狙击手童彤 发表于 2011-5-31 22:13

看不懂,没看懂,真的不明白,一点也不明白。我想你懂我的意思了吧?

不想停留 发表于 2011-5-31 22:39

不可以的。

没这个功能。

股民阿甘 发表于 2011-5-31 23:52

我来回答你,差不多可以解决你编公式的任何问题。

股民阿甘 发表于 2011-5-31 23:53

VARIABLE:P=BARPOS;

股民阿甘 发表于 2011-5-31 23:53

首先定义一个指针变量,记录从开始到最后每一个点的位置。

股民阿甘 发表于 2011-5-31 23:54

VARIABLE:B=LBOUND(C),N=DATACOUNT;
再定义两个常数,分别记录整个时间序列的首末位。

股民阿甘 发表于 2011-5-31 23:55

然后用循环:
FOR I=B TO N DO BEGIN
END;

股民阿甘 发表于 2011-5-31 23:56

在循环中,判断I与N的差值或者判断P与N的差值即可在任意位置操作。

股民阿甘 发表于 2011-5-31 23:57

还可以使用VBScript进行,见说明书,很简单的,但执行速度慢一倍。

股民阿甘 发表于 2011-5-31 23:57

还可以用C++的DLL文件实现,速度快十倍。

股民阿甘 发表于 2011-5-31 23:58

用标准C,速度可以快十五倍,但如果运算量小,不必要。

股民阿甘 发表于 2011-5-31 23:59

回答完毕。

不想停留 发表于 2011-6-1 08:21

回复 #15 股民阿甘 的帖子

多谢啊。

VARIABLE:P=BARPOS;

VARIABLE:B=LBOUND(C),N=DATACOUNT;

FOR I=B TO N DO BEGIN

if n-i > 4000
then d:1;{语句1}

else e:2;{语句2}

END;

这样还不是符合我的要求。


我是想,在最后的十根k线执行语句1,其它k线执行语句2.

不想停留 发表于 2011-6-1 08:24

if 后面的条件不能为总个k线共有的常量,而只能是单个k线的变量。

这是办不到的。

不想停留 发表于 2011-6-1 08:51

我的目的是。

在前十根k线执行某个指标,而其它k线则执行另外的指标。


而不是,两个指标都在所有k线执行,然后使用if(条件,值,值),语句去选择结果,虽然这样也可以得出结果,但是这样多余的计算太多。

不想停留 发表于 2011-6-1 10:52

因为我在研究一种方法,它用来大概估计明天的涨跌幅,需要大量的循环计算。

若按普通的方法,对总个k线序列进行计算,则软件要停滞十多秒钟。

现在只能采用对部分k线进行计算的方法,这是唯一的方法。

股民阿甘 发表于 2011-6-1 12:42

看来楼主要求运算量大,不能进行冗余性计算,

那可以用后面的办法,采用接口方式,将全部时间序列数据转出,在外部重组成两部分,分别对两部分使用不同指标计算,将结果再以序列的形式传回来,可参考飞狐交易师的接口说明。
页: [1] 2
查看完整版本: 求助啊。。。。