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

 

Просмотр аргументов методов при нажатии Ctrl + Shift + Space сейчас в одну строку.

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

Нужен многострочный вариант.

 

Разработчики МКЛ, прошу обратить внимание на существующую проблему https://www.mql5.com/ru/forum/430771

MQL5 проблемы с ATR в выходные дни.
MQL5 проблемы с ATR в выходные дни.
  • 2022.08.15
  • www.mql5.com
Надеюсь это увидят разработчики терминала...
 

Оптимизация на локальном компютере, задействованы два символа.

Оказывается, что по второму символу истории недостаточно - начинается подкачка, но не дождавшись её окончания (предположительно) выдаются задания агентам, агенты не могут синхронизироваться.

Вместо того, что бы снова им дать историю, происходит по кругу попытка синхронизации, что приводит к остановке оптимизации.

JD 0 17:45:17.524 127.0.0.1 tester forced to stop
CM 0 17:45:21.471 Symbols AUDUSD: symbol to be synchronized
ME 2 17:45:21.471 Symbols symbol AUDUSD synchronization error
RS 2 17:45:21.471 Indicator_optimize_tester (EURUSD,M1) 2020.01.01 00:00:00 indicator Gator Oscillator cannot load [4801]
DP 0 17:45:21.471 Indicator_optimize_tester (EURUSD,M1) 2020.01.01 00:00:00 {Indicator_optimize_tester.mq5->OnInit->301->u2.0} => I_opt: Индикатор "IND_GATOR" не создан:Неизвестный символ:%s
ME 0 17:45:21.471 Tester 0 of 12 passes processed (0 successfully finished) in 0:00:00.000
IQ 0 17:45:21.471 optimize Experts\Greshnik\Indicator_optimize_tester.ex5 on EURUSD,M1 thread finished
NP 0 17:45:22.468 127.0.0.1 prepare for shutdown
HJ 0 17:45:24.444 127.0.0.1 login (build 3403)
IJ 0 17:45:24.452 Tester account info found with currency USD
JN 0 17:45:24.452 Network 1478 bytes of tester parameters loaded
FJ 0 17:45:24.452 Network 30916 bytes of input parameters loaded
FP 0 17:45:24.453 Network 41708 bytes of optimized inputs info loaded
CO 0 17:45:24.471 Tester successfully initialized
MS 0 17:45:24.471 Network 3668 bytes of total initialization data received
JG 0 17:45:24.471 Tester Intel Xeon E5-2470 0 @ 2.30GHz, 49103 MB
DF 0 17:45:24.471 Tester optimization pass 0 started (batch of 9 tasks)
HS 0 17:45:24.471 127.0.0.1 prepare for shutdown
CM 0 17:45:34.011 127.0.0.1 login (build 3403)
OI 0 17:45:34.019 Tester account info found with currency USD
JQ 0 17:45:34.020 Network 30916 bytes of input parameters loaded
RJ 0 17:45:34.020 Tester successfully initialized
KQ 0 17:45:34.020 Network 1597 bytes of total initialization data received
GE 0 17:45:34.020 Tester Intel Xeon E5-2470 0 @ 2.30GHz, 49103 MB
NP 0 17:45:34.020 Tester optimization pass 9 started (batch of 9 tasks)
ME 0 17:45:34.020 127.0.0.1 prepare for shutdown
LO 0 17:45:44.008 127.0.0.1 login (build 3403)

Более детальные логи могу предоставить по требованию разработчикам.

 
A100 #:

Вот код:

Если (*) компилируется без ошибки, тогда вместо (1) можно было бы записать (2) - т.е. мы неявно обходим ограничение (1), поэтому С++ при компиляции (*) выдает ошибку

Спасибо за код.

Это действительно должна быть ошибка компиляции - исправлю

 

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

Ошибки, баги, вопросы

mktr8591, 2022.08.17 14:30

В чем причина ошибки компиляции?  (в c++ компилируется без ошибок)

b3401

class A {};
template <typename T> class B {};

class C
  {
public:
   template <typename Y>
   void              func(B<Y> & p) {}
  };

void OnStart()
  {
   B<const A> b;
   C c;
   c.func(b);     //compile error
//'b' - parameter conversion not allowed
//void C::func(C::B<Y>&)
  }
А здесь не ошибка компилятора?
 

Нашел баг с простым делением...или я что-то не понимаю

   double a = 15/100;
   double b = 15*0.01;
   Print("Если 15 делим на 100 получаем: ",DoubleToStr(a,5),", но если 15 умножаем на 0.01 получаем: ",DoubleToStr(b,5));

2022.08.25 12:24:55.253 Bag EURUSD,M5: Если 15 делим на 100 получаем: 0.00000, но если 15 умножаем на 0.01 получаем: 0.15000
Файлы:
Bag.mq4  2 kb
 
Tretyakov Rostyslav #:

Нашел баг с простым делением...или я что-то не понимаю


вы перегрелись :-) бывает

если целое число делим на большее и тоже целое, то получается 0

15/100 = 0

 
Maxim Kuznetsov #:

вы перегрелись :-) бывает

если целое число делим на большее и тоже целое, то получается 0

15/100 = 0

Вы думаете я перегрелся?


 
Tretyakov Rostyslav #:

Вы думаете я перегрелся?


А Вы сделайте так

double a = 15.0/100.0;

 
Maxim Kuznetsov #:

вы перегрелись :-) бывает

если целое число делим на большее и тоже целое, то получается 0

15/100 = 0

Но в Ваших словах есть доля правды

если добавляю 0 после запятой

double a = 15.0/100;

то все ок

2022.08.25 12:42:18.766 Bag EURUSD,M5: Если 15 делим на 100 получаем: 0.15000, но если 15 умножаем на 0.01 получаем: 0.15000

Отсюда вопрос:

Если я хочу получить дробное число, то обязательно добавлять 0 после запятой?

PS И главное - это баг или особенность mql4?