专家顾问 - 杂项问题 - 页 41

 

愚蠢的是,今天我试了几次旧版本的EA,它关闭了所有未结订单。
现在我很困惑。

---

但无论如何,我使用MarketInfo()而不是简单的Bid和Ask。

 

通常我尝试所有的方法来发现什么是最有效的。

我有一个脚本,在需要时关闭所有订单。

         for(int order=0; order<=OrdersTotal()-1; order++)
           {
            bool selected=OrderSelect(order,SELECT_BY_POS);
              {
               if(selected==1)
                 {
                  bool close=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,clrNONE);
                 }
              }
           }
但正如你所看到的,没有任何东西被检查,所以它需要手动执行,你可以直观地验证订单是否被关闭。
 
whroeder1:
  1. 在有多个订单的情况下(一个EA多个图表,多个EA,手动交易)。
Max Enrik: RefreshRates() 我不明白我可以把它放在哪里。
你问了这个问题,你得到了答案,你就会忽略它,再问一次。没有下来,没有RefreshRates。

 
whroeder1:
你问这个问题,你得到了答案,你就会忽略它,然后再问。没有下降,没有刷新率。

我为什么要再问一次。对不起,我没有理解下面的句子。( 我无法翻译。 )

  • 如果你想使用预定义变量(Bid/Ask)OrderClosePrice() 来代替,你必须在睡眠后和多次服务器调用之间刷新Rates
 

@Marco

在我替换之后,日元没有显示正确的价格,也没有打开订单。

 
你有代码片断吗。
 
Marco vd Heijden:
你有代码片断吗。

给你。

void buyorder()
 {
  Ticket = OrderSend( _Symbol, OP_BUY, lotsize, MarketInfo(OrderSymbol(),MODE_BID), slippage, sl, tp, "trade panel", magic, 0, clrRed );
  return;
 }
 
Ticket = OrderSend( _Symbol, OP_BUY, lotsize, MarketInfo(OrderSymbol(),MODE_BID), slippage, 
  1. 不能 使用任何交易函数,除非你选择了一个订单。
  2. 检查你的返回代码什么是函数返回值?我如何使用它们?-MQL4论坛MQL4程序中的常见错误以及如何避免这些错误 - MQL4文章
 
whroeder1:
  1. 不能 使用任何交易函数,除非你选择了一个订单。
  2. 检查你的返回代码什么是函数返回值?我如何使用它们?-MQL4论坛MQL4程序中的常见错误以及如何避免这些错误 - MQL4文章

#1 我可以用Bid 代替MarketInfo吗?
#2 我可以像下面这样写吗?

void buyorder()
 {
  Ticket = OrderSend( _Symbol, OP_BUY, lotsize, Bid, slippage, sl, tp, "trade panel", magic, 0, clrRed );
   if( Ticket < 0 )
   {
      Print("OrderSend failed with error: ", GetLastError() );
      return;
   }
  return;
 }
 

只针对图表符号。

Ask, Bid, _Period,_Symbol,Symbol(),Period()

这些都是与图表符号有关的。

当你在处理图表符号以外的符号时,请使用MarketInfo。

原因: