![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Лучше так - посчитать корреляцию для каждой пары символов (380 штук), отсортировать, потом начиная с наименьшей составлять список рабочих символов, пока их не станет 6.
С уважением - С.Д.
Еще раз, Sart: берем 20 пар - А[1], А[2], ... А[20] (массив). Организуем двойной цикл, вычисляя корреляции между парами вида А[i] и А[j] при i<j. Всего получится 190 к-тов. Дальше эти 190 сортируем по возрастанию, но так, чтобы не забыть, каким парам пар они соответствуют. Получился массив к-тов: r[1], r[2], ... r[190].
Дальше - такая процедура: берем r[1]. Это, скажем, к-т корреляции между парами А и Б. Дальше делаем (случайный) выбор, по какой паре движемся дальше - по А или Б. Скажем, А. Ищем ближайший к-т, в котором есть пара А. Нашли. Вышло, скажем, АС. ОК. У нас теперь цепочка БА-АС. Теперь пара-связка - С. Ищем ближайший к-т. Вышло СВ. Теперь у нас тройка БА-АС-СВ. И так далее, пока кольцо не замкнется. Ну сюда надо добавить элемент случайности, чтобы получалось что-то похожее на генетический алгоритм.
Можно и так: сразу выбираем "кольцо" АБ-БС-СЫ-ЫУ-УД-ДА. А дальше случайным образом пять раз подряд заменяем пары-связки, но так, чтобы такой же пары в кольце уже не было. Если результат хуже через, скажем, пять замен - отвергаем. Если лучше - снова случайно меняем связку. И т.п.
Еще раз, Sart: берем 20 пар - А[1], А[2], ... А[20] (массив). Организуем двойной цикл, вычисляя корреляции между парами вида А[i] и А[j] при i<j. Всего получится 190 к-тов. Дальше эти 190 сортируем по возрастанию, но так, чтобы не забыть, каким парам пар они соответствуют. Получился массив к-тов: r[1], r[2], ... r[190].
Дальше - такая процедура: берем r[1]. Это, скажем, к-т корреляции между парами А и Б. Дальше делаем (случайный) выбор, по какой паре движемся дальше - по А или Б. Скажем, А. Ищем ближайший к-т, в котором есть пара А. Нашли. Вышло, скажем, АС. ОК. У нас теперь цепочка БА-АС. Теперь пара-связка - С. Ищем ближайший к-т. Вышло СВ. Теперь у нас тройка БА-АС-СВ. И так далее, пока кольцо не замкнется. Ну сюда надо добавить элемент случайности, чтобы получалось что-то похожее на генетический алгоритм.
Можно и так: сразу выбираем "кольцо" АБ-БС-СЫ-ЫУ-УД-ДА. А дальше случайным образом пять раз подряд заменяем пары-связки, но так, чтобы такой же пары в кольце уже не было. Если результат хуже через, скажем, пять замен - отвергаем. Если лучше - снова случайно меняем связку. И т.п.
С уважением - С.Д.
Все намного хуже, Sart. В кольце АБ-БС-СЫ-ЫУ-УД-ДА каждая пара пар может быть слабо коррелированной, но, скажем, пары Ы и Б могут быть сильно коррелированными. Хреново это как-то получается. Цикл усложняется на порядок...
1. Вычисляем кор. первого инструмента со всеми остальными.
2. Находим для него(первого инструмента) лучший из всех (мин.кор. ) второй инструмент.
3. Заносим в шестерку эти два инструмента.
Что мы теперь имеем: для первого инструмента, уж точно, лучшей компании, чем второй не найдешь.
теперь надо подобрать третий инструмент, такой, чтобы второй был доволен, а первый будет доволен уже потому, что второй доволен. ..
4. Пробегаем вторым инструментом по всему набору инструментов и по мин. кор. находим третий...
5. И т.д.
Гляньте - ничего не пропустил ??
С уважением - С.Д.
Та же проблема, Sart. Каждым следующим инструментом в шестерке придется удовлетворять все предыдущие, чтобы не было сильных попарных корреляций между теми, которые не объединены в пары...
Проблема в том, чтобы подобрать правильную целевую функцию. Целевая функция, скажем, для кольца АБ-БС-СЫ-ЫУ-УД-ДА должна интегрально включать в себя не только к-ты корреляции между А и Б, Б и С, С и Ы, Ы и У и т.п., но и между Ы и А, между С и А и т. п.
Лучше так - посчитать корреляцию для каждой пары символов (380 штук), отсортировать, потом начиная с наименьшей составлять список рабочих символов, пока их не станет 6.
С уважением - С.Д.
Это я уже понял)
Тогда в шестерке считать сумму кореляций и мо меньшей сумме выбирать шестерку.
Та же проблема, Sart. Каждым следующим инструментом в шестерке придется удовлетворять все предыдущие, чтобы не было сильных попарных корреляций между теми, которые не объединены в пары... Проблема в том, чтобы подобрать правильную целевую функцию.
1.Пусть уже имеем в шестерке три таких таким образом выбранных инструмента.
Посмотрим, на их отношения меж собой.
Первый-Второй: нормально
Второй-Третий : нормально
Первый-Третий : да.....? мог бы быть и получше...
Вот я и говорю...запутался....
Но подход, по моему, тут должен быть чисто комбинаторный.. ...
С уважением - С.Д.
Да, запутаться тут легко. ОК, имеем кольцо АБ-БС-СЫ-ЫУ-УД-ДА. Сколько в нем отдельных пар (а не пар пар)? Все равно 6. Это А, Б, С, Ы, У, Д. Они никак не связаны формально, их легко объединить в кольцо. Причем неважно, как сочетать в нем отдельные пары. А целевая функция - скажем, сумма квадратов попарных корреляций между этими 6 парами без повторов. Выходит сумма 15 слагаемых. Вот эту целевую и надо оптимизировать... Причем последовательный подход, с добавлением новых пар, тут вроде как не работает. Это интегральная функция, и ничего лучше, чем тупой перебор, я пока предложить не могу.
Короче, просто тупо перебираешь "це из 20 по 6" и не паришься. Вариантов всего полмиллиона. Вычисляешь заранее попарные корреляции между каждыми парами пар и - вперед. Целевая функция - 15 слагаемых! Весь тупой перебор, не считая вычисления попарных корреляций, вряд ли займет больше нескольких минут...
Да, запутаться тут легко. ОК, имеем кольцо АБ-БС-СЫ-ЫУ-УД-ДА. Сколько в нем отдельных пар (а не пар пар)? Все равно 6. Это А, Б, С, Ы, У, Д. Они никак не связаны формально, их легко объединить в кольцо. Причем неважно, как сочетать в нем отдельные пары. А целевая функция - скажем, сумма квадратов попарных корреляций между этими 6 парами без повторов. Выходит сумма 15 слагаемых. Вот эту целевую и надо оптимизировать... Причем последовательный подход, с добавлением новых пар, тут вроде как не работает. Это интегральная функция, и ничего лучше, чем тупой перебор, я пока предложить не могу.
Да, точно, нужна интегральная характеристика "качества корреляции" в шестерке...А потом просто сравнил по всем шестеркам и выбрал лучшую...
А может, чтобы не терять времени, спросить у Роша. У Вас с ним вроде неплохие отношения. Вы понимаете, я застопорился на этом, и не туда, не сюда....
С уважением - С.Д.