Где все началось Освоение нового направления в программировании (программирование для платформы Метатрейдер ), у меня возникла идея попробовать свои силы в чем-то большем.
Например, найдите какой-нибудь нестандартный способ прогнозирования движения цен валютных пар.
Изначально были попытки реализовать библиотеку со всеми статистическими показателями, но в середине я обнаружил, что они уже существуют:
Проанализировав их содержимое, я понял одну простую вещь.Все функции, описанные и реализованные в приведенных выше исходных кодах, составляют основу стандартных торговых индикаторов.
Для справки Торговый индикатор – это, прежде всего, экономико-математическая модель, представленная в удобной форме, чаще всего в виде линий на графике или под ним.
Он рисуется после изменения цены или других рыночных данных.
Все они основаны на статистике и математике, а именно: аппроксимация и интерполяция, расчет средних значений различных ордеров, расчет гистограмм распределения и т.д. Данные таких индикаторов основаны на показаниях цен в зависимости от времени.
Количество формул было просто впечатляющим! Идея показалась почти нереальной, поэтому я решил отложить коврик в сторону.
расчеты и использование шаблонный подход .
Как это было
Первый шаг (неудача) Следуя примеру индикаторов, я попробовал программно проанализировать цену за весь исторический период времени.
В основу лег размер бара, его объем и направление:
Результат был нулевой! Анализируя только характеристики бара, спрогнозировать дальнейшее поведение тренда практически невозможно.
Второй шаг (провал) Далее были предприняты попытки найти некие «паттерны», состоящие из нескольких тактов.
То есть теперь за основу была взята концепция шаблона, или как я это называю - маска .
Также была введена новая концепция - длина маски .
Построив «пирамиду» из вложенных циклов, я запустил первый проход по всей истории в поисках похожих масок длиной в 6 тактов.
Результат меня шокировал! Программа за последние 12 лет ничего не нашла! Матчей – 0! В чем дело? После нескольких часов «доработки» алгоритма выяснилось, что проблема не в этом.
Все дело в точности расчетов.
Действительно, найти одинаковые маски такой длины практически невозможно.
Не долго думая добавляю внешний параметр - максимальная точность расчета .
Попробуем провести тестирование еще раз, только на этот раз с маской в 3 полоски и максимальной точностью 90 процентов.
Результат снова шокирует. Было найдено 206 масок, и они располагались одна на другой:
Попытки изменить длину маски или точность всегда приводили либо к нулевому результату, либо к «куче» масок, в которых практически ничего нельзя было разобрать, не говоря уже о прогнозировании.
И снова провал.
Третий шаг – долгожданное разъяснение После двух абсолютно неудачных попыток реализовать индикатор «моя мечта», который на основе статистики сможет ответить на вопрос «Что будет завтраЭ», я абстрагировался и решил полностью изменить алгоритм работы с трендом.
.
Я оставил идею прямого анализа цен и подключил мат. аппарат, вернее его реализация - торговые индикаторы .
На самом деле, если рассуждать логически, показатели всесторонне описывают состояние рынка .
Это утверждение даже не нужно аргументировать, оно и так ясно.
Погрузившись в вопрос, выясняется, что чем больше различных типов индикаторов мы используем, тем точнее наше описание текущего состояния тренда.
И вот наступил переломный момент! Мы можем получать не только значения цен на основе исторических данных, но и беспрепятственно рассчитывать состояние тренда в любой момент истории.
Осталась только техническая часть вопроса.
Как это закончилось
В результате «третьего шага» был разработан алгоритм анализа текущего состояния тренда и поиска закономерностей в истории.
На скриншоте пример работы программы, а именно одна из найденных масок.
Он характеризуется двумя показателями: 1. точность , который рассчитывается по формулам расчета коэффициента корреляции, но с небольшими корректировками диапазона выходных данных (оставлены только значения > 0, т.к.
<0 is a completely opposite trend); 2. коэффициент волатильности , я рассчитываю этот показатель на основе высоты текущая и найденная маски, поэтому я получаю процентные значения > 0. Помимо этих показателей учитывались различные виды дисперсии, линейные и стандартные отклонения, ранговая корреляция, конкордантность и т.п.
, но они не использовались при расчете прогноза, поскольку уже заложены в нем косвенно, в виде торговых показатели (с аппроксимацией или без нее).
Чтобы было проще понять логику, взгляните на схему:
1. Цена формируется и предоставляется брокером;
2. Индикаторы, считывая значения цен, выдают статистические значения (в виде линий или гистограмм на графике).
Все они имеют открытый исходный код и доступны по умолчанию в любом торговом терминале; 3. Состояние тренда рассчитывается на основе значений многих стандартных индикаторов (их список хорошо виден на скриншотах в правой части таблицы).
Расчет каждого индикатора позволяет упростить схему анализа направления тренда: вверх – зеленый (1) прямоугольник, вниз – красный (0).
Сочетания таких единиц и нулей (78 символов) я называю трендовым состоянием; 4. Мои расчеты основаны на простом анализе приведенных выше состояний.
После получения данных о цене и времени я просто смотрю на дальнейшее поведение рынка и рассчитываю их общие значения, волатильность и среднее арифметическое.
Как видите, ничего сложного.
Эта программа успешно продемонстрировала хороший общественный прогноз по конкурс идей от 15.03.2012 .
Следуя инструкциям данного прогноза, появилась возможность заработать более 1500 баллов за 15.02-16.02.2012. На данный момент код проходит масштабную доработку и оптимизацию (так как расчеты оказались очень тяжелыми), и скоро я выложу его на всеобщее обозрение.
выводы
Наступив на массу ошибок, теперь с уверенностью могу дать пару советов начинающим трейдерам/исследователям/программистам: 1. Не пытайтесь анализировать конкретные значения цен.2. Цена является функцией спроса, предложения и брокерских уловок.
3. Попробуйте подойти к изучению вопросов прогнозирования со стороны трейдера, брокера и программиста.
Удачи в ваших прогнозах!
Подвал
1. Краткое определение показателей взято с сайта: http://infofx.ru/ 2. Ссылки на исходный код ведут к решениям неизвестных мне людей.Но могу вас заверить, что эти источники не способны нанести вред вашему компьютеру, потому что.
Это файлы в текстовом формате.
3. К сожалению, нулевая карма не позволяет написать в «Финансы».
Я адаптировал тему для этого хаба.
Я перенесу встречу, как только смогу.
4. Я открыт для обсуждения этого вопроса.
Буду рад любым комментариям и дополнениям.
Теги: #Программирование для MetaTrader #статистика #mql4 #финансы для всех #программирование
-
Искусство Быстрой И Частой Доставки Товара
19 Oct, 24