Перейти к содержанию

[Windows App] Price Prediction


Рекомендуемые сообщения

[Windows App] Price Prediction Опубликовано (изменено)

PricePredictionDashboard.png

Название: Price Prediction
Год выпуска: 2019г
Версия: 1.0.1
Валютные пары: Любые
Таймфрейм: Любой.
Время торговли: Согласно стратегии советника на который вы это натяните
История создания: Я проводил голосование на вопрос что мне покодить и выиграл вариант создания нейросети для решения задач машинного обучения применимых к рынку Форекс.

Описание: Программа основанная на новейшей библиотеке машинного обучения ML.NET под платформу .NET. Основная задача программы выдать прогноз точек HLC ближайшей свечи. Программа принимает обучающие данные в файле вида {название пары}-data.csv , делит этот файл по нажатию на клавишу "Split" на тестовую и тренировочную выборку пропорционально указанному коэффициенту "Coef". Производит нормализацию данных, самообучение на основе этих данных и записывает наиболее удачную модель для дальнейшего использования. По нажатию клавиши "Start server" программа начинает слушать порт указанный в настройках, поступившие данные используются сохраненной моделью для прогнозирования точек HLC которые отправляются в качестве ответа на запрос.

Техническая документация: Пока не готова, но вы можете спросить в этой теме о технических особенностях, а именно; Структура входного файла данных, Структура запроса на сервер, Структура выходного ответа сервера.

Мой интерес: Программа на данный момент распространяется бесплатно, но как верно было подмечено одним из старожил форума, спасибо мне за это никто не скажет (за исключением МиссВселенная). По этой причине я намеренно не выкладываю клиент для данной программы, в расчете на то, что пользователи форума сделают для меня клиент данной программы на коде терминала мета трейдер 4 - 5, а так же найдут наиболее достоверные наборы данных для анализа на программе для различных валютных пар.

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

Где скачать: Программа свободно распространяется с моего ресурса https://csoftware.ml/shop/machine-learning-software/ Для получения доступа к программе необходима регистрация на ресурсе, так как генерируется ключ активации копии программы, просто скачать ее не достаточно.

Изменено пользователем karuzzo
  • Лайк 18
Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
[Windows App] Price Prediction Опубликовано (изменено)

После смены модели на бинарную классифакацию (не путать с дефекацией) прогнозирования точек стопа и тейка согласно логике конкретного советника, т.е. более жесткая привязка прогнозирования к логике советника. Количество успешных предсказаний обученной модели колеблется в районе 63%-65% что в принципе уже можно использовать как фильтр сделок в автотрейдинге. Замечу что это все еще без глубокого машинного обучения на сложных сетях, а лишь все та же сеть прямого распространения.


Добавлено: 04-05-2019 19:50:54

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

https://yadi.sk/d/siwMYeGw98lYPg папку Reliase куда угодно кидайте, а папку DataSource в корень диска C, или же не забудьте поменять путь до этой папки в настройках

теперь буду писать коннектор Изменено пользователем karuzzo
  • Лайк 9
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано (изменено)

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



Кто похвалит внешний вид тот мой друг, я старался :)

Изменено пользователем karuzzo
  • Лайк 19
  • Огонь! 1
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано

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

Модель: Бинарная классификация на основе усредненного персептрона с не калиброванной эволюцией с жесткой привязкой к логике советника.

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

Формирование набора данных: Для работы программа использует только тип float От ±1,5 x 10−45 до ±3,4 x 1038 точность 6 знаков например 5.000001 или -79.000001, при этом данные подразумевающие булевые значения должны писаться 0 или 1 без указания точности. Файлы с тренировочными данными должны называться с указанием валютной пары дефиз train или test в зависимости от тренировочного или сверочного набора данных и иметь разрешение .csv пример: EURUSD-train.csv; EURUSD-test.csv.
Программа приминает 11 наборов данных ("signalup", "signaldown", "val_1", "val_2", "val_3", "val_4", "val_5", "val_6", "val_7", "val_8", "IsTrue") где "signalup" - булевое значение сигнал советника на покупку 0 или 1, "signaldown" - булевое значение сигнал советника на продажу 0 или 1. Одновременно "signalup", "signaldown" не могут равняться 0 или 1, вам следует включать в тренировочные и тестовые данные только значения ваших данных только в момент срабатывания внутренней логики советника. "val_1", "val_2", "val_3", "val_4", "val_5", "val_6", "val_7", "val_8" это наборы данных не зарезервированные системой и эти данные являются ключевой выборкой для принятия решения прогнозирования исхода сделки. В эти значения пишутся любые данные например значения открытия закрытия хая и лоу предыдущей свечи, или же их изменения (дельта от цены открытия свечи), любые значения индикаторов или их изменения, все на что хватит вашей фантазии. "IsTrue" - используется только в тестовом и сверочном наборах данных, и принимает значения только 0 или 1, в случае реальной работы через сокет это значение напротив возвращается в качестве значения прогнозирования обученной моделью. Формируя csv файл используйте разделитель точка с запятой ";". Первая строка csv файла должна содержать заголовок названия колонок и строго соответствовать виду (signalup;signaldown;val_1;val_2;val_3;val_4;val_5;val_6;val_7;val_8;IsTrue)
Пример файлов csv:

signalup;signaldown;val_1;val_2;val_3;val_4;val_5;val_6;val_7;val_8;IsTrue
1;0;0.0003;1;-0.00017;0.00014;-0.5;1
0;1;0.0003;1;-0.00027;0.00008;-0.1;0
1;0;0.0001;1;-3E-05;0.00050;-0.2;0

Для получения обратно в советник значения прогнозирования на порт нужно отправить только набор данных без значения IsTrue это значение программа возвратит в качестве ответа на запрос в виде 1 или 0.
Пример строки запроса:

1;0;0.0003;1;-0.00017;0.00014;-0.5

Пример ответа сервера:
1


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

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

Ссылка на скачивание: https://yadi.sk/d/RdoTMC_ch1x7Eg
  • Лайк 7
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано

Переписал в мультиклассификатор результат очень слабый, отклонение от случайного распределения настолько мало что не уверен что спред отобъет. Это фиаско даже выкладывать нет смысла. Ну чтож остается только RNN писать, но когда до нее руки дойдут пока не знаю. Без поддержки думаю дело с места не сдвинется, наверно донатер на свой сайт присобачу да на паре форумов иностранных ссылку дам.

  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано (изменено)

Сейчас я имею такие результаты прогнозирования нескольких будущих свечей на рандомных данных не участвующих в обучении:
Прогнозирование тренда: 90%
Точность прогнозирования точек High, Low, Close: 60% - 75% от размера свечи
Пример прогнозирования точек закрытия следующей свечи в пипсах пара EURUSD m15



Пример на графике h12



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

Изменено пользователем karuzzo
  • Лайк 5
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано

Есть первые положительные тестовые результаты в тестере ручных стратегий с использованием нейронки. На днях выложу релизную версию 1.1, только ошибки всякие и исключения позакрываю. Вот есть видос работы в тестере оно достаточно нудное можете сразу на последние 10 секунд промотать.
https://youtu.be/Uqa28HdU8FI

  • Лайк 7
Ссылка на сообщение
Поделиться на другие сайты


Есть первые положительные тестовые результаты в тестере ручных стратегий с использованием нейронки. На днях выложу релизную версию 1.1, только ошибки всякие и исключения позакрываю. Вот есть видос работы в тестере оно достаточно нудное можете сразу на последние 10 секунд промотать.
https://youtu.be/Uqa28HdU8FI

Здорово что видео снял. Сразу стало понятнее ЧТО пишешь и КАК можно применять в торговле данный продукт. Всегда говорил, что самый доступный способ изложения информации - графический :d

Итак, КАК же нам его теперь применить, давай поразмышляем.
1.В сетках его применение возможно исключительно как фильтр начала разворота. Например разрешаем советнику "Сетка" открывать очередной ордер только тогда, когда Neural Lover показал первую обратную свечу (или три обратных свечи). В сетках на данный момент считаю что Neural Lover покажет себя не на максимальную свою мощь ... Ибо в сетках немного другие правила управления ордерами.
2.В трендовых вариациях торговли одним ордером ты уже в видео показал КАК будет вести себя Neural Lover. Выгода есть .... Все упирается в "субъективные" правила входа. Весь вопрос КОГДА входить по тренду? На откате? На пробое хая? .... то есть ВСЕ эти варианты субъективны, тут нужен опыт и опытному трейдеру безусловно дополнительный фильтр в виде прогнозирования движения свеч также будет весьма полезен.
3.В скальперских вариантах торговли бот должен показать себя с максимальной выгодой. Что я имею ввиду? Скальперский вариант, когда важна точность входа, как правило в момент окончания отката, замирания цены, начала топтушек возле какого то уровня и .... вход со стопом за предыдущий лоу/хай. В данном варианте запретить вход пока Neural Lover не покажет одну или три свечи начала разворота. Лично я вижу потенциал в использовании РЕНКО графиков для торговли И обычных графиков для анализа цен Neural Lover ... Такой тандем даст максимальный эффект.

Теперь по сути, по практике применения. Лично я вижу необходимость написания индикатора под МТ4, индикатор будет брать данные прогнозирования свечей, рисовать их на графике. Ценовые данные HOLC по трем прогнозируемым свечам необходимо будет прописывать в GlobalVariables, чтобы любой советник оттуда черпал на каждом тике информацию по прогнозируемым свечам. Подчеркиваю, такой вариант позволит ЛЮБОМУ советнику черпать данные ...
Ну и в самом советнике уж кодом прописать чтобы помимо входа по индикатором был еще дополнительный фильтр по направлению и размеру будущих трех свечей. Если условия все совпадают - происходит вход. Выход также можно завязать на такой фильтр по обратному сигналу фильтра Neural Lover
  • Лайк 6
  • Огонь! 1
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано

Я с ним еще поработаю, думаю он будет точнее давать точки HLOC в идеале просто хочу научит его самому по свечам торговать. Коннектор нужен да, но мне лень за MQL садиться, там паче что проект пока не коммерческий выхлопа с него нет, а ссылки на донаты павел не разрешает.

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано

можно ТЗ мало-мальское?


Нужны 2 функции.
Первая. Советник собирает значения каких либо индикаторов с 5 - 10 предыдущих баров а так же значения HLOC этих баров и записывает их в файл csv с хэдером - названия данных через запятую. Тиковые данные тут не нужны.
Вторая функция. Советник формирует те же самые данные на каждом баре так же в строку но уже без хэдера и эту строку отправляет на сокет (ip-порт) принимает ответ в виде 9ти точек в виде той же строки через запятую и строит по этим точкам свечи.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

количество индикаторов определенное? И какие?
Собирать на каждом баре 5-10 исторических нет смысла. Пишем на каждой свече показания индюков и свечи, а уже внешний потребитель считывает историю 5-10-20 баров(строк)

принимает ответ в виде 9ти точек в виде той же строки через запятую и строит по этим точкам свечи

Что точки в себе несут? Для свечи вроде как 4 значения достаточно..
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано (изменено)

Что точки в себе несут? Для свечи вроде как 4 значения достаточно..


Это точки HOLC первая точка Open всегда известна она приблизительна равна точке закрытия предыдущей свечи. Рассчитываются только точки HLC но для сети их писать нужно в файл, хоть она их и не рассчитывает но опирается на их значения для расчета других точек.

Добавлено: 15-05-2019 14:24:28

Мне по большему счету нужен только пример подобного кода, дальше я сам разберусь. Самому искать лень может кто ссылку даст? Изменено пользователем karuzzo
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано

Сегодня ночью выложу прогу для скачивания вместе с совой для ситрейдера. Совой для МТ4 занимаются usver73 и ReVer27, и он тоже почти готов, когда именно они его выложат я пока не знаю. Пока ждете вот вам еще 1 заманчивое видео. https://youtu.be/RH79qDavHkY

  • Лайк 6
Ссылка на сообщение
Поделиться на другие сайты

Судя по видео,советник предсказывает следующую свечу с вероятностью около 50%.Так можно и по монетке торговать.

Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано

Действительно предсказания далеки от 100% , но я работаю над этим. Есть стабильно предсказуемая пара фунт к доллару, вот видос на тестере https://youtu.be/5YVEkwh6FhE на этих же данных не плохо работает индекс US500 для прочих пар нужны иные наборы подаваемых данных, подаваемые данные от проги не зависят они зависят от советника на терминале.

  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

karuzzo если хочешь добится вершин делай конектор на ммвб сми и биткойн биржи желаю удачи там ты станешь востребованным.Идея не плоха некие особи в панике |3=3

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано (изменено)

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

Изменено пользователем karuzzo
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано

Здесь я описал существующие проблемы и план по их решению.
https://csoftware.ml/shop/machine-learning/crowd-funding-ml-research/

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

  • 4 weeks later...
[Windows App] Price Prediction Опубликовано (изменено)

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

 

Теперь к результатам:

Спойлер

ANNOTATIY-2019-06-26-001726.png

 

ANNOTATIY-2019-06-26-010855.png

 

Точность: 91%

Перевес относительно рандомного входа: 81%

Сколько из отмеченных узлов зигзага как не крайних, являются таковыми: 90%

Сколько не крайних узлов зигзага отмечено таковыми: 97%

Сколько из отмеченных узлов зигзага как крайних, являются таковыми: 92%

Сколько крайних узлов зигзага отмечено таковыми: 72%

 

Это скрин работы на тестовой выборке в 2 года, а тренировочная выборка 5 лет, наиболее прогнозируемой пары GBPUSD, на крипте пока дела обстоят немногим хуже по 10% на каждую характеристику. Наибольший интерес представляют две последние характеристики, первая из них указывает на то, что прога верно говорит о том что крайняя точка зигзага больше не уйдет вниз или вверх на последующих свечах, если эта точка была определена прогой как крайняя, до смены узла зигзага на противоположный в 92% случаях. Эту характеристику можно считать как точность входа/выхода. Вторая характеристика говорит о том сколько крайних точек распознано именно как крайние точки. Эту характеристику можно рассматривать как чувствительность к определению крайних точек или общую точность.

Изменено пользователем karuzzo
Добавил фото
  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано (изменено)

Вроде доделал завтра выложу как приведу к распространяемому виду.

Вот видос из ручного тестера:

 

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

https://csoftware.ml/shop/ctrader-en/cbots-en/bin-class/

Изменено пользователем karuzzo
  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано

Вот она! Секретная присекретная ссылка, админам чур не слова)) https://csoftware.ml/shop/ctrader-en/cbots-en/bin-class/

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

В 26.06.2019 в 00:04, karuzzo сказал:

Это скрин работы на тестовой выборке в 2 года, а тренировочная выборка 5 лет

Подскажите конкретные даты тестовой и тренировочной выборок.

Ссылка на сообщение
Поделиться на другие сайты

[Windows App] Price Prediction Опубликовано

точных дат нет, прога сама делит исходный файл согластно коэффициенту в настройках на тренировочную и тестовую выборку я вроде 1 к 3 ставил

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...