EA不会在多对上运行,需要帮助 - 页 4

 
whroeder1 2016.12.14 03:35|74.162.37.113ban EN
Keith Watford: 循环查看未结订单,只计算有EA的神奇数字和图表符号的交易。
没错,而这不是你最后一个帖子 的作用。
 
我已经删除了你的另一个话题,因为它和这个话题是同一个主题。我已经复制了WHRoeder的评论,并在删除之前粘贴在这里。
 
Keith Watford:
我已经删除了你的另一个话题,因为它和这个话题是同一个主题。我复制了WHRoeder的评论,并在删除之前将其粘贴在这里。
好的,这很好,那么对于循环,它应该是类似于关闭订单的框架,如果是这样,我应该让程序增加或减少订单?
 

   int buy_count=0;
   int sell_count=0;

   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
        {
         if(OrderType()==OP_BUY)
           {
            buy_count++;
           }
         if(OrderType()==OP_SELL)
           {
            sell_count++;
           }
        }
     }

类似这样的事情

我总是倒数,除非我有特定的理由不这样做。

 
  1. 你现在有一个OrderSelect 循环,对MN和符号进行过滤。
  2. 现在 用什么MN进行交易?
 
Matt_Townsend:
好吧,这很好,那么对于循环,它应该是类似于平仓订单的框架,如果是这样的话,我应该让程序对订单进行计数还是减少?
所以我现在在我的平仓函数和订单结束函数 上都有一个循环函数,但它仍然不是独立交易。虽然它仍在打开交易,并根据设定的参数关闭,正如我在策略测试器中看到的那样,尽管它不能在实时演示中的多个图表上工作。
 
Matt_Townsend:
所以我现在在我的订单关闭功能和订单结束功能 上都有一个循环功能,但它仍然不能独立交易。尽管它仍在打开交易,并在设定的参数上关闭,正如我在策略测试器中看到的那样,尽管它不会在实时演示中的多个图表上工作。

每种EA都有不同的神奇数字吗?

请展示你现在使用的循环。

 
Keith Watford:

每个EA都有不同的神奇数字吗?

显示你现在使用的循环。

for(int i=OrdersTotal();i<=0;i--)
      {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) break;
      if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
    //--- Check for buy order
       if(fastma > slowma)
        {
         if(OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",MagicNumber,0,Blue))
            Print("Buy order opened :", OrderOpenPrice());
         else
            Print("Order failed to open : ", GetLastError());      
         return(0);
        }
     //--- Check for sell order          
       if(fastma < slowma)
        {
         if(OrderSend(Symbol(),OP_SELL,Lots,Bid,10,0,0,"",MagicNumber,0,Red))
            Print("Order opened : ", OrderOpenPrice());                
         else
            Print("Order failed to open : ", GetLastError());
         return(0);        
        }
        break;
      }

这里是订单结束的循环

正如我把MN作为一个外部int,所以我可以在我把EA放在的每个图表上改变它。
 
首先你有
      if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
这是正确的
但你
         ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",0,0,Blue);
这是不正确的。而且你忽略了我的问题。


然后你悄悄地 把发送改为
         if(OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",MagicNumber,0,Blue))
现在是正确的。
但你悄悄地 打破了选择循环。
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) break;
      if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
这是不对的。

在存在多个订单的情况下(一个EA多个图表,多个EA,手动交易)。
 
whroeder1:
首先,你有
      if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
这是对的
但你
         ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",0,0,Blue);
这不是。

然后你悄悄地 把发送改为
         if(OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",MagicNumber,0,Blue))
哪一个是正确的
并打破选择循环。
      if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
哪一个不是。
那么,我是不是根本就不应该在循环中设置继续或中断?
原因: