Примеры: Изменение внешних параметров MQL4-программ без перезагрузки

 

New article Изменение внешних параметров MQL4-программ без перезагрузки has been published:

Статья описывает метод изменения внешних параметров MQL4-программ на лету без перезагрузки.

Все, кто хоть раз запускал советник или индикатор на выполнение, сталкивался с возможностью предварительной настройки внешних параметров, от которых зачастую зависит успех работы программы. Существует возможность изменения параметров на протяжении работы программы. Но как сделать это без инициализации? Ведь в некоторых случаях это может повлиять на управление ранее открытыми ордерами. В статье мы попробуем решить эту проблему максимально гибко.

Author: Alexey Koshevoy

 

Упс... А зачем такие сложности? да еще внешними модулями на CPP которые обычные пользователи MQL врядли смогут самостоятельно развивать и поддерживать?

Мне кажется что для решения проблемы вполне хватит библиотеки работы с ini-файлами ('Библиотека функций для работы с INI-файлами.'), а всю логику обработки сохранения и чтения можно реализовать в самом советнике (без CPP). Да и ini-файлы сами по себе очень "стандартная" весчь - ее легко читать и править в текстовом редакторе.

 
ForexTools:

Упс... А зачем такие сложности? да еще внешними модулями на CPP которые обычные пользователи MQL врядли смогут самостоятельно развивать и поддерживать?

Мне кажется что для решения проблемы вполне хватит библиотеки работы с ini-файлами ('Библиотека функций для работы с INI-файлами.'), а всю логику обработки сохранения и чтения можно реализовать в самом советнике (без CPP). Да и ini-файлы сами по себе очень "стандартная" весчь - ее легко читать и править в текстовом редакторе.

Можно конечно, но весь смысл в том что параметры правятся на лету при помощи внешней программы, т.е. не просто начальные установки, а постоянно изменяющиеся переменные. Хотя можно не использовать внешнюю программу и править файл напрямую. В таком случае внешняя программа отпадает.
 
AlexeyKoshevoy:
весь смысл в том что параметры правятся на лету при помощи внешней программы, т.е. не просто начальные установки, а постоянно изменяющиеся переменные.

Ну так и пусть правят или заново пересоздают себе ini-файл ;)

Я просто как то не могу себе представить конкретную задачу для трейдера, в которой он пользуется экспертом, данные для которого он получает из внешней программы. Можете ли вы привести какой нибудь пример конкретной задачи, чтобы была понятна ситуация в которой без этого нельзя обойтись по другому, кроме как СРР-шными модулями?

 
ForexTools:

Ну так и пусть правят или заново пересоздают себе ini-файл ;)

Я просто как то не могу себе представить конкретную задачу для трейдера, в которой он пользуется экспертом, данные для которого он получает из внешней программы. Можете ли вы привести какой нибудь пример конкретной задачи, чтобы была понятна ситуация в которой без этого нельзя обойтись по другому, кроме как СРР-шными модулями?

Например, копировщик сигналов(трейдов) :)
 
Rosh:
Например, копировщик сигналов(трейдов) :)
Это значит что есть другой советник (на MQL наверное) и он вполне может записать INI-файл, который может считывать другой советник или зацикленный срипт. Здесь можно обойтись без СРР :)
 
ForexTools:
Rosh:
Например, копировщик сигналов(трейдов) :)
Это значит что есть другой советник (на MQL наверное) и он вполне может записать INI-файл, который может считывать другой советник или зацикленный срипт. Здесь можно обойтись без СРР :)

Дело не в CPP. Внешняя программа здесь служит для удобства. Для того чтобы не править файл руками, а использовать программу, только и всего.

Пример использования системы. Добавить Action для открытия ордера. Это на тот случай когда вдруг вы решили что ордер нужно открыть именно сейчас, а логика эксперта на это не запрограммирована. Ну а обслуживать этот ордер (выбирать размер лота, расчитывать стопы, закрывать ордер и т.д.) будет эксперт. Получается гибридный вариант. Ручное открытие, но автоматическая обработка ордера.

 

Не уверен что актуально, по крайней мере, для большинства поьзователей MQL.... но как расширение MQL - блестяще!!! :)

Чего бы действительно хотелось, так это добавления некоторых ограничений именно при работе на исторических данных (оптимизация, тестирование), например, TP>=SL и т.д., чтобы не описывать это каждый раз в коде.... имхо 

 
AlexeyKoshevoy:

Пример использования системы. Добавить Action для открытия ордера. Это на тот случай когда вдруг вы решили что ордер нужно открыть именно сейчас, а логика эксперта на это не запрограммирована.

Как эксперт откроет ордер (пусть даже по сигналу из файла в который его прописал ктото извне) если его логика не запрограмирована на открытие?!! И зачем мне программировать логику вне MQL если открывать будет все равно MQL.

Сдаюсь - ничего не понимаю. И даже догадаться не могу... Простите мой флуд... послежу тихонько за топиком - может в ответах чтото прояснится для меня.

 

Идём на муху с пушкой :) Нужно писать експертов так, чтобы можно их было перезапустить в любой момент, иначе любой форс-мажор может привести к каюку счёта.

Кстати, в примере 1 можно спокойно обойтись магиком - его же можно по формуле составлять какой-нибудь и проверять принадлежность тоже. Но это от задачи зависит.

 
notused:

Идём на муху с пушкой :) Нужно писать експертов так, чтобы можно их было перезапустить в любой момент, иначе любой форс-мажор может привести к каюку счёта.

Кстати, в примере 1 можно спокойно обойтись магиком - его же можно по формуле составлять какой-нибудь и проверять принадлежность тоже. Но это от задачи зависит.

Я сторонник того чтобы контекст сам восстанавливался на каждом тике, тогда форсмажор не страшен. 99% экспертов так и пишутся. Однако, иногда возникает у трейдера фантазия обслуживать две логики в одном эксперте. Согласен, если использовать тут два Мэджика, то будет работать. 

Повторюсь, основное назначение этой задачи - это возможность исполнить незапланированное действие.

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