Скачать MetaTrader 5

Использование искусственного интеллекта в МТС

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Yury Reshetov
13491
Yury Reshetov  
Обсуждение применения искусственного интеллекта в торговых стратегиях в общем и моего эксперта, код которого можно скачать ЗДЕСЬ в частности. Результаты backtest на нижеприведенном скриншоте.



Оптимизируется советник долго и только с применением генетических алгоритмов. Входные параметры для подбора весовых коэффициентов: x1, x2, x3 и x4 ограничены значениями от 0 до 200. Параметр sl - это стоплосс в пипсах. Управление капиталом и риском не используется.
Dmitry Fedoseev
47334
Dmitry Fedoseev  

Равносильно сглаживанию AC с применением цифорового фильтра с некоторыми характеристикам. Коэффициенты сглаживания не уравновешаны, что равносильно кирпичу на кнопке бай. Кирпичь (+ например стохатик) работает и сам по себе очень и очень хорошо, только бы знать когда на бай его класть, а когда на селл. Еще учитывая, что AC за 21 бар может 2 раза вверх вниз пройти и наличие 4-ех оптимизируемых параметров......))))

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

Было одно время хобби, в начале творческого периода - писать экспертов для работы на м1 по результатам прошедшей недели (7200 баров, в отличие от 66000) - аж по 300 процентов за неделю в тестере показывалось.....

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

Yury Reshetov
13491
Yury Reshetov  
Integer:

Равносильно сглаживанию AC с применением цифорового фильтра с некоторыми характеристикам. Коэффициенты сглаживания не уравновешаны, что равносильно кирпичу на кнопке бай. Кирпичь (+ например стохатик) работает и сам по себе очень и очень хорошо, только бы знать когда на бай его класть, а когда на селл. Еще учитывая, что AC за 21 бар может 2 раза вверх вниз пройти и наличие 4-ех оптимизируемых параметров......))))

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

Было одно время хобби, в начале творческого периода - писать экспертов для работы на м1 по результатам прошедшей недели (7200 баров, в отличие от 66000) - аж по 300 процентов за неделю в тестере показывалось.....

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

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

А насчет осциллятора AC, дык советник смотрит не только на его последнее значение (решения на основе последних значений чаще всего применяется в техническом анализе), а исследует историю, т.е. каким были еще 3 значения индикатора в прошлом. Его интересует поведение осциллятора для принятия решения. Это самое поведение и попадает на вход нейронной сети. А на выходе получаем бай или селл.

Еще одно нововведение - это не стандартное обучение нейронки, а подбор весов на исторических данных с помощью генетического алгоритма. Я пробовал и тот и другой вариант, генетика дает результат чуть похуже и по времени медленнее. Но ведь, в MT4 встроенного алгоритма нейронки и ее обучения нет. А оптимизация по генетике есть. Да и ряд исследователей в этой области сталкивались с тем, что динамическое обучение не слишком адекватно, если ситуация резко меняется. Если на рынке, например, будут преобладать быки, то система переучится под бычий тренд и забудет про медвежий. И наоборот. С этим безобразием впервые встретился и описал Сэмуэль - автор программы чемпиона по игре в шашки.( Samuel A. L. 1959 "Some studies in machine learning using the game of checkers" IBM J. Research and Devepopmend 3: 210 - 229). Он заметил, что если его программа имела профессионального соперника, то постепенно переходила на игру уровня профессионала. А если соперник был начинающим, то и программа "забывала" прежний уровень и начинала переходить на примитивную игру. Поэтому наверное динамически обучать нейронку на собственных ошибках и убытках не имеет смысла. Проще прогнать ее по истории, чтобы выработать адекватную рынку торговую стратегию.

А что касаемо граалей, дык тут большого ума не надо. Надо лишь выполнить ряд условий:

1. Система должна открывать позиции либо вообще без стоплоссов, либо со стоплоссами на очень большом расстоянии, так чтобы вероятность их срабатывания была близка к 0
2. Воткнуть мощный фильтр на базе нескольких индикаторов с условиями срабатывания разделенными по логическому И (&&). И вытащить множество входных параметров этих самых индикаторов во внешние настройки МТС, так чтобы за несколько лет исторических данных на тестах открылось всего несколько позиций.
3. Ко всему этому добавить управление капиталом и риском с задранной фракцией
Dmitry Fedoseev
47334
Dmitry Fedoseev  
берем значение с 4-ех точек, каждое значение умножем на коэффициент, сумируем - чем не сглаживание фильтром?
Sceptic Philozoff
Модератор
17841
Sceptic Philozoff  
Мне не понятно, как можно всерьез обсуждать стратегию, дающую 44 сделки за 2 года... Слишком мало статистики!
Yury Reshetov
13491
Yury Reshetov  
Mathemat:
Мне не понятно, как можно всерьез обсуждать стратегию, дающую 44 сделки за 2 года... Слишком мало статистики!
Сделки действительно только 44, а обращений к функции Perceptron гораздо больше. Здесь применена экономия на спредах и экономия времени. Т.е. например, пусть у нас есть открытая позиция. МТС считывает показания нейронной сети. Если сеть сообщает, что движение котировок должно развернуться в противоположную сторону что и открытая позиция, то МТС делает реверс по встречной позиции. Если перцептрон сообщит, что котировки будут продолжать движение в ту же сторону по отношению к ордеру, то МТС только подтягивает стоплосс - трейлинг стоп (тоже самое, что закрыть позицию, зафиксировав профит и открыть такую же новую но с подтянутым лосем. А если открываем новую позицию, закрыв прежнюю, то теряем на спрэдах и комиссионных). Ведь в торговой системе не предусмотрены тейкпрофиты, а значит ей приходится бегать по трендами и пытаться определить моменты разворотов. Поскольку разворотов на трендовом инструменте всего по 1 шт. на 1 тренд (если сам тренд конечно же не боковой), то и получается такое небольшое количество сделок. Точнее сделок чуть больше, чем разворотов, т.к. система иногда ошибается.
Yury Reshetov
13491
Yury Reshetov  
Integer:
берем значение с 4-ех точек, каждое значение умножем на коэффициент, сумируем - чем не сглаживание фильтром?
Если мы берем значения некоего количества точек и каждое из них умножаем на соответствующую ему константу и получаем результат, то такое действие в математике называется линейным уравнением:

a1 * w1 + a2 * w2 + ... + an * wn = d

А для сглаживания нужна рекурсия, т.е. некое известное значение используется для вычисления значения сглаженного:

a1 = a1 * w1 + a2 * w2 + ... + an * wn


Dmitry Fedoseev
47334
Dmitry Fedoseev  
Reshetov писал (а):
Integer wrote:
берем значение с 4-ех точек, каждое значение умножем на коэффициент, сумируем - чем не сглаживание фильтром?
Если мы берем значения некоего количества точек и каждое из них умножаем на соответствующую ему константу и получаем результат, то такое действие в математике называется линейным уравнением:

a1 * w1 + a2 * w2 + ... + an * wn = d

А для сглаживания нужна рекурсия, т.е. некое известное значение используется для вычисления значения сглаженного:

a1 = a1 * w1 + a2 * w2 + ... + an * wn





Про линейно-взвешенные скользящие средние слышал?
Левитин Сергей В.
5163
Левитин Сергей В.  

Что бы это не было, но право на жизнь имеет. Пусть идея не нова, зато весьма интересна, и толково реализована, и ... способна приносить профит. Провел несколько форвард тестов, после "обучения", результаты обнадеживают. Большое спасибо автору.

Yury Reshetov
13491
Yury Reshetov  
Figar0:

Что бы это не было, но право на жизнь имеет. Пусть идея не нова, зато весьма интересна, и толково реализована, и ... способна приносить профит. Провел несколько форвард тестов, после "обучения", результаты обнадеживают. Большое спасибо автору.

А я для этого и выложил, чтобы нашелся хоть один трейдер, который вместо того, чтобы гундосить и поносить автора, попытался бы сначала проверить на практике. Тем паче, что код боевой и обкатанный, а не какой нибудь наспех насобаченный грааль, случайно показавший в тестах сумасшедший профит. Результат на реале почти, но не всегда ниже, нежели тестовый экстремум. Зато ему присуща стабильность.

А спорить с гундосами относительно того, эффективны нейронки или нет, дык - только время зря терять. Я ведь выкладываю по принципу: хочешь бери, а не хочешь смотри. Но, с надеждой, что найдется кто нибудь знающий толк в этом деле и сможет усовершенствовать код или подсказать более интересную идею решения задачи.
Yury Reshetov
13491
Yury Reshetov  
Integer:
Reshetov:
Integer:
берем значение с 4-ех точек, каждое значение умножем на коэффициент, сумируем - чем не сглаживание фильтром?
Если мы берем значения некоего количества точек и каждое из них умножаем на соответствующую ему константу и получаем результат, то такое действие в математике называется линейным уравнением:

a1 * w1 + a2 * w2 + ... + an * wn = d

А для сглаживания нужна рекурсия, т.е. некое известное значение используется для вычисления значения сглаженного:

a1 = a1 * w1 + a2 * w2 + ... + an * wn





Про линейно-взвешенные скользящие средние слышал?
Отдыхай. Жаль, что в форуме игноры для весьма назойливых собеседников не предусмотрены.