设为首页收藏本站

 找回密码
 注册
查看: 8912|回复: 3
打印 上一主题 下一主题

Dual Thrust模型的TB代码 [复制链接]

Rank: 1

精华
0
UID
193025
积分
8
帖子
3
主题
3
阅读权限
10
注册时间
2014-8-28
最后登录
2015-2-21
跳转到指定楼层
1#
发表于 2015-1-13 21:40:08 |只看该作者 |倒序浏览
参考了论坛中的多人的代码,经过了自己的一些优化。供大家参考。

//------------------------------------------------------------------------
// 简称: AA_DualThrust
// 名称: DualThrust
// 类别: 公式应用
// 类型: 用户应用
// 输出:YAQ
//------------------------------------------------------------------------

Params
        Numeric KUp(0.50); //上轨系数
        Numeric KDown(0.50); //下轨系数
        Numeric DayUp(1); //上轨观察天数
        Numeric DayDown(1); //下轨观察天数
        Numeric Lots(1); //合约手数
        Numeric Offset(0); //委托偏移跳数

Vars
        Numeric RangeUp(0); //上轨幅度
        Numeric RangeDown(0); //下轨幅度
        //Numeric BuyTrig(0);
        //Numeric SellTrig(0);
        Numeric HH;
        Numeric LL;
        Numeric HC;
        Numeric LC;
        Numeric i_Offset; //委托偏移价格
        Numeric BuyPosition; //买入价格
        Numeric SellPosition; //卖出价格
        Numeric i; //记次容器

Begin

        //--- 判断图表中是否有足够天数的数据 Begin ---
        If(BarStatus == 0)
                {
                        SetGlobalVar(0,0); //第一个全局变量记录当前BAR的DAY值
                        SetGlobalVar(1,0); //第二个全局变量记录从第一根BAR到当前BAR经历过的天数
                }
        If(Day()<>GetGlobalVar(0)) //如果当前BAR的DAY值不等于前一根BAR的DAY值,则表明又增加一天
                {
                        SetGlobalVar(0,Day()); //记录下当前BAR的DAY值
                        SetGlobalVar(1,GetGlobalVar(1)+1);// 将经历过的天数加1并保存
                }
       
        Commentary(text(GetGlobalVar(1))); // 测试语句,可删除
        If(GetGlobalVar(1) < 1 + Max(DayUp,DayDown)) Return; // 如果全部数据天数不够,则返回
        //致此,图表数据至少跨越两天
        //--- 判断图表中是否有足够天数的数据 End -----
       
       
        i_offset = Offset*MinMove*PriceScale; //根据委托偏移跳数取委托偏移价格       
       
        //--- 取上轨幅度 Begin ---
        HH = HighD(1);
        HC = CloseD(1);
        LL = LowD(1);
        LC = HC;//CloseD(1);
        For i = 2 to DayUp
                {
                        HH = Max(HH,HighD(i));
                        HC = Max(HC,CloseD(i));
                        LL = Min(LL,LowD(i));
                        LC = Min(LC,CloseD(i));
                }
        RangeUp = KUp * Max(HH-LC,HC-LL);
        //--- 取上轨幅度 End ---
       
        //--- 取下轨幅度 Begin ---
        HH = HighD(1);
        HC = CloseD(1);
        LL = LowD(1);
        LC = HC;//CloseD(1);
        For i = 2 to DayDown
                {
                        HH = Max(HH,HighD(i));
                        HC = Max(HC,CloseD(i));
                        LL = Min(LL,LowD(i));
                        LC = Min(LC,CloseD(i));
                }
        RangeDown = KDown * Max(HH-LC,HC-LL);
        //--- 取下轨幅度 End ---       
       

        BuyPosition = OpenD(0) + RangeUp;
        SellPosition = OpenD(0) - RangeDown;
        PlotNumeric("BuyPosition",BuyPosition);
        PlotNumeric("SellPosition",SellPosition);
       

        If(MarketPosition == 0)
        {
                If(High >= BuyPosition)
                {
                        Buy(lots,Max(Open,BuyPosition) + i_offset);
                        Return;
                }
                       
                If(Low <= SellPosition)
                {
                        SellShort(lots,Min(Open,SellPosition) - i_offset);
                        Return;
                }
        }

        If(MarketPosition == -1)
        {
                If(High >= BuyPosition)
                {
                        Buy(lots,Max(Open,BuyPosition) + i_offset);
                        Return;
                }
        }

        If(MarketPosition == 1)
        {
                If(Low <= SellPosition)
                {
                        SellShort(lots,Min(Open,SellPosition) - i_offset);
                        Return;
                }
        }       
       
       
End

//------------------------------------------------------------------------
// 编译版本        GS2010.12.08
// 用户版本        2015-01-13 00:29:44
// 版权所有        yaq2012
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

Rank: 5Rank: 5

精华
0
UID
12330
积分
838
帖子
254
主题
15
阅读权限
60
注册时间
2010-6-16
最后登录
2017-4-25
2#
发表于 2015-1-15 19:27:07 |只看该作者
源码一定要支持!顶!

使用道具 举报

Rank: 2

精华
0
UID
192816
积分
107
帖子
61
主题
8
阅读权限
30
注册时间
2014-8-24
最后登录
2017-7-11
3#
发表于 2015-1-22 22:45:03 |只看该作者
拉来研究研究,多谢楼主无私分享

使用道具 举报

Rank: 2

精华
0
UID
190860
积分
64
帖子
50
主题
0
阅读权限
30
注册时间
2014-7-19
最后登录
2015-5-14
4#
发表于 2015-1-22 22:56:33 |只看该作者
这个模型基本上不行,国内各种翻版,用烂了

使用道具 举报

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

bottom

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

GMT+8, 2024-5-1 08:29

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部