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

Karputov Vladimir:
По идеи поставщик данных у них один - это биржа. Значит на реальных (не демо) счетах тиковая история должна быть одинаковая.
Да много чего должно быть, только разработчики уже прямым текстом сообщают

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

Список изменений в билдах MetaTrader 5 Client Terminal

MetaQuotes Software Corp., 2016.10.06 17:12

Призываем всех трейдеров присоединиться к тестированию новой версии платформы, чтобы самостоятельно опробовать все ее возможности и помочь разработчикам в исправлении найденных ошибок.


fxsaber:

По внешнему виду DRAW_CANDLES невозможно определить, где открытие, а где закрытие свечи.

Например, делаю DRAW_BARS. Видно, где бычьи и медвежьи бары. Меняю стиль буферов на DRAW_CANDLES - ничего не видно!

Какой смысл в таком DRAW_CANDLES?! Сделайте визуальные различия между бычьими/медвежьими свечами!

Причина, похоже, кроется в том, что DRAW_CANDLES реализован через DRAW_HISTOGRAM - можно с помощью четырех буферов достичь полного визуального совпадения.

Как следствие, на MT4, где нет DRAW_CANDLES, можно достигать того же через DRAW_HISTOGRAM.

Случайная ошибка при выполнени

 

На графике запущен Эксперт и периодически запускается Скрипт. Скрипт и Эксперт содержат import ex5 и периодически компилируются как сами по себе, так и модули ex5 в отдельности. После очередной компиляции Эксперта, при запуске Скрипта - возникла означенная ошибка. 

После перезагрузки MetaTrader 5 (1437) - ошибка не воспроизводится

A100:

Случайная ошибка при выполнени

 

На графике запущен Эксперт и периодически запускается Скрипт. Скрипт и Эксперт содержат import ex5 и периодически компилируются как сами по себе, так и модули ex5 в отдельности. После очередной компиляции Эксперта, при запуске Скрипта - возникла означенная ошибка. 

После перезагрузки MetaTrader 5 (1437) - ошибка не воспроизводится

Данная ошибка, возникает из-за нехватки памяти при запуске MQL программы.

Сообщите пожалуйста, возможно было большое потребление памяти терминалом и/или запущенными MQL программами (в логах могут быть записи об этом)?

Ilyas:
 Сообщите пожалуйста, возможно было большое потребление памяти терминалом и/или запущенными MQL программами (в логах могут быть записи об этом)?

IS 0 18:29:42.715 Terminal MetaTrader 5 build 1437 started (MetaQuotes Software Corp.)
KK 0 19:30:40.328 Terminal RAM: 725 Mb reserved, 304 Mb committed
FJ 0 20:30:40.474 Terminal RAM: 1438 Mb reserved, 330 Mb committed
KM 0 21:30:41.257 Terminal RAM: 1533 Mb reserved, 354 Mb committed
PJ 0 21:49:56.307 Terminal exit initiated

Возможно своевременно не освобождалась память. Я буду наблюдать за Terminal RAM: Если ситуация повторится - обращусь вновь уже с деталями

ivanivan_11:

вопрос по двумерному массиву.

на мкл5 при объявлении массива выдает ошибку '[' - invalid index value   


информация из справки https://www.mql5.com/ru/docs/basis/types/dynamic_array


тут надо заметить,что данная часть справки по мкл5 честно содрана из справки по мкл4 вплоть до запятой. просьба указать, как правильно объявить такой массив на мкл5, а так же при необходимости поправить справку, раз пример из справки не работает

А если внимательно почитать, то окажется, что массив нужно объявлять так:

double matrix[][2];

У меня проект из десятков mqh. Все они лежат в разных папках. И некоторые mqh имеют одно и то же название, но разный путь (билды всякие, короче).

Но при компилировании в логе показываются названия mqh-файлов БЕЗ путей! Добавьте, пожалуйста.

Как скопировать (с сохранением относительных путей) все файлы проекта в отдельную папку.

Вот, например, хочу поделиться кодом. Он тянет десяток/другой mqh-файлов из разных мест.

Сейчас приходится выискивать вручную эти файлы, часто не все находишь или что-то лишнее берешь. Как автоматизировать этот процесс, чтобы можно было делиться исходниками?

Как удалить проект со всеми своими файлами?

Вот скачал через терминал из кодобазы проект на десяток файлов, а как это удалить?

Ошибка при компиляции

class A {};
template<typename T> //---------------------------------------------------//(1)
T *f( T* t ) { return t; }              //      A *f(       A* )          //(2)
                                        //const A *f( const A* )          //(3)
template<typename T> //---------------------------------------------------//(4)
T *f( T* t, const T* ) { return t; }    //      A *f(       A*, const A* )//(5)
void OnStart()
{
    const A *a;
    const A *a1 = f( a );    //ошибка не обоснована: T -> const A, и в отсутствии (6) применимо (3)
          A *a2 = f( a );    //ошибка    обоснована, но по другой причине: A* = const A*
                  f( a, a ); //ошибка    обоснована, но по другой причине: T -> A, и отсутствует f(const A*,const A*)
}

(*) В общем случае в шаблоне (1) вместо T возможна подстановка как A->(2), так и const A->(3). В отличие например от шаблона (4), где вместо T возможна подстановка только A->(5).  

Сейчас работает только подстановка A->(2), и для полноценного использования приходится делать вместо одного - два шаблона:

template<typename T> //---------------------------------------------------//(1)
      T *f(       T* t ) { return t; }
template<typename T> //---------------------------------------------------//(6)
const T *f( const T* t ) { return t; }

Замечание: Явное определение (6) имеет более высокий приоритет над общим случаем (*)

Итого: Ожидалось, что в отсутствии шаблона (6) будет применен шаблон (1) с сигнатурой (3)