Курс RTrader: нейронные сети и анализ настроений трейдеров📌

От Silentspec, 27 августа, 2018 в Уголок Программиста

Страница 4 из 4
#76
В 09.10.2020 в 14:39, МихМих сказал:

Зачем брать трехдневный диапазон H4 для прогноза? На какой период времени действителен прогноз? Сколько примеров видит нейросеть?

1. Почему 3 дня в виде H4? 

Раньше тестировалось много вариантов:

1. от 20 до 10 дневных свечей.

2. 40 свечей H4 

и еще много вариантов. 

 

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

Ну то есть получалось что 10 дней диапазон, что 40 - везде погрешность примерно 10%. Ну а  в пунктах 10 дней больше, чем 3 дня - это очевидно.  Но с другой стороны 3 дневных - это совсем мало данных для сети.

Поэтому пока тестирую этот вариант  диапазон 3 дня , представленный в виде H4. 

Это не означает, что это лучше или хуже - просто надо было тут с чего -то начать.

 

2. Прогноз на 1 день.

 

3. Последний вариант обучения - 8582 записи, из них непосредственно на "обучение" отводится 78% (6700 примерно) и по 11%  на кросс-валидность и тест обучения.  

 

 

 

В 09.10.2020 в 16:54, usver73 сказал:

Да, если результат прогноза НС некая цена, то два вопроса: цена чего?(подозреваю, что Close). Второй- откуда рисуются High-Low?
Если цена осталась в диапазоне "сигнальных" свеч, то ошибка считается традиционными способами (МихМих о них скриншотил)
И как рассчитывать ошибку при выходе из диапазона? (Этот вопрос Вы сами задали...

Берутся цены во входные данные только High Low.

Сеть "отдает" прогноз по High и Low отдельно. 

 

Как рассчитать ошибку при выходе из диапазона? 

Пока в данном варианте проекта никак. 

 

Почему?  Опять вернусь к входным данным - сети нужны нормализованные данные,

т.е. в диапазоне от 0 до 1. Ибо математика так работает. 

Тут возникла дилемма - как подать данные. 

Было опять же несколько вариантов. 

Например такой

Можно было "сжать" входной диапазон (т.е. свечи H4) до цифр , например от 0,4 до 0,6.

Тогда, прогноз (итоговую дневную свечу), которая выходит ЗА диапазон можно было бы записать в виде 0,9 например.  Но опять же, могут возникнуть итоговые свечи, которые и за 1 опять же должны выйти.  

Т.е. математически  - если ширина диапазона = 0,2  от 0,4 до 0,6, а итоговая свеча шире диапазона в 3 раза - а такое может быть легко, когда цена 3 дня стоит узко , а потом улетает, то в итоге её надо записать как 0,6+3*0,2 = 1,2  ну или 0,4-3*0,2= -0,2. 

Но в этом варианте пытался что-то делать и совсем каких-то вменяемых результатов получить не удалось. 

 

Поэтому ПОКА остановился на этом варианте - всё что вышло за диапазон просто 1 или 0. 

Это опять же не догма. Просто пока так.  

 

 

 

Изменено 13 октября, 2020 пользователем asbets

#77
5 часов назад, asbets сказал:

Последний вариант обучения - 8582 записи, из них непосредственно на "обучение" отводится 78% (6700 примерно) и по 11%  на кросс-валидность и тест обучения.  

Проблема оптимальной выборки данных для обучения не имеет математического решения, только эмпирический подход. Если сеть на 8000 примерах показывает одинаковый результат с сетью на 500 примерах, то первая сеть должна быть более стабильна. Уменьшение количества примеров на кросс-валидацию и тестирование, как и подгон количества примеров под лучшие результаты на тесте, могут привести к перетренированности. Разработчики TS4 по умолчанию выставляют 60/20/20 и 5 летний диапазон для данных EOD.

 

5 часов назад, asbets сказал:

Берутся цены во входные данные только High Low.

Сеть "отдает" прогноз по High и Low отдельно. 

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

#78
В 13.10.2020 в 17:15, МихМих сказал:

Разработчики TS4 по умолчанию выставляют 60/20/20 и 5 летний диапазон для данных EOD.

Они же в хелпе по Нейросолюшн пишут

" A practical way to find a point of better generalization is to set aside a small percentage (around 10%) of the training set and use it for cross validation. ........  Cross validation is one of the most powerful methods to stop the training." 

 

Ну то есть, сколько выделять - это творческий процесс в разумных пределах :-) 

Изменено 18 октября, 2020 пользователем asbets

#79
В 03.01.2019 в 11:42, Silentspec сказал:


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

Курс интерес, продолжение будет?

#80

https://gitlab.com/karuzzo/anndotnet

Готовый продукт, открытый код 

Стоит внимания?

Изменено 1 января, 2021 пользователем ademen

#81
4 часа назад, ademen сказал:

Готовый продукт, открытый код 

Он таки довел тему до какого-то результата...

Тема начиналась на этом форуме, а потом смутно помню, или неудачные попытки монетизации на грани фола (правил тлап), Толи какой-то почти конфликт с местным руководством....

Не помню деталей всех.

 

Помню что он ставил рекорды разгона на сТрейдере и ему робофорекс за такие дела отказал в обслуживании)) там были проценты прибыльности серьезные+сигналил.

Изменено 2 января, 2021 пользователем andy.lugansk

#82

Проблема носит фундаментальный характер

Существует 3 типа числовых данных: 
1) Неорганиченные в положительную и отрицательную сторону
2) Ограниченные с одной стороны: только положительные, только отрицательные
3) Ограниченный диапазон: ограниченные в сторону увеличения и в сторону уменьшения.

Последний также можно разбить на подтип:
1) от 0 до +N
2) от -N до 0
3) от -N до +N
4) от +N1 до +N2
5) от -N1 до -N2

Любой тип и любой подтип данных можно подавать на вход: разницы не будет никакой, кроме чисто технической — обучение модели «аккуратней» всего проходит, если НС имеет дело с диапазонами от -1 до +1. Менее «подвижна» НС в диапазоне от 0 до 1. 

Смысл любой стандартной НС - это выдать число, которое выражает выходной сет (класс, паттерн). 

Количество возможных сетов равняется степени, которая отражает совокупное число возможных единиц:
например, если мы подаём на вход одно число в диапазоне от 0.0 до 1.0, то у нас всего 11 единиц (11 возможных сетов входных данных). 
Стоит добавить второй вход с таким же диапазоном и у нас возможных  паттернов 11* 11 = 121. 
А теперь представьте, какое возможное число паттернов вместится в 3-х входах, каждый из которых может принимать полный диапазон вещественного числа double, у которого минимальное положительное значение: 2.2250738585072014e-308 (охренеард знаков после запятой), в степени 3. 

А что на выходе? 
Обычно — одно число, тоже вещественное. И, соответсвенное, максимально возможное значение выходных "классов" равно количеству знаков после запятой. 

Это всё максимальный теоретический результат, который возможен с огромной в количественном плане архитектурой: много нейронов, много слоёв.
На выходе чаще всего будет «размывание» «чистых» оригинальных входных данных, либо вычлинение «чистого» результата из «грязных» входных данных. 

 

 


В чём, собственно проблема?

А проблем несколько:


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

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

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

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

Это порождает явление графика цены, которое можно назвать зашифрованым языком. 
И задача сводится к расшифрованию этого языка. 

 

 

 


2) Вторая проблема в том, что адепты МО и НС в большинстве своём не понимают, с чем имеют дело: они транслируют (зубрят) учебники с умными словами и модными течениями в МО, просто потому, что эти модные архитектуры работают... где-то в другом месте(!). 
На MQL есть один персонаж - писака статей. У него есть цикл "Нейросети - это просто", и 80-ая или 90-ая статья по счёту этого цикла. 
Так вот, ни одна из его нейросетей не работает: ни MLP, ни RNN, ни LSTM, ни CNN, ни RL, ни DQN, ни энкодеры, ни генетика, ни транформеры, ни актёры-критики, ни-че-го. 
Средний его код (с ООП) - содержит 8000 строк кода и с десяток включаемых файлов. 
Ничего не работает. Ни-че-го. 

Человек не понимает, что он делает, а он — транслирует академические учебники, переводит зарубежные статьи, но что такое график цены — не понимает. 

Также и остальные специалисты в области МО: они специалисты в стационарных областях, тут это — не работает.

 

 

 


3) Третья проблема одновременно смешная, простая, но и одна из самых фундаментальных:
Суть весов — усиление или ослабление сигналов.
Если сигнал высокий и его нужно ослабить — вес при обучении уменьшается. И, если на вход попало число 0.9, то его умножение на вес 0.1 даст слабенькие 0,09.

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

Но график цены — НЕ СОДЕРЖИТ физических сигналов, следовательно, если осциллятор показывает 0.9 - это НЕ сильный сигнал, а просто - положение линии индикатора. 
Я молчу про то, что трейдеры считают это сигналами - бог с ними, они не обязаны разбираться так глубоко, но почему МО-шники считают это сигналами - это беда самих мошников.

Переводя на человеческий язык: 0.1 - это аналог метки А, а 0.9 - это аналог метки Б. А не больше Б, а просто — качественно (не количественно) - другое входное значение. 

Даже смена полярности осциллятора (когда 0.9 - считают за слабый сигнал к покупкам, а 0.1 - за сильный) - всё равно ошибочно, поскольку это не сигналы в принципе. Это просто числа, как способ отражения паттерна на графике цены. 


Просто представляете, какой туман творится в среде ИИ, МО и НС в контексте форекс-графика? 
Ошибки на фундаментальном уровне, естественно ничего не может сдвинуться с места. 

Локальные успехи — это лишь иллюзия (костыль), что НС работают. Всё зависит от графика цены: если в нём появилась простейшая повторяемость - любая НС на этом периоде будет зарабатывать. 

Это подтверждается периодическим хайпом НС в некоторые года и периодическим их упадком.

 

 



4) Четвёртая проблема (производная): люди думают, что LLM сможет анализировать, ЧатGPT же умный. 

Спросите Чат о том, чего нет в его базе и чему он не обучен: он начнёт такую дичь плести, полная невнимательность к промту, полное его игнорирование, галлюцинации, ошибки, повторяемость. 

Чат обучен на данных из свободного доступа. Свободный доступ - это 99,9999999% - ПОМОЙКА. 
Следовательно - чат будет торговать, как любая помоичная стратегия. 

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

Вопрос только в другом: сколько трейдеров захотят так торговать? 100% отнять 99,9999999%




Подытоживая:

Текущие архитектуры НС — это один из помоичных способов торговать наравне с оптимизацией параметров в тестере стратегий МТ4/МТ5. 

Всё, что делает НС - просто классифицирует входной набор данных, присваивая им метки других чисел. 

И, в завимисости от архитектуры выхода - торгуется. 

Но любой паттерн на дстанции стремится к отработке 50 на 50 как по цвету следующей свечи, так и по количеству пунктов последующих трендов. 

В результате чего НС на новых данных - тупо сливается, либо флетит. 
 

 



Истиная цель МО - это обобщение (нахождение правил). А не зубрёжка истории, подгонки, оптимизации и прочее. И тут совсем другой подход, совсем другие методы, нежели MLP.

Попробуйте НС обучить таблице умножения. Не зубрёжке таблицы, а правилу умножения, не показывая ей ответы. 

УДивитесь! — Но вы не сможете. Она будет показывать числа от 1 до 81, но умножить 11 на 11 - не сможет. 
С любой архитектурой MLP: хоть по 100000 нейронов и по 10 слоёв.Она всё время будет выдавать числа от 1 до 81. 

Это говорит о том, что текущие архитектуры - не подходят под форекс. ФОрекс - это анализ, а мыслить ИИ ещё не умеет, он умеет только зубрить. 
 

Изменено 1 декабря, 2024 пользователем Capital Plus

Страница 4 из 4

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

Перейти к списку тем
Форум · 2.0.20260627.0025