Rss & SiteMap

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

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

标题:关于数据读取

1楼
chenfansky 发表于:2017/3/16 15:55:43
公式运行在序列模式:
由于进行数据读取时是在if和for语句中,所以无法将数据序列提前到公式前面。
例如:要读取自定义数据: AA:=selfdatalabel('DATA1',pinzhong); 在if和for语句中才进行pinzhong选取赋值,
那么,如何将该自定义历史数据到数组中?DATA[1] := AA; DATA[2] := REF(AA,1); DATA[3] := REF(AA,2);......依次类推,假设读取10个数据。
请教老师和高手,如何实现?谢谢了。

[此贴子已经被作者于2017-3-16 15:57:43编辑过]
2楼
jinzhe 发表于:2017/3/16 16:07:11

AA:selfdatalabel('DATA1',pinzhong);

这样来获取,AA就是一个每个周期都有对应值的数据序列,AA[barpos]就是当前十字光标所在k线的AA值,AA[BARPOS-1]就是当前十字光标所在k线的之前一个k线的AA值


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
3楼
chenfansky 发表于:2017/3/16 16:25:24
例如:
for i=1 to stkcount('上海期货') do begin
   pinzhong := stkfromblk('上海期货',i);
    AA:=selfdatalabel('DATA1',pinzhong);
    userDATA[1] :=  AA;
    userDATA[2] :=  ref(AA,1);
    userDATA[3] :=  ref(AA,2);
     ......
   结束后,这边再对userDATA进行数据处理运算......
end
这样,就没办法事先定义 SS:selfdatalabel('DATA1',pinzhong);也就没办法AA[barpos]这样的取值方式了。
[此贴子已经被作者于2017-3-16 16:27:15编辑过]
4楼
jinzhe 发表于:2017/3/16 16:31:30
nn:=datacount;
variable:userdata[nn]=0;
AA:=selfdatalabel('DATA1',pinzhong);
if islastbar then begin
    for i=1 to datacount do begin
      
          userDATA[i] :=  AA[i];
    end
end
5楼
chenfansky 发表于:2017/3/16 20:23:36
这样子也可以实现最后一根K线的要求。
但是我的本意是,每根K线都要执行一遍for循环语句,所以就不能有islastbar的限制了。
6楼
chenfansky 发表于:2017/3/16 20:43:37
for i=1 to stkcount('上海期货') do begin
   pinzhong := stkfromblk('上海期货',i);
    AA:=selfdatalabel('DATA1',pinzhong);
     for j=1 to datacount do userDATA[j] := AA[j];
end
在最外层for语句里面,AA:=selfdatalabel('DATA1',pinzhong); 这个AA是一个序列数组吗?貌似AA只是单值吧?
如果AA不是序列数组,那么for j=1 to datacount do userDATA[i] :=  AA[i]; 这样赋值就失去意义了(可能全部都是同一个数值),实现不了期望的要求了。
[此贴子已经被作者于2017-3-16 20:44:28编辑过]
7楼
jinzhe 发表于:2017/3/17 8:41:49
那就不行了,
共7 条记录, 每页显示 10 条, 页签: [1]


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