[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 265

 
vasabu2012:

伙计们,我不知道金,也许有知识的人可以在这个主题中回答。

我真的很感激!

在这里,他是金-伊戈尔五世。而这里有一些来自KimIV的有用功能
 

给专业人员的问题:我们需要调取最后一次关闭的数据。
顺序,不可能保留订单号码的计数,因为
如果你想获得最后关闭的订单的数据,你必须对所有的订单号进行统计。
每个EA都有自己的向导。
问题是关于终端中最后一个封闭订单的数据?

谁知道答案,请告诉我!!!。

 
vasabu2012:
给专业人员的问题:我们需要从上一次关闭的数据中提取数据。
顺序,不可能保持订单号的计数,因为
我有几个EA在工作,所有的EA都在投放和关闭。
每个EA都有自己的向导。
问题是关于终端中最后一个关闭订单的数据?

我不是科学家,但如果你在寻找最后的订单,按时间来找...
 
具体如何?
 
我怎样才能使EA不仅在演示中工作?
附加的文件:
sovetnik.ex4  31 kb
 
sergio7:
我怎样才能使EA不仅在演示中工作?
你在这里发布的那个 - 没有
 
sergio7:
我怎样才能使EA不仅在演示中工作?

这不是源代码!应该是MQ4,而不是EH4!
 
paladin80:
你在这里张贴的那张是什么也没有。


在另一个主题中的同一个入侵者。

Sergio704.04.2013 21:04
帮助使EA不仅在演示中工作。
附属文件。
tpyokfcx.ex4(30.27 KB)
 

我决定去看看TarasBy 写的图书馆。我从这个开始https://www.mql5.com/ru/code/10659

有一些问题。我将保持一致。比如说。

//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Получаем торговую информацию по символу                                    |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fGet_MarketInfo (string fs_Symbol, int fi_Ticket = 0)
{
//----
         if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
         {
                  if (fi_Ticket > 0)
                  {
                     bs_Symbol = OrderSymbol();
                  }
                  else
                  {
                     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }
                  else
                  {
                      bi_SymDigits = MarketInfo (fs_Symbol, MODE_DIGITS);
                      bd_SymPoint = MarketInfo (fs_Symbol, MODE_POINT);
                  }
        if (bd_SymPoint == 0.0)
        {
           bd_SymPoint = fGet_Point (fs_Symbol);
        }
                  bd_ProfitMIN = NDP (ProfitMIN_Pips);
         }
         if (fi_Ticket > 0)
         {
            fGet_OrderDetails (fi_Ticket);
         }
    //---- Получаем текущие цены по инструменту
    RefreshRates();
    bda_Price[0] = NDD (fGet_TradePrice (0, bb_RealTrade, bs_Symbol));
    bda_Price[1] = NDD (fGet_TradePrice (1, bb_RealTrade, bs_Symbol));
    bd_Spread = NDD (bda_Price[1] - bda_Price[0]);
//----
}

我们可以从函数参数本身看到。

fi_Ticket = 0

通常情况下,这类函数在选择订单后就被调用,这意味着它们会有一张票。那我们为什么要指定一个默认值为 呢?

下一步甚至更有趣。

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
{
   if (fi_Ticket > 0)
   {
      bs_Symbol = OrderSymbol();
   }
   else
   {
     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }

变量fs_Symbol 会立即与bs_Symbol 进行比较。

上面bs_symbol 没有被初始化,其中fGet_MarketInfo()函数本身 被调用。这个bs_symbol 到底是干什么的?

也是在这个条件下。

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)

条件,如果fi_Ticket<0,则下一步。

if (fi_Ticket > 0)
{
   bs_Symbol = OrderSymbol();
}

而这已经与条件相矛盾了。在代码的开头,条件fi_Ticket< 0 必须成立,然后在这个条件里面,ticket>0。逻辑在哪里?

原因: