设为首页收藏本站

 找回密码
 注册
查看: 98572|回复: 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: 1

精华
0
UID
270013
积分
12
帖子
2
主题
0
阅读权限
10
注册时间
2018-9-13
最后登录
2020-1-16
110#
发表于 2020-1-16 10:14:10 |只看该作者
15分钟调用小时周期的怎么操作呢?

使用道具 举报

Rank: 1

精华
0
UID
246735
积分
5
帖子
2
主题
0
阅读权限
10
注册时间
2017-2-4
最后登录
2020-4-26
109#
发表于 2017-9-19 10:59:32 |只看该作者
经实测这种解决方案问题很多

使用道具 举报

Rank: 1

精华
0
UID
229582
积分
25
帖子
21
主题
3
阅读权限
10
注册时间
2016-3-9
最后登录
2016-12-7
108#
发表于 2016-12-6 23:26:46 |只看该作者
Nichole 发表于 2009-10-9 15:36
又进一步

真够繁琐的

使用道具 举报

Rank: 6Rank: 6

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

使用道具 举报

Rank: 1

精华
0
UID
229582
积分
25
帖子
21
主题
3
阅读权限
10
注册时间
2016-3-9
最后登录
2016-12-7
106#
发表于 2016-11-10 19:47:33 |只看该作者
Nichole 发表于 2009-10-9 10:20
根据上面的帖子,下面这么写不对?

周线上(写数据)这么写:

实在是太麻烦了,我想用这个方式  在1分钟里 调用15分钟K线的数据  竟然找遍了 都没有

使用道具 举报

Rank: 1

精华
0
UID
229582
积分
25
帖子
21
主题
3
阅读权限
10
注册时间
2016-3-9
最后登录
2016-12-7
105#
发表于 2016-8-26 15:24:00 |只看该作者
Nichole 发表于 2009-10-9 10:20
根据上面的帖子,下面这么写不对?

周线上(写数据)这么写:

在日线上面  WEEKINDEX 这个词 要从新 声明呀   怎么办

使用道具 举报

Rank: 1

精华
0
UID
229582
积分
25
帖子
21
主题
3
阅读权限
10
注册时间
2016-3-9
最后登录
2016-12-7
104#
发表于 2016-8-26 12:41:05 |只看该作者
应该把所有周期的跨周期引用的例子 都列举一遍  要不然对于我们还是看着很烦呀

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2249
积分
184
帖子
40
主题
3
阅读权限
40
注册时间
2008-9-1
最后登录
2021-11-3
103#
发表于 2016-6-14 09:39:18 |只看该作者
这个帖子讲得比较清楚

使用道具 举报

精华
0
UID
212119
积分
84
帖子
59
主题
4
阅读权限
0
注册时间
2015-6-26
最后登录
2021-10-27
102#
发表于 2016-6-13 18:45:08 |只看该作者

学习ing.

使用道具 举报

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

bottom

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

GMT+8, 2024-5-4 09:11

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部