- PVSM.RU - https://www.pvsm.ru -
Осваивая новое направление в программировании (программирование под платформу MetaTrader), мне пришла идея попробовать свои силы в чем-то большем. Например, найти какой-то нестандартный способ прогнозирования движения цен на валютные пары.
Изначально, предпринимались попытки реализовать либу со всеми статистическими показателями, но на полпути я обнаружил, что таковые уже существуют:
Проанализировав их содержимое, я понял одну простую вещь…
Все функции, описанные и реализованные в вышеизложенных исходниках являются основой стандартных торговых индикаторов.
Торговый индикатор — это прежде всего экономико-математическая модель, представляющаяся в удобном виде, чаще всего в виде линий на графике или под ним. Он рисуется вслед за изменениями в цене или других данных о рынке.
Все они берут за основу статистику и математику, а именно: аппроксимацию и интерполяцию, расчет средних значений различных порядков, расчет гистограмм распределения и др. Данные таких индикаторов основываются на показаниях цены в зависимости от времени.
Количество формул просто внушало! Затея казалась практически нереальной, по-этому я решил отложить в сторону мат. расчеты и использовать шаблонный подход.
Попытавшись следовать примеру индикаторов, я пытался программно анализировать цену на всем историческом промежутке времени. За основу брал размер бара, его объем и направление:

Результат оказался нулевым! Анализируя только характеристики бара, практически не возможно спрогнозировать дальнейшее поведение тренда.
Далее были предприняты попытки найти некие «шаблоны», состоящие из нескольких баров. То-есть, теперь, за основу бралось понятие шаблона, или как я это называю — маска. Также, было введено новое понятие — длина маски.
Соорудив «пирамиду» из вложенных циклов, я запустил первый проход по всей истории в поисках схожих масок длиной в 6 баров. Результат меня шокировал! Программа ничего не нашла за последние 12лет! Совпадений — 0! Что не так?
После нескольких часов «допиливания» алгоритма, выяснилось, что не в нем дело. Все дело в точности вычислений. Действительно, практически нереально найти одинаковые маски такой длины. Не долго думая, добавляю внешний параметр — максимальная точность вычислений. Пробуем опять тестировать, только уже с маской в 3 бара и максимальной точностью 90 процентов. Результат опять шокирует. 206 масок найдено, причем расположены они одна на одной:

Попытки изменять длину маски или точность приводили всегда то к нулевому результату, то к «куче» масок, в которой практически ничего нельзя разобрать, что уж говорить о прогнозировании. И снова провал.
После двух абсолютно провальных попыток реализовать индикатор «моей мечты», который, опираясь на статистику, сможет отвечать на вопрос «Что будет завтра?», я абстрагировался и решил тотально поменять алгоритм работы с трендом.
Я оставил позади, идею непосредственного анализа цены, и подключил мат. аппарат, а точнее его реализацию — торговые индикаторы.
По-сути, если рассуждать логически, индикаторы всесторонне описывают состояние рынка. Данное утверждение можно даже не аргументировать, это и так понятно. Погрузившись в вопрос, из него выплывает, что чем больше разнотипных индикаторов мы используем, тем более точным является наше описание текущего состояния тренда.
И тут наступил переломный момент! Мы же можем получать не только значения цены, по историческим данным, но и так-же, беспрепятственно, мы способны рассчитать состояние тренда в любой момент истории.
Остается только техническая часть вопроса.
В результате «третьего шага», был разработан алгоритм анализа текущего состояния тренда и поиска шаблонных ситуаций в истории. Данная программка успешно показала хороший публичный прогноз на конкурсе идей от 15.03.2012 [3]. При следовании указаниям этого прогноза, была возможность заработать более 1500пунктов за 15.02-16.02.2012. В данный момент проходят массовые доработки и оптимизации кода (т.к. вычисления получились ну очень тяжелыми), и уже в скором времени, я выложу его на всеобщее обозрение.
Наступив на кучу граблей, теперь уже с уверенностью, могу дать пару советов начинающим трейдерам/исследователям/программистам:
1. Не пытайтесь анализировать конкретные значения цены.
2. Цена — это функция от спроса, предложения и брокерских уловок.
3. Пытайтесь подходить к исследованию вопросов прогнозирования со стороны трейдера, брокера и программиста.
Успешных вам прогнозов!
1. Краткое определение индикаторов взято с сайта: http://infofx.ru/ [4]
2. Ссылки исходных кодов ведут на решения неизвестных мне людей. Но могу вас уверить, эти сорцы не способны навредить вашему компьютеру, т.к. это файлы обычного текстового формата.
3. К сожалению, нулевая карма не позволяет писать в «Финансы». Адаптировал топик под данный хаб. Как только смогу — перенесу.
4. Я открыт для обсуждения данного вопроса. Буду рад любому замечанию или дополнению.
Автор: fxstats
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/3947
Ссылки в тексте:
[1] codebase.mql4.com/ru/5933: http://codebase.mql4.com/ru/5933
[2] codebase.mql4.com/ru/732: http://codebase.mql4.com/ru/732
[3] конкурсе идей от 15.03.2012: http://ideax-nescafe.com.ua/ideas/green/kompaniya-po-stvorennyu-bezk
[4] http://infofx.ru/: http://infofx.ru/torgovye-metody/torgovye-indikatory/
Нажмите здесь для печати.