Как начать работу с Metatrader 5 - страница 143

 

Разработка мультивалютного эксперта (часть 6): Автоматизация выбора группы экземпляров

Разработка мультивалютного эксперта (часть 6): Автоматизация выбора группы экземпляров

В предыдущей статье мы реализовали возможность выбора варианта стратегии - с постоянным размером позиции и с переменным размером позиции. Это позволило нам ввести нормализацию результатов работы стратегий по максимальной просадке и дало возможность объединять их в группы, для которых максимальная просадка также находилась в заданных пределах. Для демонстрации мы вручную выбрали несколько наиболее привлекательных комбинаций входов из результатов оптимизации одного экземпляра стратегии и попробовали объединить их в одну группу или даже в группу из трех групп по три стратегии. Наилучшие результаты мы получили в последнем случае.
Developing a multi-currency Expert Advisor (Part 6): Automating the selection of an instance group
Developing a multi-currency Expert Advisor (Part 6): Automating the selection of an instance group
  • www.mql5.com
After optimizing the trading strategy, we receive sets of parameters. We can use them to create several instances of trading strategies combined in one EA. Previously, we did this manually. Here we will try to automate this process.
 

Разработка мультивалютного эксперта (часть 7): Выбор группы на основе форвардного периода

В предыдущих статьях я оптимизировал отдельные экземпляры торговых стратегий на одном и том же временном периоде - с 2018 по 2022 год. Это довольно большой период, который, безусловно, включает в себя различные события, влияющие на динамику цен. С другой стороны, он не слишком велик, а время одного прогона остается достаточно малым - в пределах нескольких десятков секунд. Выбранный период расположен таким образом, что до текущего момента времени остается еще больше года. Это позволяет увидеть, как поведут себя экземпляры стратегий на том отрезке истории, который не использовался при оптимизации их параметров.
Developing a multi-currency Expert Advisor (Part 7): Selecting a group based on forward period
Developing a multi-currency Expert Advisor (Part 7): Selecting a group based on forward period
  • www.mql5.com
Previously, we evaluated the selection of a group of trading strategy instances, with the aim of improving the results of their joint operation, only on the same time period, in which the optimization of individual instances was carried out. Let's see what happens in the forward period.
 

Разработка мультивалютного эксперта (часть 8): Нагрузочное тестирование и работа с новым баром

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

Попробуем выяснить, как зависит время одного прохода в тестере от количества экземпляров торговых стратегий для периодов тестирования разной длительности. Также посмотрим на потребляемую память. Конечно, нам нужно посмотреть, как ведут себя советники с разным количеством экземпляров торговых стратегий при запуске на графике терминала.

Developing a multi-currency Expert Advisor (Part 8): Load testing and handling a new bar
Developing a multi-currency Expert Advisor (Part 8): Load testing and handling a new bar
  • www.mql5.com
As we progressed, we used more and more simultaneously running instances of trading strategies in one EA. Let's try to figure out how many instances we can get to before we hit resource limitations.
 

Разработка мультивалютного эксперта (часть 9): Сбор результатов оптимизации для отдельных экземпляров торговой стратегии

Разработка мультивалютного эксперта (часть 9): Сбор результатов оптимизации для отдельных экземпляров торговой стратегии

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

Попробуем обрисовать общую структуру в рамках статьи: на вход подаются отдельные торговые стратегии, а на выходе получается готовый советник, в котором используются отобранные и сгруппированные экземпляры исходных торговых стратегий, обеспечивающие наилучшие результаты торговли.

Developing a multi-currency Expert Advisor (Part 9): Collecting optimization results for single trading strategy instances
Developing a multi-currency Expert Advisor (Part 9): Collecting optimization results for single trading strategy instances
  • www.mql5.com
Let's outline the main stages of the EA development. One of the first things to be done will be to optimize a single instance of the developed trading strategy. Let's try to collect all the necessary information about the tester passes during the optimization in one place.
 

Разработка мультивалютного эксперта (часть 10): Создание объектов из строки

Разработка мультивалютного эксперта (часть 10): Создание объектов из строки

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

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

Developing a multi-currency Expert Advisor (Part 9): Collecting optimization results for single trading strategy instances
Developing a multi-currency Expert Advisor (Part 9): Collecting optimization results for single trading strategy instances
  • www.mql5.com
Let's outline the main stages of the EA development. One of the first things to be done will be to optimize a single instance of the developed trading strategy. Let's try to collect all the necessary information about the tester passes during the optimization in one place.
 

Разработка мультивалютного эксперта (часть 11): Автоматизация оптимизации (первые шаги)

Разработка мультивалютного эксперта (часть 11): Автоматизация оптимизации (первые шаги)

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

До сих пор строка инициализации создавалась вручную. Теперь, наконец, пришло время приступить к реализации автоматического формирования строки инициализации советника на основе полученных результатов оптимизации. Скорее всего, полностью автоматизированного решения в рамках данной статьи у нас не получится, но, по крайней мере, мы значительно продвинемся в намеченном направлении.

Developing a multi-currency Expert Advisor (Part 10): Creating objects from a string
Developing a multi-currency Expert Advisor (Part 10): Creating objects from a string
  • www.mql5.com
The EA development plan includes several stages with intermediate results being saved in the database. They can only be retrieved from there again as strings or numbers, not objects. So we need a way to recreate the desired objects in the EA from the strings read from the database.
 

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Покупка или продажа всех 7 пар

Сергей Голубев, 2024.10.14 16:05

Разработка мультивалютного советника (часть 12): Разработка риск-менеджера торгового уровня

Разработка мультивалютного советника (часть 12): Разработка риск-менеджера торгового уровня

На протяжении всей серии статей мы несколько раз обращались к теме контроля рисков. Было введено понятие нормализованной торговой стратегии, параметры которой обеспечивают достижение уровня просадки в 10 % в течение тестового периода. Однако нормализация экземпляров торговых стратегий, а также групп торговых стратегий таким образом может обеспечить только заданную просадку за исторический период. Мы не можем быть уверены, что заданный уровень просадки будет наблюдаться при запуске теста нормализованной группы стратегий на форвардном периоде или при запуске ее на торговом счете.

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


 

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Покупка или продажа всех 7 пар

Сергей Голубев, 2024.11.16 07:31

Разработка мультивалютного советника (часть 13): Автоматизация второго этапа - отбора в группы

Разработка мультивалютного эксперта (часть 13): Автоматизация второго этапа - отбор в группы

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

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


 

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Покупка или продажа всех 7 пар

Сергей Голубев, 2025.01.11 11:57

Разработка мультивалютного советника (часть 14): Адаптивное изменение объема в риск-менеджере

Разработка мультивалютного эксперта (часть 14): Адаптивное изменение объема в риск-менеджере

В одной из предыдущих статей цикла я затронул тему контроля рисков и разработал класс риск-менеджера, реализующий базовый функционал. Он позволяет установить максимальный дневной уровень убытка и максимальный общий уровень убытка, при достижении которого торговля останавливается и все открытые позиции закрываются. При достижении дневного убытка торговля возобновлялась на следующий день, а при достижении общего убытка - не возобновлялась вообще.

 

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Покупка или продажа всех 7 пар

Сергей Голубев, 2025.01.17 07:15

Разработка мультивалютного советника (часть 15): Подготовка советника к реальной торговле

Разработка мультивалютного советника (часть 15): Подготовка советника к реальной торговле

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