Прогнозирование цены с использованием Linear prediction - страница 2

 
grasn >>:

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


А потом посмотрите на результат. Думаю, станет понятно, что "удачно" оценить параметры модели:

  • длину выборки (это так же важно, как и порядок)
  • порядок модели

задача просто не простая.

Спасибо за совет, попробую.

grasn >>:

Так вот, проблема то не только в том, что ряд не стационарный (это всего лишь небольшие затруднения), а в том, что котировочный процесс просто не является AR процессом "по определению" (совершенно разные распределения). Вообще никаким AR процессом. Природа этого процесса совершенно другая.

Я думаю  природа котировочного процесса  не однозначна, и относить его к чему то одному не стоит.

Что касается движения графика ошибки, то в прикрепленный архив я вложил две анимации сделанные на Mathcad.  Первая  демонстрирует прогнозируемые цены при движении точки отсчета по истории с 21:00 25.08.09 по 23:45 28.08.09, вторая - график ошибки при движении точки отсчета по истории с 21:00 25.08.09 по 22:45 27.08.09. Также в архиве лежит листинг по которому производился расчет.

Расчет проводился для котировок EURUSD 15M.

Вот часть алгоритма отвечающая за расчет ошибки (она следует сразу за алгоритмом опубликованным выше):

Что касается движения графика ошибки прошу обратить внимание на следующие:

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

      - график движется следующим образом постоянно двигаясь влево по оси X он перемещается по оси Y так что его начало всегда имеет координаты (0;0) или очень близкие к ним.

Мой вывод по этим свойствам:

      зная вид графика ошибки в точке 70 мы можем легко компенсировать ошибку.

Вопрос: Как узнать вид графика ошибки если нам еще не известны реальные цены после   времени 70 ?

Мой ответ: использовать функцию predict() для прогнозирования.

Жду вашего мнения или предложений для усовершенствования (последнее предпочтительней :-) )

P.S. Сообщите если анимация из архива не будет воспроизводится, попробую другой кодек для записи.

 

Файлы:
uljlwmwinrar.rar  1417 kb
 

Или Вы немного перемудрили, или я не понимаю, о чем читаю:

...зная вид графика ошибки в точке 70 мы можем легко компенсировать ошибку...

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

 
grasn >>:

Или Вы немного перемудрили, или я не понимаю, о чем читаю:

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

Попробую объяснить иначе.

1 - Берём известный отрезок цен (к примеру последние сутки этой рабочей недели 28.08.09) 

2 - далее с помощью функции predict() рассчитываем прогнозируемые цены на 28.08.09 (последней известной реальной ценой для функции predict() будет цена      в 23:45 27.08.09).

3 - Затем получаем разницу между  реальной и прогнозируемой ценой на 28.08.09. В результате получаем график представленный выше (график ошибки).

4 - С помощью той же функции predict() прогнозируем ошибку, только за исходные данные берём не  цену, а ошибку рассчитанную в пункте 3.

Теперь у нас есть предполагаемая ошибка прогноза цены на 29.08.09. Другим способом получить ошибку нельзя так как цены на 29.08.09 мы не знаем.

Но мы можем сделать прогноз этих цен с помощью predict() ведь у нас есть реальные цены на 28.08.09.

И так мы имеем прогноз цен на 29.08.09 и предполагаемую ошибку этого прогноза, осталось путем сложения получить цены близкие к будущим. 

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

Вот, что получилось у меня:



То, что приблизительно сохраняется форма при сдвиге на один отсчет, - я уже писал. Но "сегодня", Вы никогда не получите "ошибку", на завтра. Природу невозможно обмануть, ее нужно только понимать :о)

 
salewin >>:

Мой вывод по этим свойствам:

зная вид графика ошибки в точке 70 мы можем легко компенсировать ошибку.


Тут нужно задать себе несколько вопросов:

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

2. Если ответ на предыдущий вопрос положительный, то любая модель рынка (включая linear prediction) должна сначала отфильтровать шум, чтобы не пытаться предсказать поведение Феди из Простоквашино.

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

 
Немного по теме.