Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1241

 
igrok333:
он взял цену раньше, когда аск еще был старым,
а потом только рефрешратес поменял аск, да?

да

логика выполнения кода линейная - выполнилась команда, произошли изменения, затем следующая команда

так и у Вас в коде, выполнили присвоение, а обновление цен уже ниже по коду

сделайте расчет cena в цикле и перед этим расчетом обновите котировки.... нормализовать cena не забудьте если это расчет, иначе следующий вопрос у Вас будет почему не работает теперь )))

 
Igor Makanu:

да

логика выполнения кода линейная - выполнилась команда, произошли изменения, затем следующая команда

так и у Вас в коде, выполнили присвоение, а обновление цен уже ниже по коду

сделайте расчет cena в цикле и перед этим расчетом обновите котировки.... нормализовать cena не забудьте если это расчет, иначе следующий вопрос у Вас будет почему не работает теперь )))


теперь ясно как проверить.

double cena=Ask;

for (int i=0; i<=10; i++)
   {
   RefreshRates();   
   Alert(cena);
   Sleep(3000);
   }

и

for (int i=0; i<=10; i++)
   {   
   RefreshRates();   
   double cena=Ask;
   Alert(cena);
   Sleep(3000);
   }
 
Здравствуйте. В стандартной библиотеке есть папка WinApi. Хорошо бы если в справочнике MQL5 появилось описание её содержимого. А пока может подскажите, нет ли там метода чтобы прочитать и записать поле даты начала форвард-оптимизации в тестере? Или может даже добавть новую пропорцию типа 1/5?
 
Good Beer:
Здравствуйте. В стандартной библиотеке есть папка WinApi. Хорошо бы если в справочнике MQL5 появилось описание её содержимого. А пока может подскажите, нет ли там метода чтобы прочитать и записать поле даты начала форвард-оптимизации в тестере? Или может даже добавть новую пропорцию типа 1/5?

Это не имеет никакого отношения к mql.

https://docs.microsoft.com/en-us/windows/win32/apiindex/windows-api-list

Удачи.

Windows API index - Win32 apps
  • 2018.05.31
  • GrantMeStrength
  • docs.microsoft.com
A list of the reference content for the Windows API.
 
Good Beer:
нет ли там метода чтобы прочитать и записать поле даты начала форвард-оптимизации в тестере?

Не скажу как в пятёрке, в четвёрке так:

extern datetime dtDateBegin   = D'2008.12.01';
extern datetime dtDateEnd     = D'2009.01.01';

#import "user32.dll"
   int SendMessageA(int hWnd, int Msg, int wParam, int lParam[]);
   int GetAncestor(int hWnd, int gaFlags);
   int GetDlgItem(int hDlg, int nIDDlgItem);
   int FindWindowExA(int hWndParent, int hWndChildAfter, string lpszClass, string lpszWindow);
#import

#define DTM_SETSYSTEMTIME      0x1002

void start()
{
   int hTerminalWnd, hTesterWnd, hDateTimeBegin, rglSysTime[4];
   
// определяем системный дескриптор окна тестера
   
   hTerminalWnd = GetAncestor(WindowHandle(Symbol(), Period()) ,2);
   hTesterWnd = GetDlgItem(hTerminalWnd, 0xE81E);
   hTesterWnd = GetDlgItem(hTesterWnd, 0x53);
   hTesterWnd = GetDlgItem(hTesterWnd, 0x81BF);

// устанавливаем дату начала  оптимизации\тестирования

   hDateTimeBegin = FindWindowExA(hTesterWnd, GetDlgItem(hTesterWnd, 0x3FF), "SysDateTimePick32", "");
   ArrayInitialize(rglSysTime, 0);
   
   rglSysTime[0] = (TimeMonth(dtDateBegin) << 16) | TimeYear(dtDateBegin);
   rglSysTime[1] = (TimeDay(dtDateBegin)   << 16) | TimeDayOfWeek(dtDateBegin);
   
   SendMessageA(hDateTimeBegin, DTM_SETSYSTEMTIME, 0, rglSysTime);
}
 

Почему ни один из предоставленных примеров готового кода из учебника по mql4 не компилируется?

Я тут попробовал что-то написать, столкнулся с тем, что функция OnTick осуществляет переход к функции .mqh , а из этой функции вызываются другие функции .mqh и компилятор их не видит и как сделать не понимаю. Вот скачал готовые коды используемые в учебнике и даже они не работают. Я опасался, что у меня в программе нет нет да появляется 5-7 ошибок, а как запустил скачанные из официальной библиотеки так там черт ногу сломит.. 60-80-90 ошибок. Скомпилировался без ошибок только файл Variables.mqh , все остальное горит ярким пламенем. Где нормальный актуальный материал есть по данному языку? Все эти видео-учебники каких годов-то? оно ничего не работает, по тому что там написано - делайте так и будет вам результат

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
 
Denis Diakonov:

Почему ни один из предоставленных примеров готового кода из учебника по mql4 не компилируется?

Я тут попробовал что-то написать, столкнулся с тем, что функция OnTick осуществляет переход к функции .mqh , а из этой функции вызываются другие функции .mqh и компилятор их не видит и как сделать не понимаю. Вот скачал готовые коды используемые в учебнике и даже они не работают. Я опасался, что у меня в программе нет нет да появляется 5-7 ошибок, а как запустил скачанные из официальной библиотеки так там черт ногу сломит.. 60-80-90 ошибок. Скомпилировался без ошибок только файл Variables.mqh , все остальное горит ярким пламенем. Где нормальный актуальный материал есть по данному языку? Все эти видео-учебники каких годов-то? оно ничего не работает, по тому что там написано - делайте так и будет вам результат

Поток сознания если честно :)

И никакой конкретики.

 
как авторизоватся 
 
Artyom Trishkin:

Поток сознания если честно :)

И никакой конкретики.

Копия из другой ветки.


Подскажите пожалуйста. У меня есть пользовательские функции в отдельных файлах .mqh прописал их через #include, вызываю в старте по очередности, когда старт переходит в одну функцию, то в зависимости от действий программе нужно обратиться к другому файлу .mqh (к примеру для получения значения по объему ордера) и этого не происходит. Если же прописываю все в одном листе, то работает или если прописываю формулу расчета лота прямо в параметрах открытия ордера. Смотрел уроки по MQL4, читал справку по программе и ничего не нашел в итоге. Это ведь придумано для того, чтобы в программе был порядок и структура, так почему одна функция .mqh не может взаимодействовать с другой функцией .mqh в рамках выполнения расчетов - мне совсем не ясно. Или нужно делать чтобы программа при возникновении такой необходимости возвращалась в start - переходила в функцию расчета лота .mqh та возвращала результат в start и после чего start с этим расчетом шел обратно в функцию открытия ордера .mqh ? Бред какой-то... Или нужно как-то по-другому объявить все имеющиеся функции для их совместного взаимодействия? Спасибо 

 
Artyom Trishkin:

Поток сознания если честно :)

И никакой конкретики.

Это не поток, а утечка.

Причина обращения: