Ошибки, баги, вопросы - страница 1709

 
fxsaber:

Записал ситуацию на видео и три подряд-идущих кадра (центральный кадр - пропадание данных) вырезал в gif


По какому условию поймать эту ситуацию? Нужно, чтобы разобраться в причинах. 

я думал это для сна, чуть не прикемарил.
 
fxsaber:
Делал через VirtualDub. Сейчас найду прогу, чтобы замедлить можно было.
Не получается. Подскажите рабочий вариант.
Как замедлить GIF анимацию?
Как замедлить GIF анимацию?
  • botvet.ru
Иногда требуется замедлить смену кадров в GIF анимации и как это сделать мы сейчас и разберем. Для это нам потребуется программа - GIF Movie Gear(скачать надеюсь сможете сами, благо пока "варезники" не закрыли!). 1. Установите самостоятельно GIF Movie Gear. 2. Нажмите правой кнопкой мыши по Анимации и откройте её при помощи GMG. 3. Выделите все...
 
fxsaber:
Не получается. Подскажите рабочий вариант.
Вы всегда так любите усложнять? https://www.yandex.ru/yandsearch?clid=9582&text=создание%20gif%20онлайн&l10n=ru&lr=2&redircnt=1474969742.1
 
fxsaber:
Не получается. Подскажите рабочий вариант.
Выложить кадры отдельно можно...
 

Спасибо, получилось через онлайн-сервис

 

 
-Aleks-:
Выложить кадры отдельно можно...
 
fxsaber:
Покажите, пожалуйста полный код + информация об операционной системе, о браузере и типе и билде терминала.
 
Karputov Vladimir:
Покажите, пожалуйста полный код + информация об операционной системе, о браузере и типе и билде терминала.

Полный никак не получится - ООП его за ногу. Но вот код, отвечающий за рисование

  virtual int Calculate( const int rates_total,
                         const int prev_calculated,
                         const datetime &time[],
                         const double &open[],
                         const double &high[],
                         const double &low[],
                         const double &close[],
                         const long &tick_volume[],
                         const long &volume[],
                         const int &spread[] )
  {
    if (prev_calculated == 0)
    {
      const datetime TimeCur = TimeCurrent();
      
      this.LastTime = (TimeCur - (TimeCur % (24 * 3600))) * 1000;
      this.Count = 0;
    }

    this.SetEmpty(0, prev_calculated, rates_total - prev_calculated);    
      
    MqlTick Ticks[];
    
    const int Amount = this.GetFreshTicks(Ticks);
    
    if (Amount > 0)        
    {
      int Pos;

      const datetime LastTime2 = Ticks[0].time - (Ticks[0].time % PeriodSeconds());
      
      for (Pos = rates_total - 1; Pos >= 0; Pos--)
        if (time[Pos] == LastTime2)
          break;
          
      if (Pos >= 0)
      {
        int i = 0;
        
        while ((Pos < rates_total) && (i < Amount))
        {
          const datetime NextTime = time[Pos] + PeriodSeconds();
          
          while (i < Amount)
          {
            const MqlTick Tick = Ticks[i];
            
            if (Tick.time >= NextTime)
              break;

            if ((bool)(Tick.flags & TICK_FLAG_BUY))
              this[0][Pos] += (Tick.volume >= this.MinLot) ? Tick.volume : 0;
            else if ((bool)(Tick.flags & TICK_FLAG_SELL))
              this[1][Pos] -= (Tick.volume >= this.MinLot) ? Tick.volume : 0;

            i++;
          }
          
          Pos++;
        }        
      }        
    }

    return(rates_total);
  }

Билд

2016.09.23 12:42:22.405 Terminal        C:\Program Files\BCS Broker MetaTrader 5 Terminal
2016.09.23 12:42:22.405 Terminal        Windows 7 Ultimate (x64 based PC), IE 09.00, Intel Core i7-2700K  @ 3.50GHz, RAM: 8098 / 16301 Mb, HDD: 6387 / 30000 Mb, GMT+02:00
2016.09.23 12:42:22.405 Terminal        BCS Broker MetaTrader 5 Terminal x64 build 1430 started (BCS Broker)
 
fxsaber:

Полный никак не получится - ООП его за ногу. Но вот код, отвечающий за рисование

Целый день потратил на разборы, ничего не вышло. Максимально упростил код и создал ветку. Прошу помощи!
Загадочный биржевой индикатор
Загадочный биржевой индикатор
  • www.mql5.com
Ниже приведен сильно упрощенный (ООП полностью отсутствует) индикатор, который показывает проторгованный оборот на основании тиковой биржевой истор...
 
fxsaber:



На второй картинке после короткого имени индикатора LastData нет последних рассчитанных данных. Тогда как они есть на первой картинке 244 -363 и на третьей 247 -409

Это говорит о том, что индикатор на данный момент не посчитан. Он считается, и данные не готовы. Напомню, что индикаторы считаются в отдельном потоке, а не в главном потоке приложения, который отвечает в том числе за отрисовку. Индикаторы считаются на каждом пришедшем тике без исключения.

В процессе двигания графиком мышкой вы захватили вычислительные ресурсы на обработку системных сообщений от мышки (откройте диспетчер задач и посмотрите, как растут проценты цпу в зависимости от интенсивности перемещения мыши). И ваш индикатор просто не успел пересчитаться. Поэтому второй график - пустой.

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
Причина обращения: