По шаговая отладка в MQL4 - страница 2

 
Точно, неправильно. Познакомить MQL4 разработчиков-трейдеров, использующих MT4 и создающих код индикаторов/экспертов на MQL4, с возможностями, которые имеют прикладные разработчики "полновесных" сред разработки, в том числе и создатели терминала MT4. Фраза была неясная.
Кстати, в одном .exe комплекта MT4, или мне показалось, я обнаружил следы не MS VC++, а Borland Delphi. Каким макаром так может быть, не понимаю, наверное, показалось, или они всё же пишут на Borland C++ Builder и взяли от Delphi инсталлятор.
 
eugenk1:

... А вообще-то думаю расставаться с mql4. До уровня нормального С он очень здорово не дотягивает. Например отсутствие структур дико неудобно. Кроме того нет никакой гарантии, что mql5 тоже будет С-подобным языком. А потому идеальным мне кажется код, написанный на С/С++, с тоненькой прослойкой mql4, для связи с терминалом.

Не нужно требовать от MQL-я слишком многого - нормальный Си-подобный
язык, с большим числом добротно написанных специализированных функций.
И за него разработчикам - огромное спасибо. Нужно просто грамотно и
адекватно его возможностям его использовать.

Наиболее здравое решение - комплекс из MQL эксперта, осуществляющего
первичную обработку информации и управление торговым счетом и мощной
аналитической программы написанной на том же С++ с использованием
каких-нибудь матлабоподоных оболочек, СУБД-ов и т.д. Взаимодействие
между ними осуществлять через буферные файлы.

Ну а вместо структур в MQL-е можно использовать функции - коряво
конечно, но если очень хочется, то можно.
 

Согласен с предыдущим ответом, для трейдинга MQL4 имеет достаточно возможностей, включая работу с файловой системой, почтой, FTP и т.д. И никакие банковские системы для трейдинга, которые мне доводилось видеть, и рядом не лежали с возможностью платформы MT4.

Речь идёт всё же о возможности полноценной отладки MQL4 приложений, любой разработчик со стажем поймёт разницу между нормальным debugger'ом и выводом переменных в журнал. Ну и, может быть, стоило бы действительно добавить неких аналогов OLE DB провайдеров для работы с известными СУБД (Oracle, MS SQL, MySql, Sybase), но это уже будет конфетка :-)

 
chv писал (а):

Согласен с предыдущим ответом, для трейдинга MQL4 имеет достаточно возможностей, включая работу с файловой системой, почтой, FTP и т.д. И никакие банковские системы для трейдинга, которые мне доводилось видеть, и рядом не лежали с возможностью платформы MT4.

Речь идёт всё же о возможности полноценной отладки MQL4 приложений, любой разработчик со стажем поймёт разницу между нормальным debugger'ом и выводом переменных в журнал. Ну и, может быть, стоило бы действительно добавить неких аналогов OLE DB провайдеров для работы с известными СУБД (Oracle, MS SQL, MySql, Sybase), но это уже будет конфетка :-)


А подскажите, пожалуйста, можно ли программно нажать паузу из эксперта при тестировании в Визуальном режиме?
 
klot писал (а):

А подскажите, пожалуйста, можно ли программно нажать паузу из эксперта при тестировании в Визуальном режиме?

Можно. Послать своему окну сообщение WM_KEYDOWN с параметром VK_PAUSE
 
stringo писал (а):
klot писал (а):

А подскажите, пожалуйста, можно ли программно нажать паузу из эксперта при тестировании в Визуальном режиме?

Можно. Послать своему окну сообщение WM_KEYDOWN с параметром VK_PAUSE

ТОчно. Спасибо!!!
 
Конечно, среди разработчиков Советников немало профессиональных программистов, которые с легкостью могут дополнять нереализованные функции в языке MQL4, средствами других языков программирования.
Но что делать тем, кто никогда не учился языкам программирования и может использовать только язык MQL4?

Мне кажется, что поставленный вопрос в начале данной ветки, подразумевал всё-таки оказание помощи советом именно непрофессиональным программистам....

В свою очередь, скажу, что кроме функции "Print()" ничего другого для отладки Советника не использую, но при этом не ощутил никаких неудобств (может быть, в том числе, и потому что другими средствами не умею пользоваться).
Конечно эта функция не дает в прямом смысле ПОШАГОВОЙ отладки, но в контрольных точках программы позволяет выводить любую промежуточную информацию. Нажимая паузу при визуальном тестировании, можно посмотреть эту информацию в журнале.
 
stringo писал (а):
klot писал (а):

А подскажите, пожалуйста, можно ли программно нажать паузу из эксперта при тестировании в Визуальном режиме?

Можно. Послать своему окну сообщение WM_KEYDOWN с параметром VK_PAUSE
Там через WinUser32.mqh или user32.dll делается? Что-то не могу сообразить.
Можно кусочек кода привести как пример?
 
Почти придумал...

SendMessageA(hWnd, WM_KEYDOWN, 19, 0);


как узнать хендл окна визуального тестирования hWnd=?
функция
int hWnd=WindowHandle(Symbol(),Period());


не работает при тестировании :(
 
klot писал (а):
Почти придумал...

SendMessageA(hWnd, WM_KEYDOWN, 19, 0);


как узнать хендл окна визуального тестирования hWnd=?
функция
int hWnd=WindowHandle(Symbol(),Period());


не работает при тестировании :(

ХА!
Придумал! Познакомился по-ближе с WinAPI :)
Ставим брейк в нужном месте программы и ..................
if (signal_bkp!=0)
     {
      // Можно вывести нужные переменные на экран
      // Comment(........................);
      //-----------------------------------------------------------
      // И нажать на паузу
      //----
            keybd_event(19,0,0,0); //Нажимаем кнопку пауза VK_PAUSE=19 или 0x13
            keybd_event(19,0,KEYEVENTF_KEYUP,0); // Отпускаем кнопку
      //---
      
      }
Кстати, можно на любые кнопки жать из эксперта. При желании, и если брокер запретил эксперты, таким образом можно вручную торговать :)
Просьба к разработчикам. Добавте, пожалуйста коды клавишь в WinUser32.mqh
Причина обращения: