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

标题: 我从零开始学习TradeBlazer的过程 [打印本页]

作者: zihonggu    时间: 2009-5-17 13:02:26     标题: 我从零开始学习TradeBlazer的过程

这是我从零开始学习TradeBlazer的过程,以后我将努力尽量来这儿记录下我的成长过程,不懂外语和编程能否象学习文华等其它软件那样学会TB呢?我心中没有底信心也不足.......呵呵 先不管那么多了。在这儿圈一块地,画一片学习的天空吧。

[ 本帖最后由 zihonggu 于 2009-5-17 14:55 编辑 ]
作者: zihonggu    时间: 2009-5-17 13:16:20

我不笑我自己,当然也作好了心理准备不怕别人笑我了。讲老实话本人年龄不小,学历不高,也不懂外语,更不懂编程。别看我注册时间早却至今没在坛子里发过贴,原因当然是不懂TB,想学TB却一年多来却总是弄不懂,学不进去呢。这次真的是痛下决心要啃一啃这硬骨头了。为了能监督和激厉自己,特开此贴。
今天知道了  
Begin   (发音: [ bi'gin ]) 解释: 开始(开始 ,着手);   
End     (发音: [ end ])   解释: n. 结束,终点,目标v. 结束,终结,终止  


除了参数和定义变量外,所有的代码都必须包含在Begin和End之间,意思很简单:就是Begin后,你的代码就开始执行了,End了,你的代码就执行完毕拉

params(发音: [ 'p?r?s ]’帕拉姆s) 意为:保存公式参数信息
numeric
是要声明的数字?  
numeric (发音: [ nju:'merik  尼马瑞k])  解释: 数字的;我在TB中理解为 参数的意思,也就是参数N=X,
length (发音: [ l eŋθ  懒胡]) 解释: n. 一段  一节   长度   我在TB中理解为均线名
不知对不对哦,先暂且这样理解吧。

例如:Params  //声明参数的个数如下:
                Numeric Length1(5); // 第一根均线的参数设为5周期
        Numeric Length2(10); //第二根均线的参数设为10周期
        Numeric Length3(20); //第三根均线的参数设为20周期
        Numeric Length4(30); //第四根均线的参数设为30周期

[ 本帖最后由 zihonggu 于 2009-5-23 21:21 编辑 ]
作者: 捕快    时间: 2009-5-17 16:10:59

支持,一起学习
作者: 高架桥    时间: 2009-5-17 20:17:29

楼主比我学得快啊 , 我要加油了,过段时间来比一比
作者: nickchen    时间: 2009-5-17 22:10:28

很好啊  这样可以更能取得经验了
作者: zihonggu    时间: 2009-5-18 02:26:22

plot (发音: [ plɔt   扑落t]) 图:理解为当根K线图
numeric (发音: [ nju:'merik  尼马瑞k])  解释: 数字的;
Bar(发音: [ bɑ:  吧]) 解释: n. 条,棒,  TB软件中K线叫做Bar,一根K线就是一个Bar;

函数 PlotNumeric  [扑落t尼马瑞k]       在当根K线输出一个数值

呵呵 学习开拓者软件,先还是学会读他的英文名字吧。假如有人问你 你母亲叫什么名字?你不会不知道吧? 呵呵先学会读软件名
trade (发音: [ treid ]    锤d)        解释: n. 贸易,商业,交易v. 贸易,交易,交换  
blazer  (发音: [bleizə]    布勒热a)      解释: n.宽松的外衣



TradeBlazer  [treid 'bleizə]  锤d'布勒热a)   交易开拓者(软件名)

[ 本帖最后由 zihonggu 于 2009-5-23 21:39 编辑 ]
作者: tianlan203    时间: 2009-5-18 12:51:15


热烈欢迎!
希望楼主能一直坚持下去!
贵在坚持!
作者: zihonggu    时间: 2009-5-18 16:00:28

谢谢版主老大的鼓励和支持,以后请多多帮助我!真诚感谢!
作者: nopain    时间: 2009-5-18 16:55:04

blazer ['bleizə]
n.

燃烧物, 发焰物

颜色鲜明的运动上衣

传播者, 宣传者

在树上刻出记号指示路径的人

作者: zihonggu    时间: 2009-5-18 17:02:38

学习难,难学习。为了好学习,准备先把复杂的看简单点。从简单到复杂再从复杂到简单,不知用这样的方法来学行不行。后面的路又远又长。有了目标,用愚公移山的精神来搬倒学习这座大山。 古有愚公今有愚婆........(老太今年五十六,应该算得上愚婆吧,傻啊!)
我把TB 的编写 先看简单为8个字   参数  变量  开始  结束。
  昨天学了参数  TB和其他软件不一样  呵呵 TB中的参数要在编写内容的最前面声明。 不象其他软件将参数填写在参数表格中。
  我学TB 的第一个范本就是软件自带的 ma指标。它最前面的就是 声明参数  设均线的参数值。(这个公式没有声明变量,也就是没有用到变量哦)
今天就继续学 编写均线的具体内容。就是开始到结束中的内容。 这个公式编写最超级简单,里面就几个函数
average  ([ævəridʒ]  阿锐急)   n.平均; 平均数     vt.求…的平均数
AverageFC 这个我理解为求平均, 在函数表中找不到,在原码中也没显示出高亮色,所以我认为这个不是函数了哦,但后面跟的大写定FC 两个字母是啥意思呢,现在不懂我暂且不管它。
AverageFC  二天后我现在知道了 这是一个用户函数:快速计算平均值。例:AverageFC(Close, 12); 计算12周期以来的收盘价的平均值;
close  ( [kləuz]   克娄死)vt. & vi.使)关, 关闭 终止

函数 close  ( [kləuz]   克娄死)         当根K线的收盘价, (呵呵,总爱忘了 应该叫当前Bar的收盘价)
函数 PlotNumeric  [扑落t尼马瑞k]       在当根K线输出一个数值


MA 指标内容学习如下:

Params  //声明参数的个数如下:
                Numeric Length1(5); // 第一根均线的参数设为5周期
                 Numeric Length2(10); //第二根均线的参数设为10周期
                 Numeric Length3(20); //第三根均线的参数设为20周期
                 Numeric Length4(30); //第四根均线的参数设为30周期
Begin   //以下开始正文
        PlotNumeric("MA1",AverageFC(Close,Length1));   //画参数1周期收盘价的简单平均线
        PlotNumeric("MA2",AverageFC(Close,Length2));   //画参数2周期收盘价的简单平均线
        PlotNumeric("MA3",AverageFC(Close,Length3));   //画参数3周期收盘价的简单平均线
        PlotNumeric("MA4",AverageFC(Close,Length4));  //画参数4周期收盘价的简单平均线
End    //以上正文结束
      
            学完这MA 指标公式,还是有没弄懂的问题如下:不知那些是 函数  那些是单词, 那些是开拓者自创的词组,我头脑中还是有点混乱滴555555555,有愿意跟贴的高手可在百忙中回贴教教我。 谢谢了。真诚地感谢。

[ 本帖最后由 zihonggu 于 2009-5-20 00:09 编辑 ]
作者: 九九归一    时间: 2009-5-18 17:14:35

楼主精神可嘉,全力支持,并持续关注中……
作者: zihonggu    时间: 2009-5-18 17:19:37

谢谢九楼的管理员。 翻译有误谢谢指正。
blazer  (['bleizə]  b泪热a)
n.

燃烧物, 发焰物

颜色鲜明的运动上衣

传播者, 宣传者

在树上刻出记号指示路径的人
作者: zihonggu    时间: 2009-5-18 23:07:47

今晚继续学习10楼中没懂的问题。原来TB函数比其它软件多很多滴,特别与另些软件不同的是有 用户函数(好象也叫内建函数吧,暂且我现在这样理解)
AverageFC   发音: ([ævəridʒ  FC]   阿锐急FC);      
用户函数 AverageFC  快速计算平均值

[ 本帖最后由 zihonggu 于 2009-5-18 23:08 编辑 ]
作者: zihonggu    时间: 2009-5-18 23:42:12     标题: 学习 论坛上的 TradeBlazer公式入门教程

以TradeBlazer公式入门教程  为教材,以自已的啃骨头方法  一句一句 一个一个读软件自带的指标和交易指令 来达到学习进步的目的。
http://www.tradeblazer.net/forum/thread-242-1-1.html
坛子中 这篇文章感觉最适合我读了,我 一定要认真反复读 一字一句地读。
http://www.tradeblazer.net/forum/thread-588-1-1.html

[ 本帖最后由 zihonggu 于 2009-5-19 22:54 编辑 ]
作者: 捕快    时间: 2009-5-19 07:57:25

可敬,坚持下去。老太人缘好,指点的人多。偶就糟多了,因为草草发了一个讲TB不稳定的帖子,NOPAIN老大从来不原在偶的帖字里出现,悲哀呀。
作者: 如影随形    时间: 2009-5-19 16:41:01

TradeBlazer  [treid 'bleizə]  摧d泪热a)   交易开拓者(软件名)

坚决像楼主学习!!!
作者: zihonggu    时间: 2009-5-19 19:32:45

今天学习 多空线指标
/ 简称: zb01
// 名称: 多空线
// 类别: 技术指标
// 类型: 移动平均(原来我将其归为趋势类好象不那么切体)
// 输出:
//------------------------------------------------------------------------

Params//params(发音: [ 'p?r?s ]帕拉姆s) 意为:保存公式参数信息
numeric length(10);//声明参数numeric length (发音[nju:'merik l e?θ 尼马瑞k懒胡]) 意为一段数字用于设制参数的编写
Vars //   发音[va:]  定义变量
numericSeries MidPrice//numericseries (发音[nju:'merik 'siəri:z] 尼马瑞k舍瑞z),连续系列的数值。定义变量名序列变量函数
numericseries dkxval;//定义变量名
numericseries adkx;//定义变量名
Begin

midprice=(3*close+open+high+low)/6; //中间价(midprice  意为中间的价格)
dkxval=(20*midprice+19*midprice[1]+18*midprice[2]+17*midprice[3]+16*midprice[4]+15*midprice[5]+14*midprice[6]+13*midprice[7]+12*midprice[8]+11*midprice[9]+10*midprice[10]+9*midprice[11]
+8*midprice[12]+7*midprice[13]+6*midprice[14]+5*midprice[15]+4*midprice[16]+3*midprice[17]+2*midprice[18]+midprice[19])/210; //变量赋值

adkx=averagefc(dkxval,length);//计算 length以来的周期 dkxval的平均值  ,AverageFC ([ævəridʒ]  阿锐急FC) 用户函数:快速计算平均值
plotnumeric("dkxval",dkxval);//画线 (plotnumeric 绘制数值数字的,输出一个数值型组成的数组)
plotnumeric("adkx",adkx);//画线:输出一个数值型组成的数组,函数 PlotNumeric  [扑落t尼马瑞k]       在当根K线输出一个数值

end

以下学习本指标的笔记:
[numeric length (发音[nju:'merik l eŋθ 尼马瑞k懒胡]) 意为一段数字,此函数用于设制参数的编写函数
PlotNumeric表示输出一个数值型组成的数组;公式中“”内所引用的是字符串的常量,内容文字即在图表中所输出的技术指标的名称,PlotNumeric  [扑落t尼马瑞k]       在当根K线输出一个数值
TBk中的数据分类型
1.数值型(123456   0.618 等为数值类型的数据) ,数值型的英文是Numeric  
2.字符串型(用引号括起来的''123456'' 叫字符串类型的数据 )
3.布尔型----就是真假型,意思就是布尔类型的数据只能取真(True)或假(False)值.
       比如2>1,这个东西就是布尔类型的数据,因为2是大于1啊,所以这个表达式返回True(真)  true (发音: [ tru: ] 触入) 解释: a. 真的,真实的,正确的  

前天不懂 AverageFC  今天知道了 这是一个用户函数:例:AverageFC(Close, 12); 计算12周期以来的收盘价的平均值;
series (发音: [ 'siəri:z ])  解释: n. 连续,系列  
numericseries (发音[nju:'merik 'siəri:z] 尼马瑞k舍瑞z),连续系列的数值   序列变量函数
price  (发音[prais]朴'入爱死)n.价格, 价钱   
mid  (发音[mid]美得))adj.中间的, 居中的(用于复合词中)中, 中间的prep.在…中间
AverageFC ([ævəridʒ]  阿锐急FC) 用户函数:快速计算平均值
  用户函数

[ 本帖最后由 zihonggu 于 2009-5-23 22:34 编辑 ]
作者: tianlan203    时间: 2009-5-20 10:17:54

“……还是有没弄懂的问题如下:不知那些是 函数  那些是单词, 那些是开拓者自创的词组,”

在公示编辑器里面:
蓝色的是“系统函数”;——双击蓝色的系统函数,再点编辑器上面的问号,就会弹出该函数的说明。
枣红色的是“用户函数”;——双击枣红色的用户函数,再点编辑器上面倒数第7个“带向右小箭头和方块”的按钮,就会打开该用户函数,可以看到这个函数是怎么运算的。
黑色的是自己取的参数或变量名;
青色的被引号引起来的是“输出值的名称”(也是自己取的名字);
大红色的是参数的值。
作者: zihonggu    时间: 2009-5-20 12:20:49

谢谢 版主
作者: pwqzc    时间: 2009-5-20 14:47:28

非常的不错!!
作者: zihonggu    时间: 2009-5-21 00:29:59     标题: 呵呵,终于编出我的第一个指标

学习和反复一字一句读了 MA 均线指标和多空指标。今天终于套着格式编写出了我的第一个指标。真高兴啊!
/ 简称: ZB02
// 名称: RR自编第一个指标
// 类别: 技术指标
// 类型: 振荡类
// 输出: 一条指标线
//------------------------------------------------------------------------

Params    //params(发音: [ 'p?r?s ]帕拉姆s) 意为:保存公式参数信息

        numeric length(7);  //声明参数(numeric length (发音[nju:'merik l e?θ 尼马瑞k懒胡]) 意为一段数字用于设制参数的编写

Vars       //   发音[va:]  定义变量
    numericseries reflc; //numericSeries (发音[nju:'merik 'si?ri:z] 尼马瑞k舍瑞z),连续系列的数值。序列变量函数
    NumericSeries RR;
Begin
        REFLC=HIGH[1]; // 前一根Bar的最高价  Bar (发音: [ bɑ:  吧])
                RR=SMA(MAX(H-REFLC,0),length,1)/SMA(ABS(H-REFLC),length,1)*100;//效率因子
       
                PlotNumeric("RR",RR);//PlotNumeric  [扑落t尼马瑞k]      (发音[pl?t  nju:'merik]) 在当根K线输出一个数值
        PlotNumeric("80",80);
        PlotNumeric("20",20);
End


//------------------------------------------------------------------------
// 编译版本        GS2004.06.12
// 用户版本        2009/05/20 23:40
// 版权所有        zihonggu


学习编写笔记:  用户函数: SMA (求移动平均)    MAX(取j最大值)
                      系统函数:  ABS(求绝对值)
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
效果图如下:

[ 本帖最后由 zihonggu 于 2009-5-23 23:06 编辑 ]
作者: zihonggu    时间: 2009-5-21 00:35:08

问题: 不知怎么地,在我想看看 我自编指标 RR 在各个周期的效果图时 却发现怎么只有日线。 切换各分钟线时都没有数据,55555555。 我用的是超强模拟版,各位大侠遇到过这样的情况吗?
作者: 捕快    时间: 2009-5-21 08:06:16

:victory: :victory: :victory: :victory:
作者: 高架桥    时间: 2009-5-21 08:50:42

楼主阿姨的”摧d泪热a“ 学得真是又快又好啊。。。
回22#,您帖的图不就是5分钟线的吗? 还有指标公式里的H变量好像没定义唉?
作者: nickchen    时间: 2009-5-21 09:59:05

其实没有必要把这些英语单词标注上汉语的 如果标了汉语 反而读不准了 知道这个单词的汉语意思就可以记得这个英语单词了 我的感觉是这样的哦
作者: zihonggu    时间: 2009-5-21 10:39:42

谢谢各位朋友。
回22#  嗯 昨晚不知怎么后来又有五分图了,可能是软件原因吧
回25#  :”其实没有必要把这些英语单词标注上汉语的 如果标了汉语 反而读不准了“,我也知道这个道理呀。没办法我这个年龄的人 脑子记不住。所以就找了一个下三烂的方法 给自已提个醒, 好在我不用与人口头交流外语,就只好采用了这个不是办法的办法。 还有一个问题: 国际英标 在我的电脑中 复制了挎贝出来中间有些是  ?? 号。。。。。。有朋友知道原因吗?
问题二: 上面RR 指标   为什么 H 我没有定义  指标也测通过了呢。  可能这 H  字母是系统函数的原因吧?
作者: 高架桥    时间: 2009-5-21 12:04:30

不会吧,系统函数会用一个字母?   我估计没有定义TB默认为无效值,或只要不是分母就当0处理了
作者: zihonggu    时间: 2009-5-21 12:22:54

哦 谢谢指点! 我改过来。
作者: nopain    时间: 2009-5-21 12:33:37

H 是High ,即最高价的简写
作者: zihonggu    时间: 2009-5-21 12:46:31

点开公式,查了下帮助附录。  H 大写字母是系统函数,可以不用定义了。 不过还是真诚地感谢高架桥兄弟的仔细认真看贴回贴。

看贴是支持,回贴是美德。谢谢各位朋友捧场,大家的捧场对我的鼓励将使我有信心和决心去战胜困难。

[ 本帖最后由 zihonggu 于 2009-5-21 12:51 编辑 ]
作者: 高架桥    时间: 2009-5-21 15:48:36

  
下定决心,不怕牺牲,排除万难,去争取胜利。
作者: zihonggu    时间: 2009-5-21 21:18:07

依样画葫芦写指标(我才入门不好意思)
Params   


Vars      
    NumericSeries QS;
    NumericSeries PJ;
Begin
        QS=SMA(((CLOSE-MIN(LOW,28))/(MAX(HIGH,28)-MIN(LOW,28))*100),3,1);//MIN求最小值
               
                PlotNumeric("QS",QS);
        PlotNumeric("PJ",AverageFC(QS,5));
        PlotNumeric("80",80,IIF(QS>=0,BLUE,GREEN));
        PlotNumeric("20",20,IIF(QS>=0,BLUE,GREEN));
        PlotNumeric("90",90,IIF(QS>=0,BLUE,GREEN));
        PlotNumeric("10",10,IIF(QS>=0,BLUE,GREEN));
End

请高手帮我看看 为什么两条指标线 QS 和 PJ  不能正常显示? 先谢过了
呵呵 在灰太狼朋友的帮助下搞出来了。 问题在这儿呢:
我估计应该是这个
QS=SMA(((CLOSE-MIN(LOW,low[28]))/(MAX(HIGH,high[28])-MIN(LOW,low[28]))*100),3,1);//MIN求最小值

[ 本帖最后由 zihonggu 于 2009-5-21 22:17 编辑 ]
作者: zihonggu    时间: 2009-5-21 23:25:01     标题: 原来还要正确地书写函数的大小写

Params    ///(发音: [ 'p?r?s ]帕软姆s) 意为:保存公式参数信息
     Numeric Length(30);  //声明参数(numeric length (发音[nju:'merik l e?θ 尼马瑞k懒胡])  
                                   // 常量在编译时便确定它的值,length 是一个常量,lengthr 的值30一旦确定后在数据运行过程中就不在变动了。


Vars        /*  发音[va:]  定义变量,变量表示存储位置*/
    NumericSeries QS;//QS  是变量
    NumericSeries PJ;//PJ  是变量
Begin
         QS=SMA(((Close-MIN(Low,Low[30]))/(MAX(High,High[30])-MIN(Low,Low[30]))*100),3,1);// 求出QS的值,并将值赋给QS
         //MIN(发音: [ main]卖嗯)求最小值 ,MAX(音[玛克丝)求最大值
               
        PlotNumeric("QS",QS);//画趋势线
        PlotNumeric("PJ",AverageFC(QS,5));//画五周期的平均线
        PlotNumeric("80",80,IIF(QS>=0,Blue,Green));
        PlotNumeric("20",20,IIF(QS>=0,Blue,Green));
        PlotNumeric("90",90,IIF(QS>=0,Blue,Green));
        PlotNumeric("10",10,IIF(QS>=0,Blue,Green));
End

学习笔记:1.要正确书写函数的大小写
               2.注释有三种方法

[ 本帖最后由 zihonggu 于 2009-5-24 10:21 编辑 ]
作者: zihonggu    时间: 2009-5-23 11:18:36

今天学习IF 这个语句。 我不懂外语(50后人:生于困难时期,长于文革年代,成年上山下乡,老年改革下岗,髦年退而不休,如今学习惶惶),更没学过C 语言,所以我就只好以我自已另类方式,来阅读学习和理解这C语言和基于C语言语法的 TradeBlazer  (发音[treid 'bleiz?]  锤d泪热a)语言了。呵呵.......汗啊!

关于IF语句
If语句是一个条件语句,当特定的条件满足后执行一部分操作。(我理解为 如果满足条件就这样(为真),否则如果不满足就另样(为假)IF 也可写成IIF,作用就是在公式语中作真假判断,也就是布尔类型)

语法如下:
If (Condition) //condition (发音[k?n?di??n] 恳'得信) 意为条件,条件指约,条件转移。

{
  TradeBlazer公式语句;
}
TradeBlazer公式语句是一些语句的组合,如果TradeBlazer公式语句是单条,您可以省略{},二条或者二条以上的语句必须使用{}。
学习教材:http://www.tradeblazer.net/forum/thread-242-1-1.html

看别人的编写句理解:
if(aa9>100)
      {
      //如果满足条件 aa9>100
                aa10=aa9-100; //就返回到:aa10=aa9-100;
        }
Else //否则 (else  发音[els] adv.其他, 另外)      
     {  
                aa10=0;// 就返回到:aa10=0;
          }
   If(aa12-aa13>0)
        {
        //如果满足条件 aa12-aa13>0 ,从aa12到aa13画红色柱
       PlotNumeric("high",aa12);
       PlotNumeric("Low",aa13);
       PlotNumeric("Close",aa12);
       PlotNumeric("Open",aa13);
          }
      Else
      {
       //否则 不满足条件 aa12-aa13  ,从aa12到aa13画绿色柱
        PlotNumeric("high",aa13);
        PlotNumeric("Low",aa12);
        PlotNumeric("Open",aa13);
        PlotNumeric("Close",aa12);
        }

[ 本帖最后由 zihonggu 于 2009-5-23 23:22 编辑 ]
作者: zihonggu    时间: 2009-5-23 19:52:50

通过这几天的学习,稍微能看懂最简单的TB指标了。找到论坛上的一个TB指标,试着应其要求改为文华格式,呵呵,居然文华的指标图与TB中显示的一样,心里感到好高兴啊。 此举使我对自己学习 TradeBlazer 增强了信心,以后我一定要更加努力地去学习,争取早一天从文华实盘转向 TB 实盘。(因为我知道电脑自动化系统交易是今后大方向,这个方面目前TB功能最强)
http://www.tradeblazer.net/forum/thread-4733-1-1.html
作者: zihonggu    时间: 2009-5-23 23:39:52

我虽然没学过C语言,但是必须了解点C语言的书写格式(C语言的语法),才能正确书写TB语法和正确编写TB格式.。
方法:在读学TB代码中学点C语言

      C#代码由一系列语句组成,每个语句都用一个分号来结束。因为空格被忽略,所以一行可以有多个语句,但从可读性的角度来看,通常在分号的后面加上回车符,这样就不能在一行上放置多个语句了。但一句代码放在多个行上是可以的(也比较常见)。

  C#是一个块结构的语言,所有的语句都是代码块的一部分。这些块用花括号来界定("{" 和 "}"),代码块可以包含任意多行语句,或者根本不包含语句。注意花括号字符不需要附带分号。....... 原来 IF 这个函数写布尔数据,进行真假赋值必须用花括号括起来哟。

      C#注释  注释有三种方法    ///                //                 /*  */
      
     C#代码是区分大小写的。与其他语言不同,必须使用正确的大小写形式输入代码,因为简单地用大写字母代替小写字母会中断项目的编译。

[ 本帖最后由 zihonggu 于 2009-5-23 23:48 编辑 ]
作者: zihonggu    时间: 2009-5-24 22:46:56

今天找到一个学习方法:每天读TradeBlazer 软件帮助中的公式基础:
今天学了:Bar 数据。 TB中的 K线就叫Bar  一根K线就是一个Bar  Bar数据是序列数据。

以下列出所有的Bar数据系统函数:
函数名          简写        描述  
Date             D           当前Bar的日期。  (date  [deit]   n.(注明的)日期, 日子, 年份)
Time            T            当前Bar的时间。  (time  [taim]  n.时间)
Open           O            当前Bar的开盘价。 (open  [əupən] adj.开着的; 开放的, 公开的)
High             H            当前Bar的最高价,Tick时为当时的委卖价。 (high [拼音:hai 海] adj.高)
Low              L            当前Bar的最低价,Tick时为当时的委买价。 (low  [ləu] adj.低的, 矮的)
Close            C             当前Bar的收盘价。 (close  [kləuz]  vt. & vi.(使)关, 关闭)
Vol               V             当前Bar的成交量。
OpenInt        无            当前Bar的持仓量。
CurrentBar    无            当前Bar的索引值,从0开始计数。 current  [kʌrənt] (汉音:卡润t巴)adj.现在的, 现行的
BarStatus      无           当前Bar的状态值,0表示为第一个Bar,1表示为中间的普通Bar,2表示最后一个Bar。
                                 status  [steitəs] 状况状态   BarStatus (汉音:’吧’舍铁死)

回溯。即对数据的向前引用
     比如,获取上一个Bar的收盘价:Close[1],获取10天前的成交量:Vol[10]。

If (Close > Close[1]) //当前收盘价大于上一个bar
{
    Buy(1,Close); // 系统执行执行一个指令:按照当前收盘价多头开仓买入1手     buy  [bai](汉音:罢)vt. & vi.购买, 购得
}


If(BarStatus()==2) //当K线状态是最后一根时
{
    //调用行情数据函数:行情函数是Q_XXXX  函数, 即tick 数据
}

[ 本帖最后由 zihonggu 于 2009-5-24 23:43 编辑 ]
作者: zihonggu    时间: 2009-5-25 08:34:49     标题: 复习PlotNUmeric 函数

PlotNumeric表示输出一个数值型组成的数组;公式中“”内所引用的是字符串的常量,内容文字即在图表中所输出的技术指标的名称

关于PlotNumeric的使用
函数原形:
    Numeric PlotNumeric(String Name,Numeric Number,Integer Color=-1,Integer BarsBack=0)
   函数原形意为: 显示数值型指标画线(名称,数值,颜色,回溯)
参数:
    Name 输出值的名称,不区分大小写;
    Number 输出的数值;
    Color 输出值的显示颜色,默认表示使用属性设置框中的颜色;
    BarsBack 从当前Bar向前回溯的Bar数,默认值为当前Bar。

另类方式学单词:
BarsBack        自组词组 (汉音:’巴阿兹’贝爱克) 从当前Bar向前回溯的Bar数,默认值为当前Bar       
bars  ([bɑ:z] 汉音: 巴阿兹 )         
back  ([bæk] 汉音:贝爱克)

[ 本帖最后由 zihonggu 于 2009-5-28 13:24 编辑 ]
作者: pwqzc    时间: 2009-5-25 08:37:27

严重支持!
此贴必火!
作者: zihonggu    时间: 2009-5-25 09:00:32

逻辑操作符
逻辑运算符常常用于比较两个True/False的表达式,共有三个逻辑操作符:AND(&&),OR(||),NOT(!)。   
           
        表达式1 AND 表达式2    and  (并且)    可用符号 && 表示
        表达式1 OR 表达式2      or    (或者)    可用符号 ||   表示
        NOT表达式1                not   (非)      可用符号  !  表示

           1  &&   2                      只有1和2的条件都真才反回真
           1  ||    2                      只有1和2的条件都假才反回假
           1   !                           这个条件非真则反回假,非假则反回真
http://www.tradeblazer.net/forum/thread-242-1-1.html
作者: zihonggu    时间: 2009-5-25 20:07:29     标题: 边看边学

边看边学,以论坛上的指标为模本,先要求读懂,再照着格式学写。
Params
        Numeric Length(26);
        Numeric Length1(12);
Vars
        NumericSeries ROCValue;//声明序列变量
        Numeric ROC;
Begin
        ROCValue = (Close - Close[Length])/Close[Length]*100; //计算赋值给序列变量      
        PlotNumeric("ROC",ROCValue);//画出指标线ROC
        PlotNumeric("AvgROC",AverageFC(ROCValue,Length1));//对ROC进行移动平均画出移动平均线
        PlotNumeric("ZeroLine",0);//在零位置处画线
End

[ 本帖最后由 zihonggu 于 2009-5-25 20:09 编辑 ]
作者: zihonggu    时间: 2009-5-27 08:50:08     标题: 今天早上起来读一个系统自带的多空系统

不知读懂了多少内容哟?先暂时记下来

Params //宣告参数保存
        Numeric Length1(16);//数值类均线参数,Length 周期数
        Numeric Length2(35);
        Numeric Length3(9);
        Numeric Lots(1);// 开仓数量参数  lot  [l?t]n. 许多, 大量    (汉音:罗次)
Vars   //宣告变量
        NumericSeries Value1;//声明序列变量的名称。 value  ([‘v?lju] 汉音:'v阿牛)n. 数值  价值, 价格 值
        NumericSeries Value2;
        Numeric HighestValue;//数值型序列变量 求最大值的值 Highest(汉音:'害一死它)
        Numeric LowestValue; //数值型序列变量求最小值的值 Lowest(汉音:'娄畏死它)
        NumericSeries Value5;
        NumericSeries RSV;
        NumericSeries KValue;
        NumericSeries DValue;
        Numeric AvgVol5;
        NumericSeries Highest1;
        NumericSeries CloseTmp1;
        NumericSeries CloseTmp2;
        NumericSeries RSIValue;
        NumericSeries PreLow;
        NumericSeries PreKValue;
        Numeric Highest33Value;
        Numeric Lowest33Value;
        NumericSeries VarTmp1;
        NumericSeries VarTmp2;
        NumericSeries ZL;
        Numeric SH;
Begin
        Value1 = XAverage(Close,Length1); //参数(16)周期的收盘价的指数平均  MA1:=EMA(CLOSE,16);XAverage 用户函数 指数平均
        Value2 = XAverage(Close,Length2); //参数(35)周期的收盘价的指数平均  MA2:=EMA(CLOSE,35);
        HighestValue = HighestFC(High,Length3); //快速计算参数(9)周期以来最高价的最高值 HIGHV:=HHV(HIGH,9);Highest求N周期的最高值
        LowestValue = LowestFC(Low,Length3); //快速计算参数(9)周期以来最低价的最低值     LOWV :=LLV(LOW,9); Lowest求N周期的最低值
        Value5 = (CLOSE-LowestValue)/(HighestValue-LowestValue)*100;//(收盘价-最低值)/(最高值-最低值)*100
        RSV = XAverage(Value5,3);        //RSV:=EMA((CLOSE-LOWV)/(HIGHV-LOWV)*100,3);
        KValue = XAverage(RSV,3); //XAverage 用户函数 指数平均  K:=EMA(RSV,3);
        DValue = AverageFC(KValue,3);                  //   D: =MA(K,3); AverageFC 快速计算简单平均
        PreKValue = KValue[1];                         //   KK:=REF(K,1);
        PreLow = Low[1];                              //    PL:=REF(LOW,1);
        AvgVol5 = Average(Vol,5);//计算五周期的成交量平均      MV5:=MA(VOL,5);
        Highest33Value = HighestFC(High,33);//快速计算33周期最高价的最高值  HIGHV1:=HHV(HIGH,330;
        Lowest33Value = LowestFC(Low,33);   //快速计算33周期高低价的最低值  LOWV1 :=LLV(LOW,33);
        VarTmp1 =((2*CLOSE+HIGH+LOW)/4 - Lowest33Value )/(Highest33Value  - Lowest33Value) * 100;
                                                     //TMP1:=(( 2*CLOSE+HIGH+LOW)/4- LOWV1) / (HIGHV1-LOWV1)*100;
        ZL = XAverage(VarTmp1,17);          //ZL:= EMA(TMP1,17); XAverage 用户函数 指数平均
        VarTmp2 = 0.667*ZL[1] + 0.333*ZL; //TMP2:=0.667* REF(ZL,1)+0.333*ZL;
        SH = XAverage(VarTmp2,2);           // SH:=EMA(TMP2,2);
        CloseTmp1 = Max(Close - Close[1], 0);//CTMP1:=MAX((CLOSE-REF(CLOSE,1),0); 取当前K线收盘价与前一根K线收盘价之中的最大值
        CloseTmp2 = Abs(Close - Close[1]);   //CTMP2:=ABS((CLOSE-REF(CLOSE,1));  取当前K线收盘价减前一根K线收盘价之差的绝对值
        RSIValue = SMA(CloseTmp1,6)/SMA(CloseTmp2,6) *100; //SMA 用户函数求移动平均 RSIV:=SMA(CTMP1,6)/SMA(CTMP2,6)*100;
        
        // Buy  平空开多
        If( (CrossOver(Close,Value1 ) && (KValue > DValue) && (ZL>SH)) Or
                 (CrossOver(Value1,Value2) && (ZL>SH) && (Vol > 1.25 * AvgVol5) && (KValue > DValue)) Or
                 (CrossOver(KValue,DValue) && (Close > Value1) && (ZL>SH)) Or
                 (CrossOver(RSIValue,70)))  //CrossOver  用户函数 求是否上穿  如果满足条件A 或者 满足条件B  或者 满足条件C  或者 满足条件D 则如下开平空开多
                                                       //Crossover   ([’krɔs’əuvə] 苦儿室欧无 ) 交叉上穿
        {
                Buy(Lots,NextOpen,True);/* 下根K线的开盘价:NextOpen (汉音:纳克死它'欧盆)该函数引用了未来数据,提供该函数只为在交易策略测试中进行价格确认,请慎用该函数。
                                                               当Delay=True,在下一个Bar执行。 BUY(数量,价格,执行时间)   delay  [di'lei]使.....*/
        }
        
        // SellShort  平多开空    //SellShort         (晒袄西我吃),卖空   sell         ( [sel] 晒袄) 卖      Short       ( [ʃɔ:t] 西我吃)



        If( (CrossOver(PreLow,Close) && (KValue > DValue ) && (SH>ZL) ) Or
                 (CrossOver(DValue,KValue) && (Close < Value1) && (Value1 < Value2)) Or
                 (CrossOver(PreKValue,KValue)&& (SH>ZL)))
        {
                SellShort(Lots,NextOpen,True);
        }
        
        // Sell   多头平仓       sell         ( [sel] 晒袄) 卖       产生一个多头平仓操作

        If(CrossOver(DValue,KValue) || Close < Value1 * 1.001)
        {
                Sell(Lots,NextOpen,True);
        }
        
        // BuyToCover   空头平仓
        If(CrossOver(KValue,DValue) || Close > Value1 * 1.001)
        {
                BuyToCover(Lots,NextOpen,True);   //BuyToCover (音: 罢土'卡无儿) 产生一个空头平仓操作
        }
End

[ 本帖最后由 zihonggu 于 2009-5-28 15:26 编辑 ]
作者: zihonggu    时间: 2009-5-27 13:19:39     标题: 有二个问题:

一。NextOpen  该函数引用了未来数据,提供该函数只为在交易策略测试中进行价格确认,请慎用该函数。
那要是做实盘,是不是就不好用这个函数了吗?
二。 TB中只有四个交易开平仓指令。 要是我不想平仓反手。 想只开多 或只开空。 那怎么办? 用什么指令?

希望朋友们解答指点一下。 谢谢!
作者: 只求薄利    时间: 2009-5-27 14:08:27     标题: 回复 #45 zihonggu 的帖子

你写两个开仓手法、条件完全相同的系统,一个只做多,一个只做空,分别运行两个图表,就行了

只有这样才可以在同一个系统模型下,同一个品种多空同时持仓
作者: zihonggu    时间: 2009-5-27 23:02:54     标题: 复习

TB里面的数据分为
字符串类型       String            (汉音:丝准应)               
数值型             Numeric         (发音[ nju:'merik  尼马瑞k])                        
布尔型             Bool               (汉音:布尔)
以上三种型都各自包含 序列型 如:数值序列型,字符串序列型,布尔序列型
      序列型的数据在每根K线上都各自有自己的一个值的

[ 本帖最后由 zihonggu 于 2009-5-28 15:34 编辑 ]
作者: zihonggu    时间: 2009-5-28 12:29:08     标题: C语言初学者的好去处

开始学了几天TB软件的使用和公式编写。感觉我确实太菜太菜了。我要学的东西太多太多。要想学会TB公式编写还非得要点C语言基础才行。今天找到一个学习C语言的好去处。计划在学习TB的过程中学点C语言基础。
http://www.xin3721.com/eschool/21hulian/level/C2/index.html

初学者学习C语言的视频网页


http://www.xin3721.com/eschool/21hulian/level/C2/index.html

[ 本帖最后由 zihonggu 于 2009-5-28 12:34 编辑 ]
作者: 落尽深红    时间: 2009-5-29 09:46:27

好贴,从头到尾都学习了一遍。

请教一个问题:怎样区别sell和selshort的用法?

比如,我在100处有一个多头仓,我要在150处平多头仓,然后再200处开空头仓怎么写命令?如果在200处平多头同时开空头,又该怎么写?
作者: zihonggu    时间: 2009-5-30 09:05:03

不好意思,以我目前的水平我还不能自已编写稍微复杂一点点的交易指令,我会抓紧时间学习的。
希望坛子中的老大能回复50楼的问题。
作者: nopain    时间: 2009-5-30 11:53:54     标题: 回复 #50 落尽深红 的帖子

一个是平多头仓位,
一个是开空头仓位,如果这个时候有多头仓位,也会先平掉。

你的例子就是价格到了150Sell,到了200SellShort
作者: 落尽深红    时间: 2009-5-30 22:50:14

明白了,谢谢nopain老大!

这也是很多人说的:在TB一张超级图表里不能同时拥有对冲的头寸,这个意思。因为sellshort在开空仓的同时,平掉了多头仓位。
作者: zihonggu    时间: 2009-5-31 14:38:13

学习写交易指令
第一阶段的学习 我只能模仿,今天将TB软件系统自带的 卡夫曼自适应均线指标 改写成交易指令
//------------------------------------------------------------------------
// 简称: zx05
// 名称: 调整移动平均线
// 类别: 交易指令
// 类型: 其他
// 输出:
//------------------------------------------------------------------------
Params
        Numeric EffRatioLength(10);//比率参数周期
        Numeric FastAvgLength(2);  //快线参数
        Numeric SlowAvgLength(30); //慢线参数
         Numeric Lots(1);           /*Numeric entryLots; // 开仓数量   
                                            entry  ([ 'entri]汉音:恩垂)n.进入,入口处;lots ([l?t]汉音:罗吃)n..许多 大量; EntryLots (汉音:恩垂罗吃)开仓数量*/

Vars
        NumericSeries AMAValue;    //变量名 (阿妈'V阿牛) AMA:均线类型的变量
        NumericSeries MyProfit;    //profit  (['profit]汉音:坡肥它)n.利润, 收益, 赢利 ; MyProfit  我的利润
   
Begin
        AMAValue=AdaptiveMovAvg(Close,EffRatioLength,FastAvgLength,SlowAvgLength);        /*用户函数AdaptiveMovAvg (价,比率,整型快速周期,整型慢速周期)适应的平均线*/

        If(CrossOver(Low,AMAValue))   //条件判断(最低价上穿卡夫曼自适应平均线)
                     
        Buy(Lots,C);    //以盘中最新价平空开多仓 (在当根Bar没走完时 我对C价的理解就是最新价,不知在TB中理解对否?)         
        
        If(CrossUnder(AMAValue,High)) //条件判断(最高价下穿卡夫曼自适应平均线)
                        
        SellShort(lots,C);   //以盘中最新价平多开空仓
     
        MyProfit = AvgEntryPrice*0.1*ContractUnit*BigPointValue;   //开仓均价回落10% 乘 合约标的数量 乘 合约一个整数点的价值 等于利润
   
         SetPercentTrailing(MyProfit ,0.2,True);  //追踪止赢  利润回落20%止赢


End



//------------------------------------------------------------------------
// 编译版本        GS2004.06.12
// 用户版本        2009/05/31 00:06
// 版权所有        zihonggu
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
学习笔记   函数  AvgEntryPrice  开仓均价
                       ContractUnit   合约标的数量
                       BigPointValue   一个整数点的价值
                      SetPercentTrailing    产生一个平仓止赢和操作

[ 本帖最后由 zihonggu 于 2009-5-31 14:54 编辑 ]
作者: zihonggu    时间: 2009-5-31 15:05:21     标题: 问一个问题:

MyProfit = AvgEntryPrice*0.1*ContractUnit*BigPointValue;   //开仓均价回落10% 乘 合约标的数量 乘 合约一个整数点的价值 等于利润
   
SetPercentTrailing(MyProfit ,0.2,True);  //追踪止赢  利润回落20%止赢

第一句: 我的利润=(赋值)的表达式中  是直接写   AvgEntryPrice    ContractUnit     BigPointValue 这三个函数吗? 还是填进去实际的数字如 14790 (价)     5(一手合约为5吨)   5(行情跳一点为5元币)?

第二句  懂到的, 就是“ 我的利润回落 ” 当这个条件为真时, 系统就执行一个平仓止赢的操作。

希望坛中老大帮我解答第一句的问题。这句是我在论坛上抄的写法,没懂 代不代入实际的数字?

谢谢 !谢谢!! 谢谢!!!
作者: nopain    时间: 2009-5-31 15:50:48     标题: 回复 #55 zihonggu 的帖子

1、直接写函数名就可以了。
作者: zihonggu    时间: 2009-5-31 23:17:59

谢谢 nopain 管理 员老大   你的工作真辛苦! 你还觉得不苦不烦, 老大人品真好!
作者: zihonggu    时间: 2009-6-1 00:00:41     标题: 复习变量

Vars   //声明(告诉)程序中存在的可以用的变量
声明变量的语法:  变量类型+空格+变量名+分号

NumericSeries   Blm; //声明序列变量名Blm

变量名必须以字母开头。
变量名只能由字母,数字和下划线组成,而不能包含空格,标点符号,运算符等其它符号。如:NumericSeries  Blm_1 ;
变量名不能与系统中的关键字(保留字)名称相同。如: NumericSeries if@for; if@for用作变量名就是错的。
变量名不能与系统中的库函数名称相同。

要点:变量名在系统限制范围内是可以随便取名的。但不能用系统中的关键字(保留字)
http://www.tradeblazer.net/product/language3.html

    NumericSeries MyVal1(0);     //定义数值型序列变量MyVal1,默认值为0;NumericSeries  (发音[nju:'merik 'siəri:z] 尼马瑞k舍瑞z),
    Numeric       MyVal2(0);     //定义数值型变量MyVal2,默认值为0;Numeric (发音[nju:'merik  尼马瑞k),
    Bool          MyVal3(False); //定义布尔型变量MyVal3,默认值为False;  Bool (汉音:布尔)
   String        MyVal4("Test");//定义字符串变量MyVal4,默认值为Test。  String (汉单:死准)

序列变量定义有三种类型:
    NumericSeries           MyNumSVal(0);
    BoolSeries          MyBoolVal(False);
    StringSeries          MyStrVal("");
为了运算速度和少占内存:强烈建议只将需要进行回溯的变量定义为序列变量。

[ 本帖最后由 zihonggu 于 2009-6-1 00:39 编辑 ]
作者: TBlzx    时间: 2010-3-9 09:30:09     标题: 回复 57# zihonggu 的帖子

怎么没有了呢?继续啊
作者: mmc29170    时间: 2010-7-22 11:31:47

真不错,坚持,以后跟你学了
作者: fengfeng    时间: 2010-8-12 15:53:25

楼主的精神值得学习
作者: cug02204105    时间: 2010-8-14 15:04:00

你要是看NBA的话,BLAZER应该能认出来啊、、。。NBA 里不是有个Portland blazer队(波特兰开拓者队)
作者: dushuli    时间: 2010-8-18 12:49:04

问一下这一句:MyProfit = AvgEntryPrice*0.1*ContractUnit*BigPointValue;   //开仓均价回落10% 乘 合约标的数量 乘 合约一个整数点的价值 等于利润
我想计算一下开仓后未平仓之前最大的盈利是多少,怎么算!你上一句,我没看懂 谢谢解答
作者: 舵手trader    时间: 2010-8-19 15:30:24

继续努力啊
作者: chenczx    时间: 2010-12-18 21:53:52

不错加油
作者: 往往    时间: 2010-12-19 20:19:50

楼主的精神很强大!!!!
作者: 尤德豆    时间: 2011-1-21 19:13:14

关注您,坚持下去,祝你成功。
作者: zihonggu    时间: 2011-10-26 12:41:54

一年过去了,学习编程仍然没有成功5555555。
不过今年有五个月的时间都在忙房屋装修,连期货都没有做。
作者: zihonggu    时间: 2012-4-14 15:52:08

本帖最后由 zihonggu 于 2012-4-14 16:05 编辑

如今我住上了百多平米的新房很是舒心. 重返市场继续期货游戏. 总想学TB.就是学不会.还在继续用文华财经看盘. 我何时才能踏入TB的殿堂,真正做到自动化程式交易呢.
今天学这个词:
open[-1] //下一个开盘价

作者: 天崖    时间: 2012-4-14 17:19:05

不错加油~~~~~~~不错加油~~~~~~~~~~~~~~~
作者: livemore    时间: 2012-4-17 11:06:50

支持楼主,紧跟楼主脚步,一起学习一起进步!
作者: 天崖    时间: 2012-4-18 04:56:25

支持楼主,紧跟楼主脚步,一起学习一起进步
作者: trqqlovezlm    时间: 2012-4-30 15:46:12

楼主精神太强大了,50后还在充实自己。我们这些80 90后真该好好反省。赞!
作者: liq77    时间: 2012-5-1 08:34:51

楼主强大!支持一个!
作者: bahuang    时间: 2012-8-23 09:04:55

向楼主致敬
作者: 倔强    时间: 2012-9-2 17:44:29

此贴一定要火
作者: sytsyt    时间: 2015-8-19 00:21:21

紧跟楼主脚步,一起学习.




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