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

 

hoz:

1. Если эксперт снять с графика тоже поступит команда ТРУ от IsStopped() ?

2.即更多的时候只有在把猫头鹰或脚本从图表上取下来时才会触发这个功能,是否有其他原因?

3.我在哪里可以读到这些信息?

4.在函数的主体中已经创建了一个条件,当条件满足时,那么IsStopped()=真,对吗?

1.是的。

2.我只知道把图表拿下来。

3.不知道。

4.是的,它可以,而且会发挥作用。

 
4.?
 
tara:
4.?

?
 
tara:
4.?

我一定是误解了这个问题。如果你自己让IsStopped()=true,这是不可能的。
 
hoz:

?

给我看看实施方案,因为我甚至无法想象它是一个二次三等式。
 
Integer:

我一定是误解了这个问题。如果你自己让IsStopped()=true,那是不可能的。

这就是全部。问题被删除。
 
Integer:

我一定是误解了这个问题。如果你自己让IsStopped()=true,这是不可能的。


这是可以理解的。我不是故意要自己做的。事实上,如果有东西在循环中被执行,它就会被执行,直到专家顾问或脚本从图表中被删除,相应地,在这一点上,有一个命令被发送到服务器。

IsStoped() = true;

我已经打开了TarasBy 写的函数(我自己写的,但我定期研究,因为他的方法很有趣)。所以他在那里有这样的功能。

//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Запускаем в цикл получение рыночной цены.                                  |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
double fGet_TradePrice (int fi_Price,           // Цена: 0 - Bid; 1 - Ask
                        bool fb_RealTrade,      // реальная торговля или оптимизация\тестирование
                        string fs_Symbol = "")  // валютная пара
{
    double ld_Price = 0.0;
//----
    if (fs_Symbol == "")
    {
       fs_Symbol = Symbol();
    }
    //RefreshRates();
    switch (fi_Price)
    {
       case 0:
          if (fb_RealTrade)
          {
             while (ld_Price == 0.0)
             {
                if (fs_Symbol == Symbol())
                {
                   ld_Price = Bid;
                }
                else
                {
                   ld_Price = MarketInfo (fs_Symbol, MODE_BID);
                }
                if (!IsExpertEnabled() || IsStopped())
                {
                   break;
                }
                Sleep (50);
                RefreshRates();
             }
          }
          else
          {
             if (fs_Symbol == Symbol())
             {
                return (Bid);
             }
             else
             {
                return (MarketInfo (fs_Symbol, MODE_BID));
             }
          }
          break;
       case 1:
          if (fb_RealTrade)
          {
             while (ld_Price == 0.0)
             {
                if (fs_Symbol == Symbol())
                {
                   ld_Price = Ask;
                }
                else
                {
                   ld_Price = MarketInfo (fs_Symbol, MODE_ASK);
                }
                if (!IsExpertEnabled() || IsStopped())
                {
                   break;
                }
                Sleep (50);
                RefreshRates();
             }
          }
          else
          {
             if (fs_Symbol == Symbol())
             {
                return (Ask);
             }
             else
             {
                return (MarketInfo (fs_Symbol, MODE_ASK));
             }
          }
          break;
   }
//----
   return (ld_Price);
}

我想知道为什么会有一个条件?

if (!IsExpertEnabled() || IsStopped())

我们一次性获得BID,然后检查IsStopped()和IsExpertEnabled() 函数标志。逻辑在哪里?在我看来,一次性检查比较容易,如果有问题,就退出这个功能。

然后我们有RefreshRates() 命令。在开始时,市场数据没有被刷新,最后,当我们已经收到BID变量数据时,它们被刷新了。要么是我的想法不正确,要么是作者有特定的思维方式,与我的思维方式不一致。这有什么意义呢?

 
hoz:

我打开了TarasBy 写的函数(我自己写的,但我不时地检查它们,因为他的方法很有趣)。所以他在那里有这样一个功能。

我想知道为什么会有一个条件?

我们一次性获得BID,然后检查IsStopped()和IsExpertEnabled() 函数标志。逻辑在哪里?在我看来,一次性检查比较容易,如果有问题,就退出这个功能。

然后我们有RefreshRates() 命令。在开始时,市场数据没有被刷新,最后,当我们已经收到BID变量数据时,它们被刷新了。要么是我的想法不正确,要么是作者有特定的思维方式,与我的思维方式不一致。这有什么意义呢?

也许伊戈尔明天会回答...

我也会这样做。

switch (fi_Price)
 {
  case 0: return(MarketInfo(fs_Symbol, MODE_BID));
  case 1: return(MarketInfo(fs_Symbol, MODE_ASK));
 }

在我看来,其他都是多余的。
 

向大家问好!

你能告诉我是否有可能教EA参考最后触发的警报?

 
Zhunko:

也许伊戈尔明天会回答...

我愿意这样做。

在我看来,其他都是多余的。


瓦迪姆,如果是我,我就会完全按照你写的那样做。这就是为什么我提出这个问题。我想,也许我错过了什么。我仍然在观察自己的逻辑和其他程序员的逻辑。因为除了基本的逻辑之外,我看到我需要考虑一些因素。