Обсуждение статьи "Оптимизировать оптимизацию: несколько простых идей"

 

Опубликована статья Оптимизировать оптимизацию: несколько простых идей:

Процесс оптимизации потребляет множество ресурсов компьютера или кредит нашего счета на MQL5-Community и, с другой стороны, MT5 не позволяет оптимизировать строковую переменную. В этой статье описываются некоторые несложные идеи, которые я использую на практике для облегчения или усовершенствования удивительной системы оптимизации, предоставляемой MT5, которые я подчерпнул из прочитанной документации, форума и статей.

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

Что будет, если по инерции мы выберем EURUSD и в качестве таймфрейма графика выберем тот же H1, а затем, если нас не удовлетворят результаты, изменим на EURJPY и H4?

Кроме того, если у нас 64 битная операционная система, которая позволяет нам перестать волноваться о скорости тестирования системы - забываем ли мы о нелепых комбинациях входных параметров торговой системы, которые участвуют в полном переборе при оптимизации и чьи результаты мы должны выбрасывать из итоговых отчетов?

Эти «небольшие проблемы» я решаю в «одиночестве» программист, и в этой статье скромно делюсь решениями, которые использую сам и которые работают. Хотя я и понимаю, что найдутся и другие более оптимальные решения.

Стандартные опции таймфрейма

Автор: Jose Miguel Soriano Trujillo

 

Боже мой, что за кошмарный перевод!

Интересно, обратные переводы на испанский такие же?

Нужно что-то с этим делать. 

 
Перевод адаптировали. Спасибо за замечание!
 
Приятно читать статью в испанском разработчике.
Его предложение также применимо для оптимизации времени входа ? Если я правильно понял статью. Дело в том , что я относительный новичок в электронном программировании.
Приветствие и благодарность
 
decolimper:
Приятно читать статью в испанском разработчике.
Его предложение также применимо для оптимизации времени входа ? Если я правильно понял статью. Дело в том , что я относительный новичок в электронном программировании.
Приветствие и благодарность

Если вы испанец... мы говорим по-испански.

Я понимаю, что вы спрашиваете, оптимизирую ли я периоды ввода.

Проблема в том, что все функции в коде должны иметь параметр, который сообщает вам о временном интервале, в котором работает советник. Недостаточно оставить PERIOD_CURRENT по умолчанию, нужно передать всем функциям, использующим временной период, глобальную переменную (например, marcoTF), которая хранит временной интервал, в котором работает советник.

Для моего кода не имеет значения, на каком графике вы загружаете советника. Он всегда работает в том фрейме, который я указываю во входном параметре, сообщающем впоследствии "marcoTF".

Если вы испанец... говорите на испанском.

Я понимаю, что вопросы, если я оптимизировать периоды ввода.

Так оно и есть, и почему дело в том, что проблема в том, что все функции кода должны иметь параметр для отчета о таймфрейме, в котором работает советник. Вы не можете использовать PERIOD_CURRENT по умолчанию, передайте всем функциям, использующим время, глобальную переменную (marcoTF, например), которая хранит таймфрейм, в котором работает советник.

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

[Удален]  

Вообще-то интересно... Но не слишком на много отличается от обычной оптимизации по выбранным трейдером на своём опыте параметрам...

Меня гораздо больше интересует вопрос возможен ли автоматический перенос оптимизированных параметров в настройки советника...

Т.е. возможна ли автоматическая оптимизация и переоптимизация советника через определённый трейдером период времени?

 
josemiguel1812:

Если вы испанец... мы говорим по-испански.

Я понимаю, что вы спрашиваете, оптимизирую ли я периоды входа.

Проблема в том, что все функции в коде должны иметь параметр, сообщающий о временном интервале, в котором работает советник. Недостаточно оставить PERIOD_CURRENT по умолчанию, нужно передать всем функциям, использующим временной период, глобальную переменную (например, marcoTF), которая хранит временной интервал, в котором работает советник.

Для моего кода не имеет значения, на каком графике вы загружаете советника. Он всегда работает в том фрейме, который я указываю во входном параметре, сообщающем впоследствии "marcoTF".

Если вы испанец... говорите на испанском.

Я понимаю, что вопросы, если я оптимизировать периоды ввода.

Так оно и есть, и почему дело в том, что проблема в том, что все функции кода должны иметь параметр для отчета о таймфрейме, в котором работает советник. Вы не можете использовать PERIOD_CURRENT по умолчанию, передайте всем функциям, использующим время, глобальную переменную (marcoTF, например), которая хранит таймфрейм, в котором работает советник.

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

 
Здравствуйте, Хосе Мигель, я хотел бы связаться с вами по почте, возможно ли это, наилучшие пожелания
 
Очень хорошая статья, Жозе! Я давно искал способ оптимизировать не только по таймфреймам, но и по активам. Поздравляю с инициативой!!!

Если вам интересно, у меня есть предложение, которое может быть полезным для вас. Было бы интересно оптимизировать таким образом?

Внешние параметры для оптимизации:

Количество активов: 1
Активы: EURUSD

Или

Количество активов: 2
Активы: EURUSD; USDJPY
или
Актив1: EURUSD
Актив2: USDJPY

И т.д.

Таким образом оптимизируется количество Количество активов и Активы. В вашем случае оптимизация выполняется отдельно для каждого актива или одновременно для всех активов?

Другой способ - автоматизировать оптимизацию, как только вы запускаете советник на графике. Для советников, которые работают только по закрытию свечей (как, например, в моем случае), можно ли оптимизировать по свечам на графике, не используя Strategy Tester?
 

Хорошая статья. Любопытно, что я тоже сталкивался с этой проблемой с решениями, очень похожими на ваши. Еще одно интересное направление - "виртуальная" оптимизация, представленная в этой статье:

https://www.mql5.com/en/articles/143

В любом случае, спасибо за борьбу с одиночеством программиста :)

Adaptive Trading Systems and Their Use in the MetaTrader 5 Client Terminal
Adaptive Trading Systems and Their Use in the MetaTrader 5 Client Terminal
  • 2010.09.14
  • MetaQuotes Software Corp.
  • www.mql5.com
This article suggests a variant of an adaptive system that consists of many strategies, each of which performs its own "virtual" trade operations. Real trading is performed in accordance with the signals of a most profitable strategy at the moment. Thanks to using of the object-oriented approach, classes for working with data and trade classes of the Standard library, the architecture of the system appeared to be simple and scalable; now you can easily create and analyze the adaptive systems that include hundreds of trade strategies.
 
Jose:

Хорошая статья. Любопытно, что я тоже сталкивался с этой проблемой с решениями, очень похожими на ваши. Еще одно интересное направление - "виртуальная" оптимизация, представленная в этой статье:

https://www.mql5.com/en/articles/143

В любом случае, спасибо за борьбу с одиночеством программиста :)

Я занимаюсь структурированным программированием и плохо "читаю" объектно-ориентированное программирование.

Я не понимаю саму стратегию, потому что не вижу, как она получает виртуальный результат всех стратегий на свече 1, чтобы выбрать, что мне делать при открытии свечи 0. На свече 100 (нумерация от настоящего к прошлому), например, если я могу оценить результат на свече 98, "переместившись" в будущее с известной историей и priceBID, который мне выдаст система тестера МТ5.... но на свече 1 как мне оценить виртуальный результат?