Прогнозирование цен на акции с использованием искусственного интеллекта (глубокое обучение на Python).


Численная платформа, на которой также можно использовать ИИ, MATLAB, доступна для частных лиц.
https://jp.mathworks.com/pricing-licensing.html?intendeduse=home&prodcode=ML&fbclid=IwAR0zonp3Hw92OG7K7gv_xNsfmUuq993uUwimw8D2P2FoUafKSbjT08mQ5fI. Я не заметил, что его продают по такой низкой цене. Если бы я знал раньше... Интересно, когда появилась домашняя версия. Раньше были только версии, стоившие десятки тысяч йен, поэтому, думаю, частные лица использовали бесплатный "R". Но если это можно использовать за 16 000 йен, все выберут его, это действительно замечательная программа. Глубокое изучение этой области довольно сложно, но, похоже, есть 30-дневный бесплатный пробный период, поэтому я, вероятно, попробую его, чтобы оценить удобство использования, например, проведя простой анализ акций в качестве короткого примера.

■ Подгонка (Fitting)
Я запустил один из учебных примеров, который я создал очень давно, и он заработал без проблем. Это хорошо. Я не очень хорошо помню, но, кажется, это функция "подгонка", которая выполняет обработку "аналогии" для периодической функции с шумом и отображает график. Точки - это исходные данные, а волновая линия - это график, полученный в результате аналогии. Подгонка выполняется для известных ответов, чтобы проверить правильность метода.

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

■ Приближение котировок акций
Я попытался аппроксимировать и спрогнозировать данные о котировках акций за полгода, используя простой график, но, конечно, поскольку я просто поиграл с этим около часа, результат совершенно бесполезен. Похоже, мне нужно немного больше поучиться. Было бы неплохо, если бы существовала какая-нибудь хорошая "теория". Если это просто развлечение, то это неплохо, но было бы интересно, если бы это оказалось полезным.
Синие точки: фактические котировки акций. Красная линия: аппроксимированный график.
Данные: 6754, компания "Anritsu".

Я поиграл и поэкспериментировал с этим несколько часов.
■ Синие точки: фактические исторические цены акций.
■ Красная линия: приближенный график исторических цен акций (слева) и прогнозный график на будущее (справа). Предполагается, что прогноз делается только на основе данных синих точек.
■ Желтый цвет: ответ, представляющий будущую цену акций.
Если красная линия, представляющая будущее, совпадает с желтыми точками, это означает, что прогноз точен, но, конечно, это не происходит сразу идеально. Поскольку исходные данные содержат математически аномальные (исключительные) движения, на приближенном графике также появляются странные "усы", которые создают помехи.
Если бы можно было так просто предсказывать цены акций, это было бы невероятно... Эта область сложна, но, если рассматривать это как развлечение, эта тема интересна из-за своей высокой сложности. Возможно, если что-то полезное получится (что маловероятно), это тоже можно будет использовать.
В любом случае, это хороший материал для сегодняшнего послеобеденного развлечения и обучения.
Данные: 6754, компания "Anritsu".

Появляются графики, которые, похоже, можно использовать для анализа цен акций.
■ Фиолетовый график справа: прогнозируемая цена акций.
■ Желтый круг справа: фактическая будущая цена акций.
Как-то они похожи. Точность варьируется в зависимости от параметров, иногда работает хорошо, иногда ошибается, но по сравнению с тем, что было вечером, стало намного лучше. Если такая точность получается при минимальных усилиях, это довольно неплохо.
Я давно не использовал математику, поэтому многое забыл, но, экспериментируя, постепенно вспоминаю. Хотя, конечно, я до сих пор не понимаю формулу "гауссовой регрессии", которая выдает эти результаты. Дело не во мне, а в замечательной документации MatLab. Ну, даже если я не понимаю, в любом случае получаются ответы, но для применения мне, вероятно, придется еще раз изучить математику.
Если все получится, может быть, я сделаю веб-сайт для прогнозирования цен акций для себя? (Смех)

Я не уверен, насколько серьезно я это делаю, но я создал простой сайт с главной страницей для анализа акций, чтобы Google быстрее его распознал. Такие проекты обычно занимают несколько месяцев или лет, поэтому лучше создать сайт заранее. К моему удивлению, удалось найти и зарегистрировать довольно короткое доменное имя.
AI-прогноз акций - https://kabu2u.com
https://kabu2u.com

■ LSTM (Long Short-Term Memory Network)
Я попробовал LSTM.
MatLab – это что-то невероятное (хотя я еще не понимаю математические основы). С такой легкостью можно создавать подобные вещи. (Я не пробовал это на Python, поэтому не могу сравнить).
Я только что вернулся с йоги, и планировал быстро изучить и поэкспериментировать с этим перед сном, но MatLab позволяет это сделать быстро и без проблем, что просто потрясающе.
Эта LSTM используется для глубокого обучения (deep learning). Это, так сказать, искусственный интеллект, но это не такой продвинутый ИИ, как Атом из комиксов, а скорее машинное обучение.
Код взят непосредственно из примера, но при каждом повторном запуске результаты обучения отличаются, и иногда получается "умный" ИИ, а иногда "глупый". На приложенном изображении показан довольно успешный вариант. На заднем плане – экран, отображающий процесс обучения, а на переднем плане – график, где "Forecast" – это прогноз. Он очень похож на фактический график, это потрясающе. Конечно, иногда получаются и "глупые" варианты, поэтому нестабильность результатов – это одновременно и хорошее, и плохое свойство глубокого обучения (deep learning). Когда получается "хороший" вариант, я, вероятно, буду очень удивлен. Скорее всего, я буду более подробно изучать, что происходит внутри, начиная с завтрашнего дня.

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

В прошлый раз я обучал модель только на одном параметре (только на цене закрытия), поэтому попробовал обучить модель с использованием комбинации параметров: цена открытия, максимальная цена, минимальная цена, цена закрытия и объем торгов, но результат не сильно изменился... Скорее, есть большая вероятность, что я где-то допустил ошибку, потому что я не до конца понимаю, что делаю. Я понимаю основы теории глубокого обучения, но попытки понять такой сложный алгоритм, как LSTM (long short-term memory network), приводят к тому, что у меня кружится голова.

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

Хо-хо. Мой, так сказать, искусственный интеллект говорит, что текущая цена акций 1332 N составляет 812, и, вероятно, она будет колебаться в течение некоторого времени. Красная линия в правом верхнем углу. Прогнозируемая цена акций через две недели составляет 822, то есть рост всего на 1%. Таким образом, это, вероятно, не подходящее место для покупки. Если вы сейчас владеете этими акциями, возможно, стоит временно продать их и превратить в наличные. (Пожалуйста, не верьте этому. Я пишу это ради шутки. Я занимаюсь этим как хобби, это мой маленький, только что рожденный, милый искусственный интеллект. Я не хочу, чтобы кто-то покупал акции, основываясь на этом, и я не несу за это ответственности.)

С прошлой ночи я сканирую все акции Токийской фондовой биржи. Анализ за последние 360 дней (максимум) занимает около 1 минуты на одну акцию. Используется Mac, настольный компьютер с процессором Intel Core i7. Сейчас завершено около 1200 акций, осталось 2400. Согласно статистике, около 10 акций могут показать рост до 10%. Искусственный интеллект предполагает, что примерно одна акция из 100 может вырасти. Однако, прогнозы ИИ могут быть неточными, поэтому при повторном анализе одной и той же акции прогноз может быть другим. Я пока не готов полностью доверять ИИ, поэтому не буду покупать акции, основываясь только на его результатах. Тем не менее, ИИ может выявить неожиданные акции, и я не смогу самостоятельно проверить все акции Токийской фондовой биржи, поэтому его можно использовать для фильтрации. Из 3600 целевых акций сначала выбираются около 30 акций, а затем этот список сужается до 10 или меньше, что, по-моему, было бы неплохо.

Анализ валютных рынков (FX) с использованием искусственного интеллекта. Однако, поскольку анализ проводится для каждой валюты отдельно, неясно, насколько это полезно. В любом случае, я буду наблюдать. Валютные рынки – это сложно...

На домашнем компьютере я запускаю анализ акций с помощью искусственного интеллекта (это занимает много времени), а днем планирую пойти на гору Такао. Утром были определены несколько акций с наибольшим ожиданием роста, но результаты пока не очень хорошие (я их не покупал), и все еще есть большая разница. Возможно, стоит попробовать покупать каждую акцию по минимальному количеству и быстро продавать те, которые падают, а держать только те, которые растут. В конце концов, невозможно точно знать, какие акции вырастут.

В оракуле написано: "Хорошо. Несмотря на все трудности, которые были, наконец-то открывается удача, исчезают беспокойства, и наступает время успеха во всем".
Интересно, сбудется ли это?

В течение последней недели я экспериментально покупал акции, отобранные с помощью искусственного интеллекта.
Искусственный интеллект отбирал около 30 акций, затем я самостоятельно проверял и сокращал список до примерно 10 акций, а затем приобрел несколько из них, у которых были хорошие графики.
На прошлой неделе ситуация на рынке была благоприятной, поэтому эти акции показали "в целом устойчивые результаты, с небольшим снижением. У некоторых акций наблюдался рост". Хотя не было резкого роста, но, по крайней мере, я не потерял деньги, что можно считать приемлемым результатом. В целом, за неделю акции выросли на несколько процентов. Эксперимент можно считать довольно успешным.
Однако, сегодня (в понедельник) токийский рынок обвалился, поддався влиянию рынка Нью-Йорка, и некоторые мои акции были вовлечены в это падение, вернувшись к исходной точке. Даже искусственный интеллект не может полностью избежать падения рынка... Естественно, что общая ситуация на рынке оказывает большее влияние.
В настоящее время я анализирую акции по отдельности с помощью искусственного интеллекта, и он не учитывает связь с рынком Нью-Йорка, поэтому, я думаю, необходимо научить искусственный интеллект учитывать и это.
Возможно, вместо того, чтобы заставлять его запоминать связи, можно просто научить его прогнозировать ситуацию на рынке Нью-Йорка, и, если он предсказывает снижение вечером, заранее немного уменьшать позиции.
(Эта картинка не связана с акциями, которые я купил).

■Google TPU
Указано, что срок поставки составляет 3 недели, но фактически товар прибыл примерно через 10 дней. Это было неожиданно быстро.
В Matlab он не работает, поэтому, возможно, позже попробую использовать его с Python.

■Первое знакомство с Python
Поскольку это мой первый опыт работы с Python, я попробовал прочитать данные, которые уже были проанализированы в Matlab, и отобразить их в виде графика. Возможно, он может стать заменой Matlab. Возможно, мне не придется покупать Matlab? Если я смогу перейти на Python в течение пробного периода Matlab, вероятно, я его не куплю, но Matlab очень удобен в использовании, поэтому я сомневаюсь, стоит ли его покупать. Кроме того, он может использоваться не только для искусственного интеллекта. Только Python позволяет использовать AI-чипы, разработанные Google, которые недоступны в Matlab, поэтому переход на Python в любом случае необходим.
У Python есть довольно необычный синтаксис, который редко встречается в других языках, что можно назвать странностью языка, интересной или, возможно, не очень удачной, но благодаря тому, что в нем можно использовать массивы, недостатки этой необычной синтаксической конструкции компенсируются. Ну, это, наверное, дело привычки.
В остальном, необходимо заменить основную часть, связанную с искусственным интеллектом, но это пока не сделано.

Недавно я реализовал анализ гауссовских процессов (Gaussian Process, GP) на Python, который ранее делал в Matlab. В Matlab я не обращал внимания на параметры, но в Python результаты сильно отличаются в зависимости от параметров, поэтому я реализовал версию с самыми простыми параметрами. Это не основная тема, поэтому можно оставить это на этом уровне. Я использую Python уже несколько дней, и постепенно к нему привыкаю.

Единственная сложность – скорость выполнения. Python работает медленнее, чем Matlab, и для анализа приходится ждать несколько секунд. Действительно, Matlab очень эффективен. Обычно говорят, что Python медленный, но, поскольку я недавно купил чип для искусственного интеллекта, анализ с использованием ИИ должен быть быстрым, поэтому Python, вероятно, подойдет. Чип предназначен только для ИИ, поэтому другие операции будут работать медленнее, и это неизбежно.

■TensorFlow
Сегодня я попытался реализовать искусственный интеллект с использованием TensorFlow 2 и Python 3, но большая часть информации в интернете относится к TensorFlow 1, и примеров для TensorFlow 2 не так много. Я кое-как создал прототип, но выдаваемые значения какие-то странные, и я не получаю правильных ответов. Раньше, в Matlab, я мог сделать это за один день, а здесь, похоже, потребуется больше времени. Действительно, Matlab, как продукт, очень удобен в использовании. Я постепенно привыкаю к Python, и, кажется, все наладится, но то, что в каждой библиотеке есть свои правила и преобразования, – это неудобно.

Кстати, чип TPU для искусственного интеллекта, который я купил от Google, похоже, лучше всего использовать в комплекте с Raspberry Pi, поэтому я сейчас переустанавливаю Raspberry Pi, который я купил и оставил пылиться. Он, неожиданно, пригодится. У Raspberry Pi раньше не было корпуса, но, поскольку я планирую использовать его долго, я купил корпус. Впервые включил его после долгого перерыва, и он не заработал, я попытался вынуть карту Micro SD, и она сломалась, поэтому мне пришлось купить новую. Также пришлось переустановить операционную систему. Это неудобно, но ничего не поделаешь.

■Симуляция прибылей и убытков акционеров
Простая симуляция прибылей и убытков акционеров с визуализацией в виде графика.
Надпись: Верхний график показывает фактическое изменение цены акций и приближенную формулу. Средний график – это то, что было добавлено в этот раз, где значения выше нуля означают прибыль, а ниже нуля – убытки. Предполагается, что если график находится выше нуля, то в среднем все акционеры получают прибыль, а если ниже – в среднем все акционеры несут убытки. Поскольку неизвестно, кто совершал сделки, предполагается, что в среднем все акционеры совершают сделки. Несмотря на такое предположение, получаются довольно правдоподобные графики. Если график ниже нуля, то можно предположить, что все несут убытки, а если выше – что все получают прибыль.
Из этого можно понять, что в ноябре 2018 года цена акций снизилась, и увеличилось количество людей, несущих убытки, а сейчас ситуация стабилизировалась. Однако, стоит ли покупать сейчас, это нельзя определить по этим данным. Скорее, это может служить индикатором, по которому не следует покупать. В апреле 2018 года цена акций практически не менялась, но благодаря отскоку некоторые люди получили прибыль, но в остальном большинство несут убытки.
Это не искусственный интеллект или машинное обучение, а просто симуляция. Но, возможно, такие вещи могут быть полезными, хотя и незаметными.

■ Симуляция потенциальной прибыли акционеров
Дальнейший анализ. Симуляция потенциальной прибыли акционеров с отображением в виде графика. Постепенно становится все более реалистичным.

На этом новом графике, например, можно заметить следующее:
■ Несмотря на то, что цена акций выросла в несколько раз, потенциальная прибыль (в среднем для всех акционеров) на протяжении долгого времени не увеличивалась (①).
■ Во время последнего резкого падения цены акций (②), потенциальная прибыль почему-то не уменьшилась (③). Это создает впечатление, что кто-то активно фиксировал прибыль на более высоких уровнях.
■ Во время последнего резкого падения цены акций объем торгов увеличился (④), и одновременно с этим увеличилась потенциальная прибыль (⑤). Это может означать, что крупные игроки покупают акции, которые "выбрасывают" мелкие инвесторы, получая прибыль от последующего отскока.
Появляются вещи, которые раньше были незаметны. Анализ – это интересно.

Теперь проанализируем эту акцию. Эта компания, о которой много говорили в новостях, но цена акций резко упала (1).
Одновременно со снижением цены акций, потенциальная прибыль (предположительно) также постоянно снижалась (2). В конце она достигла дна и начала восстанавливаться (3). Восстановление привело к увеличению потенциальной прибыли (4), но, с другой стороны, убытки акционеров были отрицательными (5. Все, что ниже красной центральной линии, считается убыточным), что говорит о том, что, хотя потенциальная прибыль временно увеличилась во время последнего восстановления, многие инвесторы не смогли зафиксировать прибыль и, в конечном итоге, были вынуждены продать акции с убытком. Это, конечно, только мои предположения, основанные на симуляции.
Нельзя сказать, что эта одна акция отражает все, но, возможно, это указывает на то, что "вероятность убытков при попытке заработать на восстановлении выше, чем вероятность прибыли". График четко показывает, что даже при восстановлении, среднестатистический акционер может понести убытки.
Судя по этому, попытки заработать на восстановлении акций, цена которых снижается, лучше избегать.
<Это моя личная интерпретация, и она может сильно отличаться от общепринятой, поэтому, пожалуйста, будьте внимательны. Я не являюсь экспертом в области инвестиций.>
■Скользящая средняя
Добавлены сигналы на покупку и продажу, основанные на положении цены относительно скользящих средних (9, 25, 75 дней).
Это реализация алгоритма, описанного в учебнике под названием "Скользящие средние: окончательный способ чтения и использования".
Цвет в верхней части сигнала указывает на следующее:
- Ярко-красный: сильный сигнал на покупку.
- Ярко-зеленый: сильный сигнал на продажу.
Промежуточные цвета соответствуют промежуточным состояниям.

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

■MACD
Отображает MACD (сам MACD + среднее значение MACD + гистограмма). Также отображает текущую фазу с помощью надписей. Добавлены линии, чтобы было видно, когда меняется фаза.

■RCI
Добавлен новый индикатор RCI. В обычном RCI есть две линии: краткосрочная и долгосрочная, но я добавил гистограмму (столбчатую диаграмму), похожую на сигнал MACD, чтобы сделать ее более наглядной (зеленые столбцы в области RCI – это она). Странно, что этого отображения нет в обычных инструментах для анализа акций, но оно очень полезное.
Кроме того, чтобы было проще сравнивать RCI и MACD, я добавил красный маркер, когда оба индикатора положительные, и зеленый маркер, когда оба индикатора отрицательные, чтобы сделать сигналы более понятными.
При таком сравнении интересно видеть разницу между сигналами скользящей средней (над RCI) и сигналами, которые я добавил (сигналы, находящиеся между RCI и MACD).
Это показывает, что долгосрочный и краткосрочный анализ могут расходиться. Это довольно интересно. Сигнал, который я добавил сегодня, кажется, вполне пригоден для использования.

■Краткосрочный график колебаний
График отображает только краткосрочные колебания цены, вычитая из исходной цены акции значение скользящей средней (трендовую линию). Это позволяет легче видеть краткосрочные колебания, не отвлекаясь на тренд.
(График меняется в зависимости от того, какую скользящую среднюю использовать, поэтому система пытается автоматически определить значения, которые примерно расположены горизонтально, и отобразить их.)
Это, например, график разницы между исходной ценой акции и значением скользящей средней за 89 дней.
Изначально я хотел провести анализ временных рядов, но, проанализировав данные, я не обнаружил каких-либо четких периодических закономерностей, поэтому я просто отобразил график, который был получен в процессе. Этот график, как ни странно, может оказаться полезным.

■Правила Дончанза
Изменено отображение правил, известных как "правила Дончанза", которые гласят: "покупать, если цена превышает максимум за последние четыре недели, и продавать, если цена опускается ниже минимума за последние четыре недели". Теперь, если цена в последний день превышает установленный порог, отображается соответствующая метка. Это сделало отображение более наглядным.
Хотя появилось много различных правил, необходимо проверить, какие из них действительно эффективны, иначе из-за большого количества сигналов использование может стать неудобным.
Возможно, в будущем я проведу симуляцию, чтобы это проверить...

■Симуляция
Симуляция показывает, достигнет ли цена, если купить по цене закрытия в этот день, отметки на 5% выше или ниже, и отображает это цветом: красным для повышения и зеленым для понижения.
Это позволяет получить приблизительное представление о том, "где лучше купить" и "где лучше продать".
Похоже, что наличие небольших "выбросов" на гистограмме (столбчатой диаграмме) индикатора RCI может служить сигналом.
Кстати, о компании, которая вызвала у меня интерес в последнее время. Это компания, которая раньше занималась трехмерной графикой, но теперь приобрела известную сеть салонов красоты, о которой, возможно, знают только те, кто в теме. У нее очень странная цена акций. Выручка 500 миллиардов иен, но операционная прибыль отрицательная, а рыночная капитализация 3,4 миллиарда иен. Даже если учитывать убытки, денежный поток значительно положительный, и "премия за слияние и поглощение" является значительной, но она закончится через несколько лет, и, похоже, в будущем будет положительная динамика. Если выручка в 500 миллиардов иен приведет к восстановлению операционной прибыли до 50 миллиардов иен, рыночная капитализация в 3,4 миллиарда иен будет невозможной, и, по крайней мере, она должна вырасти до положительных показателей. Обычно она должна быть примерно равна выручке, поэтому верхний предел рыночной капитализации составляет 500 миллиардов иен, что делает ее потенциальным кандидатом на десятикратный рост. Даже если этого не произойдет, ожидается удвоение, если будет видна перспектива получения прибыли. Однако существует вероятность резкого снижения из-за крупных сделок. Поскольку цена акций уже странная, я не удивлюсь, если она упадет еще на 50% отсюда. Фактически, я наблюдаю за ней с конца марта и несколько раз покупал и продавал акции, но после снижения, вызванного получением привилегий (сертификатов на посещение салона красоты) в конце марта, снижение было очень сильным (смеется). Кроме того, затем произошла массовая продажа крупных инвесторов, что привело к резкому снижению на 10%. Возможно, она снова упадет отсюда, но в следующем месяце будет опубликован отчет о финансовых результатах, и компании, занимающиеся услугами для женщин, особенно популярны летом (поскольку требуется обнажение кожи, и женщины хотят посещать салоны красоты). Это интересная компания на ближайшие полгода.
→ Но, когда я начал изучать это подробнее, оказалось, что выручка, похоже, является "иллюзией" в бухгалтерском учете. Результаты деятельности вызывают подозрения.

■Достижение уровня, сопоставимого с Matlab
Реализация искусственного интеллекта (глубокое обучение) на Python + TensorFlow (версия 2). Это практически те же самые операции, которые выполнялись в Matlab.
Зеленая точка, расположенная в правой центральной части графика, представляет собой прогнозируемую искусственным интеллектом будущую цену акций. Результаты, полученные с помощью Matlab и TensorFlow, довольно похожи, поэтому, в основном, принципы одинаковы.
Изначально было сложно понять особенности синтаксиса TensorFlow (версия 2), что затрудняло разработку, но после изучения примеров процесс стал более плавным. Пока что используется процессор Mac, что, конечно, медленно, но интересно, насколько это ускорится при использовании чипов Google TPU. Об этом будет рассказано в другой раз.
Это довольно просто, но, похоже, теперь я могу считать себя частью сообщества специалистов по искусственному интеллекту (с улыбкой).

■FX
Также была произведена модификация для прогнозирования цен акций с учетом валютного курса (USD). Раньше учитывалась только цена акций соответствующей компании (одна переменная), теперь учитываются цена акций и валютный курс USD (две переменные).
Однако, на первый взгляд, результаты не сильно изменились... Похоже, требуется проверка. Возможно, между ними нет сильной корреляции. Возможно, это справедливо для крупных компаний, торгуемых на первой секции Токийской фондовой биржи. Пожалуй, попробую добавить еще какие-нибудь факторы.

Затем анализ проводится по трем переменным: "цена акций, объем торгов, курс доллара США (FX)".
Поскольку мы можем преобразовать одну переменную в две, добавление третьей переменной занимает всего мгновение.
Внешний вид, впрочем, практически не меняется.
Интересно, насколько это влияет на точность.
Может быть, стоит добавить, например, индекс Dow Jones?



■Google TPU не поддерживает LSTM.
Я пытался запустить чип Google TPU (USB) на Raspberry Pi, но выяснилось, что он не поддерживает LSTM (RNN), а поддерживает только классификацию и другие задачи. Это было довольно утомительно, но я кое-что узнал, так что, наверное, это неплохо. Вот почему чип такой дешевый. Удивительно, что даже такая недоделанная игрушка может продаваться, как это делает Google. Похоже, это хорошо подходит для определенных задач, таких как распознавание движений.

・Просто установка библиотеки TensorFlow занимала 30 минут или даже час. Raspberry Pi очень медленный.
・По умолчанию используется TensorFlow версии 1, а для версии 2 нужно собирать из исходного кода, поэтому я попытался создать среду сборки, но для сборки инструмента под названием Bazel потребовалось более 24 часов, и в конечном итоге выяснилось, что последняя версия Bazel не поддерживается, поэтому мне пришлось снова собирать более старую версию Bazel, что было повторной работой. Даже после этого TensorFlow версии 2 не работала. Очень утомительно. Поскольку это не сработало в стандартной операционной системе Raspberry Pi, я попробовал установить Ubuntu, но результат был таким же. Это была повторная работа, но я вернулся к исходной операционной системе.
・В Raspberry Pi используется процессор Arm, поэтому стандартные библиотеки и Docker, которые обычно доступны для Google TPU, не работают напрямую, и доступны только версии для Raspberry Pi, что неудобно.
・В стандартной операционной системе используется Python версии 3.5, поэтому я сначала собрал версию 3.7 из исходного кода, но, похоже, она не поддерживается TensorFlow, поэтому я установил версию 3.6, но это не сильно изменило ситуацию, поэтому я вернулся к стандартной версии 3.5.
・Я подумал, что проблема может быть в библиотеках, поэтому я собрал несколько из них из исходного кода, но это не помогло.
・В итоге я пришел к выводу, что использование TensorFlow через Keras не сильно отличается между версиями 1 и 2, и я подтвердил это, проверив работу обеих версий на Mac.
・Google TPU не поддерживает "обучение с нуля", а поддерживает только "переобучение", и выяснилось, что для использования необходимо сначала создать модель на CPU, затем выполнить специальную конвертацию, а затем выполнить еще одну конвертацию на странице в облаке. И эта конвертация не поддерживает LSTM/RNN, которые я хочу использовать. Очень утомительно.

Теперь мне нужно решить, покупать ли дешевый ПК и набор NVIDIA GPU или просто терпеть, используя существующий ПК...

■Создание сайта для анализа акций с использованием искусственного интеллекта
https://kabu2u.com
https://kabu2u.com
Сайт для анализа акций с использованием искусственного интеллекта был обновлен. Будут постепенно добавляться акции с высокой волатильностью. Пока неясно, насколько детально следует предоставлять информацию, поэтому, в качестве первого шага, публикуются только данные, по которым анализ был проведен две недели назад. Прогнозы на будущее пока не будут публиковаться. Было бы хлопотно получать жалобы из-за прогнозов на будущее, поэтому, возможно, в будущем, когда точность станет выше, прогнозы можно будет сделать платными. В любом случае, пока точность не очень высока, поэтому, думаю, это неплохой старт.

■Анализ волн Эллиотта
В настоящее время ведутся работы по анализу волн Эллиотта. (Чтобы узнать, что такое волны Эллиотта, поищите в интернете).
Пытался определить, какой по счету волной является текущая, основываясь на фактических графиках, но это оказалось довольно сложной задачей, поэтому решил изменить подход.
Подумал о том, чтобы смоделировать волны Эллиотта, заставить искусственный интеллект запомнить результаты моделирования, а затем использовать это для прогнозов.
Сначала был создан график, в котором числа Фибоначчи чередовались с добавлением и вычитанием, как показано на рисунке в левом верхнем углу, но, поскольку в исходном виде получались отрицательные значения (в цене акций не может быть отрицательных значений), все значения были линейно подняты вверх, чтобы они стали положительными, как показано на рисунке в правом верхнем углу. Хм... Что-то не то. Вместо линейного подъема, значения были подняты по параболе, как показано на рисунке в левом нижнем углу. Это выглядит более-менее правильно, но что-то не так. Однако, поскольку и на графиках реальных акций наблюдаются непонятные движения, возможно, этого будет достаточно.
В любом случае, график был создан, и на его основе были созданы фиктивные данные для анализа искусственным интеллектом. График, полученный в результате анализа, показан в правом нижнем углу.
Таким образом, искусственный интеллект был обучен, но насколько точными будут прогнозы при использовании в реальных условиях, покажет время.



■Создание специализированного ПК для анализа с использованием ИИ.
Я установил Ubuntu Linux на ноутбук (в качестве дополнительного ПК). Изначально на нем была установлена Windows, но из-за того, что при постоянном выполнении задач анализа она зависала каждые несколько часов, что приводило к задержкам в анализе, я был вынужден установить Linux Ubuntu, и это оказалось намного удобнее. Возможно, наступила эпоха, когда удобство Linux начинает превосходить удобство Windows. Современная Windows нестабильна и медленная, и мне кажется, что я сам себе создаю проблемы. Поскольку для работы с офисными приложениями необходимы Word и Excel, мне все равно приходится использовать Windows, но, кроме этого, Windows, кажется, уже не нужна. Если бы я создавал систему сейчас, сделав упор на веб-технологии и отказавшись от Word/Excel/PowerPoint, Windows, вероятно, была бы не нужна. Я, в принципе, люблю Microsoft, но в последнее время я был очень огорчен нестабильностью Windows. Кроме того, скорость выполнения задач на Linux выше. Google TPU-чип (USB) также работал нормально.

■ Извлеченные и анализируемые характеристики
В настоящее время я извлекаю и анализирую характеристики, которые, вероятно, важны для людей. В зависимости от акции, иногда удается достичь довольно хорошей точности.
Поскольку глубокое обучение в конечном итоге является имитацией работы нейронов мозга, логично, что предварительное разделение характеристик в качестве входных данных может повысить точность. Однако, если слишком сильно специализироваться на этих характеристиках, точность может резко упасть для акций, не связанных с этими характеристиками. Анализ фондового рынка изначально сложен, поэтому, возможно, стоит довольствоваться тем, что есть хотя бы какие-то полезные условия.
Если извлеченные характеристики имеют смысл, то в процессе глубокого обучения ошибка будет постепенно уменьшаться и произойдет сходимость. Однако, если сходимость не наступает, возможно, в значениях характеристик есть ошибка, или, возможно, эти характеристики вообще не имеют смысла (!). Это последнее открытие является новаторским, и, возможно, глубокое обучение выявляет, что теория, которая обычно считается "само собой разумеющимся" в мире акций, на самом деле бессмысленна. Например, говорится, что пересечение краткосрочного и долгосрочного скользящих средних (золотой крест) является сигналом к покупке, и о MACD также говорят в похожих терминах, но, возможно, на самом деле там нет никакого смысла (!), - это результаты анализа глубокого обучения, "возможно". Продолжение следует завтра.

■Следование за трендом
Поскольку технический анализ кажется неточным, я разработал систему искусственного интеллекта, которая просто следует за трендом. В таком случае, слабость к резким падениям и взлетам неизбежна, но в отношении следования за трендом, я получил довольно хорошие результаты, лучше, чем раньше, поэтому, возможно, это имеет смысл. Толстая красная линия – это прогноз, сделанный искусственным интеллектом. Возможно, именно такое использование является наиболее подходящим для машин. Для человека следование за трендом может быть скучным, но машина может выполнять эту работу монотонно.

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

■Первая версия сайта прогнозов цен акций на основе ИИ
Прогнозы цен акций - https://kabu2u.com
https://kabu2u.com
Первая версия завершена. Можно пересмотреть модель или использовать больше вычислительной мощности для более глубокого анализа, но, учитывая соотношение затрат и эффективности, кажется, что это хорошее начало. Идей для дальнейших экспериментов еще много. С середины марта я начал экспериментировать с Matlab, а затем перешел на Python+Tensorflow, и за два с половиной месяца получился довольно неплохой результат. Один месяц был посвящен экспериментам, а еще один с половиной - разработке сайта и различным модификациям. Точность пока еще невысокая, но сейчас анализ проводится в первую очередь с учетом времени, и работа прерывается на полпути, поэтому в будущем мы будем смотреть, насколько точность улучшится со временем. Если точности недостаточно, мы будем увеличивать размер модели и проводить другие трудоемкие исправления, но основные функции уже реализованы. Сейчас отображение слишком простое, поэтому планируется постепенно добавлять дополнительные элементы.

■Добавление линий поддержки
Добавлено отображение линий поддержки, предполагая покупку по цене открытия на следующий день после прогнозируемой даты. Это сделало отображение немного более понятным.

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



■ Эйр-трейдинг
Я разместил информацию об эйр-трейдинге. Если бы я мог торговать механически, без эмоций, я, вероятно, зарабатывал бы больше, но, возможно, именно из-за этого мои результаты не очень хорошие.

■ Пересмотр алгоритма
Пересмотрен алгоритм эйр-трейдинга. На главной странице опубликованы результаты эйр-трейдинга по всем акциям.

■ Эйр-трейдинг с использованием "идеального" порядка
Я попробовал эйр-трейдинг на основе краткосрочных, среднесрочных и долгосрочных линий, в соответствии с условиями, обычно называемыми "идеальным" порядком, и результаты оказались не очень хорошими. Возможно, это связано с текущей рыночной ситуацией, или, как и в техническом анализе, это может быть просто миф, объясняемый постфактум.
Средняя прибыль/убыток +0.5%, кумулятивная +0.6%.

■ Сравнение алгоритмов
Сравнение алгоритмов: один алгоритм покупает акции, если прогноз ИИ указывает на рост, а цена открытия следующего дня на несколько процентов ниже цены закрытия предыдущего дня; другой алгоритм покупает акции, если цена открытия следующего дня не ниже цены закрытия предыдущего дня. С точки зрения человеческого восприятия, первый алгоритм, который позволяет "покупать дешевле", кажется более перспективным, но на самом деле побеждает второй. Поскольку цены акций, как правило, продолжают расти, если они уже растут, и продолжают падать, если они уже падают, этот результат можно понять.
Средняя прибыль/убыток для каждого алгоритма составляет +2.0% и +0.9%, поэтому это может быть погрешность.

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

Эйр-трейдинг 1 [среднее по всем акциям] Прибыль/убыток: +0.1% (взвешенное среднее, с акцентом на последние данные) -0.1% (среднее, за весь период), кумулятивный -1.3% (за весь период).
Эйр-трейдинг 2 [среднее по всем акциям] Прибыль/убыток: -0.8% (взвешенное среднее, с акцентом на последние данные) -0.7% (среднее, за весь период), кумулятивный -1.5% (за весь период).
Эйр-трейдинг 3 [среднее по всем акциям] Прибыль/убыток: -0.8% (взвешенное среднее, с акцентом на последние данные) -0.7% (среднее, за весь период), кумулятивный -1.6% (за весь период).
Эйр-трейдинг 4 [среднее по всем акциям] Прибыль/убыток: -0.8% (взвешенное среднее, с акцентом на последние данные) -0.7% (среднее, за весь период), кумулятивный -2.2% (за весь период).
Эйр-трейдинг 5 [среднее по всем акциям] Прибыль/убыток: -0.1% (взвешенное среднее, с акцентом на последние данные) -0.1% (среднее, за весь период), кумулятивный -0.8% (за весь период).

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

ЭйрТрейд 1 [среднее значение по всем акциям]: Прибыль/убыток: +0.5% (взвешенное среднее, с акцентом на последние данные) +0.1% (среднее, за весь период). Кумулятивная прибыль/убыток: -0.0% (за весь период).
ЭйрТрейд 2 [среднее значение по всем акциям]: Прибыль/убыток: +0.4% (взвешенное среднее, с акцентом на последние данные) +0.2% (среднее, за весь период). Кумулятивная прибыль/убыток: -0.1% (за весь период).
ЭйрТрейд 3 [среднее значение по всем акциям]: Прибыль/убыток: +0.1% (взвешенное среднее, с акцентом на последние данные) -0.0% (среднее, за весь период). Кумулятивная прибыль/убыток: -0.5% (за весь период).
ЭйрТрейд 4 [среднее значение по всем акциям]: Прибыль/убыток: +0.4% (взвешенное среднее, с акцентом на последние данные) +0.2% (среднее, за весь период). Кумулятивная прибыль/убыток: -0.0% (за весь период).
ЭйрТрейд 5 [среднее значение по всем акциям]: Прибыль/убыток: -0.3% (взвешенное среднее, с акцентом на последние данные) -0.4% (среднее, за весь период). Кумулятивная прибыль/убыток: -1.4% (за весь период).

■Искусственный интеллект – это все еще черная коробка.
Теперь, кажется, начали появляться прогнозы, которые соответствуют действительности, но также возникают и совершенно нелогичные результаты. Однако, даже если я, человек, думаю, что что-то не так, фактическая цена акций еще более непонятна, так что, возможно, это выходит за рамки моего понимания. Проблема искусственного интеллекта, а точнее, глубокого обучения, заключается в том, что промежуточные результаты являются "черным ящиком", и трудно понять, почему получаются такие результаты. Существует базовая логика, поэтому, в принципе, можно объяснить, но детальное объяснение сложно для искусственного интеллекта. Поэтому важно сравнивать результаты с реальностью и смотреть, соответствуют ли они действительности. Кажется, что общее направление движения есть, но "когда" будет рост и "когда" будет падение – это слабо выражено. Может быть, лучше, если искусственный интеллект определяет общее направление, а человек корректирует время?

В любом случае, когда создаешь что-то подобное, в компании всегда находятся люди, которые говорят: "Это не только твои заслуги", и пытаются присвоить себе часть успеха, или придираются и пытаются принизить мой вклад, как будто я один виноват. Когда работаешь в одиночку, нет никого, кто бы мешал, и все, что создано, очевидно, поэтому все чисто и хорошо. В компаниях часто бывает так, что даже если один человек создает что-то, его ценят больше, если десять человек суетятся и создают то же самое. С точки зрения эффективности затрат, создание чего-то одним человеком в десять раз эффективнее, но при этом ценят больше, если десять человек потратили в десять раз больше ресурсов на создание того же самого. Незнающие IT-специалистам сложно понять, что это можно сделать в одиночку. Из-за незнания IT они склонны верить в громкие заявления и уверенных в себе людей. Из-за незнания IT они судят по количеству людей, а не по результатам. Такие компании, вероятно, останутся позади в мировой конкуренции. IT-специалисты не будут долго работать в таких компаниях. Я надеюсь, что таких компаний не так много. В конечном итоге, те, кто не разбирается в технологиях и результатах, оценивают все по количеству людей. В IT-индустрии до сих пор царит система "человеко-месяцев", и заказная разработка – это не просто эффективный способ заработать деньги, а скорее "ритуал", когда IT-компании, не знающие о деньгах, устраивают шумное представление для клиентов, у которых есть деньги, чтобы заработать. Оплата по результатам – это нечто из области фантастики. Поэтому я не люблю заказную разработку и доверяю только компаниям и частным лицам, которые используют IT для собственных целей и ведут свой бизнес. Ну, возможно, если бы везде была система оплаты по результатам, многие бы потеряли работу, поэтому, возможно, IT-индустрия, несмотря на всю свою неэффективность, играет важную роль в обеспечении людей работой.



■ AirTrade под наблюдением.
Средний показатель AirTrade 4 за последнее время увеличился до +4,3%. Количество акций под наблюдением превысило 300. Возможно, это просто случайность или удача, поэтому пока будем наблюдать.
Обучение модели искусственного интеллекта, конечно же, продолжается. Каждый день вносим небольшие корректировки.

■ 5 побед, 1 поражение.
Анализ, основанный на результатах предыдущего анализа, показал 5 побед и 1 поражение. Это неплохо. Поскольку это был виртуальный трейдинг, я на самом деле ничего не покупал.

В этот же день было что-то еще очень необычное. Вау. Это был AirTrain.

■OCR
Я не собираюсь покупать акции компании Sansan, но, похоже, она может стать легендарной компанией, прошедшей IPO. Компания, которая начала торговлю с убытками, с небольшим объемом продаж, но с рыночной капитализацией в 1200 миллионов иен, что кажется нелогичным.
Я провел расчет дивидендной доходности компании Sansan, используя оптимистичные предположения. Если компания действительно вырастет, как говорит генеральный директор, это возможно. Если начнется период, подобный эпохе Сэнгоку в сфере мобильных платежей, цена акций, скорее всего, будет постоянно снижаться. Технически это легко скопировать, и все сводится к вопросам маркетинга. Все зависит от того, как отреагируют крупные компании. Увидев эту рентабельность, у меня даже возникло желание инвестировать.

Sansan, по сути, просто использует OCR для распознавания информации с визиток. Неужели можно добиться успеха и получить большую прибыль только с помощью этого? Это похоже на Amazon, где сначала нужно доминировать на рынке с помощью маркетинга, чтобы получить большую прибыль. Может быть, стоит попробовать создать популярное приложение для сканирования текста с помощью искусственного интеллекта. А идея создать что-то "совместимое с Sansan" и переманить всех клиентов (смеется) – это, наверное, слишком. В любом случае, я, наверное, попробую создать приложение, которое будет определять строку шрифта по изображению.

В общем, я поискал статьи о Sansan и обнаружил, что, согласно статье, опубликованной на сайте itmedia.co.jp, точность в 100% необходима для распространения продукта (ссылка: https://www.itmedia.co.jp/news/spv/1906/17/news042_2.html). Это типичная японская ситуация. На первый взгляд, это кажется довольно сложным. Возможно, это и является способом дифференциации, но мне кажется, что люди во всем мире не требуют такой высокой точности.
К тому же, возможно, визитки вообще скоро исчезнут.

У Google есть OCR с открытым исходным кодом, поэтому, возможно, я попробую это позже.

■ После этого
Обучение модели искусственного интеллекта продолжается каждый день, с постоянной тонкой настройкой, и сайт продолжает работать. Невозможно преодолеть неблагоприятную рыночную конъюнктуру, поэтому результаты работы пока что не очень хорошие. Если рыночная конъюнктура хорошая, то доход составляет около 1%, но если она плохая, то он отрицательный. Возможно, стоит использовать это только в периоды благоприятной рыночной конъюнктуры. Использовать это в чистом виде сложно, но, учитывая, что самостоятельно сканировать все акции – это тяжело, использование этого как метода для определенной фильтрации кажется разумным.

Период разработки:
Середина марта 2019 года: скачал Matlab и начал эксперименты.
Начало апреля: впервые попробовал Python.
Конец апреля: завершена начальная версия сайта для анализа с помощью искусственного интеллекта.
Конец мая: сайт для анализа с помощью искусственного интеллекта почти завершен.
После этого модель постоянно обучается на специальном компьютере, а тонкая настройка производится постоянно.



Видение корейско-японских отношений во сне. (Следующая статья (из той же категории).)
В сидде: кундалини, преодоление сексуальных желаний (Ма Иньцзун). (Следующая статья в хронологическом порядке.)