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

 
Aliaksandr Hryshyn:
Там указатель копирует
А каким образом можно скопировать данные? Ну, кроме как, поэлементно?
 
Vasiliy Pushkaryov:
А каким образом можно скопировать данные? Ну, кроме как, поэлементно?

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

#include <Arrays\ArrayObj.mqh>

CArrayObj ArrCur;       // массив с объектами, каждый объект содержит структуру с полями ордеров и его id
CArrayObj ArrPrev;  // массив с объектами, каждый объект содержит структуру с полями ордеров и его id

class CID : public CObject
{
  public:  int id;
           CID() {}
           CID(CID* pt) {this = pt;}
           
};


void OnStart()
{
  // -----------------------------------------------------------------
    CID* pCur = new CID;          // создаем объект для текущих параметров
    pCur.id = 25;                 // вносим текущие данные
    ArrCur.Add(pCur);             // помещаем в массив объектов
    
    CID* pTemp = ArrCur.At(0);    // вытягиваем объект по указателю
    CID* pPrev = new CID(pTemp);  // в дин.объект копируем в конструкторе данные с предыд.указателя
    ArrPrev.Add(pPrev);           // помещаем в массив объектов
    
    ArrCur.Clear();               // чистим текущий массив
  // -----------------------------------------------------------------
  
   // --- для вывода в журнал
  int sizeCur = ArrCur.Total();       // размер = 0
  int sizePrev = ArrPrev.Total();     // размер = 1
  
  ENUM_POINTER_TYPE pTypeCur = CheckPointer(ArrCur.At(0));    // POINTER_INVALID
  ENUM_POINTER_TYPE pTypePrev = CheckPointer(ArrPrev.At(0));  // POINTER_DINAMYC
  
  Print(__FUNCTION__, " sizeCur=", sizeCur, " pTypeCur=", EnumToString(pTypeCur));
  Print(__FUNCTION__, " sizePrev=", sizePrev, " pTypePrev=", EnumToString(pTypePrev));

  ArrPrev.Clear();             // чистим массив
}
 
fxsaber:

В визуальном режиме тестера ChartScreenShot не работает правильно.

void OnTick()
{
  Print(ChartScreenShot(0, "Test.png", 100, 100)); // true, но файл нулевой длины
  
  ExpertRemove();
}

Здравствуйте ув. разработчики. Можно узнать, когда заработает ChartScreenShot() в тестере?

 

Подскажите, как в подобном советнике изменить его входные параметры (F7) или изменить значение глобальной переменной (F3)?

input int i = 0;

const bool Init = EventSetTimer(1);

void OnTimer()
{
  Alert("");
}

Даже снять с графика проблематично.

 
Добрый вечер у меня такой вопрос? Установил агент менеджер на продажу но в графе облако написано отключено и за весь день на шести процессорах не одного движения. В аккаунте процессоры отображаются. Это нормально?
 

Ранее Debug не удалось полноценно воспользоваться, но запускать скрипты через F5 иногда удобно (правда непонятно почему запуск идет на новом графике, а не на текущем).

И случайно обнаружил в логе такие записи:

При этом сам скрипт выполняется. Попробовал вставить в код такую строку:

{ DebugBreak(); Print( "DebugBreak" ); }

Строка "DebugBreak" печатается, но остановки не происходит

 
A100:

(правда непонятно почему запуск идет на новом графике, а не на текущем).

В редакторе Сервис->Настройки->Отладка/Профилирование
там задаётся на каком символе будет запускаться отладка, но все равно запуск будет на отдельном графике.
Если там символ не указан, то будет запускаться на самом первом(верхнем) символе из Обзора рынка.

У меня вообще точки останова через раз срабатывают. build 2875
выставляю точки, жму начало отладки на реальных данных, а он блым, и пролетел без остановок, закончив отладку.
Перезагружаю терминал с редактором, и тогда начинает видеть точки останова, до какого нибудь очередного запуска/остановки отладки, потом снова начинает пропускать.
Запуск отладки на исторических данных, вообще окно тестера вызывает, и так же точки останова пропускает, завершая отладку.
На исторических данных ещё не разу не остановился на точке, всё время пропускает завершая отладку.
А вот нафига тестер вызывается на исторических данных, и сохраненные параметры из него берутся, х.з. что это, так задумано или кривизна.

 
Roman:

В редакторе Сервис->Настройки->Отладка/Профилирование
там задаётся на каком символе будет запускаться отладка, но все равно запуск будет на отдельном графике.
Если там символ не указан, то будет запускаться на самом первом(верхнем) символе из Обзора рынка.

По моему это крайне неудобно. На текущем графике есть индикаторы, графические объекты, с которыми предполагается взаимодействие программы, настройки и т.д. А запускается новый "пустой" график. Кроме того программа в обычном режиме (не отладки) запускается из Навигатора на текущем, а не на новом графике - тут явное несоответствие

 
С визуализацией тоже какие то непонятки
https://www.mql5.com/ru/forum/368597
Ошибка моделирования визуализация\без
Ошибка моделирования визуализация\без
  • 2021.05.04
  • www.mql5.com
Кто нибудь может объяснить как это происходит , или протестировать у себя...
 
Ошибка при выполнении (неправильный порядок подстановки)
#define MACRO( X )
void OnStart()
{
        MACRO( __COUNTER__ )
        MACRO( __COUNTER__ )
        Print( __COUNTER__ );
}

Результат:   2

Ожидалось: 0