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

 
Куда делся линк на "Все сообщения" в профиле?
 
fxsaber:
Куда делся линк на "Все сообщения" в профиле?
.
 
Alexey Viktorov:

Спасибо!

 

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

Ненормализованные цены в MT4

fxsaber, 2021.04.30 10:42

ЗЫ Два разных числа преобразуются в string одинаково. Это баг?

void OnStart()
{
  const double Num = 1.07299;
  const double Norm = NormalizeDouble(Num, 5);
   
  Print(Num);  // 1.07299
  Print(Norm); // 1.07299

  Print(Num - Norm); // 2.220446049250313e-16
}

Ситуация похожа на эту тему.

 

Пользовательский индикатор в подокне, по типу осцилятор.
Как скрыть штатную нулевую линию ? 
Закраска нулевого уровня из GUI, под цвет фона не срабатывает.

i

установка свойств в индикаторе, не срабатывает

#property indicator_level1  0.0
#property indicator_levelcolor C'35,35,35'
 
fxsaber:

Числа разные, но разница в 17ом знаке после запятой, а Print обрабатывает только 15ть знаков, поэтому с точки зрения Print они одинаковые

 
A100:

Числа разные, но разница в 17ом знаке после запятой, а Print обрабатывает только 15ть знаков, поэтому с точки зрения Print они одинаковые

Только не Print, а преобразование double в string.

 

Рис №1

Заметил такое. Если при форвард тестировании данные форвард повторяются (одинаковы), то при просмотре Бэктест по всем трем вариантам будет показан только вариант (10384.88) первый.

Рис2

Данные по вариантам с результатам = 10435 или 10843 неизвестны (в отчетах всё по варианту отчета = 10384)??? 

 

 

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

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

#include <Arrays\ArrayObj.mqh>

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

class CID : public CObject
{
  public:  int id;
};


void OnStart()
{
  // -----------------------------------------------------------------
    CID* pCur = new CID;        // создаем объект для текущих параметров
    pCur.id = 25;               // вносим текущие данные
    ArrCur.Add(pCur);           // помещаем в массив объектов
    
    CID* pPrev = ArrCur.At(0);  // копируем данные??? Указатель???
    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_INVALID
  
  Print(__FUNCTION__, " sizeCur=", sizeCur, " pTypeCur=", EnumToString(pTypeCur));
  Print(__FUNCTION__, " sizePrev=", sizePrev, " pTypePrev=", EnumToString(pTypePrev));

}
 
Там указатель копирует
Причина обращения: