Ошибки, баги, вопросы - страница 811 1...804805806807808809810811812813814815816817818...3776 Новый комментарий Fia 2012.08.16 16:12 #8101 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.00FO 0 1 (EURUSD,M1) 18:11:13 а=1.00, b=15.00, a/b=0.07JF 0 1 (EURUSD,M1) 18:11:13 а=2.00, b=15.00, a/b=0.13CQ 0 1 (EURUSD,M1) 18:11:13 а=3.00, b=15.00, a/b=0.20EH 0 1 (EURUSD,M1) 18:11:13 а=4.00, b=15.00, a/b=0.27KS 0 1 (EURUSD,M1) 18:11:13 а=5.00, b=15.00, a/b=0.33PJ 0 1 (EURUSD,M1) 18:11:13 а=6.00, b=15.00, a/b=0.40PE 0 1 (EURUSD,M1) 18:11:13 а=7.00, b=15.00, a/b=0.47HL 0 1 (EURUSD,M1) 18:11:13 а=8.00, b=15.00, a/b=0.53MF 0 1 (EURUSD,M1) 18:11:13 а=9.00, b=15.00, a/b=0.60JR 0 1 (EURUSD,M1) 18:11:13 а=10.00, b=15.00, a/b=0.67FK 0 1 (EURUSD,M1) 18:11:13 а=11.00, b=15.00, a/b=0.73OP 0 1 (EURUSD,M1) 18:11:13 а=12.00, b=15.00, a/b=0.80MI 0 1 (EURUSD,M1) 18:11:13 а=13.00, b=15.00, a/b=0.87KF 0 1 (EURUSD,M1) 18:11:13 а=14.00, b=15.00, a/b=0.93EO 0 1 (EURUSD,M1) 18:11:13 а=15.00, b=15.00, a/b=1.00DJ 0 1 (EURUSD,M1) 18:11:14 a+b=30.00RL 0 1 (EURUSD,M1) 18:11:17 Конец_Vhod=0.00NH 2 1 (EURUSD,M1) 18:11:24 debugging terminated программирование советника Математическое округление. CopyClose почему ошибка? Test Account 2012.08.16 16:39 #8102 Fia:Если дебажный EX5 запускать не из редактора, а прямо в терминале - такой же результат?Можете приложить отладочный EX5? Vladimir Gomonov 2012.08.16 16:43 #8103 Fia:Вот его принтGM 0 1 (EURUSD,M1) 18:11:11 Начало_Vhod=0.00FO 0 1 (EURUSD,M1) 18:11:13 а=1.00, b=15.00, a/b=0.07JF 0 1 (EURUSD,M1) 18:11:13 а=2.00, b=15.00, a/b=0.13CQ 0 1 (EURUSD,M1) 18:11:13 а=3.00, b=15.00, a/b=0.20EH 0 1 (EURUSD,M1) 18:11:13 а=4.00, b=15.00, a/b=0.27KS 0 1 (EURUSD,M1) 18:11:13 а=5.00, b=15.00, a/b=0.33PJ 0 1 (EURUSD,M1) 18:11:13 а=6.00, b=15.00, a/b=0.40PE 0 1 (EURUSD,M1) 18:11:13 а=7.00, b=15.00, a/b=0.47HL 0 1 (EURUSD,M1) 18:11:13 а=8.00, b=15.00, a/b=0.53MF 0 1 (EURUSD,M1) 18:11:13 а=9.00, b=15.00, a/b=0.60JR 0 1 (EURUSD,M1) 18:11:13 а=10.00, b=15.00, a/b=0.67FK 0 1 (EURUSD,M1) 18:11:13 а=11.00, b=15.00, a/b=0.73OP 0 1 (EURUSD,M1) 18:11:13 а=12.00, b=15.00, a/b=0.80MI 0 1 (EURUSD,M1) 18:11:13 а=13.00, b=15.00, a/b=0.87KF 0 1 (EURUSD,M1) 18:11:13 а=14.00, b=15.00, a/b=0.93EO 0 1 (EURUSD,M1) 18:11:13 а=15.00, b=15.00, a/b=1.00DJ 0 1 (EURUSD,M1) 18:11:14 a+b=30.00RL 0 1 (EURUSD,M1) 18:11:17 Конец_Vhod=0.00NH 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 x64MT5 x64 build 687 Fia 2012.08.16 16:50 #8104 alexvd: Если дебажный EX5 запускать не из редактора, а прямо в терминале - такой же результат?Можете приложить отладочный EX5? Да интересно получается, если запускаю с тестера, работает 30 выдает, если в качестве советника тоже выдает 30 на принт.Если иду опять в отладку там 0.MetaDriver На каком билде и на какой виде (извиняюсь за выражение) получилось.Надо все таки наверно видюшку выложить будет, если не у кого воспроизвести сие чудо не получится. Файлы: 1.ex5 5 kb Вопрос по тестеру Советники: Советник полностью созданный Мультивалютный тест Nauris Zukas 2012.08.16 17:39 #8105 alexvd: Вот тут явно не хватает проверок:BarsCalculated >= 20CopyBuffer==20 Спасибо, попытаюсь добавить. Fia 2012.08.16 18:36 #8106 Вот видео (только там разрешение побольше 720 выбирайте, а то все в мыле будит)https://www.youtube.com/watch?v=Prpw6DUYvjY&feature=youtu.beWin7 64bit MT5 687 билдКак выяснил эффект когда return выдает 0, происходит вроде только в отладчике. При этом, если использовать только кнопку "шаг с заходом" вроде работает.Если войдя в цикл while выйти кнопкой "шаг на ружу" не работает на выходе стабильно 0.В общем на видео все видно, но как быть и чего делать пока мне не понятно (и почему так только у меня?) Любые вопросы новичков по Новая версия MetaTrader 4 Да что ж это Vladimir Gomonov 2012.08.16 18:50 #8107 Fia: Win7 64bit MT5 687 билдБитность терминала какая? Konstantin Chernov 2012.08.16 19:12 #8108 При оптимизации вылезли непонятные символыНа вкладке график оптимизации по вертикали все значения -1 Nauris Zukas 2012.08.17 11:50 #8109 alexvd: Вот тут явно не хватает проверок:BarsCalculated >= 20CopyBuffer==20 Однако с буферами мне пока проблеми, читаю - всё понятно а как надо применять в коде, так не особо понятно. Если не сложно, можете вставить это в код? Fia 2012.08.17 14:37 #8110 MetaDriver: Битность терминала какая?В свойствах терминала "О программе" нет такой информации (только версия и билд)Но стоит он не в папке "Program Files (x86)", а в "Program Files" туда на Win7 64 bit ставятся все программы которые могут работать на 64 bit.Логично предположить, наверно оно 64 bit.(У вас получается повторить как описал и показал выше?) Между строк(аномалия).... Множественная регрессия, алгоритм Отладка DLL? В MT4 1...804805806807808809810811812813814815816817818...3776 Новый комментарий
видюшку не надо.
сделайте в коде подробное 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
Если дебажный EX5 запускать не из редактора, а прямо в терминале - такой же результат?
Можете приложить отладочный EX5?
Вот его принт
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
Не воспроизводится.
Win7 x64
MT5 x64 build 687
Если дебажный EX5 запускать не из редактора, а прямо в терминале - такой же результат?
Можете приложить отладочный EX5?
Да интересно получается, если запускаю с тестера, работает 30 выдает, если в качестве советника тоже выдает 30 на принт.
Если иду опять в отладку там 0.
MetaDriver
На каком билде и на какой виде (извиняюсь за выражение) получилось.
Надо все таки наверно видюшку выложить будет, если не у кого воспроизвести сие чудо не получится.
Вот тут
явно не хватает проверок:
Спасибо, попытаюсь добавить.
Вот видео (только там разрешение побольше 720 выбирайте, а то все в мыле будит)
https://www.youtube.com/watch?v=Prpw6DUYvjY&feature=youtu.be
Win7 64bit MT5 687 билд
Как выяснил эффект когда return выдает 0, происходит вроде только в отладчике.
При этом, если использовать только кнопку "шаг с заходом" вроде работает.
Если войдя в цикл while выйти кнопкой "шаг на ружу" не работает на выходе стабильно 0.
В общем на видео все видно, но как быть и чего делать пока мне не понятно (и почему так только у меня?)
Win7 64bit MT5 687 билд
При оптимизации вылезли непонятные символы
На вкладке график оптимизации по вертикали все значения -1
Вот тут
явно не хватает проверок:
Однако с буферами мне пока проблеми, читаю - всё понятно а как надо применять в коде, так не особо понятно. Если не сложно, можете вставить это в код?
Битность терминала какая?
В свойствах терминала "О программе" нет такой информации (только версия и билд)
Но стоит он не в папке "Program Files (x86)", а в "Program Files" туда на Win7 64 bit ставятся все программы которые могут работать на 64 bit.
Логично предположить, наверно оно 64 bit.
(У вас получается повторить как описал и показал выше?)