设为首页收藏本站

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

如何在15分钟周期取前1小时的收盘价? [复制链接]

Rank: 4

精华
0
UID
3136
积分
331
帖子
61
主题
11
阅读权限
50
注册时间
2008-12-23
最后登录
2013-10-13
跳转到指定楼层
1#
发表于 2009-3-13 16:37:21 |只看该作者 |倒序浏览
我想在15分钟图上取到前一小时K线的收盘价

比如现在是10点33分,我想取到在一小时图上前一根K线的收盘价,也就是9点59分59秒那时候的价格

帮忙实现一下好不?

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
2#
发表于 2009-3-14 09:59:42 |只看该作者
同其他跨周期的一样,先需要建立一个用户函数,TransMinsData
代码如下:
  1. Params
  2.         NumericSeries Price(1);
  3.         Numeric nMinSet(5);
  4.         Numeric MinsAgo(2);
  5. Vars
  6.         NumericSeries barCnt;
  7.         NumericSeries MinData;
  8.         Numeric i;
  9.         Numeric j;
  10.         Numeric nIndex(0);
  11. Begin
  12.         If(IntPart((Hour*60+Minute)%nMinSet)==0)
  13.         {
  14.                 barCnt = 1;
  15.         }Else
  16.         {
  17.                 barCnt = barCnt[1] + 1;
  18.         }
  19.         MinData = Price;
  20.                
  21.         If(MinsAgo == 0)
  22.         {
  23.                 return MinData;
  24.         }Else
  25.         {
  26.                 For i = 1 To MinsAgo
  27.                 {
  28.                         If( i == 1)
  29.                         {      
  30.                                 j = 0;
  31.                         }Else
  32.                         {
  33.                                 j = j + BarCnt[j];                              
  34.                         }
  35.                         If (j > CurrentBar ) Return InvalidNumeric;
  36.                         nIndex = nIndex + BarCnt[j];
  37.                 }
  38.                 Return MinData[nIndex];
  39.         }
  40. End
复制代码

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
3#
发表于 2009-3-14 10:01:07 |只看该作者
再建一个指标,假设命名为preHourClose
  1. Vars
  2.         Numeric preHC;
  3. Begin
  4.         preHC = TransMinsData(Close,60,1);
  5.         PlotNumeric("PHC",preHC);
  6. End
复制代码

使用道具 举报

Rank: 4

精华
0
UID
3136
积分
331
帖子
61
主题
11
阅读权限
50
注册时间
2008-12-23
最后登录
2013-10-13
4#
发表于 2009-3-16 10:21:59 |只看该作者
老大 辛苦您了!

使用道具 举报

Rank: 4

精华
0
UID
3136
积分
331
帖子
61
主题
11
阅读权限
50
注册时间
2008-12-23
最后登录
2013-10-13
5#
发表于 2009-3-16 16:35:11 |只看该作者
中午11点到11点半半小时 但是在一小时图上是一根K线  还有1点30到2点也是有2根15分钟线  也算1根一小时线


比如现在是13点45分,那么此时我想取到的1小时图上上一根K线的收盘价 实际上是11点30分的收盘价,但是这个时候输出的
Vars
        Numeric preHC;
Begin
        preHC = TransMinsData(Close,60,1);
        PlotNumeric("PHC",preHC);
End

就不对了,老大 再次劳驾 :)

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
6#
发表于 2009-3-17 08:59:55 |只看该作者
把函数改一下:
  1. Params
  2.         NumericSeries Price(1);
  3.         Numeric nMinSet(5);
  4.         Numeric MinsAgo(2);
  5. Vars
  6.         NumericSeries MinsOfDay;
  7.         NumericSeries barCnt;
  8.         NumericSeries MinData;
  9.         Numeric i;
  10.         Numeric j;
  11.         Numeric nIndex(0);
  12. Begin
  13.         MinsOfDay = (Hour*60+Minute);               
  14.         If(IntPart(MinsOfDay/nMinSet)!=IntPart(MinsOfDay[1]/nMinSet))
  15.         {
  16.                 barCnt = 1;
  17.         }Else
  18.         {
  19.                 barCnt = barCnt[1] + 1;
  20.         }
  21.         MinData = Price;
  22.                
  23.         If(MinsAgo == 0)
  24.         {
  25.                 return MinData;
  26.         }Else
  27.         {
  28.                 For i = 1 To MinsAgo
  29.                 {
  30.                         If( i == 1)
  31.                         {      
  32.                                 j = 0;
  33.                         }Else
  34.                         {
  35.                                 j = j + BarCnt[j];                              
  36.                         }
  37.                         If (j > CurrentBar ) Return InvalidNumeric;
  38.                         nIndex = nIndex + BarCnt[j];
  39.                 }
  40.                 Return MinData[nIndex];
  41.         }
  42. End
复制代码

使用道具 举报

Rank: 4

精华
0
UID
3136
积分
331
帖子
61
主题
11
阅读权限
50
注册时间
2008-12-23
最后登录
2013-10-13
7#
发表于 2009-3-17 15:26:55 |只看该作者
对了 对了

[ 本帖最后由 bjcifco 于 2009-3-17 16:05 编辑 ]

使用道具 举报

Rank: 4

精华
0
UID
3136
积分
331
帖子
61
主题
11
阅读权限
50
注册时间
2008-12-23
最后登录
2013-10-13
8#
发表于 2009-3-17 15:30:53 |只看该作者
对了 !! 我的错!!!

使用道具 举报

Rank: 4

精华
0
UID
3136
积分
331
帖子
61
主题
11
阅读权限
50
注册时间
2008-12-23
最后登录
2013-10-13
9#
发表于 2009-3-17 16:09:58 |只看该作者
老大 我事情有点多 您别嫌我烦啊,再次请教:

我要在15分钟图上取到1小时图上当前一小时的开盘价怎么弄?

比如9点37分时候我要在15分钟图上取到9点开盘的价格,  13点38分时候我要取到13点半开盘的价格

:handshake :handshake

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
10#
发表于 2009-3-17 16:18:48 |只看该作者
求最后一个值和第一个值算法又不一样了
TransMinsData_Open
  1. Params
  2.         NumericSeries Price(1);
  3.         Numeric nMinSet(5);
  4.         Numeric MinsAgo(2);
  5. Vars
  6.         NumericSeries MinsOfDay;
  7.         NumericSeries barCnt;
  8.         NumericSeries MinData;
  9.         Numeric i;
  10.         Numeric j;
  11.         Numeric nIndex(0);
  12. Begin
  13.         MinsOfDay = (Hour*60+Minute);               
  14.         If(IntPart(MinsOfDay/nMinSet)!=IntPart(MinsOfDay[1]/nMinSet))
  15.         {
  16.                 barCnt = 1;
  17.                 MinData = Price;
  18.         }Else
  19.         {
  20.                 barCnt = barCnt[1] + 1;
  21.                 MinData = MinData [1];
  22.         }
  23.                
  24.         If(MinsAgo == 0)
  25.         {
  26.                 return MinData;
  27.         }Else
  28.         {
  29.                 For i = 1 To MinsAgo
  30.                 {
  31.                         If( i == 1)
  32.                         {      
  33.                                 j = 0;
  34.                         }Else
  35.                         {
  36.                                 j = j + BarCnt[j];                              
  37.                         }
  38.                         If (j > CurrentBar ) Return InvalidNumeric;
  39.                         nIndex = nIndex + BarCnt[j];
  40.                 }
  41.                 Return MinData[nIndex];
  42.         }
  43. End
复制代码

使用道具 举报

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

bottom

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

GMT+8, 2024-5-15 01:36

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部