Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:如何取得一个新的序列值

1楼
lcgs005 发表于:2014/6/15 13:29:29
close每根K线都不同,形成一系列值,如何每间隔3根K线取一个close值形成一个新的序列?
假设K线的收盘价值序列为: 1,2,3,4,5,6,7,8,9,
希望得到新的序列数为:3,6,9,
不想得到这样的序列数:0,0,3,0,0,6,0,0,9

我试图用下面的方法来取这个值,但无论如何,b 的值输不出来,或是输出来的值是不对的。求改进或其它方法输出正确的这个值。
a:=close;
if mod(todaybars,3)=0 then b:=a;

2楼
lcgs005 发表于:2014/6/15 13:40:07
第一个序列值是从上市以来的close值,而想要得到的序列数也会有很多个,所以,试图用有限个取值的解决方法似乎是不可取的,比如使用ref 然后 if 嵌套

3楼
王锋 发表于:2014/6/15 18:12:08

RUNMODE:0;
VARIABLE :x[]=0; //空数组
if barpos % 3 = 0 THEN
BEGIN
   x:=close; //对数组赋值,每次都添加到后面
end;

if ISLASTBAR then
msgout(1,numtostr(UBOUND(x),0));

4楼
lcgs005 发表于:2014/6/15 23:45:41
不知还有没有其它更简单一些的实现方式?
5楼
lcgs005 发表于:2014/7/29 12:08:18
通过上面的方式可以输出来,但无法在其它语句中调用用于运算,如果 有其它实现方式实现这个值输出序列值就太好了。
6楼
jinzhe 发表于:2014/7/29 13:15:39
这个是很好的算法用循环的方式来实现了
共6 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.01563 s, 3 queries.