Нейронные сети. Прогнозирование.

 

Допустим, у нас есть сеть способная прогнозировать цены на n баров вперед. На каждом баре производится новый прогноз. В итоге мы имеем n-1 прогнозов на -1 бар. Также у нас есть точность прогноза (хотя более правильно было бы назвать ошибкой прогнозирования). И вот тут то и возникает вопрос, а как повысить точность прогнозирования используя все прогнозы, которые у нас уже есть для этого бара. И возможно ли это?

 
Никак. Иначе придётся признать возможность получения полезной для прогнозирования информации из "ниоткуда" - НС порождает некоторый ряд, который оказывается содержит нужную информацию не содержащуюся в анализируемом ряде - противоречие.
 
Допустим, у нас есть сеть способная прогнозировать цены на n баров вперед.
Виктор, ты собрался построить интерполирующую сетку? Как-то странно для человека, искушенного в NN, - или я чего-то не понял в первом посте...
 
Mathemat:
Допустим, у нас есть сеть способная прогнозировать цены на n баров вперед.
Виктор, ты собрался построить интерполирующую сетку? Как-то странно для человека, искушенного в NN, - или я чего-то не понял в первом посте...


Если в аське ты получал сообщение. То это и был мой вопрос.

Но то что такую сетку я делаю, да. Но после ответа Сергея, изменил для себя задачу. Я буду прогнозировать коды свечей. Которые отражают состояние рынка в будущем. Но пока реализовывать это не начал. По кодам свечей, полученным на последних n-1 баров можно более точно дать прогноз на текущий бар.

 
Vinin писал (а):


... Я буду прогнозировать коды свечей. Которые отражают состояние рынка в будущем. Но пока реализовывать это не начал. По кодам свечей, полученным на последних n-1 баров можно более точно дать прогноз на текущий бар.

Мож чего не то ляпну - не проще ли прогнозировать сначала значения CHLO, к-рые маловероятны? а потом искать в оставшейся пустоте.

Извините.

 

Еще можно прогнозировать значения индикаторов :-)

Например, куда двинется RSI на следующих барах..

 
Vinin:

Допустим, у нас есть сеть способная прогнозировать цены на n баров вперед. На каждом баре производится новый прогноз. В итоге мы имеем n-1 прогнозов на -1 бар. Также у нас есть точность прогноза (хотя более правильно было бы назвать ошибкой прогнозирования). И вот тут то и возникает вопрос, а как повысить точность прогнозирования используя все прогнозы, которые у нас уже есть для этого бара. И возможно ли это?


Это ж вычисление обычного средневзвешенного. Прогноз = (прогноз1*точность1 + прогноз2*точность2 + ...) / n
 
ArtemRG:
Vinin:

Допустим, у нас есть сеть способная прогнозировать цены на n баров вперед. На каждом баре производится новый прогноз. В итоге мы имеем n-1 прогнозов на -1 бар. Также у нас есть точность прогноза (хотя более правильно было бы назвать ошибкой прогнозирования). И вот тут то и возникает вопрос, а как повысить точность прогнозирования используя все прогнозы, которые у нас уже есть для этого бара. И возможно ли это?


Это ж вычисление обычного средневзвешенного. Прогноз = (прогноз1*точность1 + прогноз2*точность2 + ...) / n


Разумнее делать немного по другому

Прогноз = (прогноз1*точность1 + прогноз2*точность2 + ...) / (точность1 +точность2 +...)

 
Тут надо мухи от котлет отделить, иначе каша получится. Зачем мешать сам прогноз и его точность?

Прогноз = (прогноз1*вес1 + прогноз2*вес2 + ...) / (вес1 + вес2 +...)

Точность = (точность1*вес1 + точность2*вес2 + ...) / (вес1 + вес2 +...)

Да и сами функции не обязаны быть линейными комбинациями. Целевая функция (точность) вообще может быть нелинейной функцией от отдельных ошибок точность_i. Тут целая наука, определяющая вид функции усреднения в зависимости от функции распределения ошибок. Но я с этой наукой знаком только издалека и краем уха (или глаза). Для гауссова - конечно, сумма квадратов, для толстохвостых - например, сумма модулей и т.п.
 
Vinin:

Допустим, у нас есть сеть способная прогнозировать цены на n баров вперед. На каждом баре производится новый прогноз. В итоге мы имеем n-1 прогнозов на -1 бар. Также у нас есть точность прогноза (хотя более правильно было бы назвать ошибкой прогнозирования). И вот тут то и возникает вопрос, а как повысить точность прогнозирования используя все прогнозы, которые у нас уже есть для этого бара. И возможно ли это?

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

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

 
Vinin:
ArtemRG:
Vinin:

Допустим, у нас есть сеть способная прогнозировать цены на n баров вперед. На каждом баре производится новый прогноз. В итоге мы имеем n-1 прогнозов на -1 бар. Также у нас есть точность прогноза (хотя более правильно было бы назвать ошибкой прогнозирования). И вот тут то и возникает вопрос, а как повысить точность прогнозирования используя все прогнозы, которые у нас уже есть для этого бара. И возможно ли это?


Это ж вычисление обычного средневзвешенного. Прогноз = (прогноз1*точность1 + прогноз2*точность2 + ...) / n


Разумнее делать немного по другому

Прогноз = (прогноз1*точность1 + прогноз2*точность2 + ...) / (точность1 +точность2 +...)

Согласен :-)
Причина обращения: