Использование искусственного интеллекта в МТС - страница 18

 
rip:
njel:
уважаемые а что на вход давать? Свечу?
Респект автору ...
Просьба сформулируйте на форуме обучающее правило сети.

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

Я порылся далее в коде и выяснил, что баров на моих графиках будет маловато. Подкачал еще до 16000. Прогнал и получил в результате 6 сделок за весь период с не очень большим, но убытком по конечному результату - 9% от депо. Мало сделок - маленький слив.

Короче говоря, понятно, что вообще ничего непонятно, а как же все таки использовать этот советник? Должны же быть какие нибудь рекомендации? Может быть я что не так делаю?

Продолжать копаться в коде и пытаться самостоятельно разбраться смысла нет. Делать заявления о том, что советник сливной или прибыльный по 6-ти сделкам также бестолку. Только пустая трата времени.
 

Видимо немного надо пояснить

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

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

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

Фактически эксперта можно считать библиотекой для работы с нейросетями, дайте себе труд разобраться и берите пользуйтесь.

Если после предыдущего моего сообщения у кого-то возникла мысль, что этим советником можно играть, либо невнимательно читали либо я недостаточно ясно выразился.
Перефразируя Figar0 "Совсем неприбыльно, но познавательно".

Теперь немного личных ответов.

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

Если имеется в виду торговля то пользоваться им наверное не стоит. По крайней мере я бы не стал. Ценность его только как кода.
Собственно отчасти я согласен, с тем что зная алгоритм можно написать свое с нуля. Не уверен насчет проще.
А алгоритмы то пожалуйста. В инете легко ищутся книги по нейросетям, принципам обучению и прочему. Пока я писал этого эксперта моя подборка легко достигла двух десятков книг и статей.


Mathemat
Не думаю, что этот код имеет хоть что-нибудь общее с экспертом от Reshetov...

Общее в том, что и там и там нейросети с индикаторами на входе :) Разница в том, что у меня не один нейрон а много, соответственно написан свой алгоритм обучения.


rip Просьба сформулируйте на форуме обучающее правило сети.

Если это мне, то раскройте вопрос поподробнее. Не очень понимаю, что вас интересует.





 
maveric писал (а):


rip Просьба сформулируйте на форуме обучающее правило сети.

Если это мне, то раскройте вопрос поподробнее. Не очень понимаю, что вас интересует.


Вы хорошо разобрались в нейронных сетях, почемы бы вам не написать статью по этой теме, особенно уделить внимание алгоритмам обучения многослойных сетей. Это будет многим интересно. Статьи здесь оплачивают, ваш труд не пропадет даром.
 
Integer писал (а):
maveric писал (а):


rip Просьба сформулируйте на форуме обучающее правило сети.

Если это мне, то раскройте вопрос поподробнее. Не очень понимаю, что вас интересует.


Вы хорошо разобрались в нейронных сетях, почемы бы вам не написать статью по этой теме, особенно уделить внимание алгоритмам обучения многослойных сетей. Это будет многим интересно. Статьи здесь оплачивают, ваш труд не пропадет даром.
Мне это не кажется хорошей идеей :)
Я разбирался в нейронных сетях по книгам и статьям серьезных дядек, не секретным а легко находящимся в инете.
У меня есть опасения, что получится как в анекдоте, когда Мойша напел Абраму Битлз :)
 

rip Просьба сформулируйте на форуме обучающее правило сети.

Если это мне, то раскройте вопрос поподробнее. Не очень понимаю, что вас интересует.

Вы ответили на мой вопрос ;) В данном случае, вы разработали сеть которая аппроксимирует временной ряд на n-шагов вперед. За входные данные вы берете значения Close и/или значения индикаторов. Ок, тогда еще вопрос. Относительно классификации - вы сказали что надо попробовать классифицировать индикаторы, можно более детально эту идею? Да, есть еще замечание, практика показала что лучше всего проходят обучение сети (обучение с учителем) обучающая выборка которых имеет нормально распределение. Я несколько раз, достаточно давно проводил исследование временного ряда который формируется котировками ... его распределение не имеет ничего общего с нормальным. Может имеет проанализировать построение обучающей выборки и свести ее к выборке с нормальным распределением, в этом случае MSE будет значительно быстрее убывать? Глядишь и на тестовой выборке будет результат получше.
 
maveric:


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


Может открыть новую ветку, где можно будет обсудить формирование и пред/пост обработку выборок? Я думаю она будет интересна целому ряду посетителей.
 
rip:

rip Просьба сформулируйте на форуме обучающее правило сети.

Если это мне, то раскройте вопрос поподробнее. Не очень понимаю, что вас интересует.

Вы ответили на мой вопрос ;) В данном случае, вы разработали сеть которая аппроксимирует временной ряд на n-шагов вперед. За входные данные вы берете значения Close и/или значения индикаторов. Ок, тогда еще вопрос. Относительно классификации - вы сказали что надо попробовать классифицировать индикаторы, можно более детально эту идею? Да, есть еще замечание, практика показала что лучше всего проходят обучение сети (обучение с учителем) обучающая выборка которых имеет нормально распределение. Я несколько раз, достаточно давно проводил исследование временного ряда который формируется котировками ... его распределение не имеет ничего общего с нормальным. Может имеет проанализировать построение обучающей выборки и свести ее к выборке с нормальным распределением, в этом случае MSE будет значительно быстрее убывать? Глядишь и на тестовой выборке будет результат получше.

Не только нормальное. Как минимум еще и непротиворечивыми должны быть наборы примеров.
В общем примерно так.
Находим начало первого тренда ( up down флэт) Какое-то количество баров перед этим началом будет входом сетки, весь тренд последующий свернуть в вид 1 0 0 200 6 первые три числа идентификаторы трендов последние два общее изменение цены и длинна (в барах) тренда. Следующий пример формируется не раньше окончания этого тренда.
Можно не браться предсказывать длинну тренда а только абсолютное изменение цены за него.
Это позволит сделать наборы примеров (более) непротиворечивыми.
Получим мы в результате N1 N2 N3 примеров для трех типов тренда.
например
UP ( 1 0 0) - 100
флэт( 0 1 0) - 200
down( 0 0 1) - 250

Как сделать нормальное распределение.
1. если минимальное количество примеров (100) нас устраивает то можно тупо обрезать остальные
2. Те примеры которых меньше предъявлять почаще что бы сровнять
3. Добавить в примеры те примеры которых мало слегка зашумив их
4. примеров на down больше чем на up можно вторые добить примерами из обратной котировки не EURUSD а USDEUR

Немного разберу теперь эти варианты в порядке убывания крутости :)
4. Идеал Никих левых циферок Все плоть от плоти рынка. Но муторно это писать, придется много пересчитывать самому + индюки считать тоже самому.
3. Чуть хуже потому как мы все таки сетке даем хоть немного, но левизну в виде того шума, что мы добавляем.
2. Еще чуть хуже Потому как если сетке много раз показывать одно и тоже она тупо это запомнит Не будет (будет хуже) обобщять.
1. Отбрасываем кучу примеров их может остаться недостаточно для качественного обучения Хотя если для обучения взять немеренно длинную историю( чтобы гарантировать что после отбрасывания останется достаточно примером) - то этот способ мощно заруливает все остальные три По всем параметрам :)


Ну вот где-то так. Кстати в моем эксперте реализованно некое смешение п 1 и 2.
 
maveric:

Не только нормальное. Как минимум еще и непротиворечивыми должны быть наборы примеров.
В общем примерно так.
Находим начало первого тренда ( up down флэт) Какое-то количество баров перед этим началом будет входом сетки, весь тренд последующий свернуть в вид 1 0 0 200 6 первые три числа идентификаторы трендов последние два общее изменение цены и длинна (в барах) тренда. Следующий пример формируется не раньше окончания этого тренда.
Можно не браться предсказывать длинну тренда а только абсолютное изменение цены за него.
Это позволит сделать наборы примеров (более) непротиворечивыми.
Получим мы в результате N1 N2 N3 примеров для трех типов тренда.
например
UP ( 1 0 0) - 100
флэт( 0 1 0) - 200
down( 0 0 1) - 250
Нормальное распределение - это распределение вероятности случайной величины. Набор данных не может быть противоречивым или не противоречивым - это значение ф-ции описывающей физический процесс и он просто есть. Противоречивым может быть только наша интерпретация его значений.

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

Давайте так, немного определимся с терминами:
1. Аппроксимация ряда - это построение построения многомерного отображения F: x->y, обобщающего заданный набор примеров {xt, yt}. На базе этого отображения реализуется заглядывание в будущее на Н шагов на основе определенной скрытой зависимости в членах ряда . Т.е. можно обобщить - что мы пытаемся оперировать как значением самих членов ряда, так и неким набором значений описывающих ряд - это локальный экстремы и т.д. (определяем коридор цен на какой-то промежуток, скажем)
2. Классификация - т.е. формируется образ рынка - скажем восходящий тред. Надо этот образ распознать.

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

Буду благодарен - если вы докажете обратное.

--
rip
 
rip:
maveric:

Не только нормальное. Как минимум еще и непротиворечивыми должны быть наборы примеров.
В общем примерно так.
Находим начало первого тренда ( up down флэт) Какое-то количество баров перед этим началом будет входом сетки, весь тренд последующий свернуть в вид 1 0 0 200 6 первые три числа идентификаторы трендов последние два общее изменение цены и длинна (в барах) тренда. Следующий пример формируется не раньше окончания этого тренда.
Можно не браться предсказывать длинну тренда а только абсолютное изменение цены за него.
Это позволит сделать наборы примеров (более) непротиворечивыми.
Получим мы в результате N1 N2 N3 примеров для трех типов тренда.
например
UP ( 1 0 0) - 100
флэт( 0 1 0) - 200
down( 0 0 1) - 250
Нормальное распределение - это распределение вероятности случайной величины. Набор данных не может быть противоречивым или не противоречивым - это значение ф-ции описывающей физический процесс и он просто есть. Противоречивым может быть только наша интерпретация его значений.

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

Давайте так, немного определимся с терминами:
1. Аппроксимация ряда - это построение построения многомерного отображения F: x->y, обобщающего заданный набор примеров {xt, yt}. На базе этого отображения реализуется заглядывание в будущее на Н шагов на основе определенной скрытой зависимости в членах ряда . Т.е. можно обобщить - что мы пытаемся оперировать как значением самих членов ряда, так и неким набором значений описывающих ряд - это локальный экстремы и т.д. (определяем коридор цен на какой-то промежуток, скажем)
2. Классификация - т.е. формируется образ рынка - скажем восходящий тред. Надо этот образ распознать.

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

Буду благодарен - если вы докажете обратное.

--
rip


Для задач классификации именно наша интерпретация данных и учитывается. Грубо говоря в задаче распознавания букв в множестве примеров написания буквы А не должны попадаться буквы Х У и прочие :)

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

Я исхожу из того, что апроксимации финансовые ряды поддаются хуже чем классификации.

 
maveric писал (а):

Я исхожу из того, что апроксимации финансовые ряды поддаются хуже чем классификации.

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