Свои символы и свои датафиды в Метатрейдер 5 - страница 7

 

 

На генетике конечно эти области тоже заметны, при переборе я бы еще расширил туда параметры для анализа, на генетике я бы с вероятностью 80% пропустил бы этот момент

И слева граница просится на исследование, чего на генетике не видно 


 
IvanIvanov:

 

На генетике конечно эти области тоже заметны, но я бы еще расширил туда параметры для анализа, на генетике я бы с вероятностью 80% пропустил бы этот момент

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

Алгоритм работы обычно такой:

  1. Делается 1-5 грязных запусков генетики, чтобы за счет рандомизации (борьба с потенциальным скатыванием в локальные экстремумы) быстро нащупать кластеры интересных значений
  2. Далее идет поиск более частой гребенкой полного прохода в области найденных кластеров
  3. Делается N подходов, данные собираются и анализируются
  4. Делаются выводы

Если же кто-то считает, что генетический или любой другой сказочный оптимизатор сразу должен дать чистовые результаты, значит он вообще не понимает процесса.

 

С шагом 0,01

 

 
Renat:

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

Алгоритм работы обычно такой:

  1. Делается 1-5 грязных запусков генетики, чтобы за счет рандомизации (борьба с потенциальным скатыванием в локальные экстремумы) быстро нащупать кластеры интересных значений
  2. Далее идет поиск более частой гребенкой полного прохода в области найденных кластеров
  3. Делается N подходов, данные собираются и анализируются
  4. Делаются выводы

Если же кто-то считает, что генетический или любой другой сказочный оптимизатор сразу должен дать чистовые результаты, значит он вообще не понимает процесса.

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

Осталось два вопроса.

1) Почему генетический алгоритм включается ПРИНУДИТЕЛЬНО по  условию N количества вариантов ?

2) Что закачивает терминал когда работает в режиме Математические Расчеты, пока я тут красивые картинки генерил - терминал уже 40 метров скачал?, он столько не качает даже когда я советников гоняю на тестере

 
Renat:

Доступно управление и тиками и барами и стаканами.

Если, конечно, конкретный датафид это поддерживает. 

Отличная новость, большое спасибо.
 

Щас генетику прокатаю :-)

 

 
IvanIvanov:

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

Осталось два вопроса.

1) Почему генетический алгоритм включается ПРИНУДИТЕЛЬНО по  условию N количества вариантов ?

Потому что физически не имеет смысла за гранью делать полный перебор. Для 32 битных платформ это 1 000 000 проходов, а для 64 битных - 100 000 000 проходов.

Неужели это так сложно понять? Ну вот не дождетесь вы никогда 100 000 000 секунд. Никак и никогда.


2) Что закачивает терминал когда работает в режиме Математические Расчеты, пока я тут красивые картинки генерил - терминал уже 40 метров скачал?, он столько не качает даже когда я советников гоняю на тестере

Это трафик между локальными агентами и терминалом. Он показывается как сетевой трафик, являясь им по сути (пусть даже в пределах localhost).
 
event:

Функция Z = cos(1.5*x)*cos(1.5*x) + sin(2.25*y) + cos(3*x*y); где X и Y от -3 до +3 

Мне тоже интересно, как отыщутся её максимумы в МТ5. 

 По методу - идея из статьи на хабре, реализация в матлаб и в C#.

Ага, результаты и без меня выложили. Видно хорошо, что алгоритм из статьи находит локальные экстремумы почти сразу и гораздо качественнее, нежели штатный ГА.
Renat:

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

В гранит! Это ваша коронная фраза, против нее переть толку никакого, именно об этой бессмысленности и высказался сразу. Вам доказательства не нужны, вы даже не сомневаетесь в своей правоте. Уверен, появление тиковых данных и кастомных фидов, с вашей точки зрения, никак не перекликается с гранитной фразой, когда вас об этом просили и доказывыли целесообразность на протяжении N-лет. Опытный вы наш!

К сожалению, вы просто привели известные базовые теоретические моменты.

А я задал конкретный вопрос "Чем вас конкретно не устраивает ГА? Он не находит области решений для вас?". Конечно находит и не хуже любых других методов. И из ям локальных вылезает получше отжига. Но самое главное, эффективно решает поставленные задачи.

Вы не читали статью совсем, поэтому и упоминаете этот "отжиг". Но в статье он ни на йоту не используется. "Не читал, но осуждаю" - ведь опыт не пропьешь, верно? Конкретно, меня не устраивает, что ГА не находит сходящиеся (не случайные) локальные экстремумы. Поэтому его пригодность при оптимизации ТС, как минимум, сомнительна. Эвристических алгоритмов столько придумано не просто так. И нет самого лучшего эвристического алгоритма. Для каждой задачи самый лучший какой-то свой. Так вот ГА для задачи оптимизации именно ТС является, к сожалению, далеко не лучшим. Аргументы приведены в статье, для тех, кто хочет разобраться, о чем речь.

 
Renat:

Потому что физически не имеет смысла за гранью делать полный перебор. Для 32 битных платформ это 100 000 000 проходов, а для 64 битных - 1 000 000 000 проходов.

Неужели это так сложно понять? Ну вот не дождетесь вы никогда 1 000 000 000 секунд. Никак и никогда.


Это трафик между локальными агентами и терминалом. Он показывается как сетевой трафик, являясь им по сути (пусть даже в пределах localhost).

Хорошо сдаюсь :-)

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

И сколько потребуется всей сети удаленных агентов времени на 1 000 000 000 проходов, хотябы ориентировочно?

 
zaskok:
Ага, результаты и без меня выложили. Видно хорошо, что алгоритм из статьи находит локальные экстремумы почти сразу и гораздо качественнее, нежели штатный ГА.

Не видно.

В статье обсуждается совсем не та простейшая функция Z = cos(1.5*x)*cos(1.5*x) + sin(2.25*y) + cos(3*x*y); где X и Y от -3 до +3, какую я разобрал выше по предложению event.

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

За бортом также остались важные показатели - сколько проходов реально было произведено в режиме эвристики по сравнению с полным перебором. Например, в MT5 на примере выше получилось 8 700 в генетике и 361 201 полный перебор. Есть подозрение, что собственный эвристический оптимизированный вариант автора на самом деле тратил гораздо больше проходов, чтобы добить результаты.

Количество проходов очень важно, так как редко какая стратегия укладывается в считанные секунды. Разница нашего ГА в 10 000 проходов и другого с 30 000 проходами выливается в ожидание лишних 20 000 проходов * время прохода, что очень долго. У нас ГА специально оптимизирован для максимально быстрого просчета. Обычно нашему хватает 10 000 - 12 000 проходов вне зависимости от общего размера поискового поля. Это означает, что любой глубины поиск можно провести грубо за 10 000 проходов. А дальше уже голову в руки и исследовать более точно.

Кстати, в MetaTrader 5 автору не пришлось бы тратить месяцы на написание своего движка, а сразу можно было получить результаты нажав на кнопку. И в 2D/3D покрутить в разных проекциях.


В гранит! Это ваша коронная фраза, против нее переть толку никакого, именно об этой бессмысленности и высказался сразу. Вам доказательства не нужны, вы даже не сомневаетесь в своей правоте. Уверен, появление тиковых данных и кастомных фидов, с вашей точки зрения, никак не перекликается с гранитной фразой, когда вас об этом просили и доказывыли целесообразность на протяжении N-лет. Опытный вы наш!

Моя работа видна всем. Вашей не видно, к сожалению.

Если вы думаете, что генетические движки МТ4/MT5 прошли мимо меня, то вы сильно ошибаетесь.

Вы не читали статью совсем, поэтому и упоминаете этот "отжиг". Но в статье он ни на йоту не используется. "Не читал, но осуждаю" - ведь опыт не пропьешь, верно? Конкретно, меня не устраивает, что ГА не находит сходящиеся (не случайные) локальные экстремумы. Поэтому его пригодность при оптимизации ТС, как минимум, сомнительна. Эвристических алгоритмов столько придумано не просто так. И нет самого лучшего эвристического алгоритма. Для каждой задачи самый лучший какой-то свой. Так вот ГА для задачи оптимизации именно ТС является, к сожалению, далеко не лучшим. Аргументы приведены в статье, для тех, кто хочет разобраться, о чем речь.

Я должен в каждом случае писать юридически точные фразы вида "методы монте-карло, отжига и тд"?

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

Аргументы в статье лишь общего характера. А вот созданная табуретка, заточенная под одну стратегию (посмотрите на скриншоты) и точно такой же метод подстроечной оптимизации показывает, что наверняка есть проблемы масштабирования при переходе к универсальной платформе вычислений, чем является МT5 + MQL5.

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