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

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

Страница 3 из 4
#51
4 часа назад, ostapbender сказал:

Вот интересная статья как работают модели Хэджфондов

 

Выдержка:

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

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

 

Поэтому и нейросети нужно обучать не только индикаторами и ценой.

Это скорее работа по фундаментальным данным.

#52
14 минут назад, asbets сказал:

Это скорее работа по фундаментальным данным.

В фондах это обсчитывают алгоритмы, а не люди.

#53

Здравствуйте! Почитал тут немного. Что прогнозируем? Здесь упоминался NeuroSolutions, который я так и не смог победить по непонятной причине, но ведь есть (был) TradingSolutions, от того же разработчика. Так вот, там можно прогнозировать будущую цену, а также моделировать образ текущей ситуации - покупка/продажа. В первом случае общепринято, что нужно прогнозировать экстремумы путем обработки %Change ценовых параметров OHLC. Во втором случае на вход подаются дополнительные параметры в виде технических индикаторов. Модели можно объединять в комитет, что хорошо повышает вероятность успеха. В принципе, все это можно загнать в Метатрейдер, но сначала нужно научиться правильным образом использовать полученные прогнозы. Я не уверен, что умею это, несмотря на положительные в целом результаты.

#54
13 часов назад, ostapbender сказал:

В фондах это обсчитывают алгоритмы, а не люди.

Я к тому, что парадигма другая. Фундамент, а не теханализ.

#55
1 минуту назад, asbets сказал:

Я к тому, что парадигма другая. Фундамент, а не теханализ.

Так и я к тому, что нейросеть нужно обучать не только теханализу, чтоб реально получилось что то стоящее, а не оптимизация-переоптимизация.

Может какие библиотеки подключать с функциями фундаментала?

#56
8 часов назад, МихМих сказал:

Здравствуйте! Почитал тут немного. Что прогнозируем? Здесь упоминался NeuroSolutions, который я так и не смог победить по непонятной причине, но ведь есть (был) TradingSolutions, от того же разработчика. Так вот, там можно прогнозировать будущую цену, а также моделировать образ текущей ситуации - покупка/продажа. В первом случае общепринято, что нужно прогнозировать экстремумы путем обработки %Change ценовых параметров OHLC. Во втором случае на вход подаются дополнительные параметры в виде технических индикаторов. Модели можно объединять в комитет, что хорошо повышает вероятность успеха. В принципе, все это можно загнать в Метатрейдер, но сначала нужно научиться правильным образом использовать полученные прогнозы. Я не уверен, что умею это, несмотря на положительные в целом результаты.

1. Что прогнозируем? В данном проекте - движение цены в пределах дня. Где будет Low, где High.

 

2. Индикаторы -  это по сути, предварительная математическая  обработка той же цены. 

И цель их (опять же не всех, но в массе) - визуализировать данные на экране для человеческого восприятия.

Поэтому сильно "налегать" на них особого смысла не вижу.

Так как мат. обработка - это и есть задача сети. Но отвергать их тоже не стоит.

 

3. TradingSolutions как-то "пролетел" мимо, т.к. в тот  момент показалось,

что это просто очередной анализ индикаторов. Спасибо за информацию, поизучаю более пристально.

 

#57
В 22.09.2020 в 05:03, asbets сказал:

1. Что прогнозируем? В данном проекте - движение цены в пределах дня. Где будет Low, где High.

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

 

В 22.09.2020 в 05:03, asbets сказал:

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

И цель их (опять же не всех, но в массе) - визуализировать данные на экране для человеческого восприятия.

Поэтому сильно "налегать" на них особого смысла не вижу.

У индикаторов свои экстремумы, более стационарные, чем у графика цены. Поэтому с их помощью рассчитываются не значения HIGH/LOW следующего периода, а образ текущей ситуации - перепроданность/перекупленность. В терминах разработчиков это звучит как  "на какой стороне нужно быть".

 

В 22.09.2020 в 04:53, ostapbender сказал:

Так и я к тому, что нейросеть нужно обучать не только теханализу, чтоб реально получилось что то стоящее, а не оптимизация-переоптимизация.

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

Изменено 22 сентября, 2020 пользователем МихМих

#58
55 минут назад, МихМих сказал:

За годы наблюдений на форекс, убедился, что новости интерпретируют под движение, а не наоборот.

Под фундаменталом подразумевалось совсем не новости. Прочтите статью. Это намного шире - от движения танкеров, до запросов в гугле.

 

#59
1 час назад, МихМих сказал:

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

Вы правильно сказали, что точно нельзя спрогнозировать. Тем более, что в сети изначально заложена приближённость.

Но большинство факторов влияния на цену в виде структурированных данных отдать в сеть можно, в том числе и тренд. 

 

 

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

#60
В 22.09.2020 в 15:39, ostapbender сказал:

до запросов в гугле.

 

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

 

В 22.09.2020 в 15:47, asbets сказал:

Но большинство факторов влияния на цену в виде структурированных данных отдать в сеть можно, в том числе и тренд.

А нужно ли? Тренд это то, что становится очевидным большинству перед сломом. Так же будет ломать и модель. Например, индикатор ATR перед сломом тренда принимает высокие значения, а перед возникновением тренда - низкие. Вот только ведет он себя так и при трендах вниз и при трендах вверх. Разделить облако прогноза на две части здесь не получится. А в случае осцилляторов - получается, но уже в самом конце тренда. Это я про образ ситуации, а не про числовые значения прогноза экстремума.

#61

Вот новая версия 1,2 "NextDay". 

- Обучение на 5 парах AUDUSD, USDCAD,EURUSD, EURGBP, Gold , с 2014 по август 2020 года.

- Добавлены дни недели;

- Точность повысилась примерно на 10-15% по некоторым валютам на форвардтесте погрешность стала 10,2 % (было в среднем 11,7 - 12)

Применять можно вообщем-то на любой паре, погрешность от этого сильно не увеличивается. 

Напоминание по работе :

- советника кидать на график H4, перед этим переключить график на таймфрем D1 и вернуть обратно на H4 (глюк MQL), чтоб появились данные по дням. 

- советник сам выгрузится. висеть на графике не будет. в журнале "эксперты" запись будет "NextDay12 .......,H4: initialization failed (1)" - 

это нормально. При нормальном завершении будет сообщение "Всё прошло хорошо". 

 

 

NetxtDay12_20.dll28 скач. NetxtDay12_20.nsw22 скач.

NextDay12.ex420 скач. NextDay12.mq422 скач.

 

Пример, как отрабатывает по NZDUSD : 

1924613321_-NZD.thumb.jpg.871fa1ff6389af4acbae097a07257726.jpg

 

Работа по проекту продолжается. В планах сделать подобный прогноз на неделю.

Тогда будет всё по классику Элдеру - неделя, день ии...  вход :). Но пока  основная  задача уменьшить погрешность.

Что выяснилось.  Сеть при тесте на той же выборке, на которой обучалась, выдает среднюю погрешность 9,7%.  

При форвард-тестах погрешность составляет от 10,4 до 11,5%.

То есть растет не так уж сильно. Не на 50-100 %, а всего на 18 в максимуме, или в среднем на 10%.  

О чем это говорит?

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

И когда торговые системы, разработанные для одних пар, работают на других – это вот это однообразие и есть.  

  Во-вторых, «алгоритмические» советники в массе своей,  не дают  такие же результаты на форвард-тестах . Мне кажется, что у них «погрешность» растет не на 10%.  Сколько перетестировал их, обычно на  форварде «заваливаться» начинают. Конечно, есть и исключения.

  Общую погрешность 9,7% можно разбить на 2 части. Малую (от 10% и ниже) и большую – от 10% и выше.

 С малой погрешностью сеть отрабатывает в 66% случаев. С большой – в 33% .  

 Пришёл к выводу, что надо на текущий момент момент работать именно с этой частью случаев-записей

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

По ним созрело 2 вывода (если у вас будут еще варианты, с благодарностью выслушаю >:d<  ).

1.       Эти случаи зависят от других данных, которых нет у сети :  новости (речи персон), или какие-то другие тех. данные – уровни, волатильность, тренд …

2.       Эти случаи просто случайная работа рынка и вряд ли вообще поддаётся просчёту.

 

Что думаете?

888120849_.jpg.344bed21cdb15daea57066db78400eef.jpg

 

Написал, подумал и понял, что надо эти случаи смотреть визуально на графике, почему они такие, не поддающиеся. 

А для этого надо всё переделать с привязкой к дате - скрипт, советник..

 

 

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

#62
9 часов назад, asbets сказал:

При форвард-тестах погрешность составляет от 10,4 до 11,5%.

Что означает  Ваша погрешность? Сеть ошибается в 11.5%? Т.е. более 88% направление входа угадано верно?

Но ведь это грааль! Чем Вас не устраивает данный результат?

#63
13 часов назад, usver73 сказал:

Что означает  Ваша погрешность? Сеть ошибается в 11.5%? Т.е. более 88% направление входа угадано верно?

Но ведь это грааль! Чем Вас не устраивает данный результат?

Ну пока до грааля еще не дошли. 

Первый вопрос. Смотрите. Есть 3 дня  в виде  H4  свечей.

Есть диапазон прохода цены в эти 3 дня от самого Low до самого High - это диапазон цены 3-х дней.

Сеть прогнозирует следующий день, какой у него будет High и Low. Рисует этот квадрат дня на графике. 

 

По итогу имеем (например для Low), что есть фактический Low и прогнозный. 

Разница этих Low  - это насколько ошиблась сеть в прогнозе. 

Вот сравнение этой разницы со всем диапазоном прохода цены предыдущих  3  дней - и  есть погрешность. 

1229793406_-.thumb.jpg.6ec7096bf4a74700265054f52c576701.jpg

 

 

Что не устраивает...

1 . Если смотреть эту разницу (факт и прогноз) в отношении с диапазоном самого итогового дня, а не 3-х дневного диапазона, то в процентах 

погрешность будет больше. Просто изначально ориентировался на сравнение именно с входными данными. 

2. Чисто личный взгляд , что  только свечей за 3 дня для прогноза маловато, нужны еще данные. 

 

А, еще 3-й вопрос: "Т.е. более 88% направление входа угадано верно?".

Выше пояснил, что речь шла не о направлении, а о цене. 

Что касается именно направления - вот взял сентябрь и отметил , где на мой взгляд правильное направление прогнозирует - галочка, где нет - крест. Конечно, 88% нет.

Пока явно видно косяки - на разворотах цены. Выставляется прогноз на продолжение тренда, а цена разворачивается. 

 

Но также видно, где есть плюсы - хорошо реагирует на начало тренда (например с 22.09) и 2-го и 29 - но там трендики быстро сдулись. 

 

1484044829_-.thumb.jpg.213586f6abe320c6439c037244985ec1.jpg

 

 

 

 

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

#64
7 часов назад, asbets сказал:

1 . Если смотреть эту разницу (факт и прогноз) в отношении с диапазоном самого итогового дня, а не 3-х дневного диапазона, то в процентах 

погрешность будет больше. Просто изначально ориентировался на сравнение именно с входными данными. 

Если Вы прогнозируете диапазон следующего дня, то причем здесь исходные данные? 
ИМХО, сравнивать нужно прогноз/факт именно следующего за исходными данными дня.
Далее, не совсем понятно- как оценить ошибку прогнозирования, когда в прогнозе две цены..
На последнем графике в период с 18 по 25 сентября Вы все дни отметили галкой, т.е. прогноз сбылся?
Но ведь все прогнозируемые хаи не были даже близко достигнуты..! Это сродни утверждению "цена пойдет или вверх или вниз".
В общем- не понятно- какая функция ошибки прогнозирования применена. 
Отсюда "...ошибка 11,5%.." воспринимается как взятая из воздуха

#65

Привет! Нужны четкие критерии ошибки. Если процент верно угаданного направления изменения прогнозируемого выхода равен 75%, то ошибка такого прогноза составляет 25%. Заметьте, при этом в 3-х случаях из 4-х можно забирать ставку на обновление максимума, либо минимума. Достаточно ли этого? Ответ на этот вопрос зависит от сценария развития ситуации в прогнозируемом периоде. Обычно, нейросеть выдает прогноз на обновление максимума тогда, когда имелось хорошее движение вверх в предыдущий период и цена его закрытия находится близко от цены открытия прогнозной свечи. Потенциальная прибыль при формальном исполнении прогноза (обновлению максимума) может составлять от единиц, до нескольких десятков пунктов, а риск, с учетом средней исторической волатильности будет больше или равен потенциальной прибыли. Стоит ли игра на обновление свеч? Для меня - нет, поэтому я вхожу на обновление максимума только после снижения инструмента. В случае игры на обновления минимума - наоборот. Это общий принцип. Если пойти глубже, то необходимо отметить, что прогноз %Change High точнее по ошибке, выше по корреляции и точности исполнения (будет выше или ниже прежнего) тогда, когда High прогнозируется к снижению. Для Low - наоборот, т.е. к повышению. Следовательно, для получения максимального статистического преимущества продавать по прогнозу нужно тогда, когда: 1) High спрогнозирован вниз; 2) с начала периода состоялся  рост в район значений расчетного High; 3) цель в виде предыдущего Low достаточно далека. Покупать - по аналогии. Это то, что касается прогноза отдельно взятого тайм-фрейма.

Изменено 4 октября, 2020 пользователем МихМих

#66
В 02.10.2020 в 18:48, usver73 сказал:

Если Вы прогнозируете диапазон следующего дня, то причем здесь исходные данные? 
ИМХО, сравнивать нужно прогноз/факт именно следующего за исходными данными дня.

Да, наверное, это более логично сравнивать с результатом, а не с диапазоном.

Спасибо за замечание. Посмотрю, как пересчитать.

Но поясню свою логику, почему делал именно так.

 

Ранее в этом посте писал ( /laboratoriya-profitfx/24/neyrosetevye-dela/21575/?tab=comments#comment-463390 )

" В НС есть ограничение – данные должны быть в нормализованном формате. т.е. от 0 до 1.

Для диапазона – 0 = LOW всего диапазона 18 свечей 4H, а  1 = High.

Но поскольку хай-лоу прогнозируемого  дня еще нет, подогнать их под нормализацию невозможно. "

 

Суть в том что, в случае, когда сеть "видит", что будет пробой и цена уйдет за диапазон, она не знает, где

остановится за диапазоном. Сеть ставит максимальное значение - либо 0 (вниз пробой) либо 1 (пробой вверх).

 

А вот здесь вы меня не правильно поняли:

"На последнем графике в период с 18 по 25 сентября Вы все дни отметили галкой, т.е. прогноз сбылся?
Но ведь все прогнозируемые хаи не были даже близко достигнуты..! Это сродни утверждению "цена пойдет или вверх или вниз"." 

 

Нет, этот график привел как  направление, а не прогноз цены (я там писал):

Что касается именно направления - вот взял сентябрь и отметил "

Просто уже стал замечать, что когда сеть прогнозирует цену на границе диапазона - то вероятность,

что цена будет двигаться в этом направлении выше, чем в обратном.

Сорри. Надо было мне про это  сразу написать. 

Там как раз видно, что с 22 сентября цена валится, и сеть прогнозирует направление вниз, предлагая "0" , т.е. низ диапазона. 

 

Да, вы правы, хаи она в этот момент очень далеко ставит.

И  над этим надо работать. 

 

Вот на картинке пояснил про диапазон, и прорыв его на сл. день : 

629031305_-2.jpg.49730abecbdd1802116ac36232a8264c.jpg

 

 

"В общем- не понятно- какая функция ошибки прогнозирования применена. 
Отсюда "...ошибка 11,5%.." воспринимается как взятая из воздуха

Нет, она не с воздуха . 

Вот как это в цифрах. 

 

 
      Out LowRes      Out HighRes            LowRes HighRes  Разница Low Разница High
0,1148 0,5222 0 0,24131 0,114 0,2809
0,12434 0,4770 0 0,29428 0,1243 0,1827
0,10744 0,5094 0 0,15242 0,1074 0,3570
           

Out LowRes  - прогноз сети по Low

Out HighRes - прогноз сети по High

LowRes      - фактический результат по Low

HighRes    -фактический результат по High

Разница Low - это и есть погрешность. 

Разница High - погрешность по High.

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

#67
В 03.10.2020 в 13:35, МихМих сказал:

Привет! Нужны четкие критерии ошибки. Если процент верно угаданного направления изменения прогнозируемого выхода равен 75%, то ошибка такого прогноза составляет 25%. Заметьте, при этом в 3-х случаях из 4-х можно забирать ставку на обновление максимума, либо минимума. Достаточно ли этого? Ответ на этот вопрос зависит от сценария развития ситуации в прогнозируемом периоде..... 

Могли бы пояснить как нибудь на графике. Не понял мысль. То ли понедельник, то ли туплю...:-)

#68

1510604825_2020-10-05153313.png.347506c7b636169a80d9416622da7697.png616478886_eurusdd1.thumb.jpeg.30822736896b9c342b16b1720224c948.jpeg1876891628_2020-10-05153442.png.d05d42ae7d1161a808aed363d65d34b9.png

#69

Если сеть выдаёт от 0 до 1, то, например, от 0 до 0.5 это Low, от 0.5 до 1 это high. Вроде это называется бинарный классификацией.

Можно посчитать ошибку предсказания.

Можно и дальше пойти: среднее значение,  допустим,  0.3-0.7 обозначить как неопределённое. 

#70
15 часов назад, usver73 сказал:

Если сеть выдаёт от 0 до 1, то, например, от 0 до 0.5 это Low, от 0.5 до 1 это high.

High  какого тайм-фрейма? Абсолютное числовое значение у него имеется?

 

15 часов назад, usver73 сказал:

Можно и дальше пойти: среднее значение,  допустим,  0.3-0.7 обозначить как неопределённое. 

Все уже придумано - промежуточные значения функции означают меньшую силу сигнала.

15 часов назад, usver73 сказал:

Вроде это называется бинарный классификацией.

Или распознавание образов ситуации к покупке, либо продаже.

#71
В 05.10.2020 в 21:47, usver73 сказал:

Если сеть выдаёт от 0 до 1, то, например, от 0 до 0.5 это Low, от 0.5 до 1 это high. Вроде это называется бинарный классификацией.

Можно посчитать ошибку предсказания.

Можно и дальше пойти: среднее значение,  допустим,  0.3-0.7 обозначить как неопределённое. 

В данном проекте это не классификация, а прогноз.

Т.е.  0,75 - это цена в цифре = 0,75 от низа (который 0) и от 1 (который High). 

 

Сразу ответ на еще вопрос в : 

"High  какого тайм-фрейма? Абсолютное числовое значение у него имеется?

Таймфрейм H4.

Да, числовое значение имеется, иначе бы на графике низ-верх не нарисовался.

 

т.е. вот пример пересчета

На таймфрейме H4 в диапазоне 3 дней цена Low = 1.0500 , а цена High 1.0800. 

1. Считаем диапазон  1.0800-1.0500 = 0.0300. Это весь диапазон 300  пунктов.

Тогда получается , что 0,75 = 1.0500+0.03*0.75 = 1.0725 цена (допустим это прогноз). 

А факт цена была 1.06.

Факт цена тоже пересчитывается в диапазон: (1.06-1.05)/0.03=0,33. 

 

Но есть нюанс. Когда цена уходит за диапазон, ей присваивается либо 1 (за верхом) либо 0 (за низом).

 

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

#72

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

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

Факт цена тоже пересчитывается в диапазон: (1.06-1.05)/0.03=0,33. 

 

Но есть нюанс. Когда цена уходит за диапазон, ей присваивается либо 1 (за верхом) либо 0 (за низом).

 

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

 

1 час назад, МихМих сказал:

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

Думаю, здесь как раз кроется магия подбора фичей.

#74
30 минут назад, usver73 сказал:

Думаю, здесь как раз кроется магия подбора фичей.

Если брать тайм-фрейм Н4, то и прогноз нужно получать для Н4. Это значит, что торговать по прогнозу нужно каждые 4 часа. Меня смущает упоминание о трехдневном диапазоне. Что это - последовательность из 18 примеров? Учитывая, что на обучение должно идти 60% образцов, остальное на кросс-валидацию и тестирование, то каково качество выборки? 

#75
Только что, МихМих сказал:

Учитывая, что на обучение должно идти 60% образцов, остальное на кросс-валидацию и тестирование, то каково качество выборки? 

Возможно автор взял 10к образцов трехдневных свечей Н4 в качестве фичей... мы ж не знаем

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

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

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