Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть ещё один вариант (надо же, из головы вылетело).
Посмотрите функции: OnTesterInit(), OnTesterPass(), OnTesterDeinit()
И: FrameFirst(), FrameFilter(), FrameNext(), FrameInputs(), FrameAdd()
Они прямо для этого и предназначены. :)
Я этим хотел сказать, что Ваша так называемая "элегантная" последняя строчка в блоке слежения совершенно не улучшает остальные 10500 возможных строчек этого самого блока. Если для Вас так принципиально использовать в int OnInit() функцию ExpertRemove() вместо оператора return(-100), то это всего лишь Ваше предпочтение, никак не улучшающее весь остальной код.
Напомню при этом: всё началось с Вашей фразы "Всё проще". В результате оказалось, что никакого упрощения нет, есть только возможная замена одной строчки кода на другую.
Это принципиально для Вас, если Вы не можете успокоиться. :) ExpertRemove() я привёл для примера. В некоторых случаях вполне подходит. "Быстрое решение".
В предыдущем посте представлены специально созданные инструменты. Я забыл совсем о них, хоть и использую активно для некоторых своих задач.
Вот с этими функциями вообще не знаком. Из описания ничего не понял. Можете привести простенький наглядный пример для понимания их возможностей применительно к нашей ситуации?
Это принципиально для Вас, если Вы не можете успокоиться. :)
Если это и принципиально "для меня", то только со следующей точки зрения: Вы заявили, что муторный код можно сделать проще и элегантнее. Как оказалось, это заявление далеко от действительности. Оказалось, что пока тот код "упростить" нельзя, можно лишь "упростить" одну строчку кода, да и то: заменив её на другую строчку. Мне же было бы интересно увидеть действительное упрощение кода, а не декоративные нашивки на него.
Чуть позже попробую сделать простой пример...
А пример с тестер-функциями ждём-с! Может, это окажется подспорьем для многих.
Посмотрите пока пример Рената: https://www.mql5.com/ru/forum/6407. Свой вариант применительно именно к этой ситуации сегодня возможно не успею. Хоть какой-нибудь постараюсь сделать...
... Вы заявили, что муторный код можно сделать проще и элегантнее. Как оказалось, это заявление далеко от действительности ...
Что за манера пошла "Забирайте свои слова"? Ага, разбежался :[
По поводу обвинений во лжи:
- Y: Для рассматриваемой ситуации я решения тоже не нашёл. Можно, конечно, в int OnInit() забабахать некий блок ... Но как-то это всё муторно выглядит.
- t: Всё проще. Можно при исполнении того или иного условия просто удалять эксперт - ExpertRemove().
- Y: От того, что проход будет завершаться досрочно с помощью Вашего предложения, муторность самого "блока слежения" никак не уменьшается, а элегантность этого блока никак не увеличивается.
- t: Ну и что Вы хотели этим сказать? Что при отсутствии элегантного решения не использовать вообще никакой? Даже, если он есть, но, как Вы выражаетесь - "муторный"?
Тем самым, Вы заявили, что (1) есть нечто проще, чем выглядящий муторно блок кода, и (2) противопоставили муторному коду некое элегантное решение, несмотря на то, что элегантность кода с Вашим предложением была отвергнута.
...
Тем самым, Вы заявили, что (1) есть нечто проще, чем выглядящий муторно блок кода, и (2) противопоставили муторному коду некое элегантное решение, несмотря на то, что элегантность кода с Вашим предложением была отвергнута.
Значит неправильно поняли...
Пожалуйста, остановитесь. Это никому не нужно. Я имел ввиду всё именно так, как написал. Буквально. А Вы всё перевернули с ног на голову. Там совсем не то, что Вы поняли. :)
Ну вот с чего Вы взяли, что если я задал Вам уточняющий вопрос, то это значит, что я что-то заявил? То, что Вы выделили, было вопросом к Вам, а не заявление. Предлагаю закончить всё это...
Значит неправильно поняли...
Пожалуйста, остановитесь. Это никому не нужно. Я имел ввиду всё именно так, как написал. Буквально.
фиговый из меня обьяснятель. Попробую еще раз. Стоит задача сформировать портфель валют, каждая валюта со своими параметрами. Во оптимизированном портфеле валюта может не участовать. Немного подсчетов шесть валют по 21 шагов оптимизации по каждой валюте, в совокупности до фига счет на миллиарды.
Теперь вопрос. Запрещаем флагом валюте торговать, то и оптимизировать ее параметры нет никакго смысла, все равно они на результат никак не повлияют, однако оптимизатор будет исправно пытаться подбирать параметры которые на результат не влияют, этот пустой прогон немного напрягает (уже третьи сутки пошли). Вроде как сам знаю что нельзя, но надежда еще теплится.
Да,все верно.Будут лишние проходы.Но это вариант комплексного запуска оптимизации.
Если ТС позволяет ,то как уже ответили,оптимизировать каждую пару отдельно.А для себя,для галочки сделать одиночный мультивалютный прогон.
Общая оптимизация предполагает имхо попадание в ловушку волшебного хеджинга ))).
Есть еще одно решение.В другую сторону от предложенного мной,но снижает лишние прогоны.
К примеру ваш перебор параметра 100 в интервале 50-150.Выделите одно значение на false.
Так на одно измерение снижается количество вариантов.Генетика разруливает.