Системы одновременных уравнений в eviews

Знакомство с пакетомEViews

На сегодняшний день существует много универсальных программ обработки и анализа данных, представленных временными рядами: Stata, SPSS, EViews,Statistica. При выполнении лабораторных работ по моделированию нелинейных временных рядов неподготовленному пользователю рекомендуется использовать пакет прикладных программ (ППП) Eviews (Econometric Views), так как лучше всего его возможности раскрываются при решении задачи прогнозирования количественных показателей, представляющих собой именно временной ряд. В пакете Eviews имеется достаточно полный арсенал методов по обнаружению и борьбе с типичными для анализа временных рядов проблемами: гетероскедастичность,автокорреляция,нестационарность и наличие коинтеграции,кроме того,EViewsпозволяет строить прогноз сразу же после построения модели.

Отметим, что ППП EViews является адаптированным к операционной системе Windows, поддерживает технологии OLE, drop-down и д.р., имеет удобный графический интерфейс, является компактными и занимают мало места дискового пространства.

Приложение Eviews в отличие от многих статистических пакетов программ (например, Statistica) не имеет модульной системы, однако содержит так называемое окно рабочего файла, где можно сохранять ряд объектов.

Рис. 2. Вид рабочего окна программы Eviews.

Объектная структура рабочего окна позволяет работать одновременно с различными типами информации. Управление объектами осуществляется с помощью процедур (procs), которые в свою очередь могут сами создавать новые объекты. Каждый объект содержит конкретный вид информации: ряд данных, коэффициенты, графики и диаграммы, модели, результаты вычислений, таблицы (матрицы) и др. Все типы объектов представлены на рис. 3.

Рис. 3. Типы объектов рабочего файла Eviews.

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

Прежде чем вводить данные необходимо создать рабочий файл. Для этого в оболочке Eviews выбирают команду меню File, далее New, Workfile… (рабочий файл) (рис. 4.).

Рис. 4. Работа с основным меню пакета EViews.

В появившемся диалоговом окне первым этапом формирования рабочего файла является определение структуры типа данных (рис. 5). EViews старше пятой версии позволяет работать со следующими данными: Неструктурированными (данные без дат) – кросс-секциями (Unstructured/Undated), временными рядами (Dated – regular frequency), со сбалансированными панельными данными, являющимися объединением кросс-секций и временных рядов (Balanced Panel).

Рис. 5. Формирование структуры данных рабочего файла Eviews.

В Eviews прежде, чем ввести данные, необходимо задать их формат, далее создать объект типа ряд, задать количество переменных и количество наблюдений. При работе с временными рядами пакет Eviews позволяет работать с четырнадцатью типами данных (мульти –годовые, годовые, полугодовые, квартальные, месячные, недельные (5 дней), недельные (7 дней), ежедневные, недатированные наблюдения и др.) (рис. 6). Процедура ввода и описания данных в приложении Eviews достаточна сложна, и поэтому предпочтительнее импортировать данные из других приложений. Программа позволяет работать с данными заимствованными из таких программ как: MS Access, Gauss, ODBS, SAS, SPSS, MS Excel, Stata, ACSII, HTML.

Имя рабочего файла задается в рамке Workfile names (optional)в поле WF: (рис. 5) и допускает только латинское написание.

Рис.6. Выбор формата данных временных рядов.

Как видно из рисунка 6, в пакете допускается четырнадцать типов данных. Это могут быть:

· Мульти- годовые (Multi-year);

· Годовые (Annual) – годы 20 в. идентифицируются по последним двум цифрам (97 эквивалентно 1997), для данных, относящихся к 21 в. необходима полная идентификация (например, 2020);

· Полугодовые (Semi-annual) – 1999:1, 2001:2 (формат – год и номер полугодия);

· Квартальные (Quarterly) – 1992:1, 65:4, 2005:3 (формат – год и номер квартала);

· Ежемесячные (Monthly) – 1956:1, 1990:11 (формат – год и номер месяца);

· Двумесячные (Bimonthly)

· Декадные (Ten-day)

· Недельные (Weekly) и дневные (5/7 day weeks) – допускаются форматы Месяц/День/Год (по умолчанию) и (День/Месяц/Год) – настроить эту опцию можно в меню Options/Frequency Conversion & Date Display. Так, введенные числа 8:10:97 будут интерпретированы как Август, 10, 1997. Для установки, принятой в Европе, начальная дата будет выглядеть как Октябрь, 8, 1997;

· Недатированные или нерегулярные (Undated or irregular) – допускают работу с данными, строго не привязанными к определенным временным периодам.

Важным является указание начальной (start) и конечной (end) даты/наблюдения (date/observation).

После ввода данных пакет создаст рабочий файл c заданным именем, и на дисплее в рабочей области появится окно рабочего файла (см. рис. 7). Все рабочие файлы пакета всегда содержат вектор коэффициентов C и ряд RESID (остатки).

Рис. 7. Вид рабочего файла Eviews.

Для чтения данных, созданных в других программах, необходимо выбрать в рабочем файле опцию Procs/Import/Read Text-Lotus-Excel… (см. рис. 8).

Рис. 8. Диалоговое окно рабочего файла.

Появится диалог открытия электронных таблиц формата Excel (рис. 9).

Рис. 9. Диалог импорта данных из Excel.

Импорт данных производится в окне, представленном на рис. 9. Здесь по умолчанию предполагается, что данные находятся в столбцах (by observation — series in columns). Если данные представлены в виде наблюдений в строках, то необходимо отметить другую опцию (By series — series in rows). Окно Upper-left data cell (левая верхняя ячейка данных) автоматически отобразило клетку B2. Это означает, что данные будут импортироваться из исходной таблицы с клетки, указанной в этом окне (тем самым первая строка и первый столбец будут пропущены).

В окне Names for series or Number of series if names in file указываются имена для рядов (переменных), а также их число. После введения всех установок и нажатия кнопки OK,появляется окно, отображенное на рис. 10.

Рис.10. Переменные рабочего файла.

При формировании ряда данных непосредственно в пакете EViews необходимо создать объект вида ряд. Для этого в меню рабочего файла выбирают команду Object / New object…В появившемся диалоговом окнеNew objectв рамкеType of object выбирают объект типа – ряд (Series), в рамке Name of object задаютего имя (рис. 11).

Рис. 11. Окно выбора типа объекта.

Для непосредственного ввода данных в окне редактирования ряда Series: необходимо выбрать команду меню Edit +/-. Появится строка ввода данных (рис. 12). Принцип ввода информации как в любой электронной таблице.

Рис. 12. Формирование ряда данных.

Просмотр исходной информации.

Для верификации (проверки правильности) введенных данных необходимо создать новую группу, содержащую все импортированные ряды (переменные). Для этого необходимо кликнуть мышкой по имени первой переменной, затем, удерживая клавишу CTRL кликнуть по именам переменным. Далее в подвисающем меню необходимо выбрать опцию Open. После выбора Open Group (открыть в одной группе) пакет (рис. 13) создаст группу с именем UNTITLED, в которую войдут все переменные (ряды). По умолчанию, данные будут представлены в виде электронной таблицы (возможны другие варианты представления) – рис. 14.

Рис. 13. Открытие группы.

Рис. 14. Просмотр данных в виде электронной таблицы.

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

Рис. 15. Окно задания имени группы.

Образованную группу данных можно просматривать не только в виде электронной таблицы. Для представления информации в графическом виде следует выбрать последовательность команд View/ Graph…Появится диалоговое окно Graph options просмотра информации в графическом виде (см. рис. 16). В рамке Options Pages можно не только определить тип графика Graph Type, но и задать вид, цвет и размер линий графика (Frame&Size), выбрать масштаб изображения и ввести разметку осей ординат (Axes&Scaling), определить подписи в графике (Legend), задать необходимые детали графика (Graph Elements). Выбрав режим в рамке можно просмотреть несколько графиков одновременно, как в одном масштабе, так и в разных масштабах. Для просмотра гистограмм распределения необходимо в окне Graph options (рис.16) выбрать в рамке Specific режим Distribution. В рамке Details в появившемся поле Distribution выбрать режим Histogram. Пример просмотра линейных графиков (Line) нескольких переменных приведен на рисунке 17. Пример просмотра гистограммы распределения приведен на рис. 18.

Рис. 16. Построение графиков данных в Eviews.

Рис. 17. Графическое представление информации в Eviews.

Рис. 18. Просмотр гистограмм распределения.

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

Для просмотра числовых характеристик (описательных статистик) отмеченных переменных необходимо выбрать в рабочем файле View/Descriptive Stats/Individual Samples. Существует также режим просмотра обобщенных статистик пвыбранных в группу переменных View/Descriptive Stats/Common Samples.

В результате появится окно, представленное на рис. 19. В нем содержатся:

Mean – Среднее арифметическое значение;

Median – Медиана;

Maximum– Максимальное значение;

Minimum – Минимальное значение;

Std. Dev. – Стандартное отклонение (среднее квадратическое отклонение);

Skewness – Коэффициент асимметрии распределения;

Kurtosis – Эксцесс (описывает «пиковость» распределения);

Jarque-Bera – статистика Бера-Жарка для определения нормальности распределения переменных;

Probability–соответствующий р-уровень статистики Бера-Жарка;

Observations – Количество наблюдений.

Рис. 19. Представление описательных статистик данных.

Если возникает необходимость проанализировать матрицу парных коэффициентов корреляции или ковариации, то необходимо выбрать View/Covariance Analysis…Появится диалоговое окноCovariance Analysis(рис. 20), позволяющее просмотреть парные коэффициенты корреляции (Correlation), ковариации (Covariance), значение t-статистик (t-statistics) и др. (рамка Statistics). Результат просмотра парных коэффициентов корреляции и ковариации представлен на рис. 21.

Рис. 20. Диалоговое окно ковариационного анализа.

Рис. 21. Матрица коэффициентов ковариаций и корреляции.

Сравнение скорости построения линейных моделей в R и Eviews

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

Для проведения этого теста будем использовать простую линейную регрессию:

Количество наблюдений N в регрессии будем менять и сравнивать время оценки для каждого. Я взял N oт 100 000 до 10 000 000 с шагом в 100 000.

Что из этого получилось

Результаты R (Линейная и логарифмическая модели)

Я добавил переменную dum — дамми на одно из наблюдений (видно выброс на графике, в этот момент мне нужно было открыть браузер). Как и ожидалось, количество наблюдений значимо влияет на время построения регрессии. Мультипликативная модель дает более красивые результаты. Даже есть намёк на нормальность остатков в регрессии. По линейной модели получаем, что каждый дополнительный миллион наблюдений увеличивает время построения на 1.39 секунды, а модель в логарифмах показывает эластичность количества наблюдений по времени 1.014 (т.е. если количество наблюдений увеличится на 1%, то время расчета регрессии увеличится на 1.014%).

Гистограммы остатков

Визуально гистограммы остатков моделей не похожи на нормальное распределение, а значит оценки, полученные в моделях смещенные, т.к., скорее всего, не учитываем значимую переменную — уровень загрузки процессора. Тем не менее в логарифмической модели можно принять гипотезу о нормальности (т.к. критическое значение тестовой статистики Харки-Бера 8.9% и превышает стандартный критический уровень значимости в 5%).

Результаты Eviews (Линейная и логарифмическая модели)

Модели, полученные в Eviews не так качественно описывают зависимость времени построения от количества наблюдений. Линейная модель предсказывает, что дополнительный миллион наблюдений увеличит время оценивания модели на 0.018 секунд (в 75.8 раз меньше, чем в R). В логарифмической модели эластичность — 0.306 (в 3.3 раза меньше чем в R)

На графиках видно значительное количество выбросов, что, скорее всего, говорит о намного более значимом влиянии загрузки процессора на время вычисления в Eviews. Присутствует гетероскедастичность в ошибках, что свидетельствует в пользу включения переменной — уровня загрузки процессора в модель. Нужно отметить, что Eviews практически не потребляет оперативную память, в то время как R кумулятивно увеличивает объем потребляемой памяти для своих нужд и не освобождает ее до закрытия программы.

Опять же, остатки в моделях не нормальные, нужно добавлять ещё переменных.

В конце хочу сказать, что не стоит сразу записывать это в R как минус. Возможно, такое разное время вычисления получилось потому, что функция lm(), которую я использовал в R создает большой объект типа lm в котором содержится много информации об оцененной модели и для 100 000 наблюдений уже весит около 23 Mb, который опять же, хранится в оперативной памяти. Если вам будет интересно можно повторить похожий тест, используя какие-либо другие функции из R или, например, реализовать алгоритм gradient descent, о котором можно посмотреть здесь.

Эконометрика: прогноз EURUSD на один шаг вперед

Введение

В статье рассматривается прогноз пары EURUSD на один шаг вперед с помощью пакета EViews с последующей оценкой результатов прогнозирования с помощью программы на EViews и советника на MQL 4. Данная статья является продолжением статьи «Анализ статистических характеристик индикаторов», положения которой будут использоваться без дополнительных разъяснений.

1. Построение модели

Предыдущая статья заканчивалась анализом следующего уравнения регрессии:

EURUSD = C(1)*EURUSD_HP(1) + C(2)*D(EURUSD_HP(1)) + C(3)*D(EURUSD_HP(2))

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

Начнем построение модели для символа EURUSD часового таймфрейма на барах за одну неделю: с 12.09.2011 по 17.09.2011.

1.1. Анализ исходной котировки EURUSD

С самого начала проанализируем исходный ряд EURUSD с целью составления плана на следующий шаг.

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

Текст индикатора приведен ниже и, по-моему мнению, в комментариях не нуждается.

Задав указанные выше даты, я получил файл котировок, состоящий из 119 строк, последняя из которой имеет вид «Прогноз,0» – это место для будущего прогноза. Замечу, что работаю я с ценами Open . Также обращаю внимание, что порядок котировок в файле противоположный тому, который принят в MQL 4, т.е. как в языках программирования.

Индикатор, естественно, формирует файл kotir.txt в папке терминала \expert\files\. Рассмотренный ниже советник в режиме DEMO или REAL торгов будет брать файл котировок из этой папки, но в режиме тестера этот файл необходим в папке \tester\files\, поэтому я вручную перемещаю файл kotir.txt в папку \tester\files\ терминала.

Рис. 1. График котировок EURUSD, таймфрейм Н1

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

Вычислим описательные статистики:

Рис. 2. Описательные статистики

Из описательной статистики следует, что:

  • Имеется скос вправо (должен быть ноль, а имеем 0.244950);
  • Вероятность нормального распределения нашей исходной котировки 9.64%.

Конечно, визуально гистограмма не имеет никакого отношения к нормальному распределению, но вероятность в 9.64% порождает определенные иллюзии.

Давайте наглядно сравним с теорией:

Рис. 3. Сравнение гистограммы EURUSD с теоретической кривой нормального распределения

Визуально мы находим подтверждение, что котировка EURUSD _Н1 крайне далека о нормального распределения.

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

Вычислим автокорреляцию котировок.

Она имеет следующий вид:

Рис. 4. Автокорреляционная функция котировок EURUSD_H1

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

Какими статистическими характеристиками будет обладать этот остаток, если из исходной котировки вычесть детерминированную составляющую?

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

Таблица 1. Тест на единичный корень

Проведенный тест показывает, что:

  • Вероятность, что исходная котировка имеет единичный корень (первая разность имеет нормальное распределение), равна 41%;
  • Статистика DW (Durbin-Watson) чуть больше 2.2, что также говорит о нормальном распределении первой разности.

По аналогии с предыдущей статьей для выделения детерминированной составляющей котировки EURUSD будем использовать сглаживание Ходрика-Прескотта (Hodrick-Prescott filter).

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

Рис. 5. Результат сглаживания ряда фильтром Ходрика-Прескотта

Из предыдущей статьи будем использовать уравнение, которое в обозначениях EViews выглядит следующим образом:

kotir = C(1) * HP(-1) + C(2) * D(HP(-1)) + C(3)*D(HP(-2))

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

При анализе данной модели исходной котировки получаем следующие показатели уравнения регрессии:

Таблица 2. Оценка уравнения регрессии

Конечно, крайне неприятным является вероятность в 39% того, что коэффициент при НР1_D(-1) равен нулю. Оставляем все как есть, так как строим демонстрационный пример.

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

Результат выглядит следующим образом:

Рис. 6. Прогноз EURUSD на один шаг вперед (на 0 часов понедельника)

1.3. Оценка остатков от уравнения регрессии

Проведем ограниченный анализ остатка от уравнения регрессии. Этот остаток получен путем вычитания из исходных котировок EURUSD значений, вычисленных по уравнению регрессии.

Напомню, что по характеристикам этого остатка можно будет судить о будущей устойчивости торговой системы.

Первый тестом будет тест на анализ зависимостей между лагами в остатке:

Рис. 7. Автокорреляционная функция остатка

К сожалению, зависимости между лагами остались, а наличие зависимостей ставит под сомнение статистический анализ.

Следующий тест, который проведем — это тест на нормальность распределения остатка.

Результат имеет следующий вид:

Рис. 8. Гистограмма остатка от уравнения регрессии

Вероятность того, что остаток распределен по нормальному закону, равна 25.57%, это достаточно большая величина.

Проведем тесты на наличие гетероскедастичности в остатке.

Получаем следующие результаты:

  • Вероятность отсутствия гетероскедастичности типа GARCH = 16.08%
  • Вероятность отсутствия общей гетероскедастичности типа White = 0.0066%

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

2. Оценка результатов прогнозирования

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

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

Отношение прибыли к убытку обозначено как профит-фактор. Подсчитывается отношение прибыльных и убыточных приращений (отношение прибыльных и убыточных сделок). Также подсчитываем количество подряд убыточных сделок и отношение убытка в подряд убыточных сделках к прибыли (фактор восстановления).

Программа на языке EViews для оценки результатов моделирования в терминах торговой системы состоит из основной программы и двух подпрограмм.

Основная программа (головная) имеет следующий вид:

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

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

Подпрограмма, в которую вынесена модель (уравнение регрессии):

Этих подпрограмм должно быть равно количеству моделей.

Для другой модели следует изменить имя подпрограммы и, соответственно, имена в основной программе.

Подпрограмма, которая вычисляет показатели прибыли/убытка по модели:

Результат приведенных выше простых программ на EViews для нашего уравнения следующий:

Таблица 3. Результат оценки прибыльности в EViews

До сих пор в статье котировки EURUSD_H1 анализировались средствами программы EViews.

Однако очень заманчивым является использование результатов прогноза в советнике терминала МetaТrader 4 для торговли.

Далее рассмотрим обмен данными между программами EViews и МetaТrader 4, а затем с помощью советника в МetaТrader 4 еще раз проанализируем результаты.

3. Обмен данными между EViews и МetaТrader 4

В данной статье используется обмен данными между EViews и МetaТrader 4 при помощи файлов типа .txt.

Алгоритм обмена выглядит следующим образом:

Советник в МetaТrader 4:

  • Формирует файл котировок;
  • Запускает EViews.
  • Запускается по команде из советника;
  • Выполняет программу вычисления прогноза для полученной из советника котировки kotir.txt ;
  • Записывает в файл EViewsForecast.txt результаты прогноза.

Советник в МetaТrader 4:

  • Дождавшись окончания формирования результатов в EViews , читает файл с прогнозом;
  • Принимает решение о входе в позицию или выходе из позиции.

Несколько слов по поводу размещения файлов.

Файлы терминала МetaТrader 4 размещаются в своих обычных каталогах: советник в папке \expert, а индикатор (который не нужен для тестирования) в папке \expert\indicators. Все это находится в папке терминала. Советник устанавливается вместе с другими советниками.

Файлы, которыми обменивается советник с EViews , при работе советника находятся в \ expert \ files , при тестировании советника — в папке \tester\files.

Файл, который советник отправляется для EViews , имеет имя kotir . txt , которое не зависит от выбранного символа и таймфрейма. Поэтому советник можно прикреплять к любому символу, а размер шага прогноза указывается в параметрах советника при его запуске.

EViews возвращает файл с именем EVIEWSFORECAST.txt. В каталог терминала помещается рабочий файл EViews под именем worf.wf1.

В программах EViews, которые прилагаются к статье, указаны каталоги, которые скорее всего не будут совпадать с каталогами, установленными на вашем компьютере. У меня эти программы установлены в корневую папку диска. В EViews придется разобраться с каталогом по умолчанию или указать ваши каталоги (каталоги по умолчанию, которые использует сам EViews, я не использовал).

4. Советник на MQL4

Алгоритм работы советника упрощен по максимуму:

  • Советник прикрепляется к таймфрейму М1 любого символа;
  • Шаг прогноза указывается в минутах в параметрах советника. По умолчанию – шаг прогноза 60 минут (Н1). Прикрепление советника к М1 дает наглядность при рассмотрении результатов тестирования, так как можно сжать график тестирования, переходя к любому старшему таймфрейму;
  • Для прогнозирования в EViews советник формирует файл kotir .txt с количеством баров (наблюдений), указанных в параметрах советника;
  • Если прогноз больше текущей цены, то открывается long ;
  • Если прогноз меньше текущей цены, то открывается short ;
  • Советник открывает не более одной позиции (работает без долива позиции);
  • Вне зависимости от прогноза предыдущая позиция закрывается, а новая открывается. Этот алгоритм открытия позиций совпадает с алгоритмом подсчета прибыльности/убыточности в программе на EViews;
  • Объем открываемой позиции равен 0.1 лота;
  • Стоп лоссы и тэйк профиты не используются (указаны равными в 100 пипсов, хотя в советнике имеется код для установки стопов на расстоянии ошибки прогноза);
  • Рисуется график с указанием величины прогноза и двух линий на расстоянии одной стандартной ошибки прогноза. При просмотре графика из тестера на более мелких таймфреймах, чем тот на котором был прикреплен советник, следует иметь ввиду, что линия прогноза смещена назад, т.е. рисуется прогноз, к которому текущая цена должна прийти в конце периода.

Советник прикрепляем к таймфрейму М1, график из тестера удобнее просматривать на таймфрейме М5.

Исходный код советника на MQL4 для торговли по паре EURUSD в статье не привожу из-за его объемности (около 600 строк). Текст можно посмотреть в файле EvewsMT4.mq4 в архиве EViews_MetaTrader_4.zip, прикрепленном к статье.

5. Результаты тестирования советника

Запустим советник в тестере на таймфрейме М1.

Входные параметры показаны ниже.

Рис. 9. Входные параметры советника

Фрагмент графика тестирования приведен ниже:

Рис. 10. Тестирование советника в режиме визуализации

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

Strategy Tester Report

EURUSD (Euro vs US Dollar)

1 Минута (M1) 2011.09.12 00:00 — 2011.09.16 21:59 (2011.09.12 — 2011.09.17)

Все тики (наиболее точный метод на основе всех наименьших доступных таймфреймов)

StepForecast=60; NumberBars=101; MultSE=2;

Баров в истории

Ошибки рассогласования графиков

Короткие позиции (% выигравших)

Длинные позиции (% выигравших)

Прибыльные сделки (% от всех)

Убыточные сделки (% от всех)

непрерывных выигрышей (прибыль)

непрерывных проигрышей (убыток)

непрерывная прибыль (число выигрышей)

непрерывный убыток (число проигрышей)

Рис. 11. Результаты тестирования советника

Результаты лучше, чем полученные в EViews.

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

Советник сдвигает окно в 118 баров и вычисляется прогноз на 119 бар, т.е. оценка уравнения регрессии всегда производится на 118 барах, поскольку EViews расширяет окно в пределах выборки, а советник двигает окно фиксированной ширины.

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

Таблица имеет следующий вид:

Начало
выборки
Конец
выборки
Факт на
конец
Прогноз
на 1 шаг
Ошибка
прогноза
Прибыль
выборки
Убыток
выборки
Maксимум
просадки
Кол-во
убытков
P/F в
пипсах
P/F в наблюд.Фактор восстан.
12.09.2011 0:0016.09.2011 21:001,37911,37880,00190,05810,15310,024570,380,672,37
12.09.2011 0:0016.09.2011 21:001,37911,37880,00190,05810,15310,024570,380,672,37
09.09.2011 21:0016.09.2011 20:001,37841,37930,00190,05690,16190,024570,350,642,32
09.09.2011 20:0016.09.2011 19:001,37941,37960,0020,05960,16090,024570,370,672,43
09.09.2011 19:0016.09.2011 18:001,37831,37820,00210,06420,15540,024570,410,692,62
09.09.2011 18:0016.09.2011 17:001,37831,38060,0020,06160,16060,024570,380,682,51
09.09.2011 17:0016.09.2011 16:001,38291,38060,0020,06420,15860,024570,40,712,62
09.09.2011 16:0016.09.2011 15:001,37881,37930,0020,06260,15650,024570,40,712,56
09.09.2011 15:0016.09.2011 14:001,37981,380,00210,0630,16330,024570,390,732,57
09.09.2011 14:0016.09.2011 13:001,38081,3810,00220,0620,16560,031890,370,711,95
09.09.2011 13:0016.09.2011 12:001,38091,38130,00210,06020,16790,031890,360,661,89
09.09.2011 12:0016.09.2011 11:001,37921,38080,00210,06660,16130,024570,410,732,72
09.09.2011 11:0016.09.2011 10:001,37951,38260,00210,06660,1670,024570,40,732,72
09.09.2011 10:0016.09.2011 9:001,38381,38470,00220,06520,16680,031890,390,712,05
09.09.2011 9:0016.09.2011 8:001,38561,38540,00220,06750,1650,031890,410,732,12
09.09.2011 8:0016.09.2011 7:001,3861,38560,00220,06710,16520,031890,410,712,11
09.09.2011 7:0016.09.2011 6:001,38611,38570,00220,0670,16630,031890,40,682,11
09.09.2011 6:0016.09.2011 5:001,38521,38550,00220,06550,16810,031890,390,632,06
09.09.2011 5:0016.09.2011 4:001,38441,38510,00220,06620,16740,031890,40,662,08
09.09.2011 4:0016.09.2011 3:001,38481,38690,00220,06540,16830,031890,390,682,06
09.09.2011 3:0016.09.2011 2:001,38791,38750,00220,06940,16240,031890,430,732,18
09.09.2011 2:0016.09.2011 1:001,38651,38790,00220,06980,16340,031890,430,712,19
09.09.2011 1:0016.09.2011 0:001,38811,38830,00220,07260,16040,024570,450,762,96
09.09.2011 0:0015.09.2011 23:001,38761,38820,00220,07210,1620,024570,450,732,94
08.09.2011 23:0015.09.2011 22:001,38851,38840,00220,07180,16140,024570,440,722,93
08.09.2011 22:0015.09.2011 21:001,38881,38830,00220,07370,15970,024570,460,773,01
08.09.2011 21:0015.09.2011 20:001,38851,38740,00220,07290,16040,031890,450,742,29
08.09.2011 20:0015.09.2011 19:001,38671,3860,00220,07210,16040,031890,450,742,27
08.09.2011 19:0015.09.2011 18:001,38561,38340,00220,07210,16280,031890,440,722,27
08.09.2011 18:0015.09.2011 17:001,3851,38610,00230,07020,16510,031890,430,722,21
08.09.2011 17:0015.09.2011 16:001,38851,38240,00230,07390,16380,024570,450,723,02
08.09.2011 16:0015.09.2011 15:001,37731,37840,00210,07190,15560,031890,460,722,26
08.09.2011 15:0015.09.2011 14:001,37951,37940,00210,07260,15370,031890,470,722,28
08.09.2011 14:0015.09.2011 13:001,38141,37920,00210,07360,15640,031890,470,742,31
08.09.2011 13:0015.09.2011 12:001,38021,37640,00210,07120,1590,031890,450,742,24
08.09.2011 12:0015.09.2011 11:001,37691,37530,00210,07190,15680,031890,460,722,26
08.09.2011 11:0015.09.2011 10:001,37651,37320,00210,07210,15640,031890,460,742,27
08.09.2011 10:0015.09.2011 9:001,37221,37180,00210,07160,15380,031890,470,722,25
08.09.2011 8:0015.09.2011 7:001,3711,37160,00210,07290,15420,031890,470,742,29
08.09.2011 8:0015.09.2011 7:001,3711,37160,00210,07290,15420,031890,470,742,29
08.09.2011 7:0015.09.2011 6:001,37231,37270,00210,07160,15470,031890,460,722,25
08.09.2011 6:0015.09.2011 5:001,37261,37250,00210,07110,15640,031890,450,692,24
08.09.2011 5:0015.09.2011 4:001,37191,37310,00210,07110,15630,031890,450,692,24
08.09.2011 4:0015.09.2011 3:001,3741,37440,00210,07130,15470,031890,460,692,24
08.09.2011 3:0015.09.2011 2:001,37481,37470,00210,07050,15470,031890,460,682,22
08.09.2011 2:0015.09.2011 1:001,37431,37420,00210,07150,15440,031890,460,72,25
08.09.2011 1:0015.09.2011 0:001,37381,37430,00210,07140,15440,031890,460,72,25
08.09.2011 0:0014.09.2011 23:001,3751,37430,00210,07240,15320,031890,470,732,28
07.09.2011 23:0014.09.2011 22:001,3751,37360,00210,07270,15320,031890,470,742,29
07.09.2011 22:0014.09.2011 21:001,37511,37350,00210,07340,15320,031890,480,742,31
07.09.2011 21:0014.09.2011 20:001,37481,37160,00210,07220,15550,031890,460,722,27
07.09.2011 20:0014.09.2011 19:001,37141,37120,00210,08120,1450,018960,560,744,3
07.09.2011 19:0014.09.2011 18:001,3711,36970,00210,06920,15770,031890,440,692,18
07.09.2011 18:0014.09.2011 17:001,36731,3690,00210,06950,1540,031890,450,722,19
07.09.2011 17:0014.09.2011 16:001,36871,36930,00210,06950,15480,031890,450,722,19
07.09.2011 16:0014.09.2011 15:001,37041,37040,00210,0660,15910,0318110,410,692,08
07.09.2011 15:0014.09.2011 14:001,3731,370,0020,0660,15770,0318100,420,692,08
07.09.2011 14:0014.09.2011 13:001,37121,36810,0020,0660,15620,031890,420,692,08
07.09.2011 13:0014.09.2011 12:001,36851,36530,0020,06650,15340,031890,430,742,09
07.09.2011 12:0014.09.2011 11:001,36551,36460,0020,06730,15040,031890,450,772,12
07.09.2011 11:0014.09.2011 10:001,36561,36340,0020,07090,150,031890,470,772,23
07.09.2011 10:0014.09.2011 9:001,36251,36250,0020,07250,14610,031890,50,832,28
07.09.2011 9:0014.09.2011 8:001,36311,36380,0020,07190,14650,031890,490,82,26
07.09.2011 8:0014.09.2011 7:001,36411,36430,0020,07070,14810,031890,480,772,22
07.09.2011 7:0014.09.2011 6:001,36351,36480,0020,07240,14810,031890,490,82,28
07.09.2011 6:0014.09.2011 5:001,36471,36560,0020,07240,14760,031890,490,82,28
07.09.2011 5:0014.09.2011 4:001,36651,36760,0020,06670,15360,031890,430,722,1
07.09.2011 4:0014.09.2011 3:001,36941,36830,0020,06750,15040,031890,450,742,12
07.09.2011 3:0014.09.2011 2:001,36821,36820,0020,06720,14980,031890,450,742,11
07.09.2011 2:0014.09.2011 1:001,36841,36860,0020,0670,15120,031890,440,722,11
07.09.2011 1:0014.09.2011 0:001,36791,36860,0020,0670,15140,031890,440,722,11
07.09.2011 0:0013.09.2011 23:001,36781,36910,0020,06790,15070,031890,450,742,14
06.09.2011 23:0013.09.2011 22:001,36921,36980,0020,0660,15170,031890,440,692,08
06.09.2011 22:0013.09.2011 21:001,37081,37050,0020,06520,15120,031890,430,692,05
06.09.2011 21:0013.09.2011 20:001,37191,37090,0020,06520,15120,031890,430,692,05
06.09.2011 20:0013.09.2011 19:001,3711,36910,0020,06520,15170,031890,430,692,05
06.09.2011 19:0013.09.2011 18:001,36771,36690,0020,06660,14850,031890,450,722,09
06.09.2011 18:0013.09.2011 17:001,36781,36770,0020,06660,1490,031890,450,722,09
06.09.2011 17:0013.09.2011 16:001,36981,36590,0020,06250,15550,031890,40,641,97
06.09.2011 16:0013.09.2011 15:001,36581,36430,0020,0650,15130,031890,430,722,04
06.09.2011 15:0013.09.2011 14:001,36651,36360,0020,06430,15270,031890,420,692,02
06.09.2011 14:0013.09.2011 13:001,36391,36190,0020,06590,15520,031890,420,742,07
06.09.2011 13:0013.09.2011 12:001,36171,36280,00210,08240,14320,018960,580,84,36
06.09.2011 12:0013.09.2011 11:001,36161,3610,00210,08240,14350,018960,570,84,36
06.09.2011 11:0013.09.2011 10:001,35821,36310,0020,07950,14350,018960,550,84,21
06.09.2011 10:0013.09.2011 9:001,36541,36560,0020,0770,1460,018960,530,744,07
06.09.2011 9:0013.09.2011 8:001,36551,36640,00210,08130,14420,018960,560,774,3
06.09.2011 8:0013.09.2011 7:001,36791,36730,00220,08340,14350,018960,580,774,41
06.09.2011 7:0013.09.2011 6:001,36851,36680,00220,08280,14480,018960,570,744,38
06.09.2011 6:0013.09.2011 5:001,36761,36690,00220,08790,14060,018960,630,854,65
06.09.2011 5:0013.09.2011 4:001,36691,36530,00220,08210,14580,018960,560,84,34
06.09.2011 4:0013.09.2011 3:001,36351,36390,00220,08210,14280,018960,570,84,34
06.09.2011 3:0013.09.2011 2:001,36371,36460,00220,08210,14280,018960,570,84,34
06.09.2011 2:0013.09.2011 1:001,36571,3640,00220,08250,14070,018960,590,84,37
06.09.2011 1:0013.09.2011 0:001,3661,36390,00220,0850,13840,014160,610,836,03
06.09.2011 0:0012.09.2011 23:001,36781,36550,00220,0830,14160,014160,590,85,89
05.09.2011 23:0012.09.2011 22:001,3661,36130,00220,08060,14240,012360,570,86,55
05.09.2011 22:0012.09.2011 21:001,35721,35850,0020,07310,14140,015260,520,774,81
05.09.2011 21:0012.09.2011 20:001,35761,36010,0020,07140,14320,015260,50,744,7
05.09.2011 20:0012.09.2011 19:001,36071,36370,00210,07120,14060,012960,510,745,52
05.09.2011 19:0012.09.2011 18:001,36321,36190,00210,07120,14050,012960,510,745,52
05.09.2011 18:0012.09.2011 17:001,36091,36410,00210,0730,13780,012960,530,775,66
05.09.2011 17:0012.09.2011 16:001,36841,36590,0020,07130,13340,008360,530,748,59
05.09.2011 16:0012.09.2011 15:001,36651,36360,0020,07270,13430,008360,540,778,76
05.09.2011 15:0012.09.2011 14:001,3631,36010,0020,0720,13480,008360,530,778,67
05.09.2011 14:0012.09.2011 13:001,36031,35940,0020,07520,13040,008360,580,839,06
05.09.2011 13:0012.09.2011 12:001,36231,35890,0020,07420,13040,008360,570,838,94
05.09.2011 12:0012.09.2011 11:001,35971,35610,00190,07370,12910,008360,570,88,88
05.09.2011 11:0012.09.2011 10:001,35611,35510,00190,07290,12750,008360,570,88,78
05.09.2011 10:0012.09.2011 9:001,35561,35520,0020,0720,12830,008360,560,778,67
05.09.2011 9:0012.09.2011 8:001,35361,35320,0020,0720,12710,008360,570,778,67
05.09.2011 8:0012.09.2011 7:001,35191,35540,00190,07030,12880,008360,550,748,47
05.09.2011 7:0012.09.2011 6:001,35831,35790,00190,0720,12240,008360,590,778,67
05.09.2011 6:0012.09.2011 5:001,35911,35820,00190,07150,12240,008360,580,778,61
05.09.2011 5:0012.09.2011 4:001,35931,35890,00190,07130,12240,008360,580,758,59
05.09.2011 3:0012.09.2011 2:001,35831,3610,00190,07460,11920,008360,630,788,99

Таблица 4. Результаты тестирования в EViews

Из таблицы видно, что наша модель (столь примитивная и недоделанная) практически безнадежна. Необходимо ее дорабатывать.

Построим график двух колонок: P/F в пипсах и P/F в наблюдениях.

Рис. 12. Графики прибыльности модели на выборке в 118 баров

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

Проверим на выборке в 238 баров. Получаем следующий график:

Рис. 13. Графики прибыльности модели на выборке в 236 баров


источники:

http://habr.com/ru/post/245641/

http://www.mql5.com/ru/articles/1345