TB公式编程官方基础教程1
TB公式编程官方基础教程
TradeBlazer公式的结构与编程目录页码一、TB的程序化交易的功能与特点 41-1、TB程序化交易的功能 4 1-2、TB公式说明 4 1-3、TB编程步骤 5 二、数据的说明与使用 62-1、Bar数据 6 2-2、计算方法6 2-3、叠加数据8 2-4、行情数据9 2-5、属性数据9 三、TB公式编程基础知识93-1、TB的公式的结构9 3-2、公式名称规则11 3-3、语句写法11 四、参数的说明与应用214-1、参数说明22 4-2、参数的使用与说明22 4-3、参数的默认值23 4-4、参数使用例子24 4-5、变量参数24五、变量的类型与使用255-1、变量参数25 5-2、变量声明26 5-3、变量的默认值27 5-4、变量赋值27 5-5、序列变量28 5-6、变量、数据与函数的回溯28 六、系统函数的使用316-1、标点符号31 6-2、控制语句32 6-3、循环语句37 七、用户函数的使用与说明407-1、TB用户函数40 7-2、序列函数42 7-3、使用内建用户函数42 7-4、用户函数的调用44 7-5、用默认参数调用用户函数44 八、技术指标编写458-1、技术指标与应用45 8-2、常用的技术指标应用举例48 8-3、自编指标的输出56 8-4、指标编写常见问题58 九、用户函数编写589-1、TB用户函数的编写58 9-2、交易指令(Buy/Sell)61 9-3、叠加多个商品合约进行交易629-4、交易常用系统函数介绍62 十、交易策略的程序实现与实例6510-1、利用技术指标的交易策略65 10-2、止赢止损70 10-3、加仓减仓77 10-4、多品种交易80 10-5、集合竞价数据过滤82 10-6、函数下单撤单和全局变量操作83 10-7、数据库读写83十一、其他注意事项88 11-1、信号消失问题及解决办法91 11-2、盘中和盘后公式运行的差别94十二、策略评估的常用指标94正文一、TB程序化交易的功能与特点TradeBlazer公式(简称TB),新推出的V4公式,运行效率大幅提高,除支持多线程应用功能,在程序交易的主要特点如下:1-1、TB程序化交易的功能➢所使用的TBL(TradeBlazer Language)语言功能强大、语法简明易懂;➢TB的公式执行机制是在每根BAR上都会执行一遍公式,能实现公式和算法的精确控制;➢具有结构化的控制语句,支持复合语句—IF语句和FOR,WHILE语句;➢提供了丰富的系统函数,支持用户函数,便于实现程序的模块化设计;➢提供A函数、Q函数等,可实时获取当前交易账户的账户信息,并能对叠加商品进行发单和撤单,便于实现头寸调整、风险控制、资金管理以及套利交易的程序化;➢支持单图表叠加多个商品的交易和测试;➢技术指标源代码公开,便于指标算法的改进;➢强大的图表化、多维度的交易模型测试分析报告及参数优化功能,可实现多品种、多策略、多图表周期的组合测试,提供了丰富的、和实战密切相关的系统评估指标;➢支持交易模型的导入导出,支持交易模型的加密和无源码模式导出,便于模型研发后的商业应用。
TB编程基础知识
A函数和Q函数
• Q函数,指以Q_开头的系统函数,主要是获取 实时行情信息。 • A函数,指以A_开头的系统函数,获取自动交易 关联帐户的帐户信息,只有在启动自动交易的情 况下才能取值。
• Q函数和A函数都是反映最新的实时状态,不 能取历史上的值,所以只能在当前有效,在 公式中表现为只能在最后Bar上取值。
MinMove最小变动量 行情函数 Q函数 帐户函数A函数 枚举函数Enum_Buy 交易函数EntryPrice、 EntryPrice 其他函数
• PlotNumeric在当前Bar输出一个数值。Numeric PlotNumeric(String Name,Numeric Number,Integer Color=1,Integer BarsBack=0) • PlotString在当前Bar输出一个字符串。String PlotString(String Name,String str,Integer Color=-1,Integer BarsBack=0) • PlotBar在当前Bar输出两个值,用于在图表中当前Bar上画 出连接两个值的线条。PlotBar(String Name,Numeric Value1,Numeric Value2,Integer Color=-1,Integer BarsBack=0) • PlotBool在当前Bar输出一个布尔值。Bool PlotBool(String Name,Bool bPlot,Integer Color=-1,Integer BarsBack=0)
信号消失
• 基于前面的描述,如果用Close变化的数据来 计算开平仓条件,就可能出现信号消失。 • 为了解决信号消失,可以使用前面所讲的 Delay,或者使用另外一种方式,特别是我们 经常用的突破系统。
TB使用说明书及程序开发、交易策略
公式应用在输出数据时,我们是通过输出值的名称来进行识别,名称相同则认为是一个数据,如下的代码,后面语句的输出数据将会覆盖前面语句的输出数 据。
file://C:\Documents and Settings\Administrator\Local Settings\Temp\~hh71F6.htm 2014-10-25
用户函数
Page 4 of 16
PlotNumeric("Test",10); PlotNumeric("Test",20);
最后"Test"输出的数据为20,而不是10。 PlotNumeric
参见PlotNumeric。 PlotBool
参见PlotBool。 PlotString
参见PlotString。 UnPlot
用默认参数调用用户函数
用户函数在被调用的时候,如果传入的参数和参数的默认值一样,可以省略输出参数,使用默认值来调用用户参数。只能够对排列在后面的那些参数使用默认 参数,默认参数的定义参见参数。
公式系统 - TradeBlazer公式的使用 - 公式应用
公式应用
TradeBlazer公式通过公式应用来实现技术分析输出和交易策略的执行,根据使用目的的不同,我们将公式应用分为两类(技术分析和交易策略)进行单独描述。
用户函数的类型
1. 用户函数按照返回值类型不同可以分为数值型(Numeric),布尔型(Bool),字符串(String)三种基本类型,三种类型用户函数在调用时需要将返回值赋予类型 相同的变量。
2. 按照用户函数属性不同,用户函数可以分为内建用户函数和其他用户函数两种,内建用户函数是交易开拓者提供的,用于支持公式系统运行的预置公式, 您可以查看和调用内建用户函数,但是不能删除和修改内建公式。
TB公式编程官方基础教程
TB公式编程官方基础教程
1.什么是TB公式编程
TB公式编程是由TB公司开发的一种专业的编程语言,它可以用来创
建复杂的数学和逻辑表达式或编写程序,旨在为数据分析和模型建模提供
更强大的功能。
TB公式编程语言结合了一般编程语言的可扩展性和面向
模型的规则的功能,而不是传统的字符串处理或命令行接口。
2.TB公式编程的基础知识
(1)基本概念:TB公式编程语言中定义了一组基本概念,它们包括:数学表达式、函数、类型、变量和常量等。
(2)语法:TB公式编程语言使用一种特定的语法来编写表达式和程序,语法决定了公式的组成部分,也叫做元素。
(3)运算符:TB公式编程语言定义了一组运算符,可以用来进行运算,它们可以包括算术、逻辑和关系运算符等。
(4)流控制:流控制是指在编写程序时,控制程序流程的方式。
TB
公式编程语言提供了一组控制语句,可以用来控制程序执行的顺序。
(5)函数:函数是一种特殊的表达式,它可以用来完成特定的任务。
TB公式编程语言提供了很多内置函数,可以用来解决一些复杂的问题。
3.TB公式编程的案例
(1)数学模型:可以使用TB公式编程来建立数学模型。
TB编程整理
TB编程整理索引:1) 图表的第一根k线,或者是新的一天2) 求当天第一根Bar到现在的BAR数3) TB的时间表示4) 收盘平仓的例子5) 限制连续建仓6) 主动的加仓示例7) CurrentContracts函数获得当前持仓的持仓合约数。
8) 止损止盈的编写9) buy,sell函数注意事项内容:1) 图表的第一根k线,或者是新的一天If(CurrentBar == 0 || Date != Date[1])2) 求当天第一根Bar到现在的BAR数// 使用普通变量VarsNumeric TodayBars;BeginTodayBars = 0;While ( CurrentBar > TodayBars anddate[TodayBars] == date[TodayBars+1] ){TodayBars = T odayBars + 1;}Commentary("T odayBars = " + text(T odayBars)); End// 使用序列变量VarsNumericSeries ReBars;BeginIf(CurrentBar == 0 || Date != Date[1]){ReBars = 0;}Else{ReBars = ReBars + 1;}Return ReBars;End3) TB的时间表示Time()函数表示当前公式应用商品在当前Bar的时间, 如果当前时间为11:34:21.356,Time返回值为0.113421356函数中传递时间的时候可以传个整形,然后乘以一个小数, 如:Numeric TradeEndTime(145500);if (Time <= RangeEndTime * 0.000001)4) 收盘平仓的例子// 收盘平仓If ((Date[-1]!=InvalidInteger && Date!=Date[-1])||(Date[-1]==InvalidInteger&& Date < CurrentDate)) //代码中将消失的信号补上{Sell(0,Close);BuyToCover(0,Close);}Else If (Date==CurrentDate && Time==0.1455 && CurrentTime>=0.1459){Sell(0,Close);BuyToCover(0,Close);}5) 限制连续建仓MarketPosition获得当前持仓状态。
vb最基础入门教程从零开始
vb最基础入门教程从零开始目录一、基础知识篇 (3)二、编程基础篇 (5)2.1 界面设计 (6)2.1.1 创建窗体 (8)2.1.2 添加控件 (8)2.1.3 设置属性 (9)2.2 事件处理 (11)2.2.1 捕获事件 (12)2.2.2 事件处理程序 (13)2.3 调试与错误处理 (14)2.3.1 调试工具 (15)2.3.2 错误类型 (17)2.3.3 错误处理语句 (18)三、进阶知识篇 (19)3.1 数组与集合 (21)3.1.1 数组的创建与使用 (21)3.1.2 集合的使用 (22)3.2 文件操作 (24)3.2.1 读取文件 (25)3.2.2 写入文件 (25)3.2.3 文件路径与名称操作 (27)3.3 数据库操作 (27)3.3.1 连接数据库 (29)3.3.2 执行SQL查询 (30)3.3.3 处理数据库结果 (31)四、实战项目篇 (32)4.1 计算器 (33)4.1.1 项目需求分析 (34)4.1.2 项目设计 (35)4.1.3 项目实现 (35)4.2 图书管理系统 (37)4.2.1 项目需求分析 (38)4.2.2 项目设计 (39)4.2.3 项目实现 (40)4.3 学生管理系统 (41)4.3.1 项目需求分析 (41)4.3.2 项目设计 (42)4.3.3 项目实现 (43)五、总结与展望 (44)5.1 课程总结 (45)5.2 学习建议 (46)5.3 VB未来发展展望 (47)一、基础知识篇在开始学习Visual Basic(VB)编程之前,我们需要了解一些基础知识,以便更好地理解VB的概念和编程技巧。
Visual Basic是一种由微软开发的事件驱动的编程语言,它使用简单的文本来创建强大的应用程序。
VB广泛应用于Windows应用程序开发,尤其是桌面应用程序。
由于其简洁的语法和丰富的功能,VB成为了初学者学习编程的理想选择。
VB基础教程完整版
VB基础教程完整版计算机等级考试二级VB基础教程1.1 Visual Basic 概述1.Visual Basic是什么Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言。
“Visual” 指的是开发图形用户界面 (GUI) 的方法,不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。
“Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,一种在计算技术发展历史上应用得最为广泛的语言。
Visual Basic 在原有 BASIC 语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和 Windows GUI 有直接关系。
专业人员可以用 Visual Basic 实现其它任何 Windows 编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。
Visual Basic Scripting Edition (VBScript) 是广泛使用的脚本语言,它是 Visual Basic 语言的子集,可嵌入HTML语言中,用于网页设计,如ASP(Active Server Page)文件。
VB简单易学,通用性强,用途广泛。
2.VB的功能VB可以用于可以开发多媒体、数据库、网络、图形等方面的应用程序。
数据访问特性允许对包括 Microsoft SQL Server 和其它企业数据库在内的大部分数据库格式建立数据库和前端应用程序,以及可调整的服务器端部件。
有了 ActiveX(TM) 技术就可使用其它应用程序提供的功能,例如Microsoft Word 字处理器,Microsoft E某cel 电子数据表及其它Windows 应用程序。
Internet 能力强大,很容易在应用程序内通过 Internet 或intranet访问文档和应用程序,或者创建 Internet 服务器应用程序。
TB函数用法手册(完整版)
针对当前公式应用的帐户、商品发送撤单指令,发送成功返回True,发送失败返回False。
该函数可针对叠加商品进行处理,可用Data1.A_DeleteOrder(...)进行调用。
该函数直接发单,不经过任何确认,并会在每次公式计算时发送,一般需要配合着仓位头寸进行条件处理,在不清楚运行机制的情况下,请慎用。
如果返回值不等于InvalidInteger,即为有效,可通过该索引获取相关的委托单状态,价格,数量等信息。
示例
LastIndex = A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry);
If(LastIndex != InvalidInteger)
{
orderPrice = A_OpenOrderPrice(LastIndex);
TradeBlazer
A_AccountID
说明
返回当前公式应用的交易帐户ID。
语法
String A_AccountID()
参数
无
备注
返回当前公式应用的交易帐户ID,返回值为字符串,无效时返回空串。
示例
无
A_BrokerID
说明
返回当前公式应用的交易帐户对应的交易商ID。
语法
String A_BrokerID()
EntryOrExit发送委托单的开平仓类型,取值为Enum_Entry,Enum_Exit,Enum_ExitToday之一;
备注
返回当前公式应用的帐户下当前商品的最后一个当日委托单索引,按输入参数为条件,返回值为整型。
如果返回值不等于InvalidInteger,即为有效,可通过该索引获取相关的委托单状态,价格,数量等信息。
交易开拓者(TB)编程初级篇
交易开拓者(TB)期货程序化交易编程本文仅是写给完全不懂编程的朋友的,仅是最基本的入门资料。
TB里面代码执行1,代码从第一根K线开始执行,一直到最后一根K线;2,在每一根K线上,代码都是从第一行开始执行,一直到最后一行;我们就写个输出每日的收盘价的例子;打开TB,在左边的TB公式里面,点击新建技术指标,然后在出来的公式编辑器里面输入BeginEnd注意,除了参数和变量定义外,所有的代码都必须包含在Begin和End之间我们再在Begin和End之间输入一些代码,完整的就是:BeginFileAppend("c:\\a.log",Text(Year)+"年"+Text(Month)+"月"+Text(Day)+"日的收盘价等于");FileAppend("C:\\a.log",Text(Close));End我们再说说这两行代码是什么意思File就是文件,Append就是添加,现在明白了吧FileAppend就是添加一个文件,文件名是什么呢?就是你后面写的a.log,这个文件的路径在哪里呢?就是c:\\a.log 里面的C盘,且在这个文件里面添加一行东西,这行东西的内容就是你后面所写的Text(Year)+"年"+Text(Month)+"月"+Text(Day)+"日的收盘价等于"当然,如果这个文件已经存在,他就不会添加文件了,仅仅在这个文件的后面添加一行上面你写的内容好了,再看看Text,Text的意思就是把那些不是字符串的东西如数字啊,等变成字符串.而Year,Month,Day就代表了正在执行你写的代码的那一根K线的年,月,日,年月日是数字,我们当然要用Text把它搞成字符串CloseK线的收盘价啊,如果代码执行到最后的那根K线我们点公式编辑器上面的工具栏的第五个按钮(打勾的那个东西),校验保存公式,稍微等一下,就OK了我们在回到K线图里面,TB把K线图叫做超级图表在K线图里面右键,选择商品设置,然后吧里面的样本数由默认的300改成5,意思是让在超级图表里面仅仅显示5条K线,点确定后,你就看到在K线图里面只显示了5跟K线,当然现在代码还不能被执行,因为我们现在还需要把我们刚刚所写的那个指标加到K线图上面才能被执行的我们上面说了,我们这个例子仅仅是把每日的收盘价写到文件里面去啊,那么我们找一找文件在什么地方咯? FileAppend("c:\\a.log",很明显,文件是在c盘的,文件的名字是a.log好了,我们到c盘找到a.log文件,双击打开,我们就会看到下面的内容:2007年9月24日的收盘价等于672802007年9月25日的收盘价等于678002007年9月26日的收盘价等于671602007年9月27日的收盘价等于673002007年9月28日的收盘价等于68020我们现在来分析下:首先你写的代码在第一根K线上执行,先执行第一行代码:FileAppend("c:\\a.log",Text(Year)+"年"+Text(Month)+"月"+Text(Day)+"日的收盘价等于");这行代码就输出了第一根K线的年,月,日,就在a.log文件里输出成"2007年9月24日的收盘价等于"然后执行第二行代码:FileAppend("C:\\a.log",Text(Close));折行代码把第一根K线的收盘价输出到a.log文件里面,于是就输出了"67280"好了,代码在第一根K线上执行完毕,于是再转到第二根K线,再执行第一行代码,再执行第二行代码.........我一直非常愿意帮助客户们解答在编程中的难点,但是却不大愿意帮助客户写完整的公式策略。
VB编程教程(全套)
VB编程教程(全套)
什么是VB编程?
VB编程是指使用微软开发的Visual Basic编程语言进行软件开发的过程。
VB编程非常适合初学者,因为它具有简单易学的特点,并且拥有丰富的开发工具和资源。
本教程将带领您从零开始研究
VB编程,并逐步掌握基本概念和技巧。
教程内容
第一章:入门指南
- 了解VB编程环境
- 安装和配置软件开发工具
- 编写并运行第一个VB程序
第二章:基本语法
- VB的变量和数据类型
- 控制流语句:条件判断和循环
- 函数和过程
第三章:用户界面设计- 创建窗体和控件
- 布局和样式设计
- 事件处理和用户交互
第四章:文件操作
- 读取和写入文本文件- 操作文件和文件夹
- 序列化和反序列化对象
第五章:数据管理
- 数据库连接和操作
- 查询和更新数据
- 数据验证和处理
第六章:高级主题
- 错误处理和调试
- 多线程编程
如何使用教程?
本教程适用于那些想要研究VB编程的初学者和有一定编程经验的开发者。
您可以按照章节顺序逐步研究,也可以根据自己的需求选择特定章节进行研究。
教程中的例子和练将帮助您更好地理解和应用所学知识。
您可以根据教程中的指导进行实践,并尝试编写自己的程序。
结语
本教程涵盖了VB编程的基础知识和常用技巧,希望能够帮助您快速入门和掌握VB编程。
祝您学习愉快,编程顺利!。
交易开拓者TB公式高级应用_2
交易开拓者TB公式高级应用_2交易开拓者TB公式高级应用_21.TB公式的构成2.上下轨线的计算上轨线的计算方式是:中轨线+2*标准差下轨线的计算方式是:中轨线-2*标准差中轨线通常是价格的20日简单移动平均线,标准差则表示价格波动的程度。
3.高级应用1:判断价格波动的大小交易开拓者TB公式可以帮助交易者判断价格波动的大小。
当价格突破上轨线时,意味着市场上涨的力量很强,价格波动较大;而当价格跌破下轨线时,则意味着市场下跌的力量很强,价格波动也较大。
交易者可以利用这一信息来调整交易策略,选择更适合当前市场的交易方式。
4.高级应用2:判断价格趋势的变化交易开拓者TB公式还可以帮助交易者判断价格趋势的变化。
当价格突破上轨线并形成上升趋势时,可以视为市场处于上升阶段,交易者可以考虑逢低买入;而当价格跌破下轨线并形成下降趋势时,则可以视为市场处于下降阶段,交易者可以考虑逢高卖出。
5.高级应用3:寻找买入和卖出信号交易开拓者TB公式可以用来寻找买入和卖出的信号。
当价格从下轨线上方回升并突破中轨线时,可以视为买入信号;而当价格从上轨线下方回落并跌破中轨线时,则可以视为卖出信号。
交易者可以结合其他技术指标和交易策略来确认买入和卖出的时机。
6.高级应用4:与其他指标的结合应用交易开拓者TB公式可以与其他技术指标结合应用,以进一步提高分析和交易的准确性。
例如,可以结合移动平均线、相对强弱指数(RSI)等指标来确认买入和卖出的时机。
通过综合分析不同的指标,交易者可以更好地理解市场的变化和趋势,从而做出更明智的交易决策。
总之,交易开拓者TB公式是一种有用的技术指标,可以帮助交易者分析市场的变化和趋势,并找到合适的买入和卖出时机。
通过深入理解和应用这一指标的高级技巧,交易者可以提高交易的准确性和盈利能力。
TB公式程序化实例
八、技术指标编写8-1、技术指标与应用技术指标是最常用的一类公式,它通过计算一系列的数学公式,在每个Bar都返回值,这些值在图表模块中输出为线条、柱状图、点等表现形式,通过分析图形特点、走势和曲线帮助客户分析行情走势,得出合理的交易判断。
当技术指标应用在图表中时,您可以设置技术指标各输出值的表现形式,以及颜色、粗细等,如下图的点,线,柱状图所示:示例,技术指标RSI,脚本如下:ParamsNumeric Length(14);Numeric OverSold(20);Numeric OverBought (80); VarsNumeric RSIValue(0);Numeric RSIColor(-1); BeginRSIValue = RSI(Close,Length);If (RSIValue > OverBought){RSIColor = RED;}Else If (RSIValue < OverSold){RSIColor = CYAN;}PlotNumeric("RSI1", RSIValue, RSIColor);PlotNumeric("超卖", OverSold);PlotNumeric("超买", OverBought);If CrossOver(RSIValue,OverSold){Alert("Indicator exiting oversold zone");}If CrossUnder(RSIValue, OverBought){Alert("Indicator exiting overbought zone");}End公式应用RSI调用RSI内建用户函数计算出结果,然后判断其返回值和超买,超卖的关系,设置显示颜色,并产生报警信息。
公式应用在输出数据时,我们是通过输出值的名称来进行识别,名称相同则认为是一个数据,如下的代码,后面语句的输出数据将会覆盖前面语句的输出数据。
tb编程基础知识必备
/
% ^ ()
除
求模 求幂 括号
<=
>= <> ==
小于等于
大于等于 不等于 等于
AND逻辑操作符的应用情况:
表达式1 True True False 表达式2 True False True 表达式1 AND 表达式2 True False False
OR逻辑操作符的应用情况: 表达式1 True 表达式 2 True 表达式1 OR 表达式2 True
•
数据类型
• • TradeBlazer公式支持有三种基本数据类型:数值型、字符串、布尔型。 为了通过用户函数返回多个值,我们对三种数据类型进行了扩展,增加了引用数据类 型。另外,为了对变量,参数进行回溯,我们增加了序列数据类型。因此,我们的数 据类型共有九种,如下表所示:
使用注释
• 注释可以标注解释语句,公式在编译执行时会忽略注释语句。注释分为单行注释和多 行注释。 • 单行注释 在单行中对需要注释部分之前通过添加//,使//之后的语句形成注释。以下是注释的例子: //这是一个注释语句; • 多行注释 在需要注释的部分之前添加/*,之后添加*/,形成注释。以下是注释的例子: /*这是一个 多行注释 的语句; */
语句前奏
• • • • • • • • • • • • •
命名规则
公式名称规则: 不区分大小写; 不能超过32个英文字符; 每一类公式不能出现相同的名称; 公式名称不能出现字母、数字、下划线以外的其他字符; 公式名称不能和系统保留字,系统函数等重名。 变量,参数规则: 不区分大小写; 不能超过32个英文字符; 每一个公式内部能不能重复命名; 名称不能出现字母、数字、下划线以外的其他字符; 名称不能和系统保留字,系统函数等重名; 不能使用已定义的用户函数名。
TB公式入门
TB公式入门交易开拓者公式基础Bar数据:公式在进行计算时,都是建立在基本数据源(Bar数据)之上,我们这里所谓的Bar 数据,是指商品在不同周期下形成的序列数据,在单独的每个Bar上面包含开盘价、收盘价、最高价、最低价、成交量及时间。
期货等品种还有持仓量等数据。
所有的Bar按照不同周期组合,并按照时间从先到后进行排列,由此形成为序列数据,整个序列称之为Bar 数据。
公式如何执行:TradeBlazer公式在计算时按照Bar数据的Bar数目,从第一个Bar到最后一个Bar,依次进行计算,如果公式中出现了调用Bar数据函数的,则取出当前Bar的相应值,进行运算。
公式执行从上至下,Bar从左到右执行。
公式执行顺序公式执行顺序TradeBlazer公式的HelloWorld!/forum/thread-63-1-1.htmlBeginFileAppend("c:\\Formula.log","hello world");End公式的种类指标K线形态特征走势交易指令函数公式环境的组织层次(1)公式环境的组织层次(2)建立一个最简单的指标:画零线BeginPlotNumeric(“Line1”,0);EndBegin和End宣告公式正文的开始和结束,公式语句应该放到Begin和End之间。
PlotNumeric表示输出一个数值型组成的数组。
技术指标属性的设置再画一条线…BeginPlotNumeric(“Line1”,5);End参数一根线ParamsNumeric Length(0);BeginPlotNumeric(“Line1”,length);EndN根线ParamsNumeric Length1(0);Numeric Length2(5);BeginPlotNumeric(“Line1”,length1);PlotNumeric(“Line2”,length2);End取较大值ParamsNumeric Length1(0);Numeric Length2(5);Beginif(Length1 >= Length2){PlotNumeric(“Line1”,length1);}else{PlotNumeric(“Line1”,length1);}EndPlotNumeric由输出的名字来区分是否为同一条线。
TB公式编程官方基础教程1
TB公式编程官方基础教程1
TB公式编程官方基础教程1
1、介绍TB概述:本节将介绍TB概述,介绍它的主要特点,以及它
与其他编程语言的不同之处。
2、介绍TB开发环境:本节将介绍TB开发环境,让您能够快速了解
如何使用TB公式开发环境来创建和调试TB表达式程序。
3、TB表达式教程:本节将介绍TB表达式的基础语法,包括何时使
用变量、运算符、函数,以及如何构造完整的表达式。
4、TB公式函数教程:本节将详细介绍TB公式函数,包括如何调用
函数、函数的参数设置等,以及函数的高级使用方法,涵盖数学、字符串、日期、布尔、数组等多个类别的函数。
5、TB调试技巧:本节将介绍TB调试技巧,让您了解如何有效地使
用TB开发环境,快速定位应用程序中存在的问题。
6、TB应用举例:本节将展示常见的TB应用场景,让您了解如何使
用TB应用来快速解决实际问题,比如表格计算、数据分析等。
7、TB表达式优化:本节将重点介绍TB表达式的优化技巧。
从一无所知开始学习交易开拓者(TB)期货程序化交易编程
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷0资配不料置仅试技可卷术以要是解求指决,机吊对组顶电在层气进配设行置备继不进电规行保范空护高载高中与中资带资料负料试荷试卷下卷问高总题中2体2资配,料置而试时且卷,可调需保控要障试在各验最类;大管对限路设度习备内题进来到行确位调保。整机在使组管其高路在中敷正资设常料过工试程况卷中下安,与全要过,加度并强工且看作尽护下可关都能于可地管以缩路正小高常故中工障资作高料;中试对资卷于料连继试接电卷管保破口护坏处进范理行围高整,中核或资对者料定对试值某卷,些弯审异扁核常度与高固校中定对资盒图料位纸试置,.卷编保工写护况复层进杂防行设腐自备跨动与接处装地理置线,高弯尤中曲其资半要料径避试标免卷高错调等误试,高方要中案求资,技料编术试5写交卷、重底保电要。护气设管装设备线置备4高敷动调、中设作试电资技,高气料术并中课3试中且资件、卷包拒料中管试含绝试调路验线动卷试敷方槽作技设案、,术技以管来术及架避系等免统多不启项必动方要方式高案,中;为资对解料整决试套高卷启中突动语然过文停程电机中气。高课因中件此资中,料管电试壁力卷薄高电、中气接资设口料备不试进严卷行等保调问护试题装工,置作合调并理试且利技进用术行管,过线要关敷求运设电行技力高术保中。护资线装料缆置试敷做卷设到技原准术则确指:灵导在活。分。对线对于盒于调处差试,动过当保程不护中同装高电置中压高资回中料路资试交料卷叉试技时卷术,调问应试题采技,用术作金是为属指调隔发试板电人进机员行一,隔变需开压要处器在理组事;在前同发掌一生握线内图槽部纸内故资,障料强时、电,设回需备路要制须进造同行厂时外家切部出断电具习源高题高中电中资源资料,料试线试卷缆卷试敷切验设除报完从告毕而与,采相要用关进高技行中术检资资查料料和试,检卷并测主且处要了理保解。护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
TB交易网校2011.12.29课程:交易开拓者公式编写基础(一)
Bar数据的使用
Bar数据是TB公式运行的基础。 Bar数据是序列数据,可以回溯读取(图示)。 举例: 比较今天的最高价是否突破了昨天的最高价 表达式为:High > High[1] 比较今天的最高价是否突破了前两天的最高价 表达式为:High > High[1] and High>High[2] 或者:High > High[1] && High>High[2]
参数:String Name String str Numeric Locator=0 Integer Color=-1 Integer BarsBack=0
----- 输出值的名称 ----- 输出的字符串; ----- 输出值的定位点; ----- 输出值的颜色; ----从当前BAR回溯的 BAR数
Params
公式参数段
Vars
NumericSeries MA; ……
公式变量段
Begin
MA = AverageFC(Close, Length); …… End
9
公式脚本段
例1:Hello World
Sample1:
Begin FileAppend("c:\\tb\\sample1.txt","Hello World!"); End
While循环
While语句在条件为真的时候重复执行某一项操作。即, 只要条件表达式的值为真(True)时,就重复执行某个动 作。直到行情信息改变以致条件为假 (False)时,循环 才结束。 语法如下: While (Condition) { TradeBlazer公式语句; } Continue 和 Break
TB函数-说明-语法-参数-备注-示例
分类索引字母索引 (6)数学函数 (11)Abs (11)Acos (11)Acosh (11)Asin (11)Asinh (12)Atan (12)Atan2 (12)Atanh (12)Ceiling (13)Combin (13)Cos (13)Cosh (13)Ctan (14)Even (14)Exp (14)Fact (14)Floor (15)FracPart (15)IntPart (15)Ln (15)Log (16)Mod (16)Neg (16)Odd (16)Pi (16)Power (17)Rand (17)Round (17)RoundDown (17)RoundUp (18)Sign (18)Sin (18)Sinh (18)Sqr (19)Sqrt (19)Tan (19)Tanh (19)Trunc (19)字符串函数 (20)Exact (20)Left (20)Len (20)Lower (21)Mid (21)Right (21)Text (21)Trim (21)Upper (22)Value (22)颜色函数 (22)Black (22)Blue (22)Cyan (23)DarkBrown (23)DarkCyan (23)DarkGray (23)DarkGreen (23)DarkMagenta (24)DarkRed (24)DefaultColor (24)Green (24)LightGray (25)Magenta (25)Red (25)Rgb (25)White (25)Yellow (26)时间函数 (26)CurrentDate (26)CurrentTime (26)DateAdd (26)DateDiff (27)DateTimeToString (27)DateToString (27)Day (27)Friday (28)Hour (28)MakeDate (28)MakeDateTime (28)MakeTime (29)Minute (29)Monday (29)Month (29)Saturday (29)StringToDate (30)StringToDateTime (30)StringToTime (30)Sunday (31)SystemDateTime (31)Thursday (31)TimeToString (31)Tuesday (31)Wednesday (32)Weekday (32)Year (32)数据函数 (32)BarCount (32)BarStatus (33)C (33)Close (33)CurrentBar (33)D (34)Date (34)H (34)High (34)HistoryDataExist (34)L (35)Low (35)NextClose (35)NextHigh (35)NextLow (36)NextOpen (36)NextOpenInt (36)NextVol (36)O (37)Open (37)OpenInt (37)T (37)Time (37)V (38)Vol (38)属性函数 (38)BarInterval (38)BarType (39)BidAskSize (39)BigPointValue (39)CanMarketOrder (39)CanStopOrder (40)CanTrade (40)ContractSize (40)ContractUnit (40)CurrencyName (41)CurrencySymbol (41)ExchangeName (41)ExpiredDate (41)InitialMargin (42)MaintenanceMargin (42)MarginRatio (42)MaxSingleTradeSize (42)MinMove (43)PriceScale (43)Spread (43)Symbol (43)SymbolName (43)SymbolType (44)行情函数 (44)Q_AskPrice (44)Q_AskVol (44)Q_AvgPrice (44)Q_AskPriceFlag (45)Q_BidPrice (45)Q_BidPriceFlag (45)Q_BidVol (45)Q_BidVol (46)Q_High (46)Q_HisHigh (46)Q_HisLow (46)Q_InsideVol (47)Q_Last (47)Q_LastDate (47)Q_LastFlag (47)Q_LastTime (47)Q_LastVol (48)Q_Low (48)Q_LowerLimit (48)Q_Open (48)Q_OpenInt (49)Q_OpenIntFlag (49)Q_Oscillation (49)Q_OutsideVol (49)Q_PreSettlePrice (50)Q_PriceChg (50)Q_PriceChgRatio (50)Q_TickChg (50)Q_TodayEntryVol (51)Q_TodayExitVol (51)Q_TotalVol (51)Q_TurnOver (51)Q_UpperLimit (52)QuoteDataExist (52)帐户函数 (52)A_AccountID (52)A_BrokerID (52)A_BuyAvgPrice (53)A_BuyFreeze (53)A_BuyMargin (53)A_BuyPosition (53)A_BuyProfitLoss (54)A_CurrentEquity (54)A_DeleteOrder (54)A_FreeMargin (54)A_GetLastOpenOrderIndex (55)A_GetLastOrderIndex (55)A_GetOpenOrderCount (56)A_GetOrderCount (56)A_OpenOrderBuyOrSell (56)A_OpenOrderContractNo (57)A_OpenOrderEntryOrExit (57)A_OpenOrderFilledLot (57)A_OpenOrderFilledPrice (58)A_OpenOrderLot (58)A_OpenOrderPrice (58)A_OpenOrderStatus (59)A_OpenOrderTime (59)A_OrderBuyOrSell (59)A_OrderContractNo (60)A_OrderCanceledLot (60)A_OrderEntryOrExit (60)A_OrderFilledLot (61)A_OrderFilledPrice (61)A_OrderLot (62)A_OrderPrice (62)A_OrderStatus (62)A_PositionProfitLoss (63)A_PreviousEquity (63)A_ProfitLoss (63)A_SendOrder (64)A_SellAvgPrice (64)A_SellFreeze (64)A_SellMargin (65)A_SellPosition (65)A_SellProfitLoss (65)A_TodayBuyPosition (65)A_TodayDeposit (66)A_TodayDrawing (66)A_TodaySellPosition (66)A_TotalAvgPrice (66)A_TotalPosition (66)AccountDataExist (67)枚举函数 (67)Enum_Buy (67)Enum_Canceled (67)Enum_Canceling (67)Enum_Declare (68)Enum_Declared (68)Enum_Deleted (68)Enum_Entry (68)Enum_Exit (69)Enum_ExitToday (69)Enum_Filled (69)Enum_FillPart (69)Enum_Sell (69)交易函数 (70)AvgBarsEvenTrade (70)AvgBarsLosTrade (70)AvgBarsWinTrade (70)AvgEntryPrice (70)BarsSinceEntry (71)BarsSinceExit (71)BarsSinceLastEntry (71)Buy (71)BuyToCover (72)ContractProfit (72)CurrentCapital (72)CurrentContracts (73)CurrentEntries (73)EntryPrice (73)EntryTime (74)ExitDate (74)ExitPrice (74)ExitTime (74)GrossLoss (75)GrossProfit (75)LargestLosTrade (75)LargestWinTrade (75)LastEntryDate (75)LastEntryPrice (76)LastEntryTime (76)MarketPosition (76)MaxConsecLosers (76)MaxConsecWinners (77)MaxContracts (77)MaxContractsHeld (77)MaxEntries (77)MaxIDDrawDown (78)MaxPositionLoss (78)MaxPositionProfit (78)NetProfit (78)NumEvenTrades (78)NumLosTrades (79)NumWinTrades (79)PercentProfit (79)PositionProfit (79)Sell (80)SellShort (80)SetBreakEven (80)SetDollarTrailing (81)SetExitOnClose (81)SetInactivate (82)SetPercentTrailing (82)SetPeriodTrailing (82)SetProfitTarget (83)SetStopLoss (83)TotalBarsEvenTrades (84)TotalBarsLosTrades (84)TotalBarsWinTrades (84)TotalTrades (84)其他函数 (85)Alert (85)Commentary (85)FieldBool (85)FieldNumeric (86)FieldString (86)FileAppend (86)FileDelete (87)FormulaName (87)GetGlobalVar (87)GetTBProfileString (87)I_AvgEntryPrice (87)I_CloseEquity (88)I_CurrentContracts (88)I_MarketPosition (88)I_OpenEquity (88)IIF (89)IIFString (89)InvalidInteger (89)InvalidNumeric (89)InvalidString (90)PlotBool (90)PlotNumeric (90)PlotString (90)PlotBar (91)SetGlobalVar (91)SetTBProfileString (91)Unplot (92)内建函数 (92)AdaptiveMovAvg (92)Average (92)AverageD (92)AverageFC (93)AvgDeviation (93)AvgPrice (93)AvgTrueRange (93)BarsSinceToday (94)CloseD (94)CoefficientR (94)Correlation (94)CountIf (95)Covar (95)CrossOver (95)CrossOverHor (95)CrossUnder (96)CrossUnderHor (96)Cum (96)DataConvert (96)DEMA (97)Detrend (97)DevSqrd (97)Extremes (97)Fisher (98)FisherInv (98)HarmonicMean (98)HighD (99)Highest (99)HighestBar (99)HighestBarFC (99)HighestFC (100)Kurtosis (100)LinearReg (100)LinearRegAngle (101)LinearRegSlope (101)LinearRegValue (101)LowD (101)Lowest (102)LowestBar (102)LowestBarFC (102)LowestFC (102)Max (103)Median (103)MidPoint (103)Min (103)Mode (104)Momentum (104)NthCon (104)NthExtremes (104)NthHigher (105)NthHigherBar (105)NthLower (105)NthLowerBar (106)OpenD (106)OpenIntD (106)ParabolicSAR (106)PercentChange (107)PercentR (107)Permutation (107)Pivot ......................................................... 107PriceOscillator .. (108)RateOfChange (108)SAverage (108)Skewness (109)SMA (109)StandardDev (109)Summation (109)SummationFC (110)SwingHigh (110)SwingHighBar (110)SwingLow (111)SwingLowBar (111)TrueHigh (111)TrueLow (111)TrueRange (112)VariancePS (112)VolD (112)WAverage (112)XAverage (113)字母索引A_AccountID (52)A_BrokerID (52)A_BuyAvgPrice (53)A_BuyFreeze (53)A_BuyMargin (53)A_BuyPosition (53)A_BuyProfitLoss (54)A_CurrentEquity (54)A_DeleteOrder (54)A_FreeMargin (54)A_GetLastOpenOrderIndex (55)A_GetLastOrderIndex (55)A_GetOpenOrderCount (56)A_GetOrderCount (56)A_OpenOrderBuyOrSell (56)A_OpenOrderContractNo (57)A_OpenOrderEntryOrExit (57)A_OpenOrderFilledLot (57)A_OpenOrderFilledPrice (58)A_OpenOrderLot (58)A_OpenOrderPrice (58)A_OpenOrderStatus (59)A_OpenOrderTime (59)A_OrderBuyOrSell (59)A_OrderCanceledLot (60)A_OrderContractNo (60)A_OrderEntryOrExit (60)A_OrderFilledLot (61)A_OrderFilledPrice (61)A_OrderLot (62)A_OrderPrice (62)A_OrderStatus (62)A_OrderTime (63)A_PositionProfitLoss (63)A_PreviousEquity (63)A_ProfitLoss (63)A_SellAvgPrice (64)A_SellFreeze (64)A_SellMargin (65)A_SellPosition (65)A_SellProfitLoss.......................... 65 A_SendOrder .. (64)A_TodayBuyPosition (65)A_TodayDeposit (66)A_TodayDrawing (66)A_TodaySellPosition (66)A_TotalAvgPrice (66)A_TotalPosition (66)Abs (11)AccountDataExist (67)Acos (11)Acosh (11)AdaptiveMovAvg (92)Alert (85)AlertEnabled (85)Asin (11)Asinh (12)Atan (12)Atan2 (12)Atanh (12)Average (92)AverageD (92)AverageFC (93)AvgBarsEvenTrade (70)AvgBarsLosTrade (70)AvgBarsWinTrade (70)AvgDeviation (93)AvgEntryPrice (70)AvgPrice (93)AvgTrueRange (93)BarCount (32)BarInterval (38)BarsSinceEntry (71)BarsSinceExit (71)BarsSinceLastEntry (71)BarsSinceToday (94)BarStatus (33)BarType (39)BidAskSize (39)BigPointValue (39)Black (22)Blue (22)Buy (71)BuyToCover (72)C (33)CanMarketOrder (39)CanShortTrade (40)CanStopOrder (40)CanTrade (40)Ceiling (13)Close (33)CloseD (94)CoefficientR (94)Combin (13)Commentary (85)ContractProfit (72)ContractSize (40)ContractUnit (40)Correlation (94)Cos (13)Cosh (13)CountIf (95)Covar (95)CrossOver (95)CrossOverHor (95)CrossUnder (96)CrossUnderHor (96)Ctan (14)Cum (96)CurrencyName (41)CurrencySymbol (41)CurrentBar (33)CurrentCapital (72)CurrentContracts (73)CurrentDate (26)CurrentEntries (73)CurrentTime (26)Cyan (23)D (34)DarkBrown (23)DarkCyan (23)DarkGray (23)DarkGreen (23)DarkMagenta (24)DarkRed (24)DataConvert (96)Date (34)DateAdd (26)DateDiff ....................................... 27 DateTimeToString (27)DateToString (27)Day (27)DefaultColor (24)DEMA (97)Detrend (97)DevSqrd (97)EntryDate (73)EntryPrice (73)EntryTime (74)Enum_Buy (67)Enum_Canceled (67)Enum_Canceling (67)Enum_Declare (68)Enum_Declared (68)Enum_Deleted (68)Enum_Entry (68)Enum_Exit (69)Enum_ExitToday (69)Enum_Filled (69)Enum_FillPart (69)Enum_Sell (69)Even (14)Exact (20)ExchangeName (41)ExitDate (74)ExitPrice (74)ExitTime (74)Exp (14)ExpiredDate (41)Extremes (97)Fact (14)FieldBool (85)FieldNumeric (86)FieldString (86)FileAppend (86)FileDelete (87)Fisher (98)FisherInv (98)Floor (15)FormulaName (87)FracPart (15)Friday (28)GetGlobalVar (87)GetTBProfileString (87)Green (24)GrossLoss (75)GrossProfit (75)H (34)HarmonicMean (98)High (34)HighD (99)Highest (99)HighestBar (99)HighestBarFC (99)HighestFC (100)HistoryDataExist (34)Hour (28)I_AvgEntryPrice (87)I_CloseEquity (88)I_CurrentContracts (88)I_MarketPosition (88)I_OpenEquity (88)IIF (89)IIFString (89)InitialMargin (42)IntPart (15)InvalidInteger (89)InvalidNumeric (89)InvalidString (90)Kurtosis (100)L (35)LargestLosTrade (75)LargestWinTrade (75)LastEntryDate (75)LastEntryPrice (76)LastEntryTime (76)Left (20)Len (20)LightGray (25)LinearReg (100)LinearRegAngle (101)LinearRegSlope (101)LinearRegValue (101)Ln (15)Log (16)Low (35)LowD ......................................... 101 Lower . (21)Lowest (102)LowestBar (102)LowestBarFC (102)LowestFC (102)Magenta (25)MaintenanceMargin (42)MakeDate (28)MakeDateTime (28)MakeTime (29)MarginRatio (42)MarketPosition (76)Max (103)MaxConsecLosers (76)MaxConsecWinners (77)MaxContracts (77)MaxContractsHeld (77)MaxEntries (77)MaxIDDrawDown (78)MaxPositionLoss (78)MaxPositionProfit (78)MaxSingleTradeSize (42)Median (103)Mid (21)MidPoint (103)Min (103)MinMove (43)Minute (29)Mod (16)Mode (104)Momentum (104)Monday (29)Month (29)Neg (16)NetProfit (78)NextClose (35)NextHigh (35)NextLow (36)NextOpen (36)NextOpenInt (36)NextVol (36)NthCon (104)NthExtremes (104)NthHigher (105)NthHigherBar (105)NthLower (105)NthLowerBar (106)NumEvenTrades (78)NumLosTrades (79)NumWinTrades (79)O (37)Odd (16)Open (37)OpenD (106)OpenInt (37)OpenIntD (106)ParabolicSAR (106)PercentChange (107)PercentProfit (79)PercentR (107)Permutation (107)Pi (16)Pivot (107)PlotBar (91)PlotBool (90)PlotNumeric (90)PlotString (90)PositionProfit (79)Power (17)PriceOscillator (108)PriceScale (43)Q_AskPrice (44)Q_AskPriceFlag (45)Q_AskVol (44)Q_AvgPrice (44)Q_BidPrice (45)Q_BidPriceFlag (45)Q_BidVol (45)Q_BidVol (46)Q_High (46)Q_HisHigh (46)Q_HisLow (46)Q_InsideVol (47)Q_Last (47)Q_LastDate (47)Q_LastFlag (47)Q_LastTime (47)Q_LastVol ................................... 48 Q_Low (48)Q_LowerLimit (48)Q_Open (48)Q_OpenInt (49)Q_OpenIntFlag (49)Q_Oscillation (49)Q_OutsideVol (49)Q_PreOpenInt (50)Q_PreSettlePrice (50)Q_PriceChg (50)Q_PriceChgRatio (50)Q_TickChg (50)Q_TodayEntryVol (51)Q_TodayExitVol (51)Q_TotalVol (51)Q_TurnOver (51)Q_UpperLimit (52)QuoteDataExist (52)Rand (17)RateOfChange (108)Red (25)Rgb (25)Right (21)Round (17)RoundDown (17)RoundUp (18)Saturday (29)SAverage (108)Second (30)Sell (80)SellShort (80)SetBreakEven (80)SetDollarTrailing (81)SetExitOnClose (81)SetGlobalVar (91)SetInactivate (82)SetPercentTrailing (82)SetPeriodTrailing (82)SetProfitTarget (83)SetStopLoss (83)SetTBProfileString (91)Sign (18)Sin (18)Sinh (18)Skewness (109)SMA (109)Spread (43)Sqr (19)Sqrt (19)StandardDev (109)StringToDate (30)StringToDateTime (30)StringToTime (30)Summation (109)SummationFC (110)Sunday (31)SwingHigh (110)SwingHighBar (110)SwingLow (111)SwingLowBar (111)Symbol (43)SymbolName (43)SymbolType (44)SystemDateTime (31)T (37)Tan (19)Tanh (19)Text (21)Thursday (31)Time (37)TimeToString ............................... 31 TotalBarsEvenTrades . (84)TotalBarsLosTrades (84)TotalBarsWinTrades (84)TotalTrades (84)Trim (21)TrueHigh (111)TrueLow (111)TrueRange (112)Trunc (19)Tuesday (31)Unplot (92)Upper (22)V (38)Value (22)VariancePS (112)Vol (38)VolD (112)WAverage (112)Wednesday (32)Weekday (32)White (25)XAverage (113)Year (32)Yellow (26)数学函数AbsAcosAcoshAsinAtanAtan2AtanhCombinCosCoshCtanEvenExpFactFracPartIntPartLnModNegOddPiPowerRandRoundRoundDownRoundUpSignSinSinhSqrSqrtTanTanhTrunc字符串函数ExactLeftLenLowerMidRightTextTrimUpperValue颜色函数BlackBlueCyanDarkBrownDarkCyanDarkGrayDarkGreenDarkMagentaDarkRedDefaultColorGreenLightGrayMagentaRedRgbWhiteYellow时间函数CurrentDateCurrentTimeDateAddDateDiffDateTimeToStringDateToStringDayFridayHourMakeDateMakeDateTimeMakeTimeMinuteMondayMonthSaturdaySecondStringToDateStringToDateTimeStringToTimeSundaySystemDateTimeThursdayTimeToStringTuesdayWednesdayWeekdayYear数据函数BarCountBarStatusCCloseCurrentBarDDateHHighHistoryDataExistLLowNextCloseNextHighNextLowNextOpenNextOpenIntNextVolOOpenOpenIntTTimeVVol属性函数BarIntervalBarTypeBidAskSizeBigPointValueCanMarketOrderCanShortTradeCanStopOrderCanTradeContractSizeContractUnitCurrencyNameCurrencySymbolExchangeNameExpiredDateInitialMarginMaintenanceMarginMarginRatioMaxSingleTradeSizeMinMovePriceScaleSpreadSymbolSymbolNameSymbolType行情函数Q_AskPriceQ_AskVolQ_AvgPriceQ_AskPriceFlagQ_BidPriceQ_BidPriceFlagQ_BidVolQ_BidVolQ_HighQ_HisHighQ_HisLowQ_InsideVolQ_LastQ_LastDateQ_LastFlagQ_LastTimeQ_LastVolQ_LowQ_LowerLimitQ_OpenQ_OpenIntQ_OpenIntFlagQ_OscillationQ_OutsideVolQ_PreOpenIntQ_PreSettlePriceQ_PriceChgQ_PriceChgRatioQ_TickChg。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TradeBlazer公式的结构与编程目录页码一、TB的程序化交易的功能与特点 41-1、TB程序化交易的功能 4 1-2、TB公式说明 4 1-3、TB编程步骤 5 二、数据的说明与使用 62-1、Bar数据 6 2-2、计算方法 6 2-3、叠加数据 8 2-4、行情数据 9 2-5、属性数据 9 三、TB公式编程基础知识 93-1、TB的公式的结构 9 3-2、公式名称规则 11 3-3、语句写法 11 四、参数的说明与应用 214-1、参数说明 22 4-2、参数的使用与说明 22 4-3、参数的默认值 23 4-4、参数使用例子 24 4-5、变量参数 24 五、变量的类型与使用 255-1、变量参数 25 5-2、变量声明 26 5-3、变量的默认值 27 5-4、变量赋值 27 5-5、序列变量 28 5-6、变量、数据与函数的回溯 28 六、系统函数的使用 316-1、标点符号 31 6-2、控制语句 32 6-3、循环语句 37 七、用户函数的使用与说明 407-1、TB用户函数 40 7-2、序列函数 42 7-3、使用内建用户函数 42 7-4、用户函数的调用 44 7-5、用默认参数调用用户函数 44 八、技术指标编写 458-1、技术指标与应用 45 8-2、常用的技术指标应用举例 48 8-3、自编指标的输出 56 8-4、指标编写常见问题 58 九、用户函数编写 589-1、TB用户函数的编写 58 9-2、交易指令(Buy/Sell) 61 9-3、叠加多个商品合约进行交易 62 9-4、交易常用系统函数介绍 62 十、交易策略的程序实现与实例 6510-1、利用技术指标的交易策略 6510-2、止赢止损 7010-3、加仓减仓 7710-4、多品种交易 8010-5、集合竞价数据过滤 8210-6、函数下单撤单和全局变量操作 8310-7、数据库读写 83十一、其他注意事项 88 11-1、信号消失问题及解决办法 9111-2、盘中和盘后公式运行的差别 94十二、策略评估的常用指标 94正文一、TB程序化交易的功能与特点TradeBlazer公式(简称TB),新推出的V4公式,运行效率大幅提高,除支持多线程应用功能,在程序交易的主要特点如下:1-1、TB程序化交易的功能➢所使用的TBL(TradeBlazer Language)语言功能强大、语法简明易懂;➢TB的公式执行机制是在每根BAR上都会执行一遍公式,能实现公式和算法的精确控制;➢具有结构化的控制语句,支持复合语句—IF语句和FOR,WHILE语句;➢提供了丰富的系统函数,支持用户函数,便于实现程序的模块化设计;➢提供A函数、Q函数等,可实时获取当前交易账户的账户信息,并能对叠加商品进行发单和撤单,便于实现头寸调整、风险控制、资金管理以及套利交易的程序化;➢支持单图表叠加多个商品的交易和测试;➢技术指标源代码公开,便于指标算法的改进;➢强大的图表化、多维度的交易模型测试分析报告及参数优化功能,可实现多品种、多策略、多图表周期的组合测试,提供了丰富的、和实战密切相关的系统评估指标;➢支持交易模型的导入导出,支持交易模型的加密和无源码模式导出,便于模型研发后的商业应用。
1-2、TB公式说明➢TB公式是一种专为分析金融数据-时间序列而设计的高级语言,它提供直接、强大的框架将交易思想转化为用户函数、技术分析、交易指令等计算机能够识别的代码。
➢TB公式是一门语法简单但是功能强大的语言,它能帮助您创建自己的交易和技术分析工具。
通过组合普通的交易指令和简单的语句,Tra;➢TB公式使能够很容易并且直接的用简单语句表达自己的交易规则和行为。
➢交易开拓者能够读取开发的TB公式,在历史价格数据基础上进行评估,并能自动执行特定的交易动作,将您的交易思想转化为实际的交易操作。
➢通过TB公式,能够创建自己的用户函数、公式应用。
您也可以拷贝,修改并使用系统内置几百个函数和公式应用(包括技术分析和交易指令)。
TB公式的公式类型如下:用户函数:用户函数是能够通过函数名称进行引用的指令集,它执行一系列操作并返回一个值。
可以在其他任何公式中使用用户函数进行计算;公式应用:公式应用是包含交易指令、技术指标和K线形态的一类公式,它主要帮助您将您的思想转化为计算机的操作。
➢通过调用TB公式,可以在交易开拓者中进行技术分析、交易策略优化测试、公式报警、自动交易等操作。
1-3、TB编程步骤TB编程步骤如下;TB公式新建公式应用输入公式简称选择适当的模板;在公式编辑器中,输入sample1的代码;点击工具栏中的“校验保存公式”进行代码编译;新建超级图表,鼠标右键,插入公式应用;到指定文件路径,查看文件内容。
二、数据说明与使用2-1、Bar数据公式进行计算时,都是建立在基本数据源(Bar数据)之上,我们这里所谓的Bar数据,是指商品在不同周期下形成的序列数据,在单独的每个Bar上面包含开盘价、收盘价、最高价、最低价、成交量及时间。
期货等品种还有持仓量等数据。
所有的Bar按照不同周期组合,并按照时间从先到后进行排列,由此形成为序列数据,整个序列称之为Bar数据。
以下列出所有的Bar数据系统函数:TB公式的计算方法,针对上面介绍的各种公式类型,包含用户函数,技术分析,交易指令等,TB公式在计算时按照Bar数据的Bar数目,从第一个Bar到最后一个Bar,依次进行计算,如果公式中出现了调用Bar数据函数的,则取出当前Bar的相应值,进行运算。
如下图箭头所示,公式执行从上至下,Bar从左到右执行。
例如,现在有如下语句需要执行,Bar数据如下表所示:Value1 = Close - Open;CurrentBar Date Time Open High Low Close Vol Value10 2005/04/04 15:00 2970 2979 2951 2974 18 41 2005/04/05 15:00 2960 2960 2946 2960 14 02 2005/04/06 15:00 2951 2980 2951 2963 30 12如上表所示,从CurrentBar = 0 开始,依次计算每个Bar进行计算;在公式的编写中,经常会遇到当前Bar的数据和上一个Bar,上N个Bar数据进行比较,计算的情况,针对这种情况,TradeBlazer公式提供了一种处理机制:回溯。
即对数据的向前引用,比如,获取上一个Bar的收盘价:Close[1],获取10天前的成交量:Vol[10]。
以下提供一个简单的例子来说明如何进行回溯处理。
假定有如下语句:以上公式执行一个简单的操作,当前Bar的收盘价大于上一个Bar的收盘价,即执行按照当前收盘价买入1手的动作。
根据上表的数据,公式将在CurrentBar为2和3的时候调用Buy指令。
(注意点;对于上面的一段公式的执行,有一个小小的问题,当第一次计算公式时,即CurrentBar = 0时,这个时候需要获取上一个Bar的数据,但是当前Bar已经是第一个Bar,这个时候就存在着问题,如何来获取此时的Close[1]呢,TradeBlazer公式将默认Close[1]为无效值,即系统函数中的InvalidNumeric,Close > Close[1]的表达式计算结果是一个Bool值,其结果也是一个无效值,对于Bool值,我们将False作为其无效值。
因此,第一个Bar计算时,Buy指令不会被执行。
)对于技术分析这类公式来说,假定Bar数据的总数共有100,相同的代码将从CurrentBar = 0到CurrentBar = 99 共执行100遍,分别输出公式中的结果值。
(注意:在执行TradeBlazer公式时,可能出现数据不存在的情况,可通过系统函数HistoryDataExist进行判断,如果该函数返回True,即为Bar数据有效。
)2-3、叠加数据交易开拓者的超级图表支持商品叠加的显示,当叠加的图表调用各项公式时,可能有需要使用叠加的商品对应的基础数据,针对这样的需求,TradeBlazer公式提供了叠加数据的支持。
假定,我们新建一个超级图表模块,其主数据对应的商品为:cu0503,在此基础上,我们叠加了cu0504和cu0505。
此时,根据叠加操作的先后顺序,cu0503为Data0,cu0504为Data1,cu0505为Data2,在TradeBlazer公式中,我们可以通过Data1.Close(),Data2.Vol()类似方法调用叠加Bar数据,叠加Bar数据的函数和Bar数据一样,只是需要在调用的时候加上数据源。
我们也可以使用Data0.Open()来调用Bar数据,默认情况下,可以省略对主数据源的指定,为了方便,一般直接使用Open()来代替Data0.Open()。
2-4、行情数据除了Bar数据之外,TB公式还可以支持实时行情数据的调用,行情数据是指当前商品最新的报价数据,该数据和Bar无关,行情数据的回溯没有意义。
行情数据只在最后Bar是有意义的,其他Bar会返回无效值。
因此,在调用行情数据函数时,为了提高效率,最好按照以下方法:行情数据函数都按照以下格式命名Q_XXXXX,比如Q_Close,Q_BidPrice。
在调用行情数据的时候,需要判断当前行情数据是否有效,系统提供函数QuoteDataExist来对有效性进行判断。
如果行情数据已经准备好,返回True,否则,返回False。
2-5、属性数据除了以上的各项数据之外,TradeBlazer公式还提供一组重要的属性数据,反映了该商品的一些基本信息,比如当前数据周期,买卖盘个数、保证金设置等信息。
在所有的Bar上面获取的市场属性数据都是一样的,属性数据的回溯没有意义。
(关于属性数据的详细说明参见帮助文件附录。
)三、TB公式编程基础知识3-1、TB的公式的结构TB的公式一般由以下三部分组成。
公式参数段(Params):Numeric Length;公式变量段(Vars):NumericSeries;公式脚本段(Begin)需要与END进行搭配:如:MA = AverageFC(Close, Length);END;公式中数据类型TB公式中有三种基本的数据类型:数值型(Numeric)字符型(String)布尔型(Bool)以上3种基本类型,构成共9种数据类型。
公式中序列类型为了对变量、参数进行回溯,又增加了序列类型:数值型序列变量/参数(NumericSeries)字符型序列变量/参数(StringSeries)布尔型序列变量/参数(BoolSeries)引用类型为了通过用户函数返回多个值,又增加了引用类型数值型引用(NumericRef)字符型引用(StringRef)布尔型引用(BoolRef)3-2、公式名称规则不区分大小写;不能超过32个英文字符;每一个公式内部能不能重复命名;名称不能出现字母、数字、下划线以外的其他字符;名称不能和系统保留字,系统函数等重名;不能使用已定义的用户函数名。