设为首页收藏本站

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

波动突破系统,遇到问题,请教大侠们 [复制链接]

Rank: 3Rank: 3

精华
0
UID
52470
积分
182
帖子
91
主题
30
阅读权限
40
注册时间
2011-7-11
最后登录
2014-4-24
跳转到指定楼层
1#
发表于 2012-7-25 23:08:58 |只看该作者 |倒序浏览
本帖最后由 skykisser 于 2012-7-25 23:10 编辑

自己写了一个跨周期调用ATR的波动突破系统,遇到两个问题。1,信号消失,不知道哪里写的不对了。2,我的入市信号是,无论市场上涨还是下跌相对于前一天收盘价0.7倍的最近5天的ATR,入市。但是信号出来仔细看了看并不是这样,我用的 highline=CloseD[1]+ATREntryset*ATREntryValue;  Lowline=CloseD[1]-ATREntryset*ATREntryvalue;不知道这样写对不对。

代码如下:
//------------------------------------------------------------------------
// 简称: ATR突破
// 名称:
// 类别: 公式应用
// 类型: 用户应用
// 输出:
//------------------------------------------------------------------------

Params

                             Numeric length1(5);
                Numeric Length2(20);
                Numeric Length3(50);
                             Numeric ATREntrySet(0.7);
                Numeric ATRExitSet(3);
                Numeric offset(3);
                Numeric TimeFrame(1440);
                Numeric BarsBack(1);


Vars

                Numeric Myentryprice;
                Numeric ATRFilterValue;
                            Numeric ATREntryValue;
                Numeric ATRExitValue;
                NumericSeries MtATR;
                Numeric oATRFilter;
                Numeric oATREntry;
                Numeric oATRExit;
                             NumericSeries highline;
                             NumericSeries Lowline;
                Numeric i_offset;

Begin
                i_offset = offset*MinMove*PriceScale;
               
                MtATR(TimeFrame,BarsBack,Length3,oATRFilter);
               
                MtATR(TimeFrame,BarsBack,Length1,oATREntry);
               
                MtATR(TimeFrame,BarsBack,Length2,oATRExit);
               
                ATRFilterValue=oATRFilter;
               
                ATREntryValue=oATREntry;
               
                ATRExitValue=oATRExit;
        
        highline=CloseD[1]+ATREntryset*ATREntryValue;
               
        Lowline=CloseD[1]-ATREntryset*ATREntryvalue;
        
        PlotNumeric("Highline",Highline);
                PlotNumeric("Lowline",Lowline);

                If (MarketPosition == 0 && (ATREntryValue>0.6*ATRFilterValue))
               
                {
                        If(Open>highline)
               
                        {Buy(1, Open+i_offset);
                         Myentryprice = Open;
                        }
                       
        If(Open<Lowline)
               
                        {Sellshort(1, Open-i_offset);
                        Myentryprice = Open;
                       
                        }
                }
               
                If (MarketPosition == 1)
               
                {
                {
                        If(Open<myentryprice-0.5*ATRExitValue)
                        Sell (1, Open+i_offset);
                       
                }
               
                If (MarketPosition == -1)
               
                {
                        If(Open>myentryprice+0.5*ATRExitValue)
                        BuyToCover(1,Open-i_offset);
                }
                }
End

Rank: 3Rank: 3

精华
0
UID
21521
积分
210
帖子
34
主题
3
阅读权限
40
注册时间
2010-12-14
最后登录
2016-9-1
2#
发表于 2012-7-26 05:34:56 |只看该作者
慎用 CloseD这之类的函数,还是自己编写程序取前一交易日的收盘价,写完后再试试看还有没有问题,呵呵

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
12330
积分
838
帖子
254
主题
15
阅读权限
60
注册时间
2010-6-16
最后登录
2017-4-25
3#
发表于 2012-7-26 06:37:50 |只看该作者
CloseD应该使用圆括号,不能用方括号:例如CloseD(1)表示得到昨日收盘价。

使用道具 举报

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

bottom

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

GMT+8, 2024-4-27 14:19

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部