设为首页收藏本站

 找回密码
 注册
楼主: 追涨杀跌
打印 上一主题 下一主题

跨周期数据转换函数以及跨周期技术指标调用的实现 [复制链接]

Rank: 10Rank: 10Rank: 10

精华
0
UID
20842
积分
931
帖子
382
主题
2
阅读权限
255
注册时间
2010-12-3
最后登录
2022-2-15
21#
发表于 2011-7-5 14:04:01 |显示全部楼层
问题已解决,老师能不能贴个跨周期的SAR计算程序啊。


接受你的任务,不过可能需要些时日,耐心等一下

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
20842
积分
931
帖子
382
主题
2
阅读权限
255
注册时间
2010-12-3
最后登录
2022-2-15
22#
发表于 2011-7-7 17:21:31 |显示全部楼层
这就要用到MtBar函数的返回值了, 比如:
mtBarCnt = MtBar(TimeFrame,BarsBack,refCurBar,refOpen,refHigh,refLow,refClose,refVol,refOpenInt);
如果你的参数TimeFrame=60的话,你就可以通过这个mtBarCnt的值回溯读到上一个小时线的值,然后再根据那根BAR的mtBarCnt找到再上一个小时的值,就像一根链条,一环扣一环,用循环就可以读到所有的小时线。
请仔细研读一下我所贴的MtSummation函数中For循环部分的代码。你就会明白的

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
20842
积分
931
帖子
382
主题
2
阅读权限
255
注册时间
2010-12-3
最后登录
2022-2-15
23#
发表于 2011-7-8 10:42:59 |显示全部楼层
回复 43# kevinwimax

这几天没空,我心里记着这事,您放心。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
20842
积分
931
帖子
382
主题
2
阅读权限
255
注册时间
2010-12-3
最后登录
2022-2-15
24#
发表于 2011-7-8 10:57:34 |显示全部楼层
比如针对在5分钟取60分钟数据,假设5分钟与60分钟都从第一个bar开始计算:
5分钟的12个bar对应60分钟一个ba ...
读书山林 发表于 2011-7-7 15:36


我给的例子中,都是用大周期的前一根K线来计算指标的。但实际上MtBar函数中的BarsBack参数如果设置为0,调用MtBar后,小周期K线上保留的大周期数据就是你说的第二种情况。但后面的指标函数中,却没有考虑这个参数为0的情况,所以如果设为0,计算出来的指标会不正常。我这两天正好帮客户写代码碰到了这个问题,我准备把这部分完善一下。但最近确实手头还有好多事,所以,请继续关注这个帖子。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
20842
积分
931
帖子
382
主题
2
阅读权限
255
注册时间
2010-12-3
最后登录
2022-2-15
25#
发表于 2011-7-8 13:27:55 |显示全部楼层
回复 46# 读书山林

你理解得完全正确。我明白你说的意思,既然要完成,我会把前面贴出来的所有指标都用新的方法来做,所以,还是需要一些时间的。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
20842
积分
931
帖子
382
主题
2
阅读权限
255
注册时间
2010-12-3
最后登录
2022-2-15
26#
发表于 2011-7-10 00:53:50 |显示全部楼层
也就是说老师给出的指标函数实现的是:第三种情况====用大周期的前一根K线来计算指标。这样以来如果引用 ...
读书山林 发表于 2011-7-8 12:43


今天把MtBar函数和MtMa等函数看了一下,发现前面的回答中,有一些不准确之处。其实将BarsBack参数设置为0 ,就可以实现读书山林朋友所说的第二种情况。因为MtBar函数返回mtBarCnt的值仍是正确的,还是到大周期上一根BAR所需回溯的值。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
20842
积分
931
帖子
382
主题
2
阅读权限
255
注册时间
2010-12-3
最后登录
2022-2-15
27#
发表于 2011-7-11 20:17:22 |显示全部楼层
追涨老师能抽空解释一下这两句吗?多谢了!
freetiger 发表于 2011-7-11 16:11


这两句是根据xaverage函数的算法改写的。
        sFcactor = 2 / ( Length + 1 );
        if (CurrentBar == 0 )
        {
                XAvgValue = Price;
        }else
        {
                XAvgValue = XAvgValue[1] + sFcactor * ( Price - XAvgValue[1] ) ;
        }       
因为我们现在计算的是跨周期的Xaverage,所以回溯时,我们大周期的前一根K线不是回溯1,而是要回溯mtBarCnt,这才是大周期上一根K线的位置。CurrentBar也是一样,要用mtCurBar来代替。price要用mtClose来代替。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
20842
积分
931
帖子
382
主题
2
阅读权限
255
注册时间
2010-12-3
最后登录
2022-2-15
28#
发表于 2011-7-11 23:56:51 |显示全部楼层
回复 54# kevinwimax

kevinwimax,最对不住的就是您了,我答应你的跨周期SAR函数还没有完成。虽然这些天很忙,我还是抽了些时间来考虑,可能是我水平不够,呵呵,难度不小啊。还请见谅,容我慢慢啃这块硬骨头

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
20842
积分
931
帖子
382
主题
2
阅读权限
255
注册时间
2010-12-3
最后登录
2022-2-15
29#
发表于 2011-7-12 11:40:04 |显示全部楼层
回复 56# 读书山林

XAverage的其实已经写了,在MtMACD的实现中,就用到了,当时省得函数调用函数,就直接写里面了,您可以参考一下。回头再把它单独写到MtXaverage中。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
20842
积分
931
帖子
382
主题
2
阅读权限
255
注册时间
2010-12-3
最后登录
2022-2-15
30#
发表于 2011-7-12 18:27:53 |显示全部楼层
本帖最后由 追涨杀跌 于 2011-7-12 18:29 编辑

回复 59# 读书山林

写得很正确。 SMA也可以尝试写一下,应该可以的。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-4 04:51

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部