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

 
Я вообще начинаю тему по использованию Питона в тренинге на форуме где обитаю. Там будет описано все что может пригодиться трейдеру для разработки МТС. Готовых стратегий не будет. Задача найти "алгоритм" создания прибыльных МТС. И не важно какие методы будут использованы. Главное чтобы они были полезны. Ссылка будет в моей ленте новостей.
 
Grigoriy Chaunin:
С нейросетями в МТ все просто. Есть библиотека от Майкрософт CNTK. Она реализованна для Питона, C# и C++. Весь анализ и обучение сети делается на Питоне, а на C++ пишится DLL которая загружает обученную сеть и ведет по ней расчеты. На мой взгляд это самый оптимальный вариант. Второй вариант, подключение Питон к МТ. Я написал для этого простую библиоткеу. Библиотека. Подключаем и можем использовать все что доступно в Питоне. А доступно очень много всего. Я думаю, не начать ли мне писать о машинном обучении в своем блоге.
Будьте добры, можете пояснить один момент, после инициализации скрипта он висит в памяти? То есть загруженные скриптом питона модули так же должны висеть в памяти, так?
 
Да. Предполагается что код MQL вызывает функции Питон скрипта на каждом тике.
 
Maxim Dmitrievsky:

по стратегиям было бы интересно почитать и по личным мыслям\опыту.. лично мне

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

хотя основная мысль была уже давно озвучена fxsaber - при таком подходе с тем же успехом тему можно было бы просто закрыть, потому что он изначально ошибочный

Согласен.

Тема превратилась в полный хлам без конкретных примеров и теории.

Давайте исправлять ситуацию.

Для начала - советую всем почитать как надо определять объем выборки для прогнозирования (см. прикрепленный файл).

Файлы:
 
Alexander_K2:

Согласен.

Тема превратилась в полный хлам без конкретных примеров и теории.

Давайте исправлять ситуацию.

Для начала - советую всем почитать как надо определять объем выборки для прогнозирования (см. прикрепленный файл).

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

 
Alexander_K2:

Согласен.

Тема превратилась в полный хлам без конкретных примеров и теории.

Давайте исправлять ситуацию.

Для начала - советую всем почитать как надо определять объем выборки для прогнозирования (см. прикрепленный файл).

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


Но статья изложена в кондовой традиции а-ля советикус - прекрасная теория при практической бесполезности: код отсутствует.

 

На данный момент, есть стабильная модель. Над ней еще нужно поработать, но занят другими задачами.

Вход = цены + 13, 26 ема;

Препроцессинг, на выходе = сигмоида(макс, мин, закрытие), дельта(открытие-закрытие), производная(макс, мин, закрытие), логарифм производной(макс, мин, закрытие), детренд(закр-ема13, закр-ема26), ема(13, 26), производные ема(13, 26); Преобразование датасета в датасет таймсерий (1 свеча + 5последних). Итого 16 х 6 = 96 параметров.

Архитектура:
BatchNormalization(96);
GRU(96, L2, Dropout=0.5, 'elu');
GRU(64, L2, Dropout=0.5, 'elu');
BatchNormalization(64, Dropout=0.3);
Dense(32, Dropout=0.3, 'elu');
Dense(16, 'elu');
Dense(8, 'elu');
Dense(3, 'softmax');
Optimizer=Nadam;
Loss=Categorical crossentropy;

Выход сигналы BouncedMA на свечу вперед (выше в ветке);

Оценки: loss ~0.7-0.8; accuracy ~0.55;
Но! Такие оценки модели не говорят о качестве ее сигналов. Они ниже, за счет того что сигналы обучающие = 1.0, 0.95, 0.0, -0.95, -1.0, А прогноз классов на бай/селл колеблется ~abs(0.45, 0.7).
Также, из дата сета в 5000 строк, обучение проходит на 0.8 части, то есть модель не видит даже последние данные по котировкам (~1000 строк). Прогноз ведется на последних 100 свечках.

проноз

модель

lossacc

Как видите, обучение можно останавливать на ~45 эпохе.

predict

Код, Индикатор.

 
Vizard_:

)))

Обучение с подкреплением = обучение без учителя. Очень жадный алгоритм.

Укуренный Максимка приходит в казино. Перед ним куча автоматов "однорукий бандит". Он начинает с каждым играть и записывает результат.

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

http://www.machinelearning.ru/wiki/index.php?title=Reinforcement_learning


да, бандитов я уже проехал :) можно же сделать эпсилон жадный и периодически бегать от одного к другому

 
 

Очень хорошая заметка. Спасибо, никогда не думал об этом.

Получается так - 

I ) Берём нейронку, заставляем её торговать на лайве и одновременно подбираем её конфигурацию. Она своими выйгрышами сводит с ума дилинга, он начинает двигать цену против неё, но она как-то к этому готова и всё равно торгует в плюс, дилинг копирует сделки на межбанк чтоб тоже заработать, это сводит с ума уже биржевых роботов, они начинают тупить и всемирный рынок катится в тартарары. Агент взаимодействует со средой. Это торговля с подкреплением. Мне кажется в недавний понедельник какой-нибудь гугл тестировал своих новых торговых роботов с подкреплением, это прямо идеально вписывается.

II ) Берём нейронку, заставляем её торговать на истории. Находим идеальный вариант весов и конфигурации нейронки при которой она отлично торгует на истории. Подкрепление уже не получается, это обучение без учителя. И скорее всего оверфит и слив.


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

Причина обращения: