Сложный путь. Более реалистичный - использовать несколько валют, минимально коррелирующих между собой. Корреляцию валют вычислить легко, есть в кодобазе несколько программ. Просадки в среднем заметно уменьшатся, но, к сожалению, при важных событиях большинство валют могут двигаться одновременно и быстро.
- www.mql5.com
Нужны все сделки по каждому проходу оптимизатора. А в отчете оптимизации их нет. Получается, что после оптимизации надо еще отдельные тестирования провести (что не вызывает интереса).
Исходя их этого получается примерно такой план решения задачи:
1. Требуется доработать эксперта, чтобы при оптимизации, после каждого прохода он сохранял список сделок и сет файл (или в одном файла или как-то связать отдельные файлы, не важно). Это можно сделать написанием библиотеки, а ее потом парой строчек подключать к любому советнику.
2. Имея много-много файлов со сделками, остается при помощи скрипта перебирать все возможные комбинации. Для каждой комбинации - собрать все сделки в один список, отсортировать по времени, посчитать просадку и пр. показатели, если надо.
В общем, не очень уж и сложная работа и не очень большая.
Для начала надо все привести к одному размеру - т.е. зафиксировать баланс/эквити на конец дня для каждой стратегии.
Потом можно объединить стратегии в группы, допустим с помощью методов кластеризации. Упростить задачу можно за счет трансформации баланса в его изменение в виде +1 - прирост за день, -1 убыток, 0 без изменения.
- Взять только прибыльные проходы.
- Все проходы представить, как вектор значений эквити в одни и те же моменты времени. Тем самым получив набор векторов одинаковой длины.
- Логарифмировать вектора и нормализовать.
- Детрендировать каждый. Например, отнять ЛР.
- Решить задачу из линейной алгербы, когда имеется множество векторов. И надо каждому вектору найти оптимальный положительный вес (их сумма равна единице), чтобы среднее значение элемента средневзвешенной суммы было минимально.
- Вектора с самыми большими весами - оптимальный портфель.
Посильная задача для Маркета.
ЗЫ Если разрешить весам быть отрицательными. И при этом сумма их абсолютных значений равна единица. Тогда вектора с самыми большими абсолютными значениями будут указывать на самые коррелируемые в наборе.
- Взять только прибыльные проходы.
- Все проходы представить, как вектор значений эквити в одни и те же моменты времени. Тем самым получив набор векторов одинаковой длины.
- Логарифмировать вектора и нормализовать.
- Детрендировать каждый. Например, отнять ЛР.
- Решить задачу из линейной алгербы, когда имеется множество векторов. И надо каждому вектору найти оптимальный положительный вес (их сумма равна единице), чтобы среднее значение элемента средневзвешенной суммы было минимально.
- Вектора с самыми большими весами - оптимальный портфель
Нормализовать-это отнять среднее значение?
Если далее отнимается ЛР, зачем нормализация? Разве в ЛР это уже не заложено?
Нормализовать-это отнять среднее значение?
Нет. Один символ в среднем за сутки меняется на 1%, другой - на 5%. После нормализации они одинаково меняются. Т.е. нормализация - масштабирование.
Нужно это для п.6.
Когда портфель уже подобран, то для расчета лотов нормализацию не делают. Там веса будут отражать уже нужное соотношение объемов в портфеле. Но для поиска портфеля нормализация очень удобна - наглядно виден вклад каждого символа в "мультикорреляцию".
Здравствуйте!подскажите пожалуйста ,есть ли способ среди множества параметров при оптимизации найти такие,которые между собой при одновременном использовании не увеличивают просадку..
К примеру мы имеем разные настройки у одной настройки 1000 сделок и 17% просадки,а у другой 1500 сделок и 20% просадки(и если они практически полностью коррелируют между собой то просадка будет 30-37%).
Можно ли как-то по быстрому это проверить не проводя тесты и не сводя потом эти тесты в репорт менеджере?:).имея тысячи сетов очень много времени уйдёт сводить каждый друг с другом)..может есть какая-то програмка?:)
По-быстрому нельзя.
1) Берете результаты сделок Ваших ТС и переводите их в дневные результаты. Дневные результаты заносите в Excel таблицу, где каждая колонка дневной результат стратегии N. Таблица у Вас должна быть выровнена по датам и количеству строк в каждой колонке. Над каждой колонкой указываете дополнительную ячейку с весом. Вес ставите 1.0.
2) В последнюю колонку записываете сумму результата всех тс помноженную на их вес. Получится взвешенная сумма. Также Для этой колонки рассчитываете максимальную просадку и другие параметры которые Вам интересны, они будут в отдельных ячейках.
3) Открываете в Excel оснастку Поиск решения. И через оптимизатор ньютона начинаете изменять веса дневных результатов так, что бы минимизировать максимальную просадку (нужно будет указать нужную ячейку).
Enjoy.
И что потом делать с этими весами, если денег нет? Обычно люди начинают с минимального лота, поэтому в распоряжении только комбинации экспертов, символов, наборов параметров, но не объемы сделок.
Что делать давно известно. Но если денег СОВСЕМ нет, тогда только на завод :)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
К примеру мы имеем разные настройки у одной настройки 1000 сделок и 17% просадки,а у другой 1500 сделок и 20% просадки(и если они практически полностью коррелируют между собой то просадка будет 30-37%).
Можно ли как-то по быстрому это проверить не проводя тесты и не сводя потом эти тесты в репорт менеджере?:).имея тысячи сетов очень много времени уйдёт сводить каждый друг с другом)..может есть какая-то програмка?:)