开拓者期货期权程序化系统交易论坛

标题: 推荐一个学习TB公式的好方法 [打印本页]

作者: skywalker    时间: 2007-10-1 00:26:37     标题: 推荐一个学习TB公式的好方法

学习编程需要大量的例子,总是有人抱怨说TB的例子太少,即便是论坛上的例子仍然太少。其实最好的例程库已经在TB中附带了,就是TB的系统用户函数库。每一个TB的用户函数都是可以用公式编辑器打开查看源代码的,并且在每个函数的属性和帮助文件中都写了该函数的含义和用法。

那么,最好的学习TB公式的方法就是自己重写用户函数!你先查看帮助文件,看某个函数的含义和用法,然后自己尝试着重写该函数,如果有问题写不下去了,那么就查看系统自带的该用户函数源代码。两相对照,很快你就能学会TB公式的写法啦

如果你想学习TB公式的写法,我推荐你重写以下几个用户函数:
1、Summation求和函数
从这个函数中你能学到IF语句,FOR循环语句的用法,以及序列变量的用法。
2、Average求平均函数
从这个函数中你能学到如何进行函数调用,并且把早先写的Summation函数用一用,增强点成就感
3、Extremes求极值函数
这个函数比较长,有74行代码。它几乎用到了所有的编程技巧。IF语句,FOR语句,序列参数,序列变量,而且它还用了稍微高级的引用变量。如果你能写出这个函数,那么你在公式上就已经入门了。
4、NthExtremes求N极值函数
这个函数是Extremes函数的一个变种,你不需要自己完全重写,但是如果你能把源代码读懂的话,那么要重写文华上几乎所有的指标对你来说都是轻而易举的事情了。

然后再写两个指标,看看如何来使用函数:
1、MA指标
学习如何来使用Average函数返回的数据
2、Spread价差指标
学习如何使用多数据源调用


我要重申一下TB公式系统的架构:
公式系统最底层的东西就是函数,系统函数或者用户函数。函数负责准备数据,这是个数据层。而指标、K线形态、特征走势和交易指令是表现层,他们负责把函数准备好的数据呈现出来。指标通过画线来呈现数据,K线形态和特征走势通过画点来呈现数据,而交易指令通过帐户操作来呈现数据。他们都只负责把数据以不同的方式呈现出来,而数据是由函数来准备的。正因为此,所以函数是最底层的,函数是用来被调用的。指标、K线形态、特征走势和交易指令都可以调用函数,但是指标却不能调用指标,指标也不能调用交易指令。这是与其他软件不同的地方。

[ 本帖最后由 skywalker 于 2007-10-1 00:34 编辑 ]
作者: nickchen    时间: 2007-10-1 01:11:43

非常好 谢谢了 以后多指教
作者: mht88    时间: 2007-10-1 22:02:41

好,继续学习
作者: wfxxzf    时间: 2007-10-2 18:51:56     标题:

没有文华的简单,比较长,建议kd,macd模型编出来供学习
作者: jvya    时间: 2007-12-11 14:48:22

这篇文章太好了,
给出了一条学习指导线路。从初学到入门。
绝对应该置顶。
让初学能早看到。会大大有帮助。我就是好久了刚看到。
强烈建议置顶
作者: php168    时间: 2007-12-13 16:28:49

以后多指教,继续学习
作者: guidaon    时间: 2007-12-14 20:04:41

继续学习
作者: jvya    时间: 2007-12-18 22:16:42

好贴不能埋下去。顶

建议改下顺序,由易到难。好下手。

1、MA指标
2、Summation求和函数
3、Average求平均函数
之后。。。。。依序
作者: stevenx8    时间: 2008-1-11 21:12:26

这是条好路子,偶慢慢来,试试看。
作者: cqzzbszz    时间: 2008-5-24 23:59:59

这是初学者的指路明灯啊
作者: 前线小卒    时间: 2008-5-25 09:20:26

版主能每个语法用一个实例讲解吗?
作者: guotie    时间: 2008-5-25 09:43:00

这篇文章应该置顶。
thx
作者: feng1234567    时间: 2008-6-27 10:38:37

走过,路过,学习过。
谢谢
作者: myangsoft    时间: 2008-9-5 14:28:24

好贴 以后多学习学习了
作者: larsir    时间: 2009-8-29 18:10:32

好贴,早看到就好了!顶!
作者: larsir    时间: 2009-8-30 18:56:59     标题: 学习进行中

已经接触TB两个月了,前天看了斑竹的文章后,按照斑竹的步骤,已经搞懂了summation和average函数,也搞清了MA指标和spread价差指标,感觉都还比较顺利。现在开始攻Extremes了,不过初看了一遍函数都还没完全看懂哦。感觉对于初学者来说这地方有点难度哦。写一个程序开始要不要先要构建一个框架,分成一块一块来写啊? 感觉斑竹可以把Extremes函数的编写思路过程和详细步骤作一个详细的讲解说明贴上来,大家再跟着学习讨论,应该很有代表性,可以省掉很多答疑的时间哦!
作者: larsir    时间: 2009-8-30 22:04:46

If ( CurrentBar < Length - 1)
Else If(CurrentBar == Length - 1 || MyBar[1] == Length - 1)
Else
Extremes函数的基本框架就是上面那个吧? 第一种情况返回无效值明白,第二种情况和第三种情况能不能麻烦解释一下哦?
作者: myangsoft    时间: 2009-9-2 00:05:27

谢谢楼主
作者: 枫林飞鹄    时间: 2009-9-9 22:21:47

新手学习中,谢谢
作者: zyj4311151    时间: 2009-9-24 23:15:07     标题: 回复 1# skywalker 的帖子



作者: chengjun1201    时间: 2009-9-26 09:31:04

thank you rw rok
作者: TBlzx    时间: 2010-3-7 20:50:11     标题: 回复 1# skywalker 的帖子

受益匪浅啊!!!学习,感谢
作者: jiaoyizhe    时间: 2011-6-30 14:24:59

这个学习方法不错
作者: ZCQ    时间: 2011-6-30 17:56:33

这个方法不错
作者: 白驹过隙    时间: 2011-7-2 17:29:56

顶下!能让人省去很多弯路!
作者: mel_6e    时间: 2011-9-13 16:13:46

顶下 陈老板
作者: xiaoshansanzhi    时间: 2011-11-1 18:16:52

回复 1# skywalker


    很好的建议
作者: nzgnsilyn    时间: 2012-2-16 12:56:38

先学习了,编程好些年不用了,又重新拾起来了
作者: nzgnsilyn    时间: 2012-2-16 15:14:59

今天收获很多
作者: rookies    时间: 2012-7-15 23:11:33

好帖子,相逢恨晚
作者: 倔强    时间: 2012-7-21 09:38:10

虽然看不懂 但是一定要顶

作者: 欧莱雅男士    时间: 2012-11-7 10:06:53

非常感谢前辈的指点,我还在四处找寻学习公式的方法呢,原来家门口就有
作者: zztt    时间: 2012-11-18 03:01:06

谢谢。很好的建议啊!
作者: CHAXINQING    时间: 2012-11-18 16:25:14

需要耐心 慢慢来
作者: 圣殿英灵    时间: 2013-2-17 15:09:16

mark一下尝试自己写
作者: 天崖    时间: 2013-2-17 15:52:24

受益匪浅啊!!!学习,感谢
作者: Tracymao    时间: 2013-2-19 15:33:09

很有用~
作者: hepang    时间: 2013-3-22 18:32:39

juedui绝对应该给新手设计一条路径 按部就班的前行
作者: zcmbuer    时间: 2013-3-26 10:45:25

NthExtremes这个函数看了2天完全摸不着头绪,版主可否指点一二,万分感激
作者: Ngchibun    时间: 2013-4-9 18:31:56

不错不错,大有收获
作者: LiuxiaoqiangTB    时间: 2013-8-27 18:51:12

指标却不能调用指标,这是TB的大大的缺陷啦!
作者: suncrb    时间: 2014-8-5 11:41:37

这是初学者的指路明灯啊
作者: zhangwu    时间: 2016-10-4 10:56:04

很好,怎么来?怎么用?怎么记?,正确的学习逻辑
作者: fly1398    时间: 2017-12-9 16:52:24

多多学习,谢谢
作者: hyqh900707171    时间: 2017-12-16 15:48:08

太好了,楼主太棒了,我是新手。程序什么的都不是很懂。这篇文章为我指明了方向,信心无比强烈!
作者: maxachillesmax    时间: 2019-8-4 23:13:35

谢谢,学习了Extremes的写作,看了好久才看懂  - -
注释是真的少
If ( CurrentBar <= Length - 1 || MyBar[1] == Length - 1)
这两个下面 的逻辑 是一样的
其实我感觉CurrentBar <= Length - 1的循环次数可以不用for i = 1 to Length - 1 ,可以减少为1 to CurrentBar 。版主 觉得呢




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2