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

 
Andreas Hoogendoorn # :

Я использую классы CGraphic и CCurve, и происходит нечто странное. Я запускаю два экземпляра одного и того же советника на разных парах валют. Когда я прокручиваю один график, другой график становится видимым на одно мгновение. Похоже, память путается между двумя графиками. Перезапуск терминала ничего не меняет. (Картинка - анимированный gif).


Можете выложить минимальный пример? И, пожалуйста, укажите данные терминала и операционной системы, примерно так:

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

Очень глючный MetaTrader

Владимир Карпутов, 2021.03.16 04:20

Если у вас вопрос, то для начала нужно показать первые три строки из вкладки 'Журнал'


(выделите эти строки, скопируйте в буфер обмена и вставьте в сообщение с помощью кнопки Код). Это должно выглядеть следующим образом:

2021.03.16 05:13:07.133 Terminal        MetaTrader 5 x64 build 3003 started for MetaQuotes Software Corp.
2021.03.16 05:13:07.134 Terminal        Windows 10 build 19042, Intel Core i7-9750 H  @ 2.60 GHz, 26 / 31 Gb memory, 842 / 947 Gb disk, IE 11, UAC, GMT+2
2021.03.16 05:13:07.134 Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

 
Andreas Hoogendoorn #:

Я использую классы CGraphic и CCurve, и происходит нечто странное. Я запускаю два экземпляра одного и того же советника на разных парах валют. Когда я прокручиваю один график, другой график становится видимым на одно мгновение. Похоже, память путается между двумя графиками. Перезапуск терминала ничего не меняет. (Картинка представляет собой анимированный gif).


Хорошо, я решил проблему, хотя это все еще ошибка!!!

При использовании класса CGraphic он обязан использовать уникальное имя при создании графического ресурса.

Ресурсы не изолированы, как это должно быть. Советник с одного графика может получить доступ к ресурсу другого графика.


2022.04.17 12:44:13.049 Terminal        MetaTrader 5 x64 build 3260 started for MetaQuotes Software Corp.
2022.04.17 12:44:13.050 Terminal        Windows 10 build 19044, 4 x Intel Core i5  750 @ 2.67 GHz, 4 / 11 Gb memory, 4 / 124 Gb disk, UAC, GMT-3
2022.04.17 12:44:13.050 Terminal        C:\Users\andre\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

#include <Graphics\Graphic.mqh>
CGraphic          graphic;

graphic.Create(0, "test", 0, 0, 0, 1200, 400);

Эти примеры не работают.

graphic.Create(0, (string) MathRand(), 0, 0, 0, 1200, 400);
Этот пример подходит.
 

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

перехожу по этой ссылке:

 
Andreas Hoogendoorn #:

Я использую классы CGraphic и CCurve, и происходит нечто странное. Я запускаю два экземпляра одного и того же советника на разных парах валют. Когда я прокручиваю один график, другой график становится видимым на одно мгновение. Похоже, память путается между двумя графиками. Перезапуск терминала ничего не меняет. (Картинка представляет собой анимированный gif)


При создании графического объекта графика, в имени необходимо добавить например ID чарта на котором он будет рисоваться:

   CGraphic graphic;

   graphic.Create(0,"G"+(string)ChartId(),0,30,30,780,380);


В противном случае, имя графического ресурса на обоих графиках будет одинаковым, а так как графические ресурсы глобальные для терминала, то обе програмы будут работать с одним и тем же ресурсом (т.е. рисовать в одно и то же полотно).

 

Ошибка OrderCalcMargin возвращает неверное значение


OrderCalcMargin() иногда возвращает неверное значение требуемой маржи.

Например, она корректно работает на многих основных парах Форекс и на многих других CFD и т.д., возвращая правильное значение.


Но, USDPLN или на PLATINUM, или на некоторых других, она возвращает абсолютно неверное значение требуемой маржи.

Запрашиваемый ENUM_SYMBOL_CALC_MODE для EURUSD и USDPLN одинаковый(SYMBOL_CALC_MODE_FOREX), но если для EURUSD функция возвращает правильное значение требуемой маржи, то для USDPLN - неправильное.

Почему так?

 

Всем привет! Надеюсь, пишу по адресу (но если что - подскажите более релевантное место).

Речь про пропадание алёртов в MT5 (версия 5.00 build 3260, Just2Trade).

Суть: если добавить (или изменить) алёрты и без закрытия окна просто перезагрузить компьютер (Пуск-Выключение-Перезагрузка),
то все изменения в алёртах исчезают. А чтобы сохранились - надо оказывается не забыть закрыть окно терминала крестиком.

КМК это довольно жёсткая бага, которую нужно фиксить.

 
Lazar Buga #: Почему?

Ваш брокер напортачил. Поговорите с ними.

 
Ilyas #:

При создании графического объекта графика, в имени необходимо добавить например ID чарта на котором он будет рисоваться:


В противном случае, имя графического ресурса на обоих графиках будет одинаковым, а так как графические ресурсы глобальные для терминала, то обе програмы будут работать с одним и тем же ресурсом (т.е. рисовать в одно и то же полотно).

Имя ресурса графического объекта не может превышать 63 символа. Если к имени ещё добавить идентификатор чарта, то для вменяемого читаемого имени остаётся весьма не много места, к сожалению.

 
a18 #:

Всем привет! Надеюсь, пишу по адресу (но если что - подскажите более релевантное место).

Речь про пропадание алёртов в MT5 (версия 5.00 build 3260, Just2Trade).

Суть: если добавить (или изменить) алёрты и без закрытия окна просто перезагрузить компьютер (Пуск-Выключение-Перезагрузка),
то все изменения в алёртах исчезают. А чтобы сохранились - надо оказывается не забыть закрыть окно терминала крестиком.

КМК это довольно жёсткая бага, которую нужно фиксить.

Исправлено, будет в бета-версии.

 
Ошибка при компиляции:
template<typename T>
struct A {
    T *t;
};
void OnStart()
{
    A<void> a; //Error: 'void' - expression of 'void' type is illegal
}
Причина обращения: