设为首页收藏本站

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

DataConvert跨周期的问题 [复制链接]

Rank: 4

精华
0
UID
37394
积分
318
帖子
75
主题
23
阅读权限
50
注册时间
2011-5-3
最后登录
2014-2-11
跳转到指定楼层
1#
发表于 2011-8-20 21:26:57 |只看该作者 |倒序浏览
DataConvert(High,"min",60,"high");
这个函数能够返回小时k线上的最高值。

我需要拿到上一个小时k线上的最高值,是按以下的方式获取吗?
DataConvert(High[1],"min",60,"high");

好像的得到的值不对

谢谢

Rank: 8Rank: 8

精华
1
UID
64747
积分
782
帖子
192
主题
33
阅读权限
200
注册时间
2011-9-10
最后登录
2016-3-22
2#
发表于 2011-12-7 21:41:50 |只看该作者
按照 我的DataConvert函数得出的收盘价永远是当前图表中K线的收盘价,求管理员解释。
  下载 (32.64 KB)

2 分钟前
我的源代码如下
Params
        
Vars
        NumericSeries Line1;
        NumericSeries Line2;
        NumericSeries M5Close;
Begin
        M5Close = DataConvert(Close,"min",60,"close");
        Line1   = Average(Close,10);
        Line2   = Average(M5Close,10);
        PlotNumeric("Line1",Line1);
        PlotNumeric("Line2",Line2);
        Commentary(text(M5Close));
        Commentary("dataConvert="+text(DataConvert(Close,"min",60,"close")));

End
量化交易群:186100158
QQ:55297268

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
86702
积分
130
帖子
24
主题
3
阅读权限
40
注册时间
2011-12-15
最后登录
2012-4-5
3#
发表于 2011-12-31 14:58:52 |只看该作者
回复 1# richroad


    1. 老规矩,新建数据转换函数transMindata:

Params
        NumericSeries Price(1);
        numeric nMinSet(5);
        numeric minsAgo(0);
Vars
        NumericSeries barCnt;
        NumericSeries minData;
        numeric i;
        numeric j;
        numeric nindex(0);
Begin
        if (IntPart(minute%nMinSet)==0)
        {
                barCnt=1;
        }Else
        {
                barCnt=barCnt+1;
        }
       
        minData=price;
        if (minsAgo==0)
        {
                return minData;
        }Else
        {
                for i=1 to minsAgo
                {
                        if (i==1)
                        {
                                j=0;
                        }Else
                        {
                                j=j+barCnt[j];
                        }
                       
                        if (j>CurrentBar)
                        {
                                return InvalidNumeric;
                        }
                        nindex=nindex+barCnt[j];
                }
                return minData[nindex];
        }
end

  2. 设置函数的参数为high,60,1

  3.在你调用一小时最高值时,先使用dataconvert将数据转换成60分钟数据,保存为myHigh,然后调用transmindata(myHigh,60,1),得到你要的。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
86702
积分
130
帖子
24
主题
3
阅读权限
40
注册时间
2011-12-15
最后登录
2012-4-5
4#
发表于 2011-12-31 15:05:39 |只看该作者
回复 2# pepsi


    按照 我的DataConvert函数得出的收盘价永远是当前图表中K线的收盘价,求管理员解释。
  下载 (32.64 KB)

2 分钟前
我的源代码如下
Params
        
Vars
        NumericSeries Line1;
        NumericSeries Line2;
        NumericSeries M5Close;
Begin
        M5Close = DataConvert(Close,"min",60,"close");
        Line1   = Average(Close,10);
        Line2   = Average(M5Close,10);
        PlotNumeric("Line1",Line1);
        PlotNumeric("Line2",Line2);
        Commentary(text(M5Close));
        Commentary("dataConvert="+text(DataConvert(Close,"min",60,"close")));

End



dataconvert函数将每个周期内的数据都归一化,若要求60min的均价,除了用到楼上的transmindata函数外,需要添加另一个函数average_transMins:

params
      numericseries price(1);
      numeric length(60);
vars
      numeric sumValue(0);
      numeric meanValue;
      numeric i;
begin
      for i=0 to length-1
      {
          sumValue=sumValue+transMinsData(price,length,i);
      }
      meanValue=sumValue/length;
      return meanValue;
end

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
4647
积分
1403
帖子
432
主题
31
阅读权限
60
注册时间
2009-6-16
最后登录
2019-10-27
5#
发表于 2012-3-18 12:31:20 |只看该作者
本帖最后由 liq77 于 2012-3-18 12:38 编辑

谢谢楼上相助!
测试了一下,好像求均价的问题还未解决。
average_transMins的代码似乎有问题,一是从一分钟(或N分钟)数据转换时考虑了整点切分,而上述求60分钟的均值时笼统地除以60不妥;二是即使从一分钟转成5分钟,数据也对不上。。。

Params
        
Vars
        NumericSeries Line1;
        NumericSeries Line2;
        NumericSeries myave;
                NumericSeries myclose;
Begin
      
                Myclose= DataConvert(close,"min",5,"close");
        myave  = transmindata(myclose,5,0);
               
                Line1  = average_transMins(myave,10);
        Line2  = transmindata(myclose,5,1);
        PlotNumeric("Line1",Line1);
        PlotNumeric("Line2",Line2);
      

End

使用道具 举报

Rank: 1

精华
0
UID
27036
积分
33
帖子
18
主题
2
阅读权限
10
注册时间
2011-2-28
最后登录
2013-6-21
6#
发表于 2012-4-13 13:42:02 |只看该作者
tb的源码现在对我来说还有难度

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
111289
积分
122
帖子
98
主题
0
阅读权限
40
注册时间
2012-6-30
最后登录
2012-7-2
7#
发表于 2012-7-1 11:54:19 |只看该作者
支持一下。。

使用道具 举报

Rank: 2

精华
0
UID
21061
积分
89
帖子
54
主题
17
阅读权限
30
注册时间
2010-12-7
最后登录
2014-3-11
8#
发表于 2012-9-11 13:25:45 |只看该作者
Ransoros 发表于 2011-12-31 14:58
回复 1# richroad

为什么TransMinsData 编译不通过啊   返回值类型不对

使用道具 举报

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

bottom

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

GMT+8, 2024-5-3 15:02

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部