搜索
查看: 17522|回复: 29

[大盘交流] 求助啊。。。。

[复制链接]
发表于 2011-5-31 12:50 | 显示全部楼层

求助啊。。。。

来自:MACD论坛(bbs.shudaoyoufang.com) 作者:不想停留 浏览:17522 回复:29

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在飞狐中,自编指标时,怎样只计算最后两天的值,以前的值不计算。
金币:
奖励:
热心:
注册时间:
2011-5-19

回复 使用道具 举报

 楼主| 发表于 2011-5-31 13:17 | 显示全部楼层
有两个if语句。

一个是判断取值。

一个是判断是否执行。


我需要第二个。

但是,第二个if语句的条件只能为单值变量,怎么区分不同时间,来判断是否执行计算。
金币:
奖励:
热心:
注册时间:
2011-5-19

回复 使用道具 举报

发表于 2011-5-31 14:37 | 显示全部楼层
说得这么悬乎,怎么帮你看?
金币:
奖励:
热心:
注册时间:
2007-4-20

回复 使用道具 举报

签到天数: 11 天

发表于 2011-5-31 22:13 | 显示全部楼层
看不懂,没看懂,真的不明白,一点也不明白。我想你懂我的意思了吧?
金币:
奖励:
热心:
注册时间:
2006-2-24

回复 使用道具 举报

 楼主| 发表于 2011-5-31 22:39 | 显示全部楼层
不可以的。

没这个功能。
金币:
奖励:
热心:
注册时间:
2011-5-19

回复 使用道具 举报

发表于 2011-5-31 23:52 | 显示全部楼层
我来回答你,差不多可以解决你编公式的任何问题。
金币:
奖励:
热心:
注册时间:
2005-10-20

回复 使用道具 举报

发表于 2011-5-31 23:53 | 显示全部楼层
VARIABLE:P=BARPOS;
金币:
奖励:
热心:
注册时间:
2005-10-20

回复 使用道具 举报

发表于 2011-5-31 23:53 | 显示全部楼层
首先定义一个指针变量,记录从开始到最后每一个点的位置。
金币:
奖励:
热心:
注册时间:
2005-10-20

回复 使用道具 举报

发表于 2011-5-31 23:54 | 显示全部楼层
VARIABLE:B=LBOUND(C),N=DATACOUNT;
再定义两个常数,分别记录整个时间序列的首末位。
金币:
奖励:
热心:
注册时间:
2005-10-20

回复 使用道具 举报

发表于 2011-5-31 23:55 | 显示全部楼层
然后用循环:
FOR I=B TO N DO BEGIN
END;
金币:
奖励:
热心:
注册时间:
2005-10-20

回复 使用道具 举报

发表于 2011-5-31 23:56 | 显示全部楼层
在循环中,判断I与N的差值或者判断P[I]与N的差值即可在任意位置操作。
金币:
奖励:
热心:
注册时间:
2005-10-20

回复 使用道具 举报

发表于 2011-5-31 23:57 | 显示全部楼层
还可以使用VBScript进行,见说明书,很简单的,但执行速度慢一倍。
金币:
奖励:
热心:
注册时间:
2005-10-20

回复 使用道具 举报

发表于 2011-5-31 23:57 | 显示全部楼层
还可以用C++的DLL文件实现,速度快十倍。
金币:
奖励:
热心:
注册时间:
2005-10-20

回复 使用道具 举报

发表于 2011-5-31 23:58 | 显示全部楼层
用标准C,速度可以快十五倍,但如果运算量小,不必要。
参与人数 1奖励 +5 时间 理由
狙击手童彤 + 5 2011-6-1 16:08 对于智者,我总是奉献出崇拜的目光。

查看全部评分

金币:
奖励:
热心:
注册时间:
2005-10-20

回复 使用道具 举报

发表于 2011-5-31 23:59 | 显示全部楼层
回答完毕。
金币:
奖励:
热心:
注册时间:
2005-10-20

回复 使用道具 举报

 楼主| 发表于 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-5-19

回复 使用道具 举报

 楼主| 发表于 2011-6-1 08:24 | 显示全部楼层
if 后面的条件  不能为总个k线共有的常量,而只能是单个k线的变量。

这是办不到的。
金币:
奖励:
热心:
注册时间:
2011-5-19

回复 使用道具 举报

 楼主| 发表于 2011-6-1 08:51 | 显示全部楼层
我的目的是。

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


而不是,两个指标都在所有k线执行,然后使用if(条件,值,值),语句去选择结果,虽然这样也可以得出结果,但是这样多余的计算太多。
金币:
奖励:
热心:
注册时间:
2011-5-19

回复 使用道具 举报

 楼主| 发表于 2011-6-1 10:52 | 显示全部楼层
因为我在研究一种方法,它用来大概估计明天的涨跌幅,需要大量的循环计算。

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

现在只能采用对部分k线进行计算的方法,这是唯一的方法。
金币:
奖励:
热心:
注册时间:
2011-5-19

回复 使用道具 举报

发表于 2011-6-1 12:42 | 显示全部楼层
看来楼主要求运算量大,不能进行冗余性计算,

那可以用后面的办法,采用接口方式,将全部时间序列数据转出,在外部重组成两部分,分别对两部分使用不同指标计算,将结果再以序列的形式传回来,可参考飞狐交易师的接口说明。
金币:
奖励:
热心:
注册时间:
2005-10-20

回复 使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站声明:MACD仅提供交流平台,请交流人员遵守法律法规。
值班电话:18209240771   微信:35550268

举报|意见反馈|手机版|MACD俱乐部

GMT+8, 2025-10-22 08:49 , Processed in 0.042436 second(s), 14 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表