Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 336

 
Yuriy Asaulenko:


Вообще, говорят, в инет и на С++ нейронок полно. Но не искал.


http://www.opennn.net/

https://www.neuraldesigner.com/

OpenNN | Open Neural Networks Library
  • www.opennn.net
The main advantage of OpenNN is its high performance. It is developed in C++ for better memory management and higher processing speed, and implements CPU parallelization by means of OpenMP and GPU acceleration with CUDA.
 
И всё таки удовлетворительных результатов торговли как я понял - нет, даже на демо!
 
elibrarius:

Начинаю изучать нейросети.

Смотрю на варианты, которые можно реализовать непосредственно в МТ5.

Интересен вариант с использованием ALGLIB (https://www.mql5.com/ru/articles/2279), но из описания сети следует, что там последовательная сеть без обратных связей. И минус в том, что ее обучение можно проводить только одним потоком процессора (который обрабатывает эксперт с нейросетью).

Мне кажется не сильно сложно будет добавить 2 скрытых последовательных слоя к нейросети из статьи https://www.mql5.com/ru/articles/497 и далее обучать ее либо полным перебором, либо генетическим в тестере. Но при этом можно задействовать намного больше вычислительных  потоков (ядра своего процессора, в сети и в облаке). Я правильно понимаю?

Как в обучение такой сети добавить ручные указания на правильные ответы (места покупок и продаж)?

Может где-то уже есть библиотека для многослойной последовательной сети?

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


MLP не оодходить для прогнозирования рынков, смотрите ролики выше, нужна RNN, тобишь сеть с памятью

https://nplus1.ru/material/2016/11/04/recurrent-networks

Азбука ИИ: «Рекуррентные нейросети»
Азбука ИИ: «Рекуррентные нейросети»
  • 2016.11.04
  • Тарас Молотилин
  • nplus1.ru
N+1 совместно с МФТИ продолжает знакомить читателя с наиболее яркими аспектами современных исследований в области искусственного интеллекта. В прошлый раз мы писали об общих принципах машинного обучения и конкретно о методе обратного распространения ошибки для обучения нейросетей. Сегодня наш собеседник — Валентин Малых, младший научный...
 
Renat Akhtyamov:
И всё таки удовлетворительных результатов торговли как я понял - нет, даже на демо!

Это дело оптимизиции, нет смысла пока тетсировать все версии, буду тестировать когда полностью все реализую
 
Yuriy Asaulenko:

Эксперимент по обучению нейросети (НС) пересечению двух МАшек не удался. Обучение велось на распознавание только пересечения вверх.

Для эксперимента была выбрана НС - 3,3,3,1 и протестирована на обучение и распознавание искусственно созданных паттернов. Однако после обучения распознаванию МА, ни одно пересечение распознано не было. Причина - НС нужны более контрастные образы, всяческие разности в 0.01-0.1 между входами ее абсолютно не волнуют.

Для заданной структуры НС вполне досоверное распознавание можно получить при разности сигналов не менее 0.2-0.3.


МЛП вам все время такую кашу и будет выдавать, я уже эксперементировал с ними, там еще фиг слои подберешь - то переобучится, то недообучится, то слоев не хватает, то их МНОГО
 
Renat Akhtyamov:
И всё таки удовлетворительных результатов торговли как я понял - нет, даже на демо!

Никто не будет тратить месяцы на разработку стратегии, и потом идти хвастаться ей на демо счёте. Такие вещи идут торговаться на реал, и история сделок прячется от всех. Я тут на форуме даже читал как люди специально торгуют на двух брокерах, поочерёдно сливая на одном и компенсируя потери на другом, чтоб даже брокер не знал какие сделки были совершены по стратегии, а какие - левые.

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


Лично моё мнение - нейронка, лес, регрессии - всё это слишком слабо для форекса. Причина в том что поведение цены постоянно меняется, правила которые прибыльны сегодня могли быть вообще неприбыльны неделю назад. А стандартный подход - взять индикаторы и цену за пару месяцев и обучить нейронку - означает что от неё требуется найти одинаковые правила поведения цены на протяжении всех двух месяцев. А таких правил нет, и что она там найдёт - никому неизвестно, но это будет неправильно в 99% случаев. Иногда может повезти и модель попадёт в этот 1%, но это очень далеко от грааля, и такие советники обычно хорошо торгуют до первого стоп лосса и потом их можно выкидывать. 

Я сейчас изучаю модели распознавания паттернов которые смотрят на истории как вела себя цена после похожих паттернов, и такой статистикой и торгуют.
В R я не видел пакета который бы делал всё что мне нужно, у меня модель по кускам собрана из других, плюс свои велосипеды. Само близкое по смыслу описание модели я видел в другой теме, я бы советовал начать создание своего грааля с этого (цитата ниже). В процессе появятся новые проблемы, над ними придётся думать и экспериментировать.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Анализ важнеших СТАТИСТИЧЕСКИХ характеристик паттерна и выбор метода торговли по нему.

Vladimir, 2017.04.06 06:20

Поищите в кодбазе мой индикатор ближайщих соседей. Метод довольно простой. Задаёте длинну текущего паттерна, по истории находите похожие паттерны (например используете корреляцию как расстояние между паттернами), предсказываете поведение цены в будущем из прошлых паттернов путём взвешивания их индивидуальных предсказаний. Это по существу таже кластеризация, или RBF, или SVM, или GRNN. Всё зависит от того как измеряем расстояние от текущего паттерна до похожих прошлых паттернов. Почитайте по GRNN и Bayes. Там теория предсказаний описана с точки зрения статистических распределений. Написано о GRNN и упомянутых выше методах предсказаний много, а всё сводится к одной простой формуле:


предсказание y = SUM y[k]*exp(-d[k]/2s^2) / SUM exp(-d[k]/2s^2)


где y[k] - к-ый прошлый паттерн, d[k] - расстояние от к-го паттерна до текущего. Если расстояния имеют Гауссовское распределение, то d[k] = (x - x[k])^2. Для произвольного (супер Гауссовского) распределения, d[k] = |x - x[k]|^p, где выбираете p в зависимости от того хотите ли вы дать больший вес самым ближайщим соседям (большое p), или дать всем соседям почти одинаковые веса (маленькое p) как при социализме. При p=0, имеем полнейший созиализм.

После того как ознакомитесь с ближайщими соседями и GRNN, возникнет следующий очевидный вопрос. А как измерить расстояние между текущим паттерном и прошлыми паттернами если принять во внимание искажения по оси времени (т.е. прошлые паттерны могут выглядеть как текущий но либо растянуты или сжаты по времени). Вот тут то собака и зарыта.


 

а кто-нибудь пробовал генетическое программирование в качестве метода ML?

типа как у Chaos Hunter?

 
Maxim Dmitrievsky:


MLP не оодходить для прогнозирования рынков, смотрите ролики выше, нужна RNN, тобишь сеть с памятью

https://nplus1.ru/material/2016/11/04/recurrent-networks

Если не ошибаюсь, то RNN будет крайне сложно реализовать в МТ5, да и для хороших результатов нужна либо покупная либо собственная разработка с огромными трудозатратами.

А если в МЛП, кроме информации о цене, индикаторах на текущем баре - передавать все тоже самое за 10-30 предыдущих баров, то это будет своеобразной памятью. Часть нейронов будет обрабатывать текущее состояние, а часть развитие ситуации в ближайшем прошлом.

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

Понятно, что объем вычислений вырастет, потому и интересовался возможностью переноса вычислений с одного ядра на все ядра процессора, сети или облака. Как бы такое сделать? Хотя бы для МЛП

 
nowi:

а кто-нибудь пробовал генетическое программирование в качестве метода ML?

типа как у Chaos Hunter?

А как у Chaos Hunter? Дайте конкретную ссылку
 
elibrarius:

Понятно, что объем вычислений вырастет, потому и интересовался возможностью переноса вычислений с одного ядра на все ядра процессора, сети или облака. Как бы такое сделать? Хотя бы для МЛП


На OpenCL, не если не лень ))
Причина обращения: