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

 
Подскажите плиз кому не трудно, mql5, эксперту нужно иногда записать значение времени чтобы потом считывать, но может быть аварийное завершение и тп и время сотрётся. Можно ли записать datetime в глобальную переменную терминала, но она же double, не возникнет проблем? или лучше какой то еще способ? Спасибо!
 
Fast235 #:

справка для профи, быстрее спросить, а именно нанять репетитора так сказать. поверьте, это дешевле и быстрее.

но для обучения нужен специалист энтузиаст, а не просто глубокий профи, вам нужно правильно объяснить базу и все. остальные 10 тыс страниц. разнородной информации....

Благодарю за совет!

 

Подскажите, пожалуйста, что лучше:

Писать всё в одном блоке OnTick или разделить по функциям? То есть, чтобы в  OnTick были только вызовы функций

(вопрос по большей мере в части оптимизации кода и каких-нибудь перспектив и подводных камней)
 
freelancerAntonyan #:
Подскажите плиз кому не трудно, mql5, эксперту нужно иногда записать значение времени чтобы потом считывать, но может быть аварийное завершение и тп и время сотрётся. Можно ли записать datetime в глобальную переменную терминала, но она же double, не возникнет проблем? или лучше какой то еще способ? Спасибо!
При аварийном завершении ничто не запишется и GV в том числе. А в принципе никаких проблем. Только при записи применить явное приведение типов и при чтении тоже.
 
freelancerAntonyan #:
Подскажите плиз кому не трудно, mql5, эксперту нужно иногда записать значение времени чтобы потом считывать, но может быть аварийное завершение и тп и время сотрётся. Можно ли записать datetime в глобальную переменную терминала, но она же double, не возникнет проблем? или лучше какой то еще способ? Спасибо!

через union можно писать любые типы в double и читать обратно.

 
Ivan Butko #:

Подскажите, пожалуйста, что лучше:

Писать всё в одном блоке OnTick или разделить по функциям? То есть, чтобы в  OnTick были только вызовы функций

(вопрос по большей мере в части оптимизации кода и каких-нибудь перспектив и подводных камней)

Вызовы функций правильнее.

Только функции должны быть логически законченными и понятными, что бы в ОнТик по коду можно было понимать логику работы.

 
MakarFX #:
Давай сюда файл. Это что-то новенькое, такого еще не слышал.

Переименуйте любой файл *.mq4 в любое расширение и попробуйте откомпилировать, и ничего не выйдет, компилятор его будет пытаться компилировать как-будто он МТ5.

Чтобы я там внутри файла не писал, типа(

#ifdef __MQL4__

#else

#endif

не работает, пока файл обратно не переименую в *.mq4

Как это обойти, может кто-нибудь знает из профи?

 
Valeriy Yastremskiy #:

Вызовы функций правильнее.

Только функции должны быть логически законченными и понятными, что бы в ОнТик по коду можно было понимать логику работы.

Спасибо, имею ввиду
 
Sergey Zhukov #:

Переименуйте любой файл *.mq4 в любое расширение и попробуйте откомпилировать, и ничего не выйдет, компилятор его будет пытаться компилировать как-будто он МТ5.

Чтобы я там внутри файла не писал, типа(

не работает, пока файл обратно не переименую в *.mq4

Как это обойти, может кто-нибудь знает из профи?

Он вообще не компилирует!

Кинь файл. внутри можешь убрать все функции

 
Sergey Zhukov #:

Переименуйте любой файл *.mq4 

Сергей, не совсем понял зачем переименовывать файл, но так работает:


include1.mqh:

void go()
   {
   #ifdef __MQL5__
      printf("Это пятёрка");
   #else
      printf("Это четвёрка");
   #endif
   }

script1.mq4 и script1.mq5:

#include <include1.mqh>

void OnStart()
   {
   go();
   }


Понял, проблема в этом:

__MQL4__

нет теперь такого в языке.

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