目的:阅读,学习市场现有策略都大概是怎么模式
由于我本来就是软件开发出身,所以软件使用这部分不做过多介绍,自己点点就明白了,后面用的时候在查阅了
主界面示意图
主界面内容说明
- 菜单: 无工作区时,菜单为系统菜单。当工作区打开之后,对应不同的模块,系统会自动生成不同的菜单;
- 工具栏: 无工作区时,工具栏为系统工具栏。当工作区打开之后,对应不同的模块,系统会自动生成不同的工具栏;
- 状态栏: 包含一个简洁的报价窗体和下单工具,帐户登录,系统配置等快捷按钮;
- 面板: 为用户建立了常用模块和功能调用的快速通道,用户只要选中某个按钮,系统可以迅速打开相对应的功能和模块窗口;
- 工作区: 用户可以同时打开多个窗口,可以让用户同时关注更为丰富的内容。
- 帐户管理: 对用户的交易帐户信息进行管理,包括资金,持仓,委托等信息。
相关论坛和学习资料
TB软件集合贴入口:http://bbs.tb18.net/thread-130783-1-1.html
官方视频教程;http://train.tb18.net/home
【TB交易网校课后视频、课件发布专贴】2016-9-1号的已发布:http://bbs.tb18.net/thread-19864-1-1.html
数据类型
TradeBlazer公式支持有三种基本数据类型:数值型、字符串、布尔型。
为了通过用户函数返回多个值,我们对三种数据类型进行了扩展,增加了引用数据类型。另外,为了对变量,参数进行回溯,我们增加了序列数据类型。随后我们扩展支持了数组及数组的引用。因此,我们的数据类型共有15种,如下表所示:
名称 | 说明 |
Bool | 布尔型。 |
BoolRef | 布尔型引用。 |
BoolSeries | 和周期长度一致的Bool型序列值。 |
BoolArray | 布尔型数组。 |
BoolArrayRef | 布尔型数组的引用。 |
Numeric | 数值型。 |
NumericRef | 数值型引用。 |
NumericSeries | 和周期长度一致的Numeric型序列值。 |
NumericArray | 数值型数组。 |
NumericArrayRef | 数值型数组的引用。 |
String | 字符串。 |
StringRef | 字符串引用。 |
StringSeries | 和周期长度一致的String型序列值。 |
StringArray | 字符串数组。 |
StringArrayRef | 字符串数组的引用。 |
保留字
保留字都有自己独特的意思或用途,主要是一些功能关键字,系统函数,以及数据类型等。
下面分类列举出系统主要的保留字。
数据类型
包含3种基本类型,共9种数据类型能够,详细说明参见数据类型。
运算符
类型 | 保留字 |
算术运算符 | + - * / % ^ |
关系运算符 | > >= < <= == != <> |
逻辑运算符 | AND/&& OR/|| NOT/! |
括号 | (){} [] |
其它 | . , |
功能关键字
保留字 | 说明 |
Params | 用该关键字宣告参数定义的起始,参数必须填写默认值。 |
Vars | 用该关键字宣告变量定义的起始(可以赋初值), 变量不填写初值时,系统将自动为其填充初值。 |
If | 条件语句。 |
Else | 条件语句。 |
Begin | 用该关键字宣告程序主体的起始。 |
End | 用该关键字宣告程序主体的结束。 |
For | 循环语句。 |
To | 循环语句。 |
DownTo | 循环语句。 |
While | 循环语句。 |
Break | 循环语句。 |
Continue | 循环语句。 |
True | 真。 |
False | 假。 |
数据源
保留字 | 说明 |
Data0-Data49 | 支持50个数据源。 |
数据输出
保留字 | 说明 |
PlotBool | 输出布尔型值。 |
PlotNumeric | 输出数值型值。 |
PlotString | 输出字符串值。 |
UnPlot | 取消指定位置的输出。 |
Alert | 报警输出。 |
Buy | 多头建仓操作。 |
Sell | 多头平仓操作。 |
SellShort | 空头建仓操作。 |
BuyToCover | 空头平仓操作。 |
... | 其他系统函数。 |
公式样例
(常见语法都有了,程序员的话应该看下这个就够了)
公式应用输出技术分析RSI,脚本如下:
Params
Numeric Length(14);
Numeric OverSold(20);
Numeric OverBought (80);
Vars
Numeric RSIValue(0);
Numeric RSIColor(-1);
Begin
RSIValue = 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