求助啊。。。。
在飞狐中,自编指标时,怎样只计算最后两天的值,以前的值不计算。 有两个if语句。一个是判断取值。
一个是判断是否执行。
我需要第二个。
但是,第二个if语句的条件只能为单值变量,怎么区分不同时间,来判断是否执行计算。 说得这么悬乎,怎么帮你看? 看不懂,没看懂,真的不明白,一点也不明白。我想你懂我的意思了吧? 不可以的。
没这个功能。 我来回答你,差不多可以解决你编公式的任何问题。 VARIABLE:P=BARPOS; 首先定义一个指针变量,记录从开始到最后每一个点的位置。 VARIABLE:B=LBOUND(C),N=DATACOUNT;
再定义两个常数,分别记录整个时间序列的首末位。 然后用循环:
FOR I=B TO N DO BEGIN
END; 在循环中,判断I与N的差值或者判断P与N的差值即可在任意位置操作。 还可以使用VBScript进行,见说明书,很简单的,但执行速度慢一倍。 还可以用C++的DLL文件实现,速度快十倍。 用标准C,速度可以快十五倍,但如果运算量小,不必要。 回答完毕。
回复 #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. if 后面的条件不能为总个k线共有的常量,而只能是单个k线的变量。
这是办不到的。 我的目的是。
在前十根k线执行某个指标,而其它k线则执行另外的指标。
而不是,两个指标都在所有k线执行,然后使用if(条件,值,值),语句去选择结果,虽然这样也可以得出结果,但是这样多余的计算太多。 因为我在研究一种方法,它用来大概估计明天的涨跌幅,需要大量的循环计算。
若按普通的方法,对总个k线序列进行计算,则软件要停滞十多秒钟。
现在只能采用对部分k线进行计算的方法,这是唯一的方法。 看来楼主要求运算量大,不能进行冗余性计算,
那可以用后面的办法,采用接口方式,将全部时间序列数据转出,在外部重组成两部分,分别对两部分使用不同指标计算,将结果再以序列的形式传回来,可参考飞狐交易师的接口说明。
页:
[1]
2