设为首页收藏本站

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

请教 版主在回测中 使用序列变量 防止重复开仓 问题 [复制链接]

Rank: 1

精华
0
UID
246449
积分
24
帖子
15
主题
7
阅读权限
10
注册时间
2017-1-23
最后登录
2019-2-22
跳转到指定楼层
1#
发表于 2018-12-4 22:54:20 |只看该作者 |倒序浏览
在 22点左右开始测试的,突然就不开仓的了,周末测试的时候还好好的, 现在测试只有刷新 的时候 图表会显示开单信号,但过一会 信号又没有的了 ,完全搞不懂 怎么回事的了,,请版主解答一下的 谢谢,


Vars
     NumericSeries Ssp;
         NumericSeries Bsp;
         NumericSeries Btp;
         NumericSeries Stp;
         Numeric aa(1000000);
         Numeric bb;
         NumericSeries mtaa(0);
         NumericSeries mtbb(0);
         Numeric i;
         
Begin
     
       
     If(Date==Date && T>=0.0935 && T<0.14)//开盘后9:35 开始计算数据
         {
         For i=2 To 1000
         {
         If(high[i]>bb)
         bb=High[i];     //找出当前序号1的Bar 到开盘时间9点 之间 所有Bar中的最高价。
         If(Low[i]<aa)
         aa=Low[i];      //找出当前序号1的Bar 到开盘时间9点 之间 所有Bar中的最低价。
         If(T[i]<=0.0900)  循环到开盘时间9点 ,跳出循环
         Break;
         // PlotString("f",Text(mtbb));
         }
         If(Close[1]>bb && mtbb==0 && MarketPosition()==0 && Open[0]-Low[1]<30) // 如果没有订单,且当前 1号Bar收盘价  大于之前找出的最高价,止损值小于30点,开多单,
         {
       
         Buy(1,Open);
         Bsp=Low[1];
         Btp=Open[0]+30;
         mtbb=1;  // 重置序列变量,防止重复开仓。
         
         }
         Else If( Close[1]<aa && mtaa==0 && MarketPosition()==0 && High[1]-Open[0]<30)
         {
       
         SellShort(1,Open);
         Ssp=High[1];
         Stp=Open[0]-30;
         mtaa=1;
         }
        If((MarketPosition()==1 && Close<Bsp-3)|| Close>=Btp)
        {
        Sell();
       
        }
       
    If((MarketPosition()==-1 && Close>Ssp+3) || Close>=Stp)
        {
        BuyToCover();
       
        }
     }
         
If(T>=0.1451 && MarketPosition!=0)
{
Sell();
mtbb=0;
BuyToCover();
mtaa=0;

}

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

bottom

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

GMT+8, 2024-4-20 20:23

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部