设为首页收藏本站

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

关于商品跨周期数据引用的讨论! [复制链接]

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
跳转到指定楼层
1#
发表于 2007-8-23 12:27:25 |只看该作者 |正序浏览
最近准备编写用户函数来实现跨周期数据引用,关于跨周期数据引用,有几种不同的处理方式,我们以在日线上引用周线为例进行讨论。

假定有一个商品日线数据如下:
//-------------------------------------------------------------------------
星期,日期,开盘价,最高价,最低价,收盘价,成交量,持仓量
五,2007/08/10,19805,19945,19755,19880,1902,6080
一,2007/08/13,19890,20120,19890,20105,1832,6106
二,2007/08/14,20000,20105,19960,19985,2238,6464
三,2007/08/15,19890,20010,19500,19580,5932,7584
四,2007/08/16,19590,19690,19110,19285,8476,8136
五,2007/08/17,18630,19100,18620,18750,15808,13010
一,2007/08/20,19000,19100,18950,19020,9252,13770
二,2007/08/21,18990,19120,18870,18890,7398,14000
三,2007/08/22,18850,18945,18710,18880,6540,14446
四,2007/08/23,19100,19160,18940,18960,4870,15280

第一种处理方式:
该周第一天到当前的高开低收进行合并计算,成交量累计,持仓量取最后的。
处理后的叠加周线数据和日线是一一对应的,如下:
//-------------------------------------------------------------------------
星期,日期,开盘价,最高价,最低价,收盘价,成交量,持仓量
五,2007/08/10,19805,19945,19755,19880,1902,6080 // 前面数据没有了,就以该日的数据为周线数据。
一,2007/08/13,19890,20120,19890,20105,1832,6106 // 周一和日线一样。
二,2007/08/14,19890,20120,19890,19985,4070,6464 // 和周一进行合并
三,2007/08/15,19890,20120,19500,19580,10002,7584 // 周一、二、三进行合并
四,2007/08/16,19890,20120,19110,19285,18478,8136 // 周一、二、三、四进行合并
五,2007/08/17,19890,20120,18620,18750,34286,13010 // 周一、二、三、四、五进行合并
一,2007/08/20,19000,19100,18950,19020,9252,13770 // 周一和日线一样
二,2007/08/21,19000,19120,18870,18890,16650,14000
三,2007/08/22,19000,19120,18710,18880,23190,14446
四,2007/08/23,19000,19160,18710,18960,28060,15280

第二种处理方式:
直接取上一周的周线数据,如果没有则设置为无效值。
处理后的叠加周线数据和日线是一一对应的,如下:
//-------------------------------------------------------------------------
五,2007/08/10,N/A,N/A,N/A,N/A,N/A,N/A                     // 该行无效,因为无上周的数据
一,2007/08/13,19805,19945,19755,19880,1902,6080   // 本周都取上周的周线数据,因为上周数据不完整,用周五的代替
二,2007/08/14,19805,19945,19755,19880,1902,6080
三,2007/08/15,19805,19945,19755,19880,1902,6080
四,2007/08/16,19805,19945,19755,19880,1902,6080
五,2007/08/17,19805,19945,19755,19880,1902,6080
一,2007/08/20,19890,20120,18620,18750,34286,13010 // 本周取上周的周线数据
二,2007/08/21,19890,20120,18620,18750,34286,13010
三,2007/08/22,19890,20120,18620,18750,34286,13010
四,2007/08/23,19890,20120,18620,18750,34286,13010

第三种处理方式:
取本周的周线数据,涉及到引用未来数据,周一就取到周五的数据啦。具体数据就不再列出

对于以上三种方式,大家认为那种更有效,或者说会更有实际意义,或者还有其他的算法,都请积极讨论!

[ 本帖最后由 nopain 于 2007-8-26 18:23 编辑 ]

Rank: 1

精华
0
UID
237256
积分
1
帖子
1
主题
0
阅读权限
10
注册时间
2016-7-19
最后登录
2022-4-21
85#
发表于 2019-8-17 13:08:01 |只看该作者
谢谢 ,前辈们的成果。

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
208212
积分
2006
帖子
103
主题
24
阅读权限
70
注册时间
2015-5-2
最后登录
2019-6-18
84#
发表于 2016-11-16 15:07:35 |只看该作者
好帖,顶起来

使用道具 举报

Rank: 1

精华
0
UID
230338
积分
27
帖子
26
主题
0
阅读权限
10
注册时间
2016-3-18
最后登录
2017-4-30
83#
发表于 2016-9-26 18:17:09 |只看该作者

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
113242
积分
3506
帖子
97
主题
11
阅读权限
80
注册时间
2012-10-31
最后登录
2013-6-4
82#
发表于 2012-12-22 03:00:52 |只看该作者
貌似第一种处理方式 就和追涨杀跌版主 取的Mtbar   的方式。。。  第二种方式 好像自动的取了前1周的数据。。 在我看来这不同的 处理方式 满足不同的需求吧。。。。另外 ,nopain老大,,,您写的TransMinsData 函数没有注释,,对于我们这些初学者来说 理解起来很麻烦。。。。   因为只有真正理解了,才能更好的,正确的去使用

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
113242
积分
3506
帖子
97
主题
11
阅读权限
80
注册时间
2012-10-31
最后登录
2013-6-4
81#
发表于 2012-12-22 02:52:39 |只看该作者
我竟然把它从头看完了,,,看来是各种论坛泡多了的缘故

使用道具 举报

Rank: 2

精华
0
UID
7077
积分
52
帖子
14
主题
3
阅读权限
30
注册时间
2010-2-28
最后登录
2020-9-2
80#
发表于 2010-3-9 17:41:21 |只看该作者
如何使用引用数据类型跨周期,
或者有什么办法将不同周期的指标值数据直接引用过来,非算出来,
不用SetTBProfileString和GetTBProfileString

使用道具 举报

Rank: 2

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

交易指令跨周期最好最简单的算法

交易指令跨周期最好最简单的算法
   比如读取CU的5分钟KD指标的K值,写这么一个函数可以实现。
   一、首先判断是否有CU的5分钟图(属性为隐藏的,在mt4中窗口的属性值可为隐藏,最小化,最大化),若无则打开一个CU的5分钟图表,图表的属性值设置为隐藏。
   二、判断该图表中是否插入了KD指标,若无则插入KD指标。
   三、分别读取该5分钟图中复图指标K、D值,并根据用户需要,返回读取的K值D值,这个函数如何写,请各位朋友多多帮忙编写,我估计会用到系统函数,那是必然的,具体如何去写,如何把系统函数转换成(移植到)用户函数去实现上面所说的这么一个函数,请版主多多帮忙编写。
  打开的隐藏图表什么时候关闭呢?1、当测试交易指令结束时,2、不启用智能交易系统时,这时关闭掉所有的隐藏图表,这个功能要在编写软件时加入相关的代码解决实现较好或者我们可以编写一个交易指令去关闭掉这些隐藏图表。
   上面所说的这么一个算法事实上挺简单,在mt4上非常容易实现,不知在现在的TB平台上可否暂时实现这一功能但愿能够实现。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
3994
积分
189
帖子
28
主题
4
阅读权限
40
注册时间
2009-4-1
最后登录
2010-3-11
78#
发表于 2009-4-3 04:49:53 |只看该作者
希望软件升级时能借鉴MT4的方法就更好:

函数iMACD表示不同周期 MACD 值:
30分钟  iMACD(NULL,PERIOD_M30,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
4小时   iMACD(NULL,PERIOD_H4,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
1天     iMACD(NULL,PERIOD_D1,12,26,9,PRICE_CLOSE,MODE_MAIN,1);

函数iMA表示不同周期 平均线:
30分钟  iMA(NULL,PERIOD_M30,MovingPeriod,0,MODE_SMA,PRICE_CLOSE,0);
4小时   iMA(NULL,PERIOD_H4,MovingPeriod,0,MODE_SMA,PRICE_CLOSE,0);
1天     iMA(NULL,PERIOD_D1,MovingPeriod,0,MODE_SMA,PRICE_CLOSE,0);

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2689
积分
168
帖子
43
主题
7
阅读权限
40
注册时间
2008-10-30
最后登录
2009-9-13
77#
发表于 2008-11-9 15:35:32 |只看该作者
关于跨周期讨论的帖子,看来看去,感受只有一个:

跨周期吗?明白是在两个时间轴之间互相“跨越”的,怎么硬要用一个时间轴搞出另一个时间轴,那不是钻牛角尖吗?

走入死胡同了,还是另想办法吧。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-4 08:39

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部