Ответ
 
Опции темы
01.08.2016, 15:58
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от ValPra Посмотреть сообщение
Благодарю Вас. Однако моя проблема сложнее. У меня MetaTrader 4.0 Build 988 и при нём MetaEditor 5.0 Build 1351, но это не mql5. Бывает ли такое, чтобы при MetaTrader 4.0 был MetaEditor для mql5?
У метаквототв всё бывает.

Софт находится в процессе разработки и поэтапного внедрения, поэтому
столько глюков.
Они уже выпустили версию МТ5 с локированием, поэтому скоро наступит время когда они откажутся от поддержки МТ4 и MQL4.
Возможно ещё некоторое время потянут "кота за хвост".
Но итог известен.

Смысл компилировать в 509 версии не вижу, по вышеперечисленным причинам.

А предложение по отладчику остается в силе.
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 16:20
Аватар для ValPra
ValPra Новичок форума
Регистрация: 12.11.2012 / Сообщений: 9
Поблагодарили 4 раз(а) / Репутация: 5
У меня сова. Благодарю Вас автор ansol! Ваш ответ самый конкретный. Даже MetaQuotes отмахнулись просто ссылкой:
_https://docs.mql4.com/ru/basis/function/events
Дело в том, что я уже пробовал OnTick, но, это была моя ошибка, с одновременным использованием OnInit и OnDeinit. Однако OnTick нужно использовать вместе с init и deinit. Несмотря на то, что компилятор выругался предупреждением: "no OnStart function defined in the script". Всё заработало. Этот случай я ранее тоже хотел использовать, но тогда меня остановило это предупреждение.
ValPra вне форума Ответить с цитированиемОтветить с цитированием  
01.08.2016, 16:30
Аватар для ValPra
ValPra Новичок форума
Регистрация: 12.11.2012 / Сообщений: 9
Поблагодарили 4 раз(а) / Репутация: 5
Сообщение от _SERG_ Посмотреть сообщение
У метаквототв всё бывает.

Софт находится в процессе разработки и поэтапного внедрения, поэтому
столько глюков.
Они уже выпустили версию МТ5 с локированием, поэтому скоро наступит время когда они откажутся от поддержки МТ4 и MQL4.
Возможно ещё некоторое время потянут "кота за хвост".
Но итог известен.

Смысл компилировать в 509 версии не вижу, по вышеперечисленным причинам.

А предложение по отладчику остается в силе.
Я могу перейти на mql5, но тестер TickDataSuite всё же лучше, чем то, что есть на MetaTrader 5. Или ситуация изменилась?
ValPra вне форума Ответить с цитированиемОтветить с цитированием  
01.08.2016, 16:32
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
Сообщение от ValPra Посмотреть сообщение
У меня сова. Благодарю Вас автор ansol! Ваш ответ самый конкретный. Даже MetaQuotes отмахнулись просто ссылкой:
_https://docs.mql4.com/ru/basis/function/events
Дело в том, что я уже пробовал OnTick, но, это была моя ошибка, с одновременным использованием OnInit и OnDeinit. Однако OnTick нужно использовать вместе с init и deinit. Несмотря на то, что компилятор выругался предупреждением: "no OnStart function defined in the script". Всё заработало. Этот случай я ранее тоже хотел использовать, но тогда меня остановило это предупреждение.
Может все-таки вывести какой-нибудь Alert() сразу после start(), чтобы точно поянть, с какого момента не работает?
У меня все скрипты работают имеенно со start(), init() и deinit()
а на глазок я не вижу в вашем коде ошибку.
ansol на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 16:32
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от ValPra Посмотреть сообщение
У меня сова. Благодарю Вас автор ansol! Ваш ответ самый конкретный. Даже MetaQuotes отмахнулись просто ссылкой:
_https://docs.mql4.com/ru/basis/function/events
Дело в том, что я уже пробовал OnTick, но, это была моя ошибка, с одновременным использованием OnInit и OnDeinit. Однако OnTick нужно использовать вместе с init и deinit. Несмотря на то, что компилятор выругался предупреждением: "no OnStart function defined in the script". Всё заработало. Этот случай я ранее тоже хотел использовать, но тогда меня остановило это предупреждение.
Смотрю, тут каша полная!

Посмотри в доке про зоны видимости данных. Про локальные и глобальные переменные, а также, переменные терминала. И так дальше всю доку.

Объясню фунционал, init()(OnInit() - по новой) Выполняется один раз, перд запуском советника и в ней размещается код необходимый для подготовки данных, для основного кода советника или скрипта. **Примечание, в начальном шаблоне скрипта инит и деинит отсутствуют, но также как советниках могут быть использованы.
Дэинит или ОнДэинит(), также выполняется один раз, только при штатном закрытии, в случаях сбоев процедуры завершения работы кода, работают другие механизмы, идентифицирующие результаты сбоя.

По аффтору (ansol), что мешает ему внести изменения в код?
Всё, что выше написано, это его (ansol) код?

Последний раз редактировалось _SERG_; 01.08.2016 в 16:35.
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 16:36
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
Цитата:
Всё, что выше написано, это его (ansol) код?
Не, это не мой код.
А так-то, да раз сова, то надо все три функции заменять - OnTick, OnInit, OnDeinit
Это несложно, надо только внимательным быть. Я в совах давно поменял, теперь не боюсь неприятностей(пока, во всяком случае)
ansol на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 16:46
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от ansol Посмотреть сообщение
Не, это не мой код.
А так-то, да раз сова, то надо все три функции заменять - OnTick, OnInit, OnDeinit
Это несложно, надо только внимательным быть. Я в совах давно поменял, теперь не боюсь неприятностей(пока, во всяком случае)
Та я без претензий, просто чел стрелки перевёл на аффтора .
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 16:48
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
Есть еще глупый вариант:
Автоторговля разрешена в МТ4, но не включена галка на закладке самого советника.
Ну, а вдруг?
ansol на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 16:59
Аватар для ValPra
ValPra Новичок форума
Регистрация: 12.11.2012 / Сообщений: 9
Поблагодарили 4 раз(а) / Репутация: 5
Всё включено и разрешено. Короче, OnDeinit не работает, а компилятор предупреждает: "OnDeinit function declared with wrong type or/and parameters SB-experiments.mq4". Оба варианта работают: init и OnInit. Работает OnTick, но компилятор ругается: "no OnStart function defined in the script". Вот такая кривизна MetaQuotes.
ValPra вне форума Ответить с цитированиемОтветить с цитированием  
01.08.2016, 17:04
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
От деинит работает так:
PHP код:
void OnDeinit(const int reason)
  {
//---

  

Ему этот констант-ризон нужен обязательно.
Ну, я там еще созданные совой объекты удаляю (объектделит).
Ни каких проблем не должно быть.
А в скрипте не надо OnTick() там надо старт() - вы свой текст-то проверьте, сами объявляете скрипт в начале проги, а нам пишете, что это сова.
ansol на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 17:05
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от ValPra Посмотреть сообщение
Всё включено и разрешено. Короче, OnDeinit не работает, а компилятор предупреждает: "OnDeinit function declared with wrong type or/and parameters SB-experiments.mq4". Оба варианта работают: init и OnInit. Работает OnTick, но компилятор ругается: "no OnStart function defined in the script". Вот такая кривизна MetaQuotes.
Ну так исправь тип дэинита(const int reason) на void.

Ичтобы не ругалсяя компилятор, перенеси код в папку "/MQL/Experts" из папки "Scripts", если считаешь, что это советник.

Последний раз редактировалось _SERG_; 01.08.2016 в 17:11.
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 17:07
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
#property show_inputs - это директива скрипта, не совы. Сова всегда входные параметры показывает.
ansol на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 17:25
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от ansol Посмотреть сообщение
#property show_inputs - это директива скрипта, не совы. Сова всегда входные параметры показывает.
Всегда?!! Ну-ну.
Вставь директиву в советник, и перед запуском она тебе параметры обязательно буднт выводить, те что по Ф7, а не вставишь, таки не будет.

Последний раз редактировалось _SERG_; 01.08.2016 в 17:27.
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 17:28
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
Сообщение от _SERG_ Посмотреть сообщение
Вставь директиву в советник, и перед запуском она тебе параметры обязательно буднт выводить, те что по Ф7.
Дык она без этой директивы показывает всегда.
Меня смущает, что ругань идет на скрипт. Я и хочу понять, это скрипт или сова?
ansol на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 17:33
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
Вставил в сову только что вот это:
PHP код:
#property show_inputs 
Получил:
'GAPnews.mq4' GAPnews.mq4 1 1
'stdlib.mqh' stdlib.mqh 1 1
no OnStart function defined in the script 0 0
0 error(s), 1 warning(s), compile time: 3448 msec 1 2
Что и требовалось доказать. Эта директива в сове не допустима, а?
Без нее всё без ошибок идет
ansol на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 17:34
Аватар для ValPra
ValPra Новичок форума
Регистрация: 12.11.2012 / Сообщений: 9
Поблагодарили 4 раз(а) / Репутация: 5
Сообщение от ansol Посмотреть сообщение
Дык она без этой директивы показывает всегда.
Меня смущает, что ругань идет на скрипт. Я и хочу понять, это скрипт или сова?
Сова. Даже филин. Точно не скрипт. Теперь всё работает даже в таком кривом виде с кривым компилятором. Эксперименты помогли.
ValPra вне форума Ответить с цитированиемОтветить с цитированием  
01.08.2016, 17:35
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от ansol Посмотреть сообщение
Дык она без этой директивы показывает всегда.
Меня смущает, что ругань идет на скрипт. Я и хочу понять, это скрипт или сова?
Возьми исходняк компильни и всё увидишь.
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 17:37
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
Сообщение от _SERG_ Посмотреть сообщение
Возьми исходняк компильни и всё увидишь.
Уже, см. выше.
ansol на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 18:05
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от ansol Посмотреть сообщение
Уже, см. выше.
Слегка подправил.
Разместить в экспертах.
Компилнулось без ошибок.
Функционал не проверял.

В принте подправь преобразование из дабла в стринг с разрядами.
Вложения:
Тип файла: mq4 SB-experiments.mq4 (1.6 Кб, 7 просмотров)

Последний раз редактировалось _SERG_; 01.08.2016 в 18:11.
_SERG_ на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 18:51
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
А так нет:

'SB-experiments.mq4' SB-experiments.mq4 1 1
'stdlib.mqh' stdlib.mqh 1 1
'stderror.mqh' stderror.mqh 1 1
no OnStart function defined in the script 0 0
0 error(s), 1 warning(s), compile time: 436 msec 1 2

OnTick() правильно, а start() - это просто для обратной соместимости оставлено.
Вложения:
Тип файла: mq4 SB-experiments.mq4 (1.6 Кб, 7 просмотров)
ansol на форуме Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 08:42. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO