设为首页收藏本站

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

实现渐近色指标! [复制链接]

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
跳转到指定楼层
1#
发表于 2007-10-16 15:25:16 |只看该作者 |倒序浏览
最近无意发现TS可以实现渐近色的指标,看了一下,发现TB不用系统函数也可以实现该功能,因此写一个例程供大家参考,没啥大用处,仅供玩赏.
1、首先,我们先要新建一个用户函数,取名为: GradientColor
返回值为数值型,代码如下:
  1. Params
  2.         Numeric Price(10);
  3.         Numeric minSet(20);
  4.         Numeric MaxSet(80);
  5.         Numeric StartColor(255);
  6.         Numeric EndColor(65535);
  7. Vars
  8.         Numeric offset;
  9.         Numeric startRed;
  10.         Numeric startGreen;
  11.         Numeric startBlue;
  12.         Numeric endRed;
  13.         Numeric endGreen;
  14.         Numeric endBlue;
  15.         Numeric reRed;
  16.         Numeric reGreen;
  17.         Numeric reBlue;
  18.         Numeric step;
  19.         Numeric reColor;
  20. Begin
  21.         step = 10;
  22.         offset = (maxSet-minSet)/step;

  23.         startRed = StartColor%256;
  24.         startGreen = (StartColor/256)%256;
  25.         startBlue = (StartColor/256/256);
  26.         endRed = EndColor%256;
  27.         endGreen = (EndColor/256)%256;
  28.         endBlue = (EndColor/256/256);
  29.                
  30.         reRed = startRed + IntPart((Price - minSet)/offSet)*(endRed-startRed)/step;
  31.         reGreen = startGreen + IntPart((Price - minSet)/offSet)*(endGreen-startGreen)/step;
  32.         reBlue = startBlue+ IntPart((Price - minSet)/offSet)*(endBlue-startBlue)/step;
  33.         FileAppend("C:\\formula.log","Red="+Text(reRed)+",Green="+Text(reGreen)+",Blue="+Text(reBlue));

  34.         reColor = RGB(reRed,reGreen,reBlue);
  35.         return reColor;
  36. End
复制代码


2、我们在RSI的基础上来进行修改,支持RSI渐近色!新建一个RSIEx技术指标,代码如下:
  1. Params
  2.         Numeric Length(14) ;
  3.         Numeric OverSold(30) ;
  4.         Numeric OverBought(70) ;
  5. Vars
  6.         NumericSeries NetChgAvg( 0 );
  7.         NumericSeries TotChgAvg( 0 );
  8.         Numeric Change( 0 );
  9.         Numeric SF( 0 );
  10.         Numeric ChgRatio( 0 ) ;
  11.         Numeric RSIValue;
  12.         Numeric curColor;
  13. Begin
  14.         SF = 1/Length;
  15.         If(CurrentBar < Length)
  16.         {
  17.                 RSIValue = InvalidNumeric;
  18.         }Else
  19.         {
  20.                 If(CurrentBar == Length)
  21.                 {
  22.                         NetChgAvg = ( Close - Close[Length] ) / Length ;
  23.                         TotChgAvg = AverageFC( Abs( Close - Close[1] ), Length ) ;
  24.                 }
  25.                
  26.                 If(CurrentBar>length)
  27.                 {
  28.                         Change = Close - Close[1] ;
  29.                         NetChgAvg = NetChgAvg[1] + SF * ( Change - NetChgAvg[1] ) ;
  30.                         TotChgAvg = TotChgAvg[1] + SF * ( Abs( Change ) - TotChgAvg[1] ) ;
  31.                 }
  32.                
  33.                 If( TotChgAvg <> 0 )
  34.                 {
  35.                         ChgRatio = NetChgAvg / TotChgAvg ;
  36.                 }else
  37.                 {
  38.                         ChgRatio = 0 ;
  39.                 }
  40.                
  41.                 RSIValue = 50 * ( ChgRatio + 1 ) ;
  42.         }
  43.         If(RSIValue > OverBought)
  44.         {
  45.                 curColor = Red;
  46.         }else if(RSIValue < OverSold)
  47.         {
  48.                 curColor = DarkCyan;
  49.         }Else
  50.         {
  51.                 curColor = GradientColor(RSIValue,OverSold,OverBought,DarkCyan,Red);
  52.         }
  53.         PlotNumeric("RSI",RSIValue,curColor);
  54.         PlotNumeric("超买",OverBought);
  55.         PlotNumeric("超卖",OverSold);
  56. End
复制代码


3、插入图表,显示如下:


[ 本帖最后由 nopain 于 2007-10-16 15:39 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 2

精华
0
UID
547
积分
76
帖子
16
主题
7
阅读权限
30
注册时间
2007-10-16
最后登录
2019-3-31
2#
发表于 2007-10-18 10:16:31 |只看该作者
请问楼主是怎么样把TB的超级图表调整成 MT 里的样子的呢? 谢谢

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
3#
发表于 2007-10-18 11:23:41 |只看该作者
主图线型选美国线就可以啦

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
1057
积分
824
帖子
158
主题
8
阅读权限
60
注册时间
2008-1-11
最后登录
2021-10-24
4#
发表于 2008-2-5 12:38:47 |只看该作者
先留个言,以后好找到这个帖子。

偶得好好学习一下。谢谢版主!

使用道具 举报

Rank: 1

精华
0
UID
1165
积分
21
帖子
1
主题
0
阅读权限
10
注册时间
2008-2-6
最后登录
2008-2-14
5#
发表于 2008-2-6 23:24:52 |只看该作者
谢谢,公式好复杂啊

使用道具 举报

Rank: 4

精华
1
UID
714
积分
581
帖子
126
主题
23
阅读权限
50
注册时间
2007-11-10
最后登录
2015-12-1
6#
发表于 2008-2-7 21:43:08 |只看该作者
呵呵 看出来了
TB不仅功能强大
而且有一群热血斑竹和维护人员
正是TB的这个团队 支撑起了TB未来无限的发展空间

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
1057
积分
824
帖子
158
主题
8
阅读权限
60
注册时间
2008-1-11
最后登录
2021-10-24
7#
发表于 2008-2-14 22:18:37 |只看该作者
版主:你这个渐近色指标确实直观了,但我用了发现一个问题----速度大大降低了,变换周期时,显示极慢。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
8#
发表于 2008-2-15 09:28:59 |只看该作者
多做很多计算阿,所以只推荐来玩赏。

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
427
积分
1600
帖子
175
主题
20
阅读权限
70
注册时间
2007-9-26
最后登录
2021-11-6
9#
发表于 2008-12-4 21:01:13 |只看该作者

RSIEx技术指标

编译通不过呢!!!提示  函数GradientColor 没有被声明 赋值语句 必须使用同类数据类型!!

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
10#
发表于 2008-12-5 09:36:15 |只看该作者
GradientColor 用户函数的返回值设置为数值型

使用道具 举报

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

bottom

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

GMT+8, 2024-5-21 09:06

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部