Bayesian regression - Делал ли кто советник по этому алгоритму? - страница 45
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
http://www.quantalgos.ru/?p=1898 может автору топика пользу принесет...
Генератор псевдослучайных чисел. (ГПСЧ)
По предложенному выше, методу полярных координат, преобразовал ГПСЧ МТ4 в ГПСЧ с нормально распределённой случайной величиной.
Чтобы визуально убедится в правильности работы кода спроецировал на ценовой график результаты работы.
Вот что показывает штатный ГПСЧ после 1000 обращений. Площади прямоугольников гистограмм пропорциональны количеству сгенерированных случайных чисел попавших в этот диапазон вертикальной шкалы.
А теперь преобразовав эти тысячи обращений по формулам метода получается
вполне адекватный колокольчик.
По предложенному выше, методу полярных координат, преобразовал ГПСЧ МТ4 в ГПСЧ с нормально распределённой случайной величиной.
К попытке применения формулы Байеса. Ещё раз.
Задача. Используя теорему Байеса определить какое значение ещё не пришедшего тика наиболее вероятно.
Дано. Временной ряд x,y.
y=ax+b Линия от последнего тика к будущему.
P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y); (1) Формула Байеса.
P(a,b|x,y)- вероятность того, что коэффициенты a и b соответствуют координатам x и y будущего тика.
Нужно найти такие a и b, что бы эта вероятность ( правильней сказать вероятностная мера) была максимальной.
P(x,y|a,b) - в качестве функции правдоподобия возьмем реальную гистограмму распределения тиков по ценовым уровням. Функция задаётся двухмерным массивом (матрицей) : ценовой диапазон - вероятность, процентное соотношение тиков попавших в этот диапазон к общему числу тиков.
P(b) - в качестве априорной вероятности b берется нормальное распределение приращений. Используется ГПСЧ с нормально распределенной величиной.
P(a) коэффициент а определяет наклон прямой и знак прогнозируемого приращения. Пока мыслю использовать код линейной регрессии выложенный мной раннее. Т.е принять вероятность найденного там коэфф. а за единицу. А в (1) подставлять вероятность Р(а) вычисленную с учетом разности этого а и вычисленного для данного y.
Возможно у вас есть мысли по поводу как ведет себя знак приращений каждого тика?
Тики в формулу подставлять точно не стоит. Нагенерировать на ФОРТС этих тиков может любой желающий, что каждый день и делается.
Проблема не в мат. методах, скорее. А в адекватности выбора данных, к которым применять.
Зачем вообще брать искусственные тики? Вы можете и без высшей математики научиться их прогнозировать. Спросите MQ как.
Ну так функция правдоподобия P(x,y|a,b) в (1) и есть реальное распределение реальных тиков (тиковых объёмов) . Крайне редко нормальное. А P(a) и P(b) корректирующие вероятности, по законам принятым в качестве априорных вероятностей.
Что спросить MQ? Принцип моделирования тиков в тестере стратегий? Да , должен быть какой то принцип. Возможно зная его, и создаются тестерные "граали". Но я пока не представляю разработку в режиме тестирования, т.к не имею ни тиковой истории, ни практики работы с ней. Всё будет в реал тайме.
Заинтересовали ваши слова:
"Я вообще в своих экспериментах не делаю регрессию и значений цены (или ее преобразований), я предсказываю знак, но можно сказать, что это тоже часть ценовой информации.
Мои ошибки выглядят так:
0 1
0 0,58 0,42
1 0,43 0,57
Или примерно так исходно:
1 - верно, 0 - ошибка: 1, 1, 0, 0, 0, 1 , 1, 1, 0, 1
И полученное распределение вероятности должно максимально отличаться от 0,5 / 0,5. Если получить взаимную незасисимость таких исходов, то мы придем к биномиальному распределению, а для него много-много всяких формул есть и статистические тесты. " Конец цитаты.
Что , действительно биноминальное распределение рулит в случае предсказания знака? Что такое взаимная независимость исходов? Спасибо.
Ну так функция правдоподобия P(x,y|a,b) в (1) и есть реальное распределение реальных тиков (тиковых объёмов) . Крайне редко нормальное. А P(a) и P(b) корректирующие вероятности, по законам принятым в качестве априорных вероятностей.
Что спросить MQ? Принцип моделирования тиков в тестере стратегий? Да , должен быть какой то принцип. Возможно зная его, и создаются тестерные "граали". Но я пока не представляю разработку в режиме тестирования, т.к не имею ни тиковой истории, ни практики работы с ней. Всё будет в реал тайме.
Заинтересовали ваши слова:
"Я вообще в своих экспериментах не делаю регрессию и значений цены (или ее преобразований), я предсказываю знак, но можно сказать, что это тоже часть ценовой информации.
Мои ошибки выглядят так:
0 1
0 0,58 0,42
1 0,43 0,57
Или примерно так исходно:
1 - верно, 0 - ошибка: 1, 1, 0, 0, 0, 1 , 1, 1, 0, 1
И полученное распределение вероятности должно максимально отличаться от 0,5 / 0,5. Если получить взаимную незасисимость таких исходов, то мы придем к биномиальному распределению, а для него много-много всяких формул есть и статистические тесты. " Конец цитаты.
Что , действительно биноминальное распределение рулит в случае предсказания знака? Что такое взаимная независимость исходов? Спасибо.
Использование тиков для прогноза по-моему опасно, и модель должна настраиваться для каждого брокера отдельно.
Если брать тики из тестера стратегий - то будет серьёзное отличие от реальных, ибо тики в тестере генерируются по шаблону из ohlc значений минутных баров (https://www.mql5.com/en/articles/75). Поэтому скальперов никто никогда не тестирует, а сразу ставит на реальный счёт и оптимизирует по ходу дела.
Насчёт реальных тиков - они могут очень сильно отличаться от брокера к брокеру. Например в этой теме https://www.mql5.com/en/forum/64228/page2#comment_1960403 ( https://c.mql5.com/3/78/tbd.png ) приатачен скриншот, это распределение приращений тиков за один и тотже промежуток времени у двух разных брокеров. Длину промежутка не помню, что-то от дня до недели. В целом они совпадают, но у одного из них в два раза больше тиков без изменения цены. Если сравнить десяток брокеров то думаю возможны огромные различия, особенно у всяких кухонь с "внезапными свечами".
Как вариант, можно убирать все тики без изменений цены. Потом, есть нюанс что событие OnTick() в эксперте может пропускаться, и тогда в терминал придёт уже новая цена с пропусом предыдущей. Тобишь не 1.23456 -> 1.23490 -> 1.23410, а просто 1.23456 -> 1.23410. И вместо двух изменений ваша модель получит одно.
Получится что промежуток времени между двумя соседними тиками не определён, и будут пропуски данных, я думаю это плохо.
Попробовать всёже стоит, вам надо использовать MT4 и программу Tickstory Lite (есть бесплатная версия) чтоб вставить в тестер реальные тики (берутся от брокера Dukascopy). Только MT4 терминал надо использовать с билдом меньше 950, иначе бесплатная версия tickstory будет делать тестовые данные с нулевым спредом.
Я что-то пробовал делать с тиками, вроде найти среднее, и покупать-продавать если текущая цена сильно отклонилась от средней. Если и был какой-то профит, то спред всё съедал, и я ушёл в таймфреймы покрупнее.