设为首页收藏本站

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

请教:如何统计每个Bar内的Tick数 [复制链接]

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
跳转到指定楼层
1#
发表于 2009-11-12 23:19:42 |只看该作者 |倒序浏览
我想统计1分钟周期下每个周期内Tick的发生数,尝试了几次,都不成功。
请教高手试试。
我的思路是这样的:用两个全局变量,GV0用于记录CurrentBar, GV1用于记录本周起内Tick数,来一次Tick,GV1就累加一次,直到新的周期来到GV1就清0.
程序如下:
Params
Vars
   NumericSeries nn;
Begin
        if (BarStatus<=1)
        {
                SetGlobalVar(0,CurrentBar);SetGlobalVar(1,0);
        }
        Else
        {       
                If (CurrentBar > GetGlobalVar(0)); //新的Bar来临
                {        SetGlobalVar(0,CurrentBar);
                        nn = GetGlobalVar(1);
                        SetGlobalVar(1,0);
                        FileAppend("c://test1.Log",Text(CurrentBar-1)+" "+Text(Close[1])+" "+Text(nn));
                }
                SetGlobalVar(1,GetGlobalVar(1)+1);
        }
End

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
2#
发表于 2009-11-12 23:28:33 |只看该作者
让我感到奇怪的是,并不是每个Bar只有一条记录,而是有好几条,也就是说用If (CurrentBar > GetGlobalVar(0))来控制每个Bar只能有一次初始化和输出失效了。另外GV1的统计更加离谱。
请高手调试一下,帮我分析分析问题出在哪里?
谢谢!

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
3#
发表于 2009-11-13 09:30:45 |只看该作者
大周期无法记录小周期的值,小周期可以推算出大周期的值
以下代码实现在tick周期下,每分钟有多少个tick

Vars
        NumericSeries mtick;
Begin
        If(Close!=Close[1])
                mtick=mtick[1]+1;
        Else If(Minute!=Minute[1])
                mtick=1;
        Else
                mtick=mtick[1];
        Commentary("min="+Text(Minute));
        Commentary("tick="+Text(mtick));
End

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
4#
发表于 2009-11-13 16:44:36 |只看该作者
谢谢Evil!
我原来的程序上有一个错误,在TB管理员的帮助下解决了。
我用红色标出错误所在,以帮助朋友们学习。
Params
Vars
   NumericSeries nn;
Begin
        if (BarStatus<=1)
        {
                SetGlobalVar(0,CurrentBar);SetGlobalVar(1,0);
        }
        Else
        {        
                If (CurrentBar > GetGlobalVar(0))    //;  多加了一个分号
                {        SetGlobalVar(0,CurrentBar);
                        nn = GetGlobalVar(1);
                        SetGlobalVar(1,0);
                        FileAppend("c://test1.Log",Text(CurrentBar-1)+" "+Text(Close[1])+" "+Text(nn));
                }
                SetGlobalVar(1,GetGlobalVar(1)+1);
        }
End

使用道具 举报

Rank: 4

精华
0
UID
3136
积分
331
帖子
61
主题
11
阅读权限
50
注册时间
2008-12-23
最后登录
2013-10-13
5#
发表于 2010-9-15 16:09:10 |只看该作者
3# lh948

使用道具 举报

Rank: 4

精华
0
UID
3136
积分
331
帖子
61
主题
11
阅读权限
50
注册时间
2008-12-23
最后登录
2013-10-13
6#
发表于 2010-9-15 16:18:40 |只看该作者
玛丽兄弟上面这个程序如果每个TICK的价格都变化时可以计算每分钟有多少TICK数的如果出现相邻TICK价格一样是不是就不对了 我自己的理解,希望大家指正,是不是改成这样好一点啊
Vars
        NumericSeries mtick(0);
Begin
        If(Minute!=Minute[1])
  {
   mtick=mtick[1]+1;
   }
  Commentary("min="+Text(Minute));
   Commentary("tick="+Text(mtick));
End

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
7#
发表于 2010-9-15 20:08:53 |只看该作者
兄弟,俺是“建设银行行长”,不是“招商银行”的。
统计Tick数与价格无关,你看程序中就没用到价格函数,你的程序中也没有用到。
你的程序看了,逻辑上是对的(没有验证过),但只能计算每分钟内的Tick数。

当初编这段程序想了解Tick数的变化对趋势的影响。
一般来说Tick数的突然变化,意味着行情的开始。
上善若水,无欲则刚

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
8#
发表于 2010-9-17 14:18:05 |只看该作者
6#的方法试下来不正确。
以下方法更好:
  1. Vars
  2.     NumericSeries nn;
  3. Begin
  4. if (BarStatus>=0)
  5. {
  6.     SetGlobalVar(0,Minute);SetGlobalVar(1,0);
  7. }
  8.   Else
  9. {        
  10.     If (Minute != GetGlobalVar(0))
  11.     {   SetGlobalVar(0,Minute);
  12.          nn = GetGlobalVar(1);
  13.          SetGlobalVar(1,0);
  14.          FileAppend("c://test1.Log",Text(CurrentBar-1)+" "+Text(Close[1])+" "+Text(nn));
  15.     }
  16.     SetGlobalVar(1,GetGlobalVar(1)+1); //Tick计数
  17. }
  18. End
复制代码
上善若水,无欲则刚

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
3091
积分
244
帖子
55
主题
11
阅读权限
40
注册时间
2008-12-19
最后登录
2011-4-9
9#
发表于 2010-9-17 16:53:42 |只看该作者
if (BarStatus>=0)//?? 这个条件岂不是一直成立?
{
    SetGlobalVar(0,Minute);SetGlobalVar(1,0);
}

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
10#
发表于 2010-9-18 13:55:01 |只看该作者
是写错了,应该BarStatus==0
上善若水,无欲则刚

使用道具 举报

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

bottom

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

GMT+8, 2024-5-12 13:23

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部