文档详情

TB编程从入门到进阶

jiups****uk12
实名认证
店铺
PPT
3.12MB
约105页
文档ID:45615234
TB编程从入门到进阶_第1页
1/105

1TB编程从入门到进阶蔡云华深圳开拓者科技有限公司2公式基础知识1交易策略实现4技术指标编写2TB编程进阶5TB公式基本概念Ø什么是TB公式? ØTB公式类型Ø用户函数Ø公式应用(包括技术指标、交易指令等)Ø如何创建和应用公式?Ø 公式导入(*.fbk)Ø 或新建公式应用,粘贴代码,校验保存公式(编译)Ø 打开超级图表,选择交易品种,插入公式应用Ø 修改公式应用设置Ø 启动自动策略交易系统 3Bar数据(K线数据)当前时间周期下所有K线的相关数据,按照时间从先到后的顺 序排列而成的序列数据每根K线中包含的数据如下:4Bar数据含义Date当前K线的日期Time当前K线的开始时间Open当前K线的开盘价High当前K线的最高价Low当前K线的最低价Close当前K线的收盘价(最新价)Vol当前K线成交量OpenInt当前K线持仓量CurrentBar当前K线的索引值(K线的编号,从0开始)BarStatus当前K线的状态值(0—第一根K线、2—最后即最新 一根K线、1—其他K线)Bar数据的使用ØBar数据是TB公式运行的基础ØBar数据是序列数据,可以回溯读取(图示)Ø举例:比较今天的最高价是否突破了昨天的最高价表达式为:High > High[1]比较今天的最高价是否突破了前两天的最高价表达式为:High > High[1] and High>High[2]或者:High > High[1] 公式参数段 … … VarsNumericSeries MA; 公式变量段 … … BeginMA = AverageFC(Close, Length); 公式脚本段 … … End10例1:Hello WorldSample1: Begin FileAppend(“c:\\tb\\sample1.txt“,“Hello World!“); End实验1:Sample1Ø实验目标:Ø通过学习,掌握在TB中如何新建公式应用,如何编译和使用公 式。

Ø实验步骤:ØTB公式  新建公式应用  输入公式简称  选择适当的模板 ;Ø在公式编辑器中,输入sample1的代码;Ø点击工具栏中的“校验保存公式”进行代码编译;Ø新建超级图表,鼠标右键  插入公式应用;Ø到指定文件路径,查看文件内容公式运行结果大家都知道每 个Hello World! 都是怎么产生 的吗?例2:输出BAR数据Sample2: Begin FileAppend(“c:\\tb\\sample2.txt“,“Date= “+DateToString(Date) +“ Time= “+TimeToString(time) +“ Close=“+Text(Close) +“ CurrentBar= “+Text(CurrentBar) +“ Barstatus= “+Text(BarStatus)); End例2 运行结果参数的作用 Ø假如我们要写一个均线指标,现在是用10天做周期代码 如下: Begin PlotNumeric(“MA“,AverageFC(Close,10));EndØ那如果要改用20天做周期,我们必须改程序,把10改成 20,然后编译下次想用别的周期,还得改,非常麻烦。

Ø如果使用参数,就方便多了程序写好,使用时改参数就 好了代码如下: Params Numeric Length(10);Begin PlotNumeric(“MA“,AverageFC(Close,Length));End数据类型ØTB公式中有三种基本的数据类型数值型(Numeric) 字符型(String) 布尔型(Bool)Ø为了对变量、参数进行回溯,又增加了序列类型数值型序列变量/参数(NumericSeries) 字符型序列变量/参数(StringSeries) 布尔型序列变量/参数(BoolSeries)Ø为了通过用户函数返回多个值,又增加了引用类型数值型引用(NumericRef) 字符型引用(StringRef) 布尔型引用(BoolRef)参数的声明和使用Ø参数在使用前必须进行声明,声明方法如下: Params Numeric Length(10); String Filename(“D:\\sample2.log“); bool OutputToFile(false);Ø公式应用和用户函数的参数略有不同:Ø公式应用的参数只支持三种基本类型,用户函数的参数支持全部九 种类型;Ø公式应用的参数一定要有初始值,而用户函数的参数可以没有默认 值;Ø参数的值在公式的脚本段中只能引用,不能修改;变量Ø变量的主要用处在于它可以存放计算或比较的结果,以方 便在之后的脚本中直接引用运算的值,而无需重现计算过 程。

Ø变量在使用前必须进行声明,声明方法如下: Vars NumericSeries MA; Numeric Stopline(30);Ø变量的赋值(变量类型和表达式的类型要一致) 变量名称 = 表达式; 例如:MA = AverageFC(Close,10);常用数据类型转换函数 (1)Ø数值型转字符型:String Text(Numeric value)例如:Text(1.2345) 返回值为 “1.2345 “Ø字符型转数值型:Numeric Value(String str)例如:Value(“ 1.2345 “)返回值为1.2345Ø根据布尔型值返回转字符型或数值型: Numeric IIF(Bool Conditon,Numeric TrueValue,Numeric FalseValue)例如:IIF(Close>Open,Close,Open);String IIFString(Bool Conditon,String TrueValue,String falseValue)例如:IIFString (Close>Open, “阳线“, “阴线“);常用数据类型转换函数 (2)Ø日期时间值转字符型: String DateTimeToString(Numeric dtDateTime)例如: DateTimeToString (20040612.114323) = “2004-06-12 11:43:23“Ø日期值转字符型:String DateToString(Integer nDate) Ø时间值转字符型:String TimeToString(Numeric fTime)Ø将字符串转化为日期时间: Numeric StringToDateTime(String str)例如:StringToDateTime (“2003-02-23 12:24:55“) = 20030223.122455Ø将字符串转化为日期:Integer StringToDate(String str)Ø将字符串转化为时间: Integer StringToTime(String str)例3:使用参数和变量Sample3: Params String Filename(“c:\\tb\\sample3.txt“); Vars Numeric change; Begin change = Close - Close[1]; FileAppend(Filename,“Date=“+DateToString(Date) +“ Time=“+TimeToString(time) +“ Close=“+Text(Close) +“ 涨跌:“+text(change)); End例3 运行结果变量的存续周期Ø简单变量在每次公式运行时,被赋默认值,公 式运行过程中存在,公式运行完后不再存在;Ø序列变量的生存周期V3和V4略有区别:ØV3: 每次公式运行时,序列变量被赋默认值,公式 运行完后仍然存在,但下次如果还是同一根Bar运行 公式的话,变量值又会被赋成默认值;ØV4:每次公式运行时,除了第一根BAR会被赋默认 值,其他BAR会自动传递上一根BAR的值,公式运 行完后仍然存在,但下次如果还是同一根BAR运行 公式的话,变量值又会传递上一根BAR的 值;Ø只有一根BAR的最后一个Tick公式运行完后,序列变 量的值才能保留下来。

24例4:变量的存续周期差别Sample4: Vars Numeric jdbl; NumericSeries xlbl; Begin FileAppend(“c:\\tb\\sample4.txt“,“Bartime = “ +DateTimeToString(date+time) +“\t CurrentTime = “+TimeToString(Currenttime) +“\t 公式运行前 Jdbl = “+Text(jdbl) +“ xlbl = “+Text(xlbl)); jdbl = jdbl + 1; xlbl = xlbl + 1; FileAppend(“c:\\tb\sample4.txt“,“Bartime = “ +DateTimeToString(date+time) +“\t CurrentTime = “+TimeToString(Currenttime) +“\t 公式运行后 Jdbl = “+Text(jdbl) +“ xlbl = “+Text(xlbl)); End实验2:Sample4Ø实验目标:Ø通过实验,理解TB中简单变量和序列变量的区别,了解简单变 量和序列变量的存续周期;Ø学习如何设置图表的K线样本数。

Ø实验步骤:Ø新建公式应用,在公式编辑器中,输入Sample4的代码;Ø新建超级图表,任意选择一个交易品种, 设置时间周期,鼠标 右键点击图表,进入“商品设置”,选择商品合约后,点“属性”, 修改样本数为“10”后确定返回;Ø插入公式应用Sample4;Ø打开Sample4.txt,分析和思考在盘后K线和实时K线中简单变量 和序列变量值的变化过程以及产生的原因Sample4运行结果1Sample4运行结果2(实时)注释语句-- CommentaryØTB的信息输出,除了可 以通过FileAppend输出 到文件外,也可以将信 息输出显示到图表上;ØCommentary的用法:Ø 在超级图表的当前 BAR添加一行注释信 息;Ø 参数:String strTip; // 提示的信息例5:改写例2Sample5: Begin Commentary(“Date= “+DateToString(Date)); Commentary(“Time= “+TimeToString(time)); Commentary(“Open= “+Text(Open)); Commentary(“High= “+Text(High)); Commentary(“Low= “+Text(Low)); Commentary(“Close=“+Text(Close)); Commentary(“CurrentBar= “+Text(CurrentBar)); Commentary(“Barstatus= “+Text(BarStatus)); End例5 运行结果控制语句Ø条件语句(If-Else)Ø if 语句Ø if - else 语句Ø if - Else if 语句Ø if - Else 嵌套Ø循环语句(For\While)Ø For 循环变量 = 初始值 TO 结束值Ø For 循环变量 = 初始值 Downto 结束值Ø While 循环条件语句----IF Else语句Ø语法如下:If (Condition) {TB公式语句1; } Else{TB公式语句2; } Ø如果TB公式语句是单条,您可以省略{},二条 或者二条以上的语句必须使用{}。

For 语句 1ØFor语句是一个循环语句,重复执行某项操作,直到循 环结束语法如下:For 循环。

下载提示
相似文档
正为您匹配相似的精品文档