设为首页收藏本站

 找回密码
 注册
查看: 5644|回复: 9
打印 上一主题 下一主题

请教,15分钟线上如何引用日线数据? [复制链接]

Rank: 4

精华
0
UID
584
积分
501
帖子
63
主题
10
阅读权限
50
注册时间
2007-10-22
最后登录
2019-2-4
跳转到指定楼层
1#
发表于 2007-11-4 15:00:19 |只看该作者 |倒序浏览
各位高手:我在15分钟线上用一下函数引用日线数据,结果不对,应该怎样正确的引用,请指教。
DayL=DataConvert(Low,"day",1,"Low");

Rank: 4

精华
0
UID
584
积分
501
帖子
63
主题
10
阅读权限
50
注册时间
2007-10-22
最后登录
2019-2-4
2#
发表于 2007-11-4 15:53:38 |只看该作者
我搜索“跨周期”后,仔细看了DataConvert函数的用法,及tradeblazer 的建议,参看nDay指标,理解了跨周期函数的算法,我的引用没有错。
但我想在15分钟线上得到,不包括今天前5天的Low的最低值,应该怎样写呢?
如果能得到当前bar在今天是第几根,并且Lowest的参数支持变量或回朔值支持变量,那么不跨周期引用也能办得到,但有得到当前bar是今天第几根的函数吗?
向各位高手请教,谢谢了!

使用道具 举报

Rank: 4

精华
0
UID
584
积分
501
帖子
63
主题
10
阅读权限
50
注册时间
2007-10-22
最后登录
2019-2-4
3#
发表于 2007-11-4 17:14:30 |只看该作者
想建个用户函数,求当前bar在今天是第几根,结果一编译就退出开拓者,请版主看看是我的用户函数编的有问题,还是程序原因?
Vars
        Numeric Num(1);
Begin
    If (BarStatus=0)
     {
            Num=1;
     }
         Else
         {
                Num=NthCon(BarStatus=0,1)+1;   
         }
        Return Num;
End

使用道具 举报

Rank: 4

精华
0
UID
584
积分
501
帖子
63
主题
10
阅读权限
50
注册时间
2007-10-22
最后登录
2019-2-4
4#
发表于 2007-11-4 18:28:22 |只看该作者
改成如下,问题解决。
Vars
        Numeric Num(1);
Begin
   
    If (time==0.090000)
     {
            
            Num=1;
                SetGlobalVar(0,1);
     }
         Else
         {
            Num=GetGlobalVar(0);            
                Num=Num+1;  
                SetGlobalVar(0,Num);                 
         }
        Return Num;
End
tradeblazer软件真的很好用。

使用道具 举报

Rank: 4

精华
0
UID
584
积分
501
帖子
63
主题
10
阅读权限
50
注册时间
2007-10-22
最后登录
2019-2-4
5#
发表于 2007-11-4 18:48:51 |只看该作者
后改为如下,这样就与开盘时间无关了
Vars
        Numeric Num(1);
        NumericSeries RiQi;
Begin
    RiQi=Date;
    If (RiQi<>RiQi[1])
     {
            
            Num=1;
                SetGlobalVar(0,1);
     }
         Else
         {
            Num=GetGlobalVar(0);            
                Num=Num+1;  
                SetGlobalVar(0,Num);                 
         }
        Return Num;
End

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
6#
发表于 2007-11-4 19:32:08 |只看该作者
不错,不错!看来已经理解了TB的运行机制,特别是全局变量。
3楼的出错问题可能是:
Num=NthCon(BarStatus=0,1)+1;  
这一行的问题,及时要这么用,也应该写成:

Num=NthCon(BarStatus==0,1)+1;

使用道具 举报

Rank: 4

精华
0
UID
584
积分
501
帖子
63
主题
10
阅读权限
50
注册时间
2007-10-22
最后登录
2019-2-4
7#
发表于 2007-11-4 20:31:34 |只看该作者
谢谢鼓励,确实错在这,并且不能这样用。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
8#
发表于 2007-11-4 21:05:39 |只看该作者
原帖由 hnhyjxwy 于 2007-11-4 18:48 发表
后改为如下,这样就与开盘时间无关了
Vars
        Numeric Num(1);
        NumericSeries RiQi;
Begin
    RiQi=Date;
    If (RiQiRiQi[1])
     {
            
            Num=1;
                SetGlobalVar(0,1);
     }
         Else
         {
            Num=GetGlob ...



最好用序列变量来代替全局变量进行使用,因为如果在交易指令里面调用2次这个函数,就会导致0号全局变量被覆盖。造成数据错误。

用序列变量的代码如下:
  1. Vars
  2.         NumericSeires Num(0);
  3. Begin
  4.      If (Date<>Date[1])
  5.      {            
  6.             Num=1;
  7.      } Else
  8.      {
  9.             Num=Num[1] + 1;
  10.      }
  11.      Return Num;
  12. End
复制代码

使用道具 举报

Rank: 4

精华
0
UID
584
积分
501
帖子
63
主题
10
阅读权限
50
注册时间
2007-10-22
最后登录
2019-2-4
9#
发表于 2007-11-4 23:31:04 |只看该作者
非常感谢!我的交易指令里多次调用了这个用户函数,发生数据错误。查了很久没有找到原因,现在清楚了。

使用道具 举报

Rank: 2

精华
0
UID
7077
积分
52
帖子
14
主题
3
阅读权限
30
注册时间
2010-2-28
最后登录
2020-9-2
10#
发表于 2010-3-9 17:36:50 |只看该作者

有什么办法将不同周期的指标值数据直接引用过来

如何使用引用数据类型跨周期,
或者有什么办法将不同周期的指标值数据直接引用过来,非算出来,
不用SetTBProfileString和GetTBProfileString

[ 本帖最后由 wer234hj 于 2010-3-9 17:39 编辑 ]

使用道具 举报

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

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-1 22:14

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部