设为首页收藏本站

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

新手编程完成,但是回测全都是0,请求老师解答 [复制链接]

Rank: 1

精华
0
UID
241292
积分
6
帖子
4
主题
2
阅读权限
10
注册时间
2016-10-5
最后登录
2016-11-2
跳转到指定楼层
1#
发表于 2016-10-24 16:41:33 |只看该作者 |倒序浏览
Params
    Numeric MALength1(300);                                  //过滤器短期均线值
    Numeric MALength2(600);                                  //过滤器长期均线值
    Numeric MALength3(60);                                    //系统信号均线值
Numeric ATRLength(10);                                //ATR的长度值
         Numeric ProtectStopATRMulti(1);           //保护性止损的ATR乘数
         Numeric TrailStopATRMulti(2.5);              //跟踪止损的ATR乘数
         Numeric Lots(1);                                      //手数
    Numeric ProfitStopATRMulti(3);         //止盈ATR乘数
Vars
         NumericSeries MA1(0);                               //过滤器短期均线
NumericSeries MA2(0);                               //过滤器长期均线
NumericSeries MA3(0);                               //系统信号均线
         NumericSeries ATR(0);                                //ATR
NumericSeries N;                                   //N
NumericSeries MyEntryPrice;                   //开仓价格
NumericSeries MyExitPrice;                      //平仓价格
 
Begin
 
         // 集合竞价和小节休息过滤
         If(!CallAuctionFilter()) Return;        
 
MA1 = AverageFC(C,MALength1);
MA2 = AverageFC(C,MALength2);
MA3 = AverageFC(C,MALength3);
        
ATR = AvgTrueRange(ATRLength);
 
If(MarketPosition ==0 )
//当300,600均线多头排列,上一根K线上穿60均线时,以当前K线开盘价做多1手
         {
                   If(Close[1] > MA1 and MA1 > MA2 and Close[2]< MA3 and Close[1] > MA3)
                   {
                            Buy(Lots,Open);
                            /
                            N = ATR[1];
            MyEntryPrice=Open;
                   }
         }
        
If(MarketPosition == 1 and BarsSinceEntry > 0)
//持有多单时,止盈空间3ATR,止损空间1ATR
         {
        
                   if(High>= MyEntryPrice+ ProfitStopATRMulti* N)
                   {
                            MyExitPrice= MyEntryPrice+ ProfitStopATRMulti* N;
            If(Open> MyExitPrice)  MyExitPrice=Open;
            Sell(Lots, MyExitPrice);
                   }
                   //基于ATR的止盈
                 Else if(Low<= MyEntryPrice - ProtectStopATRMulti*N)

              {
            MyExitPrice= MyEntryPrice - ProtectStopATRMulti*N;
            If(Open< MyExitPrice)  MyExitPrice=Open;
Sell(Lots, MyExitPrice);
                   }
         }
 
    End 
请问老师,编译完成,在K线图上可以显示开仓平仓位置,为什么回测结果都是0,谢谢老师了!

Rank: 6Rank: 6

精华
0
UID
208212
积分
2006
帖子
103
主题
24
阅读权限
70
注册时间
2015-5-2
最后登录
2019-6-18
2#
发表于 2016-10-25 10:35:35 |只看该作者
If(Close[1] > MA1[1] and MA1[1] > MA2[1] and Close[2]< MA3[1] and Close[1] > MA3[1])

[1]很多地方得注意加这个

使用道具 举报

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

bottom

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

GMT+8, 2024-5-3 14:42

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部