2评论

0收藏

给EA增加一个新的功能测试的时候发现没好用,请大佬帮忙看下

avatar benkeputuo | 1119 人阅读 | 2 人评论 | 2020-06-16



//写这个是为了当信号出现后进场的单子止损掉后,再进场的,在满足进场条件下,第二单半仓,第三单在第二单基础上再减半(变量在程序中都有声明的这里不写了)


int _GetLastError = 0, _OrdersTotal = OrdersTotal();
        if(是否多次开仓!=0)
        {
         
   for(int z=_OrdersTotal-1; z>=0; z--)
{
          //多单止损
           if(OrderType() == OP_BUY)
           {
            if(Bid<=OrderOpenPrice()-止损点数*Point)
            {
               
               
               if(Close[0] )//止损被扫掉了,但是当时不进场,等当前时间周期K线走完再进场
               {
                 i++; //为了计数,当第三次止损并且符合进场条件不进场
                 if(A>0&& C>0 )//这是下单条件
                 {
                   if(i<=2)
                   {
                     if(是否开启半仓!=0) //这是一个开半仓的一个开关,关掉就是按照设定的开仓
                     {
                        if(i==1)
                        {
                           lots=lots/2;
                        }else{
                           lots=(lots/2)/2;
                        }
                     }
                     printf("多单");
                     bool OPENBUY=OrderSend(Symbol(),OP_BUY,lots,Ask,5,0,0,"buy",_MagicNumber,0,Green);
                     return;
                   }
                 }
               }
            }
           }
           //如果空单止损
           if(OrderType() ==  OP_SELL)
           {
            if(Ask>=OrderOpenPrice()+止损点数*Point)
            {
               
               if(Close[0]  )
               {
                  i++;
                  if(A<0 && C<0 )//这是下单条件
                 {
                   if(i<=2)
                   {
                     if(是否开启半仓!=0)
                     {
                        if(i==1)
                        {
                           lots=lots/2;
                        }else{
                           lots=(lots/2)/2;
                        }
                     }
                     printf("空单");
                     bool OPENSELL=OrderSend(Symbol(),OP_SELL,lots,Bid,5,0,0,"sell",_MagicNumber,0,Red);
                     return;
                   }
                 }
               }
            }
           }
        }
}

""
还没有人打赏,支持一下

评论|共 2 个

benkeputuo

发表于 2020-6-16 03:44:02 | 显示全部楼层

新的K线开始下单用这个条件是不是也行:
Time[0]-TimeCurrent()==0

benkeputuo

发表于 2020-6-16 22:37:18 | 显示全部楼层

今天运行了一天发现了不少问题:
首先EA不能自动下单了
其次里面计数,当满足指标时进场第几单,计数有问题
要加上那个货币兑,魔术号要一样(区分货币兑和时间周期)
判断止损的条件可能有问题,我是小白,没有写过只有一点写代码的基础
应该还要加上判断当前货币兑当前周期是否有新单进场,如果有证明信号有中断并且新出来的这个信号已经下了一单。在这种信号中断后是不能再重新补仓的。
求大神大概给一个框架。

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

EA之家评论守则