新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1395

 

SanAlex:

我怀疑不是每个人都能理解我们在谈论什么。- 利润是一回事 - 但每一对的利润是不同的。

这就是为什么专家顾问必须安装在每一对上。

你不需要下载所有的图表。

//+--------------------------------------------------------------------------------------------------------------------+
//| Expert tick function                                                                                               |
//+--------------------------------------------------------------------------------------------------------------------+
void OnTick()
  {
//---
   if(Open_Pr("EURUSD")>MyProfit)DelOrders("EURUSD");
   if(Open_Pr("GBPUSD")>MyProfit)DelOrders("GBPUSD");
   //...и так все нужные пары 
//---
  }

增加删除和关闭订单的 功能

//+--------------------------------------------------------------------------------------------------------------------+
//| Функция удаления и закрытия ордеров                                                                                |
//+--------------------------------------------------------------------------------------------------------------------+
void DelOrders(string sy="")
  {
   while(true)
     {
      bool find_order=false;
      //----
      if (sy == "0") sy = Symbol();
      for(int pos=OrdersTotal()-1;pos>=0;pos--)
      if(OrderSelect(pos,SELECT_BY_POS)==true)
      if(OrderSymbol() == sy || sy == "")
        {
         find_order=true;
         //----
         if(OrderType()==OP_BUY)
           {
            RefreshRates(); int slip=(int)(((Ask-Bid)/Point)*2);
            if(OrderClose(OrderTicket(),OrderLots(),Bid,slip,clrBlue)==false){}
           }
         //----
         if(OrderType()==OP_SELL)
           {
            RefreshRates(); int slip=(int)(((Ask-Bid)/Point)*2);
            if(OrderClose(OrderTicket(),OrderLots(),Ask,slip,clrRed)==false){}
           }
         //----
         if(OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)
         if(OrderDelete(OrderTicket(),clrRed)==false){}
         //----
         if(OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT)
         if(OrderDelete(OrderTicket(),clrBlue)==false){}
         Alert("Все ордера закрыты!");
        } 
      if(find_order==false) Alert("Нет ордеров!");break;
     } 
  }
 
MakarFX:

你不必下载所有的图表,你只需把它放在一个图表上,然后在代码中写上

增加删除和关闭订单的 功能

打开的信号呢?

 
SanAlex:

开场信号呢?

你在说什么呢?
 
MakarFX:
你是什么意思?

这些功能是辅助性的--为了让专家正常工作,它还必须打开

 
SanAlex:

这些功能是辅助性的--为了使专家顾问正常工作,它也应该打开

最初,问题是 - "谁有根据总利润关闭指定货币订单的功能"?

创建一个成熟的专家顾问是不可能的))))。

 
MakarFX:

原来的问题是 "谁有按总利润关闭特定货币订单的功能"。

不存在创建一个成熟的专家顾问的问题))

这个功能对你不起作用!也许它对总利润起作用?- 如果是这样,我们谈论的是不同的功能

快照没有关闭

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

我想知道他的利润将如何出现--在这里和那里的2个对子上开盘。

我刚刚看到了他的代码--这就是他的打开方式。

 
SanAlex:

这个功能对你不起作用!也许它是按总利润计算的?

MakarFX:

原来的问题是 "谁有按总利润关闭特定货币订单的 功能"。

 
MakarFX:

好吧!我又装了一个功能--对不起!!!。

 
SanAlex:

对不起!!!。

没关系)))。这是一个适合所有人的论坛。

 
我看到我们正在进行真正的讨论。 亚历克斯,你也参与其中:))好吧,程序员先生,你有共识吗? 看,主要功能是根据总利润关闭相同类型的订单。已经开了4个头寸,2个在欧元兑美元(买入和卖出),2个在美元兑瑞士法郎(买入和卖出)。如果买入订单获得了利润,它就会关闭它们,不理会卖出订单,或者不理会卖出订单。