TB 编程语言学习笔记1


//为什么选TB?因为不用缴纳年费,只是交易后,多加一小层薄薄的手续费。
//还因为功能强大,还因为编译型的语言运行速度快。

//没有任何编程基础的,去B站搜一套C语言快速入门,学习了解一下编程基础,就够用了。
//然后,去TB官网,看一下软件使用基础说明,就可以开始了。
//教材参考TB官网的“TB语言编程”

//两个斜杠后面的均为注释,不会被编译

//以下是画一条均线的代码

Event
OnBar(ArrayRef<Integer> indexs)
{
PlotNumeric('均线',AverageFC(Close,5));
}

这样加载后就画出了下图一条均线。

这个公式,把收盘价的序列的5期均值序列,画到了K线图上。
要点是:
给PlotNumeric函数,传入字符串名字参数和一个数值序列,它就可以把数值序列中的值,画到屏幕上。
函数AverageFC需要的参数,是一个数值序列和一个周期数,按周期数求数值序列的均值序列,返回值就是计算好的均值序列。

函数:
公式中的AverageFC函数,上次用C语言描述过了,没有函数名是因为文件名就是函数名。
程序的关键字就是一些英文单词,每个编程语言的这些关键字单词就那么几个,也就是表示东西的符号。。知道干啥的就行了。
函数的其它部分,看到一些关键字Params表示它下面的是参数。Numeric就是声明它后面的是数字,Vars是单词变量Varibles的缩写,Begin...End中间放函数体,在函数体内加工处理数,Retrun后面是函数处理完数据后要返回的,分号是语句结束后的符号。
函数都是下面这种结构。


这个函数输入两个参数,数值型序列值和周期数,然后里面又调用了求和函数SummationFC( )求均值序列值。
疑惑的是这两个参数,Price应该是一个数组,但是数据类型Numeric不像是数组,我们知道这样写就可以了,高级语言用起来方便,就是有时候看起来“不合理”,因为都写好了可以直接取用,会开车就行,不用自己造车。Length是周期数,这个问题不大。
函数里声明了一个变量,用来存放返回的数值序列,这个返回值也是一个序列。
看到这里,显然,这不是一个面向过程的编程语言,关键字Numeric是在创建对象。

函数SummationFC( ),是把给定数值序列中的数,按照一定周期求和的函数,把给定序列中的每一个数,都往前数了给定周期数,把数到的值求和,每次求和结果,都放在新的一条序列中的对应位置,求和完成就是一个新的序列,然后对这个新序列中的每一个元素再按照给定周期做除法,直接对序列除了里面的每一个数,不用遍历每一个元素,有Python那个味儿了,直接得到均值序列,把均值序列再放到变(对)量(像)AvgValue中作为返回值。

TB语言中的代码,只有这两种基本形式,就是 公式 和 函数
对比一下,公式是由Events 和 {} 做标识, 函数是begin 和 end 做标识。
函数只是一个加工器,给它一些数据,函数体内把数据加工处理后返回一些数据,用函数拼凑成公式。


为了尽快了解TB语言,最快的了解方式,就是直接扒它的代码,我们只是扒了这几行代码,总结了一下,就对这个语言进一步了解了不少。

我们注意到AverageFC( )函数中,又调用了一个SummationFC( )函数做快速加法。
下一期,我们本来是打算扒这个SummationFC( )函数的,但是考虑到似乎对于大多数交易者来说并不必要,想开车确实没必要从头到尾去造一辆车,这种已经写好的东西,我们先直接拿来用,掌握好这辆车的开法后,再怀着好奇心去拆解车子的零件,应该是最效率的方式。

声明:BenBonBen博客|版权所有,违者必究|如未注明,均为原创

转载:转载请注明原文链接 - TB 编程语言学习笔记1


过去太迟,未来太远,当下最好