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

 
sergeev:

видюшку не надо.

сделайте в коде подробное Print, чтоб мы в журнале посмотрели чему равны промежуточные переменные.

#property copyright "Copyright 2011, "

#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   double Vhod=0;
      Print("Начало_Vhod="+DoubleToString(Vhod,2));
   Vhod=linfunc(15);
      Print("Конец_Vhod="+DoubleToString(Vhod,2));
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+
double  linfunc(double b) // имя функции и список параметров
  {
   double a=1;

   while((a/b)<1 && !IsStopped())//-------------------
     {
      Print("а="+DoubleToString(a,2)+", b="+DoubleToString(b,2)+", a/b="+DoubleToString(a/b,2));
      a=a+1;
     }
   Print("а="+DoubleToString(a,2)+", b="+DoubleToString(b,2)+", a/b="+DoubleToString(a/b,2));
   Print("a+b="+DoubleToString(a+b,2));
         double f=a+b;
         // составной оператор
         return(f);           // возвращаемое значение
         }
//+------------------------------------------------------------------+

Вот такой код.

Вот его принт

GM    0    1 (EURUSD,M1)    18:11:11    Начало_Vhod=0.00
FO    0    1 (EURUSD,M1)    18:11:13    а=1.00, b=15.00, a/b=0.07
JF    0    1 (EURUSD,M1)    18:11:13    а=2.00, b=15.00, a/b=0.13
CQ    0    1 (EURUSD,M1)    18:11:13    а=3.00, b=15.00, a/b=0.20
EH    0    1 (EURUSD,M1)    18:11:13    а=4.00, b=15.00, a/b=0.27
KS    0    1 (EURUSD,M1)    18:11:13    а=5.00, b=15.00, a/b=0.33
PJ    0    1 (EURUSD,M1)    18:11:13    а=6.00, b=15.00, a/b=0.40
PE    0    1 (EURUSD,M1)    18:11:13    а=7.00, b=15.00, a/b=0.47
HL    0    1 (EURUSD,M1)    18:11:13    а=8.00, b=15.00, a/b=0.53
MF    0    1 (EURUSD,M1)    18:11:13    а=9.00, b=15.00, a/b=0.60
JR    0    1 (EURUSD,M1)    18:11:13    а=10.00, b=15.00, a/b=0.67
FK    0    1 (EURUSD,M1)    18:11:13    а=11.00, b=15.00, a/b=0.73
OP    0    1 (EURUSD,M1)    18:11:13    а=12.00, b=15.00, a/b=0.80
MI    0    1 (EURUSD,M1)    18:11:13    а=13.00, b=15.00, a/b=0.87
KF    0    1 (EURUSD,M1)    18:11:13    а=14.00, b=15.00, a/b=0.93
EO    0    1 (EURUSD,M1)    18:11:13    а=15.00, b=15.00, a/b=1.00
DJ    0    1 (EURUSD,M1)    18:11:14    a+b=30.00
RL    0    1 (EURUSD,M1)    18:11:17    Конец_Vhod=0.00
NH    2    1 (EURUSD,M1)    18:11:24    debugging terminated

 
Fia:


Если дебажный EX5 запускать не из редактора, а прямо в терминале - такой же результат?

Можете приложить отладочный EX5? 

 
Fia:

Вот его принт

GM    0    1 (EURUSD,M1)    18:11:11    Начало_Vhod=0.00
FO    0    1 (EURUSD,M1)    18:11:13    а=1.00, b=15.00, a/b=0.07
JF    0    1 (EURUSD,M1)    18:11:13    а=2.00, b=15.00, a/b=0.13
CQ    0    1 (EURUSD,M1)    18:11:13    а=3.00, b=15.00, a/b=0.20
EH    0    1 (EURUSD,M1)    18:11:13    а=4.00, b=15.00, a/b=0.27
KS    0    1 (EURUSD,M1)    18:11:13    а=5.00, b=15.00, a/b=0.33
PJ    0    1 (EURUSD,M1)    18:11:13    а=6.00, b=15.00, a/b=0.40
PE    0    1 (EURUSD,M1)    18:11:13    а=7.00, b=15.00, a/b=0.47
HL    0    1 (EURUSD,M1)    18:11:13    а=8.00, b=15.00, a/b=0.53
MF    0    1 (EURUSD,M1)    18:11:13    а=9.00, b=15.00, a/b=0.60
JR    0    1 (EURUSD,M1)    18:11:13    а=10.00, b=15.00, a/b=0.67
FK    0    1 (EURUSD,M1)    18:11:13    а=11.00, b=15.00, a/b=0.73
OP    0    1 (EURUSD,M1)    18:11:13    а=12.00, b=15.00, a/b=0.80
MI    0    1 (EURUSD,M1)    18:11:13    а=13.00, b=15.00, a/b=0.87
KF    0    1 (EURUSD,M1)    18:11:13    а=14.00, b=15.00, a/b=0.93
EO    0    1 (EURUSD,M1)    18:11:13    а=15.00, b=15.00, a/b=1.00
DJ    0    1 (EURUSD,M1)    18:11:14    a+b=30.00
RL    0    1 (EURUSD,M1)    18:11:17    Конец_Vhod=0.00
NH    2    1 (EURUSD,M1)    18:11:24    debugging terminated

Не воспроизводится.

2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   Конец_Vhod=30.00
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   a+b=30.00
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=15.00, b=15.00, a/b=1.00
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=14.00, b=15.00, a/b=0.93
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=13.00, b=15.00, a/b=0.87
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=12.00, b=15.00, a/b=0.80
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=11.00, b=15.00, a/b=0.73
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=10.00, b=15.00, a/b=0.67
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=9.00, b=15.00, a/b=0.60
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=8.00, b=15.00, a/b=0.53
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=7.00, b=15.00, a/b=0.47
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=6.00, b=15.00, a/b=0.40
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=5.00, b=15.00, a/b=0.33
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=4.00, b=15.00, a/b=0.27
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=3.00, b=15.00, a/b=0.20
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=2.00, b=15.00, a/b=0.13
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   а=1.00, b=15.00, a/b=0.07
2012.08.16 18:42:34     Test_001 (GBPUSD,M15)   Начало_Vhod=0.00

Win7 x64

MT5 x64  build 687

 
alexvd:

Если дебажный EX5 запускать не из редактора, а прямо в терминале - такой же результат?

Можете приложить отладочный EX5? 

Да интересно получается, если запускаю с тестера, работает 30 выдает, если в качестве советника тоже выдает 30 на принт.

Если иду опять в отладку там 0.


MetaDriver

На каком билде и на какой виде (извиняюсь за выражение) получилось.

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

Файлы:
1.ex5  5 kb
 
alexvd:

Вот тут

 

явно не хватает проверок:

  1. BarsCalculated >= 20
  2. CopyBuffer==20 

Спасибо, попытаюсь добавить.

 

Вот видео (только там разрешение побольше 720 выбирайте, а то все в мыле будит)

https://www.youtube.com/watch?v=Prpw6DUYvjY&feature=youtu.be

Win7 64bit   MT5 687 билд

Как выяснил эффект когда return  выдает 0, происходит вроде только в отладчике. 

При этом, если использовать только кнопку "шаг с заходом" вроде работает.

Если войдя в цикл while выйти кнопкой "шаг на ружу" не работает на выходе стабильно 0.

В общем на видео все видно, но как быть и чего делать пока мне не понятно (и почему так только у меня?)

 
Fia:
Win7 64bit   MT5 687 билд
Битность терминала какая?
 

При оптимизации вылезли непонятные символы

На вкладке график оптимизации по вертикали все значения -1

 
alexvd:

Вот тут

 

явно не хватает проверок:

  1. BarsCalculated >= 20
  2. CopyBuffer==20 

Однако с буферами мне пока проблеми, читаю - всё понятно а как надо применять в коде, так не особо понятно. Если не сложно, можете вставить это в код?

 
MetaDriver:
Битность терминала какая?

В свойствах терминала "О программе" нет такой информации (только версия и билд)

Но стоит он не в папке "Program Files (x86)", а в "Program Files" туда на Win7 64 bit  ставятся все программы которые могут работать на 64 bit.

Логично предположить, наверно оно 64 bit.

(У вас получается повторить как описал и показал выше?)