Алгоритмическая ''центрифуга'' - страница 3

 
Реter Konow:

Если я правильно понимаю ГА, он сужает область поиска значений в процессе Оптимизации. 

Например: 

Есть Параметры А,В,С.  Область их возможных значений 4.5 миллиарда.

Есть Параметр Х, который меняется от значений параметров А,В,С. Однако, закономерность изменения не явлена.

Задача: привести Параметр Х к значению У путем перебора значений А,В,С.

Два варианта: (1) прямой перебор и (2) генетический алгоритм.

Второй вариант эффективно сужает область поиска нужных значений.

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

Помимо, казенных критериев, в тестере есть возможность  использовать Custom параметр отбора максимализации-минимализации. Пусть это будет отношение прибыли к просадке. Но при простановке галочки "Использовать генетический алгоритм",  оптимизатор не будет тупо считать вообще все возможные комбинации параметров. Будет отсекать по статистической перспетивности. Точнее - неперспективности.

А логическое "И". при торговле уже, т.е. и этот индикатор в нужных условиях, и второй и третий и 10-й  всегда сужает вероятность положителного схождения всех параметров в одно время. По-отдельности, без математического "И" они чаще срабатывают. Бывают на елке. :) Все вместе. А то - один пришел, другой не пришел. Ладно, это я про Новый год.  С наступающим.

Есть такие сочетания индкаторов, подтверждающие один другого. Но они уже самонаписанные. И как их включить в состав компоновщика стратегии? К тому же, подключаемые в советнике Custom -ные индикаторы, существенно удлинняют время оптимизации. В 10-ки раз.

 
Реter Konow:

По мотивам этой темы: https://www.mql5.com/ru/forum/79324

Есть ли возможность построения стратегий автоматической сборкой конфигураций параметров?


Концепция такова:

  1.  Все торговые системы используют общие группы параметров:
  • Индикаторные параметры - производные параметры рассчитываемые индикаторами. Каждый индикатор может быть представлен одним параметром выдающим различные значения по формуле своего расчета.
  • Ордерные параметры - лот, стоплосс, тейкпрофит, трейлинг и прочие... Формулы расчета не применяются. Используется только оптимизация, подбирающая лучшие значения в зависимости от других факторов.
  • Рыночные параметры - цена, объем. Учитываются внутри индикаторных формул и НЕ требуют отдельного включения в системы.
  • Статистические параметры - просадка, профит-фактор, эквити... НЕ требуют включения в торговую систему, т.к. их функция заменяется оптимизацией ордерных параметров и переборкой параметров системы.
  • Баланс депозита - главный параметр относительно которого перебираются остальные параметры и оптимизируются их значения.

     2. Поскольку комбинации этих параметров встречаются во всех советниках, то, теоретически, можно сделать механизм автоматической сборки стратегии. Механизм будет пробовать различные конфигурации индикаторных параметров и их значений, рассматривая их как сигналы входа в рынок. Ордерные параметры будут оптимизироваться на истории в тестере. Главный показатель удачной сборки параметров - увеличившийся депозит. Именно относительно процентов его роста будет рассматриваться эффективность конфигураций параметров и их значений.

Интересует практическая целесообразность и предполагаемая техническая сложность реализации такого механизма. 

Вот здесь я о том же, но больше тем хороших и разных)

https://www.mql5.com/ru/forum/329028#comment_14326397

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

Конструктор стратегий я назвал.

Оптимизация. Граничные Условия Параметров
Оптимизация. Граничные Условия Параметров
  • 2019.12.21
  • www.mql5.com
Решаю задачку о автоматизации проверки стратегий, это типа как тут в соседней ветке описывалось, но по другому...
 
Dmitry Fedoseev:

Это же генетический алгоритм оптимизации. Только обычно он не разбирает к какому блоку какой параметр относится. 

ps: все, до чего можно додуматься, уже давно изобретено. 

ps2: центрифуга занимает достойное место рядом с ядром и движком.

А насчёт моей идеи с конструктором по ссылке выше - это уже где-то делалось? применялось?

 

Составте базу данных стратегий.

Стратегия

мартин

сеточная 

индикаторная

элементарные

1 индикатор

Стохастик

параметры

5,3,3

сигнал

Вверх - пересечене 20

Вниз -ересечение 80

2 индикатора

Стохастик и RSI

парамтры

стохастик (5,3,3) && (RSI 3)

сигнал

вверх - пересечение стох-20 && RSI 30

вниз - пересечение стох- 80 && RSI 70 ну или что-то подобное и более реальное.

от уровней

сочетание свечей

и т.д.

Без такой или какой-нибудь другой формализации, упорядочивания, по-моему, не фиг ловить.

Это все будет шелест листьев в саду.

 
Aleksey Mavrin:

А насчёт моей идеи с конструктором по ссылке выше - это уже где-то делалось? применялось?

Оно собственно так и делается.

 
Dmitry Fedoseev:

Оно собственно так и делается.

Имею ввиду не само конструирование стратегий - а оболочка для автоматического перебора сочетаний всех подвидов каждый с каждым, в т.ч. в оптимизаторе МТ.

Просто я не находил информации  о таких результатах кроме идей но может действительно уже всё делалось и плохо искал.

 
Oleg Papkov:

...

Есть такие сочетания индкаторов, подтверждающие один другого. Но они уже самонаписанные. И как их включить в состав компоновщика стратегии? К тому же, подключаемые в советнике Custom -ные индикаторы, существенно удлинняют время оптимизации. В 10-ки раз.

Включить как один Параметр. Один подтверждает другой, - значит они вместе - ОДИН. Совместить.

Насчет увеличения времени Оптимизации - ничего не поделаешь. ))

 
Aleksey Mavrin:

Вот здесь я о том же, но больше тем хороших и разных)

https://www.mql5.com/ru/forum/329028#comment_14326397

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

Конструктор стратегий я назвал.

Если этот конструктор вам удалось полностью завязать на Оптимизации - это то, о чем я говорю.

  1. Берем некую общую базу Параметров для Торговой Системы. 
  2. Под некоторыми Параметрами - алгоритм расчета, Индикатор, уравнение, предустановленная выборка.
  3. Параметры представленные как Индикаторы - это переменные, а их значения - формулы.  И они будут ''перебираться'' наравне с остальными параметрами Системы.
  4. У Параметров ордеров и стопов оптимизируются только значения (без перебора самих параметров). 

В итоге Оптимизации должны получатся полноценные Стратегии. Не вижу причин, почему этот метод построения стратегий не может работать.

 
Oleg Papkov:

Составте базу данных стратегий.

Стратегия

мартин

сеточная 

индикаторная

элементарные

1 индикатор

Стохастик

параметры

5,3,3

сигнал

Вверх - пересечене 20

Вниз -ересечение 80

2 индикатора

Стохастик и RSI

парамтры

стохастик (5,3,3) && (RSI 3)

сигнал

вверх - пересечение стох-20 && RSI 30

вниз - пересечение стох- 80 && RSI 70 ну или что-то подобное и более реальное.

от уровней

сочетание свечей

и т.д.

Без такой или какой-нибудь другой формализации, упорядочивания, по-моему, не фиг ловить.

Это все будет шелест листьев в саду.

С точки зрения Оптимизации и генерации стратегии, подобная классификация необязательна. Даже, бесполезна. Для конечного результата не имеет значения, тип или название стратегии. Главное - стратегия должна зарабатывать на тестируемом периоде и инструменте.

Обычная Оптимизация использует ТОЛЬКО значения Параметров уже собранной Системы. Эта Оптимизация должна подставлять в Сигнал РАЗНЫЕ Параметры (в зависимости от прохода), представляющие разные индикаторы и формулы. 

В этом особенность подхода.

 

индикаторы рассматривающие историю глубиной N могут быть представлены как функциональнае произведение SMA 1..N, поэтому

даже для пары элементарных индикаторов с периодом 32, без учёта константных коэфф и исключая симметричные решения,

кол-во вариаций С(32,16)=601080390

живите с этим