Обновление платформы MetaTrader 4 билд 625: Журналы в MetaTrader Market и новый MetaViewer - страница 23

 
stringo:

В шаблоне в секции эксперта должна быть переменная flags

Какое значение у Вас запомнено для этой переменной?


flags=339
 
Если не вызывать EventKillTimer в OnDeinit, он будет вызываться автоматически?
 
RickD:
Если не вызывать EventKillTimer в OnDeinit, он будет вызываться автоматически?

Да, как и файловые хендлы.

Но лучше для чистоты самому все правильно закрывать и удалять.

 
stringo:

В шаблоне в секции эксперта должна быть переменная flags

Какое значение у Вас запомнено для этой переменной?


Попутный вопрос. Можно ли отправкой какого нибудь сообщения получить или выставить флаги работающего эксперта? Было бы удобно, тогда не пришлось бы записывать шаблон, менять в нем флаги игрузить шаблон заново.
 
stringo:

Всё давным-давно реализовано.

Вызовите в OnInit функцию UninitializeReason и получите причину, почему эксперт был переинициализирован


И ведь видел эту функцию... А хелп к ней то ли не читал, то ли забыл, не помню уже. ))

Спасибо!

 

simpleton; Spy

Спасибо, получилось. Почему-то глаз за const не зацепился.

#import "ааа.dll"
  void fdSTO(const double &op[], int KPeriod, int DPeriod, int Slowing, double &main[], double &sig[], int limit);
#import

Однако, странное получается... С "левым" массивом Op[]

  for(int i=0; i<limit; i++) Op[i]=open[i];
  fdSTO(Op,K,D,S,main,sig,limit);

Непосредственное использование open

  fdSTO(open,K,D,S,main,sig,limit);

Билд 625

 
Alexey_74:

simpleton; Spy

Спасибо, получилось. Почему-то глаз за const не зацепился.

Однако, странное получается... С "левым" массивом Op[]

Непосредственное использование open

Билд 625

А так? Как и без Op[]?
  for(int i=0; i<limit; i++) Op[i]=open[i];
  fdSTO(open,K,D,S,main,sig,limit);

ArraySetAsSeries()?

 

ArraySetAsSeries первое, что попробовал. Неа. А второе попробовал - перенес текст стохастика из библиотеки в MQL (один-в-один). Оба варианта и OP и open работают одинаково правильно.

 

МТ4 - 625, сообщение тестера при попытке тестировать сов с библиотекой:

2014.03.29 18:38:48.753 'C:\Program Files\Admiral1\MQL4\Libraries\ingLib094.mq4' is not 32-bit version

Перед этим сов компилился без запинки, и библиотечка тоже без единого слова. И ваще я совсем не понимаю.

Система у меня (в смысле винда) 32-битная, другой никогда не держал. Семерка.

Библиотека моя родная, всю дорогу с ней. Нормально идет в реальном времени на новом билде. В том числе с другими совами.

А вот в тестере открываться не желает, да еще и причину из пальца высосаллло.

И про 32-битные дела во всех хелпах нет ни слова.

На всякий случай вот запись из журнала тестера полностью:

Я, правда, уже выкрутился: просто переписал нужные функции в тело сова - и всё прошло норм. Однако хотел бы знать...

 

Перепробовал всё, что пришло в голову. Не помогло ничего.

В общем, вот так:

  for(int i=0; i<limit; i++) Op[i]=open[i];
  fdSTO(Op,K,D,S,main,sig,limit);

В отладчике посмотрел содержимое массивов Op[i] и open[i] - значения, разумеется, одинаковые.

В длл послал значения из массива price сразу в выходные массивы.

В случае fdSTO(Op,K,D,S,main,sig,limit); обратно возвращается

Т.е. цены

А в случае fdSTO(open,K,D,S,main,sig,limit);

Я не знаю, что это такое.

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