Ответ
 
Опции темы
Старый 01.08.2016, 15:58   #4921 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от 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   #4922 (permalink)
Новичок форума
 
Аватар для ValPra
 
Регистрация: 12.11.2012
Сообщений: 9
Репутация: 5
ValPra
Сказал(а) спасибо: 8
Поблагодарили 4 раз(а) в 2 сообщениях
Поинты: 8
У меня сова. Благодарю Вас автор 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   #4923 (permalink)
Новичок форума
 
Аватар для ValPra
 
Регистрация: 12.11.2012
Сообщений: 9
Репутация: 5
ValPra
Сказал(а) спасибо: 8
Поблагодарили 4 раз(а) в 2 сообщениях
Поинты: 8
Сообщение от _SERG_ Посмотреть сообщение
У метаквототв всё бывает.

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

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

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

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Сообщение от 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   #4925 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от 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   #4926 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Цитата:
Всё, что выше написано, это его (ansol) код?
Не, это не мой код.
А так-то, да раз сова, то надо все три функции заменять - OnTick, OnInit, OnDeinit
Это несложно, надо только внимательным быть. Я в совах давно поменял, теперь не боюсь неприятностей(пока, во всяком случае)
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 01.08.2016, 16:46   #4927 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от ansol Посмотреть сообщение
Не, это не мой код.
А так-то, да раз сова, то надо все три функции заменять - OnTick, OnInit, OnDeinit
Это несложно, надо только внимательным быть. Я в совах давно поменял, теперь не боюсь неприятностей(пока, во всяком случае)
Та я без претензий, просто чел стрелки перевёл на аффтора .
_SERG_ вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 01.08.2016, 16:48   #4928 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Есть еще глупый вариант:
Автоторговля разрешена в МТ4, но не включена галка на закладке самого советника.
Ну, а вдруг?
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 01.08.2016, 16:59   #4929 (permalink)
Новичок форума
 
Аватар для ValPra
 
Регистрация: 12.11.2012
Сообщений: 9
Репутация: 5
ValPra
Сказал(а) спасибо: 8
Поблагодарили 4 раз(а) в 2 сообщениях
Поинты: 8
Всё включено и разрешено. Короче, 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   #4930 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
От деинит работает так:
PHP код:
void OnDeinit(const int reason)
  {
//---

  

Ему этот констант-ризон нужен обязательно.
Ну, я там еще созданные совой объекты удаляю (объектделит).
Ни каких проблем не должно быть.
А в скрипте не надо OnTick() там надо старт() - вы свой текст-то проверьте, сами объявляете скрипт в начале проги, а нам пишете, что это сова.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 01.08.2016, 17:05   #4931 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от 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   #4932 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
#property show_inputs - это директива скрипта, не совы. Сова всегда входные параметры показывает.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 01.08.2016, 17:25   #4933 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от ansol Посмотреть сообщение
#property show_inputs - это директива скрипта, не совы. Сова всегда входные параметры показывает.
Всегда?!! Ну-ну.
Вставь директиву в советник, и перед запуском она тебе параметры обязательно буднт выводить, те что по Ф7, а не вставишь, таки не будет.

Последний раз редактировалось _SERG_; 01.08.2016 в 17:27.
_SERG_ вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 01.08.2016, 17:28   #4934 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Сообщение от _SERG_ Посмотреть сообщение
Вставь директиву в советник, и перед запуском она тебе параметры обязательно буднт выводить, те что по Ф7.
Дык она без этой директивы показывает всегда.
Меня смущает, что ругань идет на скрипт. Я и хочу понять, это скрипт или сова?
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 01.08.2016, 17:33   #4935 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Вставил в сову только что вот это:
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   #4936 (permalink)
Новичок форума
 
Аватар для ValPra
 
Регистрация: 12.11.2012
Сообщений: 9
Репутация: 5
ValPra
Сказал(а) спасибо: 8
Поблагодарили 4 раз(а) в 2 сообщениях
Поинты: 8
Сообщение от ansol Посмотреть сообщение
Дык она без этой директивы показывает всегда.
Меня смущает, что ругань идет на скрипт. Я и хочу понять, это скрипт или сова?
Сова. Даже филин. Точно не скрипт. Теперь всё работает даже в таком кривом виде с кривым компилятором. Эксперименты помогли.
ValPra вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 01.08.2016, 17:35   #4937 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от ansol Посмотреть сообщение
Дык она без этой директивы показывает всегда.
Меня смущает, что ругань идет на скрипт. Я и хочу понять, это скрипт или сова?
Возьми исходняк компильни и всё увидишь.
_SERG_ вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 01.08.2016, 17:37   #4938 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Сообщение от _SERG_ Посмотреть сообщение
Возьми исходняк компильни и всё увидишь.
Уже, см. выше.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 01.08.2016, 18:05   #4939 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от ansol Посмотреть сообщение
Уже, см. выше.
Слегка подправил.
Разместить в экспертах.
Компилнулось без ошибок.
Функционал не проверял.

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

Последний раз редактировалось _SERG_; 01.08.2016 в 18:11.
_SERG_ вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 01.08.2016, 18:51   #4940 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
А так нет:

'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 Выкл.



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


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