Наногруль ... :)

funny59

Гуру форума
Итак много чего за прошедшее время было опробовано ... Разные машки, цифровые фильтры, различные осцилляторы - как самописное, так и уже готовое - эти данные использовались в качестве предиректов OHLCV. Ну и сами OHLCV необработанные загонялись внутрь этих "чёрных ящиков".
Опробованы различные подходы к прогнозированию, в том числе различные нейросети: fitnet, NARX, deepnet, LSTM и пр. Различные "деревья решений", кластеризация по различным признакам и пр.
Проделано очень много работы ...
Однако есть результат на мой взгляд достаточно интересный. Он оказался на поверхности ...
Далее начну последовательно излагать сначала саму идею, а потом и реализацию.
Однако я не альтруист, поэтому всех "внутренних" секретов полностью не открою!!! И тему в том числе создал именно в таком разделе - чтобы меня потом не обвиняли в коммерциализации и не отправляли в баню.
 

funny59

Гуру форума
Собственно идея:
Анализировал разные индикаторы, которые преобразуют исходный OHLCV в поисках самого оптимального варианта этого самого преобразования. Ведь для "чёрного ящика" самое главное подать правильные сигналы. Если туда загнать исходный ряд, то ничего путнего от туда получить не представляется возможным - заявляю это со всей ответственностью, т.к. опробовал разные варианты.
Очень длительное время использовал JMA, но оказалось, что данная машка подрисовывает - глазами это не видно, а инструментальные методы показали эту особенность. В результате этого малого рисования показания нейросетей очень сильно менялись - почему это происходило? Если честно мне не ясно, но скорее всего по причине нелинейного преобразования входов. После отказался от JMA. Нашёл замену ей - стал использовать HMA (машка Халла), как самую подходящую. Но не просто так взял и начал её использовать! Перед окончательным выбором этой машки мною была написана определённая фитнес функция сравнения машки JMA и симбиоза других машек с разными параметрами, в том числе ВСЕХ самописных индюков (машек, цифровых фильтров, осцилляторов), где применялось сглаживание Юрика. Эта фитнес функция была использована в качестве целевой в генетическом алгоритме, которым были подобраны самые оптимальные параметры у HMA, чтобы не только визуально были совпадения с JMA, но инструментальные методы не показывали сильных различий в важных местах.
Итак опробовал очень много вариантов и остановился на одном достаточно интересном и простом - самый простой HMA, применённый к PRICE_WEIGHTED. На графике это выглядит вот так:
1613555674000.png
Здесь и далее буду показывать всё на XAUUSD15. Поверьте "на слово" - на других инструментах всё тоже самое.
Период HMA на графике равен 9. Почему такой? Без причины - мне так хочется. Вообще данный период должен определяться исходя из графиков конкретного инструмента на задаваемой глубине графика.
 

funny59

Гуру форума
Если данную машку сдвинуть назад на 2 бара, то получиться вот такая картина:
1613555956968.png
А если на три:
1613555991462.png
Движения машки практически совпадает с движением цены. Далее буду рассматривать только машку со сдвигом 2. Для другого сдвига сама идея аналогична.
Но что мы увидим в месте где надо принимать решение куда открываться? Вот что:
1613556164540.png
Значения машки ещё нет!!! Так вот идея состоит в том, чтобы на первых тиках нулевого бара спрогнозировать значение этой машки - какое оно будет.
 
Последнее редактирование:

funny59

Гуру форума
Эксперименты с самыми навороченными нейросетями к ничему хорошему не привёл. Оказалось, что самая простая нейросеть на таких данных даёт самые точные результаты. Нейросеть называется Function fitting neural network (вот здесь кто хочет может более подробно почитать -https://www.mathworks.com/help/deeplearning/ref/fitnet.html).
Однако там в собратьях этой нейросети есть чутка усложнённая сеть, которую я взял на вооружение и использовал - называется она Cascade-forward neural network (описание тут -https://www.mathworks.com/help/deeplearning/ref/cascadeforwardnet.html). Особой разницы на глаз не заметил, но что-то внутри мне подсказывает, что вторая более лучше отрабатывает на резкие изменения входных данных.
Теперь берём значения этой самой машки, также OHLCV, особым образом преобразовываем и подаём на вход трёх разных нейросетей (можно хоть 20-ть сделать, тут вожна именно идея). Эти три нейросети осущесляют прогноз по трём разным лагам: сейчас у меня это 9, 12, 15 баров. Т.е. для предсказания нулевого бара берутся соответственно 9, 12, 15 последних баров OHLCV и значений машки.
Выглядит нейросеть вот так:
1613556964190.png
Формируются обучающие выборки для каждой нейросети - тут просто выбрал историю в 20000 баров. И обучаются нейросети.
 

funny59

Гуру форума
Процесс обучения для 20000 баров истории на GPU GTX1050 занимает около 6-ти минут. После обучения три сети - это три файлика.
Теперь алгоритм работы индикатора:
1) При инициализации индикатора создаётся файл с историческими данными:
1613557393710.png
В папке TR. Эти данные используются для обучения или переобучения нейросетей.
2) На первых тиках нулевого бара в папке IN также создаётся файлик, с последними данными:
1613557435348.png
Эти данные для прогнозирования.
3) Индикатор по таймеру каждые 50 миллисекунд проверяет папку OUT. И если там есть нужный файлик читает его и данные отображает на графике. После прочтения файлик из папки OUT удаляется.
 

funny59

Гуру форума
Продолжим ...
Теперь про механизм работы так сказать серверной части ... Сейчас покажу на скринах как это работает у меня, но для опробования будет создана "прокладка", которая будет делать тоже самое, но она будет "закрыта".
Серверная часть состоит из двух файликов:
1613558735755.png
Собственно один обучает, второй прогнозирует.
1) Тренировка сети
1613558798378.png
Вот тут в namePAIR прописывается инструмент, а в nameFILE - наименование файла. Т.к. HMA у нас имеет период 9, а сдвиг 2, то тут такие значения.
Этот файл запускается в Matlab и через 6-7 минут в папке NN появляется файлик (обманул выше, не три, а один, но там внутри три разные нейросети).

1613559328104.png
2) Предсказание
Теперь запускается в Matlab файл PREDICT. В нём цикл, который каждые 25 миллисекунд проверяет папку IN и если там есть файл с названием совпадающим с наименование файла где сама сеть, то вычисляется прогноз и создаётся файл в папке OUT.
Прогноз делается для всех трех нейросетей, потом их значения усредняется в одно.
В результате всех манипуляций на графике получается вот такая картинка:
1613559657015.png
Где точка на графике - это направление следующего бара машки - обратите внимание на то, что эти точки появляются на первых тиках нулевого бара.
 
Последнее редактирование:

funny59

Гуру форума
Да есть участки, так сказать флэтовые, где будут показания предсказателя меняться через бар - такие участки можно обходить. Также есть участки с сильными изменениями направлений, но они бывают не часто. Собственно пока изложил теорию. Вечером скину "прокладку" для использования. Однако "тренировочную" часть не выдам. Поэтому вместе с прокладкой будут выданы уже обученные нейросети для следующих инструментов: XAUUSD, EURUSD, GBPUSD, USDJPY, для таймфреймов M5, M15, H1, для периодов и сдвигов машки: 7-2,8-2,9-2,12-2,7-3,8-3,9-3,12-3.
На этой ноте пока всё.
С уважением, RomFil
 

joinme

Местный житель
Да есть участки, так сказать флэтовые, где будут показания предсказателя меняться через бар - такие участки можно обходить. Также есть участки с сильными изменениями направлений, но они бывают не часто. Собственно пока изложил теорию. Вечером скину "прокладку" для использования. Однако "тренировочную" часть не выдам. Поэтому вместе с прокладкой будут выданы уже обученные нейросети для следующих инструментов: XAUUSD, EURUSD, GBPUSD, USDJPY, для таймфреймов M5, M15, H1, для периодов и сдвигов машки: 7-2,8-2,9-2,12-2,7-3,8-3,9-3,12-3.
На этой ноте пока всё.
С уважением, RomFil
В итоге получается ситуация, что "нужен еще фильтр на флет" и все бабки мои. Такого же результата можно добиться используя функцию предсказания значений числового ряда в Excel. Или МАКДаком. :cool:)) Имхо.
 

joinme

Местный житель
Есть такая книга: 1971—2025: курсы валют, мировые цены на сырье, курсы акций / под ред. проф. Я. М. Миркина. — М. : Магистр, 2015. — 592 с.
В ней рассматриваются все доступные человекам методы предсказания поведения цены. И про нейронки там есть. И вывод такой - фигушки.
 

funny59

Гуру форума
В итоге получается ситуация, что "нужен еще фильтр на флет" и все бабки мои. Такого же результата можно добиться используя функцию предсказания значений числового ряда в Excel. Или МАКДаком. :cool:)) Имхо.
Фильтр у меня уже придуман ... :) Идея почерпнута из индюка SSL - как только появляются три точки: бай-селл-бай или наоборот, то считаем настал флэт. В этом месте начинаем строить НМА для High и Low. Если очередное Close закроется выше/ниже этих НМА, то это выход из флета ... :)
Про Excel, либо другое какое-нибудь ПО - конечно много где можно это сделать. Тут я изложил идею, ну и позже выдам этот инструмент для опробования.
 

funny59

Гуру форума
Есть такая книга: 1971—2025: курсы валют, мировые цены на сырье, курсы акций / под ред. проф. Я. М. Миркина. — М. : Магистр, 2015. — 592 с.
В ней рассматриваются все доступные человекам методы предсказания поведения цены. И про нейронки там есть. И вывод такой - фигушки.
Ну и пусть ... :)
1613561942736.png
Так что в умелых руках практически любой инструмент может принести профит! :)
 

joinme

Местный житель
Я давно пришел к выводу, что любую методу лучше пробовать на М1 и ниже. На ней за неделю может пройти полный набор всех вариантов рынка - от флета до безоткатного тренда. И люди потому М1 и не любят - только найдешь грааль, а он через день уже не работает, а на дневках и полгода продержится. Это я к вопросу про М15. Мысли вслух.
 

funny59

Гуру форума
Я давно пришел к выводу, что любую методу лучше пробовать на М1 и ниже. На ней за неделю может пройти полный набор всех вариантов рынка - от флета до безоткатного тренда. И люди потому М1 и не любят - только найдешь грааль, а он через день уже не работает, а на дневках и полгода продержится. Это я к вопросу про М15. Мысли вслух.
Предлагаемая "шляпа" и на М1 работает ... Только там всё спред с комиссиями съедает ... :) Хотя если период по больше сделать ...
Ещё можно на ЬЕА применять подобный подход:
1613562505389.png
Здесь ступеньки тот же НМА, только с тайма Н1. Кто мешает аналогичный подход использовать для предикта ступеньки?
 

megapont

VIP-участник
Привет, подскажи что за индюк эти уровни строит?
Это канал mtf. На графике серебра на М30 стоит канал 240 (н4)
я сижу на .ex4. Хотя где то валяется и mq4.
Строится он автоматически. Проверять можно каждые 4 часа. Хотя там есть алерты.
 

Вложения

  • SHI_Channel_MTF.ex4
    13,2 КБ · Просмотры: 25
Верх