Точность прогноза

 

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




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



Хотя этот метод универсален, но с другой стороны с точки зрения торговли гораздо полезнее было бы знать основные движения цены (иногда даже скорее направления), а также примерные оценки движения курсов (например, чтобы поставить SL). Если сделать допущение на примерность оценки и не пытаться ловить прибыль до цента, то бОльшую пользу принесет примерная оценка движения цены. Например, в качестве такой оценки можно было бы сравнивать значения минимумов и максимумов зигзага.



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

Вопрос: у кого есть опыт использования таких функций сравнений, отличающихся от суммы квадратов (или модулей) отклонений?

 

как я делал: имеем 2 массива prognoz[n], real[];


double count=0.0;


for (i=0;i<n;i++)

{

if ((prognoz[i]>prognoz[i+1] && real[i]>real[i+1]) || (prognoz[i]<prognoz[i+1] && real[i]<real[i+1])) count++;

if ((prognoz[i]<prognoz[i+1] && real[i]>real[i+1]) || (prognoz[i]>prognoz[i+1] && real[i]<real[i+1])) count--;

}


count=count/n;



Опыта немного, но похоже на то что Вы предложили. Мне кажется этот метод сгодится только для гладких функций.

 

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


Вот еще одна иллюстрация "хорошего" и "плохого" прогноза.



Еще один вариант - для каждой точки прогноза считать минимальное расстояние до ближайшего факта на той же цене с одинаковым направлением вектора цены. То есть, измерять не ошибку по вертикали (EY), а ошибку по горизонтали (EX) с учетом определенных ограничений во времени. Это можно реализовать, например, вот так:

а) Если есть на той же цене в ближайшем будущем T отрезок с похожим вектором направления цены, то прибавить оценку 1/EX

б) Если такой отрезок есть в ближайшем прошлом -tau (меньше T), то прибавить оценку K*1/EX (здесь K - это некоторый коэффициент, показывающий, что опоздать с прогнозом в силу инерционности иногда не так страшно. Его можно принять, например, за 0.1)

в) если таких баров ни в ближайшем прошлом, ни в ближайшем будущем нет, то ничего не прибавлять.

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


 
Вопрос без иронии: а можно ли без прогнозирования зарабатывать?
 
mql4com >>:
Вопрос без иронии: а можно ли без прогнозирования зарабатывать?

Если без иронии то надо знать что Вы вкладываете в слово "прогнозирование" (без иронии)

 
На вскидку думается, что прогнозировать изменение профита и изменение цены - не одно и тоже. Имел в виду в предыдущем посте именно прогнозирование цены в любом понимании.
 
mql4com >>:
На вскидку думается, что прогнозировать изменение профита и изменение цены - не одно и тоже. Имел в виду в предыдущем посте именно прогнозирование цены в любом понимании.

Думаю понял о чем речь, вопрос снят

 
mql4com >>:
На вскидку думается, что прогнозировать изменение профита и изменение цены - не одно и тоже. Имел в виду в предыдущем посте именно прогнозирование цены в любом понимании.

Когда задумывал над тему поста, то вспоминал два факта:

1. Идеально было бы предсказывать зигзаг, чтобы покупать и продавать "точно-во-время"

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

Отсюда следует, что:

а) для автоматической торговли идеален точные прогноз

б) для ручной (только для терпеливого и свято верящего трейдера) - можно сделать его не очень точным.


А если говорить о заработке, то цену можно вообще не прогнозировать. Достаточно научится спрогнозировать вот такой вот индикатор (см. в аттаче), который показывает только два состояния "buy" и "not buy" (ну и для sell/not sell, конечно же) в зависимости от параметров "терпение (бар)", "страх (пункты)" и "жадность(пункты)")) Только вот как бы это сделать....

Файлы:
buy001.mq4  2 kb
 
Если систему делать на стат. преимуществе, то прогнозирование цены для заработка не нужно.
 

Для прогноза нужна модель рынка. У вас есть модель?

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

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

Впрочем, идея не нова.

Так что я м.б. и не совсем мимо темы отпостил.

 
mql4com >>:
Вопрос без иронии: а можно ли без прогнозирования зарабатывать?

Ответ без иронии: вполне.

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

но уже по портфелю в целом, а не по каждому инструменту в отдельности. Так оно проще и надёжнее выходит в итоге. ИМХО конечно.

Причина обращения: