设为首页收藏本站

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

关于跨周期指标显示的问题 [复制链接]

Rank: 2

精华
0
UID
168964
积分
80
帖子
58
主题
3
阅读权限
30
注册时间
2013-9-21
最后登录
2017-11-6
跳转到指定楼层
1#
发表于 2013-9-26 16:03:53 |只看该作者 |倒序浏览
各位前辈,小弟有一个问题。我想在1分钟线上同时显示1分,3分和5分钟的KDJ的J指标。主要思路是用SETTBPROFILESTRING写三个函数,3分钟和5分钟分别运行一个,存入相应J值。然后在1分钟上读取。
3分钟代码如下,5分钟类似。
  1. Params
  2.         Numeric Length(19);                       
  3.         Numeric SlowLength(18);       
  4.         Numeric SmoothLength(18);
  5. Vars
  6.         NumericSeries HighestValue;                               
  7.         NumericSeries LowestValue;               
  8.         NumericSeries KValue;
  9.         Numeric SumHLValue;
  10.         Numeric SumCLValue;
  11.         Numeric DValue;
  12.         Numeric JValue;
  13.         StringSeries strkey;
  14.         StringSeries strvalue;
  15.        
  16. Begin
  17.         HighestValue = HighestFC(High, Length);
  18.         LowestValue = LowestFC(Low, Length);
  19.         SumHLValue = SummationFC(HighestValue-LowestValue,SlowLength);
  20.         SumCLValue = SummationFC(Close - LowestValue,SlowLength);
  21.         If(SumHLValue <> 0)
  22.         {
  23.                 KValue = SumCLValue/SumHLValue*100;
  24.         }Else
  25.         {
  26.                 KValue = 0;
  27.         }
  28.         DValue = AverageFC(KValue,SmoothLength);
  29.         JValue = 3*KValue - 2*DValue;
  30.        
  31.         strkey = DateToString(date)+" "+TimeToString(Time);
  32.         strvalue = Text(JValue);
  33.         SetTBProfileString("mymin3kdj",strkey,strvalue);
  34.         FileAppend("D:\\amm.txt",strkey+" "+strvalue);
  35.         PlotNumeric("J",JValue);
  36. End
复制代码
1分钟代码如下
  1. Params
  2.         Numeric Length(19);                       
  3.         Numeric SlowLength(18);       
  4.         Numeric SmoothLength(18);
  5. Vars
  6.         NumericSeries HighestValue;                               
  7.         NumericSeries LowestValue;               
  8.         NumericSeries KValue;
  9.         Numeric SumHLValue;
  10.         Numeric SumCLValue;
  11.         Numeric DValue;
  12.         Numeric J1;
  13.         NumericSeries J3;
  14.         NumericSeries J5;
  15.         StringSeries strkey;
  16.         StringSeries strvalue1;
  17.         StringSeries strvalue2;
  18.        
  19. Begin
  20.         HighestValue = HighestFC(High, Length);
  21.         LowestValue = LowestFC(Low, Length);
  22.         SumHLValue = SummationFC(HighestValue-LowestValue,SlowLength);
  23.         SumCLValue = SummationFC(Close - LowestValue,SlowLength);
  24.         If(SumHLValue <> 0)
  25.         {
  26.                 KValue = SumCLValue/SumHLValue*100;
  27.         }Else
  28.         {
  29.                 KValue = 0;
  30.         }
  31.         DValue = AverageFC(KValue,SmoothLength);
  32.         J1 = 3*KValue - 2*DValue;
  33.        
  34.         strkey = DateToString(date)+" "+TimeToString(Time);
  35.        
  36.         strvalue2 = GetTBProfileString("mymin5kdj",strkey);
  37.         If(strvalue2!=InvalidString)
  38.         {
  39.         J5=Value(strvalue2);
  40.         }
  41.         Else
  42.         {
  43.         J5=J5[1];
  44.         }
  45.        
  46.         strvalue1 = GetTBProfileString("mymin3kdj",strkey);
  47.         If(strvalue1!=InvalidString)
  48.         {
  49.         J3=Value(strvalue1);
  50.         }
  51.         Else
  52.         {
  53.         J3=J3[1];
  54.         }
  55.        
  56.        
  57.        
  58.         PlotNumeric("J1",J1);
  59.         PlotNumeric("J3",J3);
  60.         PlotNumeric("J5",J5);
  61. End
复制代码
问题来了,先不管未来函数,3分钟和5分钟图上J值显示都正常。但是1分钟上,由某一段时间,三分钟和五分钟的J值都会呈现锯齿状。请高人指点下,怎么会这样的,这问题想了我半天了,百思不得其解。
问题截图如下
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 2

精华
0
UID
168964
积分
80
帖子
58
主题
3
阅读权限
30
注册时间
2013-9-21
最后登录
2017-11-6
2#
发表于 2013-9-27 10:58:48 |只看该作者
自己顶一下

使用道具 举报

Rank: 2

精华
0
UID
168964
积分
80
帖子
58
主题
3
阅读权限
30
注册时间
2013-9-21
最后登录
2017-11-6
3#
发表于 2013-9-28 13:01:16 |只看该作者
求帮助!!!!

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
114435
积分
154
帖子
27
主题
2
阅读权限
40
注册时间
2012-12-26
最后登录
2018-4-16
4#
发表于 2013-10-9 13:34:30 |只看该作者
用setprofilestring函数写进数据库的值会实时变动的。也就是只保存最新值。不知道对否?

使用道具 举报

Rank: 2

精华
0
UID
168964
积分
80
帖子
58
主题
3
阅读权限
30
注册时间
2013-9-21
最后登录
2017-11-6
5#
发表于 2013-10-11 14:08:41 |只看该作者
caobing 发表于 2013-10-9 13:34
用setprofilestring函数写进数据库的值会实时变动的。也就是只保存最新值。不知道对否? ...

我看下来,是每次都会重复写数据进去,搞得文件越来越大。关键是中间那一段锯齿状不知道怎么会出现的。后来我用setprofilestring2file,就没这个问题了

使用道具 举报

Rank: 1

精华
0
UID
213441
积分
3
帖子
2
主题
1
阅读权限
10
注册时间
2015-7-11
最后登录
2017-8-10
6#
发表于 2017-3-7 14:16:15 |只看该作者
setprofilestring2file 哪里有这个命令?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
7#
发表于 2017-3-7 14:40:33 |只看该作者
以5分钟周期上的J值 为例,在某个5分钟K线上,他只有一个J值 。。
到了1分钟周期上,这个K线对应的这5分钟内,J值是相同的。直到下一个5分钟,才会有J值的变化。这样是可能出现锯齿状的。。3分钟同理。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-4 03:58

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部