设为首页收藏本站

 找回密码
 注册
楼主: zihonggu
打印 上一主题 下一主题

我从零开始学习TradeBlazer的过程 [复制链接]

Rank: 5Rank: 5

精华
0
UID
371
积分
854
帖子
66
主题
11
阅读权限
60
注册时间
2007-9-18
最后登录
2019-3-31
41#
发表于 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 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
下定决心,不怕牺牲,排除万难,去争取胜利。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
371
积分
854
帖子
66
主题
11
阅读权限
60
注册时间
2007-9-18
最后登录
2019-3-31
42#
发表于 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 编辑 ]
下定决心,不怕牺牲,排除万难,去争取胜利。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
371
积分
854
帖子
66
主题
11
阅读权限
60
注册时间
2007-9-18
最后登录
2019-3-31
43#
发表于 2009-5-27 13:19:39 |只看该作者

有二个问题:

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

希望朋友们解答指点一下。 谢谢!
下定决心,不怕牺牲,排除万难,去争取胜利。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
8
UID
2300
积分
66650
帖子
1956
主题
168
阅读权限
200
注册时间
2008-9-8
最后登录
2009-11-11
44#
发表于 2009-5-27 14:08:27 |只看该作者

回复 #45 zihonggu 的帖子

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

只有这样才可以在同一个系统模型下,同一个品种多空同时持仓

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
371
积分
854
帖子
66
主题
11
阅读权限
60
注册时间
2007-9-18
最后登录
2019-3-31
45#
发表于 2009-5-27 23:02:54 |只看该作者

复习

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

[ 本帖最后由 zihonggu 于 2009-5-28 15:34 编辑 ]
下定决心,不怕牺牲,排除万难,去争取胜利。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
371
积分
854
帖子
66
主题
11
阅读权限
60
注册时间
2007-9-18
最后登录
2019-3-31
46#
发表于 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 编辑 ]
下定决心,不怕牺牲,排除万难,去争取胜利。

使用道具 举报

Rank: 2

精华
0
UID
4441
积分
67
帖子
17
主题
1
阅读权限
30
注册时间
2009-5-19
最后登录
2009-12-17
47#
发表于 2009-5-29 09:46:27 |只看该作者
好贴,从头到尾都学习了一遍。

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

比如,我在100处有一个多头仓,我要在150处平多头仓,然后再200处开空头仓怎么写命令?如果在200处平多头同时开空头,又该怎么写?

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
371
积分
854
帖子
66
主题
11
阅读权限
60
注册时间
2007-9-18
最后登录
2019-3-31
48#
发表于 2009-5-30 09:05:03 |只看该作者
不好意思,以我目前的水平我还不能自已编写稍微复杂一点点的交易指令,我会抓紧时间学习的。
希望坛子中的老大能回复50楼的问题。
下定决心,不怕牺牲,排除万难,去争取胜利。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
49#
发表于 2009-5-30 11:53:54 |只看该作者

回复 #50 落尽深红 的帖子

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

你的例子就是价格到了150Sell,到了200SellShort

使用道具 举报

Rank: 2

精华
0
UID
4441
积分
67
帖子
17
主题
1
阅读权限
30
注册时间
2009-5-19
最后登录
2009-12-17
50#
发表于 2009-5-30 22:50:14 |只看该作者
明白了,谢谢nopain老大!

这也是很多人说的:在TB一张超级图表里不能同时拥有对冲的头寸,这个意思。因为sellshort在开空仓的同时,平掉了多头仓位。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-2 08:17

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部