设为首页收藏本站

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

通过文件读写函数实现跨周期数据调用! [复制链接]

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
跳转到指定楼层
1#
发表于 2009-4-4 09:01:38 |只看该作者 |倒序浏览
TB3.2.2增加了文件读写功能函数,SetTBProfileString和GetTBProfileString,
通过使用这两个函数,可以实现较复杂的应用,比如跨周期数据调用。
SetTBProfileString将数据内容写到用户公式目录tblprofile.ini文件下。

下文以5分钟周期调用日线指标数据举例讲解具体应用。

操作步骤如下:
1、新建一个工作区,包含上下两个图表窗体,上面选择日线周期,下面选择5分钟周期。
2、新建一个技术指标,命名为MyDayMA。编译成功后插入日线图表中。详细代码如下:
  1. Params
  2.         Numeric length(10);
  3. Vars
  4.         Numeric MA;
  5.         string strkey;
  6.         string strValue;
  7. Begin
  8.         MA = AverageFC(Close,length);
  9.         strKey = DateToString(Date);
  10.         strValue = Text(MA);
  11.         SetTBProfileString("DayMA",strKey,strValue);
  12.         PlotNumeric("MA",MA);
  13. End
复制代码


3、新建一个技术指标,My5MinMA。编译成功后插入5分钟图表中,详细代码如下:
  1. Vars
  2.         NumericSeries DayMAValue;
  3.         string strKey;
  4.         string strValue;
  5. Begin
  6.         strKey = DateToString(Date);
  7.         strValue = GetTBProfileString("DayMA",strKey);
  8.         If(strValue != InvalidString)
  9.         {
  10.                 DayMAValue = Value(strValue);
  11.         }Else
  12.         {
  13.                 DayMAValue = DayMAValue[1];
  14.         }
  15.         PlotNumeric("DayMA",DayMAValue);
  16. End
复制代码


4、上面的指标实际使用了未来数据,用来写指标是可以的,但用来做交易指令进行自动交易就会出问题,为了更准确合理的使用跨周期数据,我们应该稍作修改,代码如下:
  1. Vars
  2.         NumericSeries DayMAValue;
  3.         StringSeries strKey;
  4.         string strValue;
  5. Begin
  6.         If(Date!=Date[1])
  7.         {
  8.                 strKey = DateToString(Date[1]);       
  9.         }Else
  10.         {
  11.                 strKey = strKey[1];
  12.         }
  13.        
  14.         strValue = GetTBProfileString("DayMA",strKey);
  15.         If(strValue != InvalidString)
  16.         {
  17.                 DayMAValue = Value(strValue);
  18.         }Else
  19.         {
  20.                 DayMAValue = DayMAValue[1];
  21.         }
  22.         PlotNumeric("DayMA",DayMAValue);
  23. End
复制代码


附件: 你需要登录才可以下载或查看附件。没有帐号?注册
已有 3 人评分威望 收起 理由
airwaves + 2
gzyesdo + 2
wmt2100 + 8

总评分: 威望 + 12   查看全部评分

初级大户

天蓬大元帅

Rank: 5Rank: 5

精华
0
UID
1138
积分
1217
帖子
161
主题
61
阅读权限
60
注册时间
2008-1-30
最后登录
2009-10-5
2#
发表于 2009-4-4 11:02:49 |只看该作者
好啊,这个功能非常好呀,期待很久啦。。。
交易开拓者QQ群:1群:38529330,2群:24771838,3群:39107556,4群:38478324。。。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
826
积分
1407
帖子
118
主题
46
阅读权限
60
注册时间
2007-11-25
最后登录
2013-12-24
3#
发表于 2009-4-4 17:26:41 |只看该作者

好东西,支持.TB的技术开发真的是一流的:

TB的技术人员辛苦了.非常感谢你们.现在看来国内哪个号称最大的财经软件要追赶你们了.

使用道具 举报

Rank: 4

精华
0
UID
3776
积分
442
帖子
51
主题
5
阅读权限
50
注册时间
2009-3-10
最后登录
2014-8-13
4#
发表于 2009-4-4 20:15:05 |只看该作者
这是个了不起的创意!

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
1352
积分
1702
帖子
33
主题
2
阅读权限
70
注册时间
2008-3-20
最后登录
2017-11-16
5#
发表于 2009-4-4 20:22:28 |只看该作者
好样的,tb.

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
1384
积分
1102
帖子
212
主题
40
阅读权限
60
注册时间
2008-3-28
最后登录
2019-4-26
6#
发表于 2009-4-6 08:16:05 |只看该作者
为啥这个读写要固定文件,不能像fileappend一样自定义文件?这样不会导致文件大小增长过快导致效率降低么?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
7#
发表于 2009-4-6 10:39:03 |只看该作者
读写固定的文件,是让函数用起来更简洁些。数据只要不太多,问题应该不大。

使用道具 举报

Rank: 4

精华
0
UID
3803
积分
328
帖子
27
主题
5
阅读权限
50
注册时间
2009-3-12
最后登录
2014-4-4
8#
发表于 2009-4-6 14:25:27 |只看该作者
好贴!给版主致敬

使用道具 举报

Rank: 2

精华
0
UID
2259
积分
91
帖子
9
主题
1
阅读权限
30
注册时间
2008-9-2
最后登录
2009-7-31
9#
发表于 2009-4-6 18:05:50 |只看该作者
"读写固定的文件,是让函数用起来更简洁些。数据只要不太多,问题应该不大。"

随便读写很危险,万一你放毒咋办?

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
2914
积分
949
帖子
259
主题
84
阅读权限
60
注册时间
2008-11-30
最后登录
2010-8-6
10#
发表于 2009-4-6 21:05:24 |只看该作者
这个文件肯定会越来越大,因为只有增加没有删除,日积月累。
而且大量TB函数的说明不够清楚,应用上会有困难。
比如Bool SetTBProfileString(String strSection,String strKey,String strValue)中键名、块名的概念。所举示例也太简单不能把公司的特点说清楚,多举几个例子要死人啊?
要让更多的人使用TB,就要减少学习难度,编写说明文档的时候不要把用户当成开发人员一样的水平看待。TB公司老是爱犯这样的错误。

使用道具 举报

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

bottom

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

GMT+8, 2024-4-23 17:32

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部