设为首页收藏本站

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

通过技术指标和K线型态组合实现类似火车轨的显示 [复制链接]

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
跳转到指定楼层
1#
发表于 2007-7-23 09:18:52 |只看该作者 |倒序浏览
通过技术指标和K线型态组合实现类似火车轨的显示:
操作步骤如下:

1、新建技术指标,假定名称为Demo,设置为默认主图显示,
基本意思很简单,就是5日,30日均线的交叉。代码如下:
  1. Params
  2.         Numeric Length1(5);
  3.         Numeric Length2(30);
  4. Vars
  5.         Numeric Line1Value;
  6.         Numeric Line2Value;
  7. Begin
  8.         Line1Value = AverageFC(Close,Length1);
  9.         Line2Value = AverageFC(Close,Length2);
  10.         PlotNumeric("Line1",Line1Value);
  11.         PlotNumeric("Line2",Line2Value);
  12. End
复制代码


2、新建K线型态,假定名称为DemoK,代码如下:
  1. Params
  2.         Numeric Length1(5);
  3.         Numeric Length2(30);
  4. Vars
  5.         Numeric Line1Value;
  6.         Numeric Line2Value;
  7. Begin
  8.         Line1Value = AverageFC(Close,Length1);
  9.         Line2Value = AverageFC(Close,Length2);
  10.         If(Line1Value > Line2Value)
  11.                 PlotBar("Line",Line1Value,Line2Value,Red);
  12.         Else
  13.                 PlotBar("Line",Line1Value,Line2Value,Green);
  14. End
复制代码


3、上述公式编译成功之后,加入同一个图里面,参数要保持一致:
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 10Rank: 10Rank: 10

精华
0
UID
17
积分
99532
帖子
40
主题
13
阅读权限
200
注册时间
2007-7-22
最后登录
2019-4-12
2#
发表于 2007-7-23 10:22:34 |只看该作者

请教

AverageFC、Xaverage等在帮助信息里没有解释,只有average,是怎么回事?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
3#
发表于 2007-7-23 11:04:32 |只看该作者
原帖由 bcsunwww 于 2007-7-23 10:22 发表
AverageFC、Xaverage等在帮助信息里没有解释,只有average,是怎么回事?


  • Average和AverageFC都是内建的用户函数,目的都是用来求N个Bar以来的平均值,您可以直接看到实现的代码。
  • Average和AverageFC有什么不同呢?AverageFC是指FastCalculate,即快速计算。当这两个函数的第二个变量,即N个Bar是常量时,使用AverageFC,提高计算效率。当N是不确定的变量时,则必须使用Average,否则会出现计算问题。
  • 系统里面类似的用户函数还有Summation和SumamtionFC。


[ 本帖最后由 nopain 于 2007-7-23 11:06 编辑 ]

使用道具 举报

Rank: 8Rank: 8

精华
2
UID
2
积分
3308
帖子
342
主题
6
阅读权限
200
注册时间
2007-7-20
最后登录
2013-5-25
4#
发表于 2007-7-23 12:01:18 |只看该作者
原帖由 bcsunwww 于 2007-7-23 10:22 发表
AverageFC、Xaverage等在帮助信息里没有解释,只有average,是怎么回事?



帮助文档中的都是底层函数,那些函数是C语言写成的。而AverageFC、Xaverage是系统用户函数,这种函数是TB语言写成的。你在公式编辑器中可以打开AverageFC、Xaverage,查看他们的源代码。

TB语言拥有函数的概念,这是与类分析家语言很大的不同。分析家语言中经常复杂的逻辑难以实现,这就是由于缺乏包装。在TB中,你可以把你的通用算法包装成函数,然后在其他地方来调用。

在文华、富远、POBO等软件中,你是看不到MA指标的源代码的,因为他们用C语言实现MA指标。正因为如此,所以同一个指标,比如威廉指标,在文华和富远的同一个K线图上画出来就很可能不同,而且你也查不原因。而在TB中,MA指标的源代码是可以看见的,实现的算法也是可以看见的。你可以把系统提供的公式当做例子来学习TB语言,也可以从中扒一段代码COPY到自己的公式中去。

不少客户反映TB的范例很少,不知道如何写公式。其实,TB的内建用户函数已经提供了庞大的范例集了:-)

[ 本帖最后由 nopain 于 2007-7-23 12:24 编辑 ]

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
0
UID
17
积分
99532
帖子
40
主题
13
阅读权限
200
注册时间
2007-7-22
最后登录
2019-4-12
5#
发表于 2007-7-23 12:40:29 |只看该作者
谢谢两位版主赐教,这个问题已经困扰我一个晚上了,现在明白了.

使用道具 举报

Rank: 2

精华
0
UID
16
积分
116
帖子
39
主题
9
阅读权限
30
注册时间
2007-7-22
最后登录
2019-3-31
6#
发表于 2007-7-23 13:00:29 |只看该作者
K的原吗是什么?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
7#
发表于 2007-7-23 13:15:29 |只看该作者
原帖由 云中漫步跑 于 2007-7-23 13:00 发表
K的原吗是什么?


见楼顶!

使用道具 举报

Rank: 2

精华
0
UID
16
积分
116
帖子
39
主题
9
阅读权限
30
注册时间
2007-7-22
最后登录
2019-3-31
8#
发表于 2007-7-25 07:50:00 |只看该作者
怎样才能在附图指标比如MACD里面实现两条线之间类似上图的颜色填充呢?

文华里面STICKLINE可以做成这种效果。

[ 本帖最后由 云中漫步跑 于 2007-7-25 07:51 编辑 ]

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
9#
发表于 2007-7-25 09:34:32 |只看该作者
原帖由 云中漫步跑 于 2007-7-25 07:50 发表
怎样才能在附图指标比如MACD里面实现两条线之间类似上图的颜色填充呢?

文华里面STICKLINE可以做成这种效果。


新鲜出炉的解决方案,版本升级到3.0.6之后将可以支持。等几天就发布新版本。
以下是关于如何将MACD修改为支持线段的代码:
  1. Params
  2.         Numeric FastLength(12);
  3.         Numeric SlowLength(26);
  4.         Numeric MACDLength(9);
  5. Vars   
  6.         NumericSeries MACDValue;
  7.         Numeric AvgMACD;
  8.         Numeric MACDDiff;
  9. Begin
  10.         MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;       
  11.         AvgMACD = XAverage(MACDValue,MACDLength);
  12.         MACDDiff = MACDValue - AvgMACD;
  13.         PlotNumeric("LineBegin",MACDValue); // 此行修改,将名称改为LineBegin
  14.         PlotNumeric("LineEnd",AvgMACD);     // 此行修改,将名称改为LineEnd
  15.         If (MACDDiff >= 0)       
  16.                 PlotNumeric("MACDDiff",MACDDiff,Red);
  17.         Else
  18.                 PlotNumeric("MACDDiff",MACDDiff,Green);
  19.         PlotNumeric("零线",0);          
  20. End
复制代码


注意:要想实现连接上下两条线,必须将两条线命名为LineBegin和LineEnd,线条会根据这两条线中较大值的颜色及线条设置来画线段。

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

使用道具 举报

Rank: 2

精华
0
UID
16
积分
116
帖子
39
主题
9
阅读权限
30
注册时间
2007-7-22
最后登录
2019-3-31
10#
发表于 2007-7-26 10:11:05 |只看该作者
:victory: :victory:

使用道具 举报

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

bottom

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

GMT+8, 2024-5-9 10:19

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部