Новая версия платформы MetaTrader 5 build 2690: Улучшения в MetaEditor - страница 10

 
Alexey Viktorov:

Нет, не вариант. Допустим мне надо иметь 5 последних значений, не важно чего. Делаем массив 5 элементов и при поступлении шестого, удаляем нулевой, а в четвёртый пишем новое значение. В результате имеем по прежнему 5 элементов без напряга.

Конечно есть и другие варианты решения такой задачи, но надо замерять скорость, что тяжелей. А ArrayRemove() посимпатичней.

Я говорил о том что логичней. Может такое нужно и не только Вам, Здесь полно извращенцев.

Но ArrayRemove() должна удалять элемент массива, а если не может, возвращать false.

 
Koldun Zloy:

Я говорил о том что логичней. Может такое нужно и не только Вам, Здесь полно извращенцев.

Но ArrayRemove() должна удалять элемент массива, а если не может, возвращать false.

Так она и удаляет из динамического массива.

А вы считаете такой вариант, сходу придуманный, извращением? Почему? На мой взгляд извращение это поэлементное копирование.

 
Alexey Viktorov:

Так она и удаляет из динамического массива.

А вы считаете такой вариант, сходу придуманный, извращением? Почему? На мой взгляд извращение это поэлементное копирование.

Вы же должны понимать, что внутри там это же самое поэлементное копирование.

 
Koldun Zloy:

Вы же должны понимать, что внутри там это же самое поэлементное копирование.

Разве поэлементное? Я думал ArrayCopy() сам в себя со сдвигом, чем я и пользовался в mql4 где небыло и нет ArrayRemove() .

 

b2693 - актуально.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 2650: Фоновая загрузка графиков и улучшения в профилировщике MQL5-кода

fxsaber, 2020.11.06 11:36

следующий скрипт все равно вызывает зависание на том же MQ-Demo.

void OnStart()
{
  for (int i = SymbolsTotal(false) - 1; !IsStopped() && (i >= 0); i--)
  {
    const string Symb = SymbolName(i, false);
    
    if (!SymbolInfoInteger(Symb, SYMBOL_CUSTOM))
    {
      SymbolSelect(Symb, true);
      Alert(Symb);
      
      MqlTick Ticks[];
        
      Print(CopyTicksRange(Symb, Ticks, COPY_TICKS_ALL, (long)D'2020.06.01' * 1000));
    }
  }
}

Воспроизводится?

 
Alexey Viktorov:

Разве поэлементное? Я думал ArrayCopy() сам в себя со сдвигом, чем я и пользовался в mql4 где небыло и нет ArrayRemove() .

"ArrayCopy() сам в себя со сдвигом " - это тоже поэлементное копирование.

 
fxsaber:

b2693 - актуально.

Я прошу прощения...

А разве вызов должен принимать дату в миллисекундах? У меня с этим проблем нет...

Да и ...Range подразумевает и начальную дату, и конечную ....  Или я что-то упустил?

 
Сергей Таболин:

А разве вызов должен принимать дату в миллисекундах?

Да.

Range подразумевает и начальную дату, и конечную ....  Или я что-то упустил?

Да.

 
Порядок перемещения фокуса для TAB не правильный во всех окнах.

Визтестер:
нет сохранения позиции окна при закрытии
нет хоткей для "Прокрутить до"
прорисовка закрытия ордера глючит чаще на следующий день
в Истории Цена указана "market"

 

Ошибка переключения периодов открепленного графика Версия терминала 2690 от 13.11.2020.

Есть два графика M1 и Н1. На H1 открепляем его пунктом меню "Закреплен". Фокусируемся нажатием кнопки мыши на M1, а потом на H1. На панели инструментов переключаем таймфрейм на другой. 

Переключение происходит графика М1, а не активного  H1, который в фокусе.