Bayesian regression - Делал ли кто советник по этому алгоритму? - страница 46

 
Yuri Evseenkov:

К попытке применения формулы Байеса. Ещё раз.

Задача. Используя теорему Байеса определить какое значение ещё не пришедшего тика наиболее вероятно.

Дано. Временной ряд  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.

Возможно у вас есть мысли по поводу как ведет себя знак приращений каждого тика?


Набросал 2 индикатора, работают на тиках. Первый определяет A и B для линейной регрессии (на всякий случай для bid и ask отдельно), и рисует линию. Второй - гистограмма тиковых значений (красный - Ask, синий - Bid). Каждый бар тиковых графиков это новый тик, они по времени не совпадают с барами самого чарта.

Это всё что я понял из поста. А что дальше? Если пойму логику то доделаю. 


Файлы:
 
Dr.Trader:

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

Насчёт реальных тиков - они могут очень сильно отличаться от брокера к брокеру.

Согласен. Я писал выше. Повторюсь.

Форекс это множество ДЦ, форекс-контор, кухонь- европейских, китайских, багамских,бермудских... Их тьма. Ни одна из них не доминирует и не вносит в ценоообразование определяющего вклада, так же и ни один игрок на рынке. Предположение основано на Центральной предельной теореме теории вероятности (ЦПТ) :

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

Как я это понимаю применительно к форексу. Если собрать в одном баре М5 все тики ВСЕХ ДЦ (миллионы тиков) то распределение тиков внутри бара будет близко к нормальному. И  чем старше таймфрейм тем ближе.  У каждого конкретного ДЦ свой поток котировок отличающийся от доминирующего глобального потока мерой испорченности этого ДЦ. Этот доминирующий поток на графике представляет собой какую то кривую линию ( уж точно не прямую!) от которой никакой ДЦ не может далеко отойти.  

Здесь , в ветке, скептически отнеслись к википедийной формулировке ЦПТ. Мне тоже она кажется некорректной. Хотя с тех пор встречал в других источниках именно эту формулировку. Даже в справочнике MQL4 есть пример индикатора по этой формулировке.

ИМХО на достаточно большом количестве приращений, в период слабого воздействия фундаментальных факторов, ЦПТ рулит.

 
Dr.Trader:

Набросал 2 индикатора, работают на тиках. Первый определяет A и B для линейной регрессии (на всякий случай для bid и ask отдельно), и рисует линию. Второй - гистограмма тиковых значений (красный - Ask, синий - Bid). Каждый бар тиковых графиков это новый тик, они по времени не совпадают с барами самого чарта.

Это всё что я понял из поста. А что дальше? Если пойму логику то доделаю. 


Я хочу рассчитать вероятности по формуле Байеса. Линейная регрессия и найденный коэффициент a применяются только для расчета априорной вероятности Р(а). 
 

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

Но нам это всё равно не подходит, мы же работаем с котировками одного конкретного брокера, и нормальное распределение вряд ли будет. Я немного понаблюдал за гистограммой, мне брокер даёт максимум 4000 тиков (это минут 20), я их все и использую для гистограммы. По форме это больше напоминает лежащий на боку полу-элипс. Если цена начинает расти/падать - у элипса отрастает тонкий бок, но со временем он опять принимает свою форму. Но иногда и две вершины бывает. Можно попробовать описать эту усреднённую фигуру каким-то другим распределением, и использовать его в расчётах (и не гаусово). Если делать гистограмму на малом количестве тиков, например сто, то там просто бесформенное постоянно скачущее распределение, не думаю что с этим что-то получится, нужна тысяча или больше тиков.

 

тут на картинке у гистограммы  правая треть появилась от быстрого изменения цены, потом всё в целом должно принять форму как левые две трети.

 
Dr.Trader:

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

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

Это другой вопрос. Он касается практического применения.

В формуле (1) функция правдоподобия Р(x,y|a,b) и есть реальная гистограмма реальных тиков реального конкретного брокера. Например  вероятность Р(x,y|a,b)=0.12 если 12% от  всех тиков в окне попадают в диапазон y(цена)+-диапазон(задаётся). Гистограмму я строю в профиль.



Далее идут корректирующие множители, априорные вероятности P(a) и P(b). Так вот, в качестве P(b) я выбрал нормальное распределение ПРИРАЩЕНИЙ цены. Почему, написано в предыдущих постах. 

 

Я прочитал документ в первом посте, что-то всё совсем плохо получается.

Не осилил многие формулы, поэтому вот просто вольный пересказ. У автора есть bid и ask цены на биткоин за полгода, с интервалом в 10 секунд. Он делает программу (классификатор) которая будет принимать текущие цены, и возвращать три сигнала - на покупку, продажу, и просто удержание открытых позиций. Прогноз делается на 10 секунд вперёд. И тобишь каждые 10 секунд программа должна принимать новые данные и опять всё считать. Исходные данные делятся на несколько векторов, и он использует эти вектора для прогноза цены. Классификатор принимает три массива данных - один за прошлых 30 минут, второй за прошлых 60 минут, третий за прошлых 120 минут (каждый массив это по прежнему цены с интервалом в 10 секунд). Дальше я не понял. Формулы очень напоминают нейронку, тобишь каждому входному значению соответсвует некий вес. Но эти веса применяются на три массива сразу. А дальше внезапно, оказывается что веса найти никак не полчится (но ведь у него нейронка же, о чём он?), и надо пробовать все варианты. Эмпирически автор вывел какуюто формулу, которая должна помочь с оптимизацией весов, отбраковывая то что заведомо не подходит, и где-то там и используется Байесовская регрессия. Ещё результат регрессии возможно используется как входное значение для классификатора. 

По моему это похоже на семестровую работу студента, сделанную за пару ночей до сдачи. Пруфов заработка нету :) 

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

 
Я не осилил англоязычный  первый пост. Пытаюсь разобраться по примерам использования теоремы Байеса в других областях. И пытаюсь просто посчитать вероятности наступления той или иной цены используя формулу Байеса. И нормальное распределение совсем не обязательный атрибут. Просто  пока это одна из гипотез одной из априорных вероятностей.
 

Попалось две статьи по теме ветки - может быть будут полезны энтузиастам

Статья 1.

 

Bayesian regression with STAN: Part 1 normal regression

Статья 2

Bayesian regression with STAN Part 2: Beyond normality

 Каждая из статей - это реклама двух книг с аналогичным названием

Bayesian regression with STAN: Part 1 normal regression
Bayesian regression with STAN: Part 1 normal regression
  • Lionel Hertzog
  • datascienceplus.com
This post will introduce you to bayesian regression in R, see the reference list at the end of the post for further information concerning this very broad topic. Bayesian regression Bayesian statistics turn around the Bayes theorem, which in a regression context is the following: $$ P(\theta|Data) \propto P(Data|\theta) \times P(\theta) $$...
 

Вы, - инженеры, физики, радисты - такие странные.....

Много раз Вам говорилось тут, что квонты, алготрейдеры, маркет-мейкеры - они не идиоты, что они ХОРОШО разбираются в математике, что им не платят ПРОСТО ТАК по 100К+ зелени в год + бонус, но до вас всех это похоже не доходит.

Цена на биржевом рынке представляет собой самовыражение СЛОЖНОЙ системы, поэтому любая полезная (мало-мальски адекватная) модель цены - НЕ МОЖЕТ БЫТЬ ПРОСТОЙ. Да, там может быть внутри Байесовская регрессия, но только в виде вспомогательного численного метода. А вы тут бросаетесь стадом на "этот ваш хворекс, да мы его вот тута сичас одним только Байесом затопчем!".

Ну да ладно, может вас хоть это вот проймёт: список математических методов, активно применяемых в трейдинге большими маркет-мейкерами, банками и хедж-фондами. Этот список разделён к тому ещё и по узким специальностям, то есть по видам торгуемых финансовых инструментов и по видам прогнозирования в банках. Этот список выложен одним из БЫВШИХ старших сотрудников Citi и JPMorgan. Список этот не секретный, его можно вычислить по 5-10 книгам по финансовой математике (на английском). Но на русском форуме, да ещё в таком полном виде - этот список редкость.

Data Scientist, Statistician
25000 грн
Описание вакансии
PROFESSIONAL REQUIREMENTS (we value the desire to learn on the go the most)

    advanced knowledge of Statistics and time series:Stochastic processesTools: SSA/SVD, RSSA, FIMA/ARFIMA, Nonlinear Autoregressive Exogenous Model (NARX), (N)GARCH and its derivatives, Hurst Exponent and its applications, Recurrence quantification analysis (RQA)
    Programming experience (or ready to learn) in Python (and set of libraries for all things Statistical)
    data analysis libraries in Python (theano, keras, Torch, Pandas, NumPy, scikit-learn) or their equivalents in R
    some experience with Machine Learning, collaborative filtering, cluster analysis, Graphs Theory
    other blended approaches: ANFIS (adaptive network-based fuzzy inference system)
    Neural Networks: unsupervised learning: RNN (Recurrent Neural Networks), FNN, RBF, etc.

TASKS & ENVIRONMENT:
    statistical analysis of financial data, econometric applications

Модераторам: удалите плиз случайно не-быстро-удалённую ссылку на оригинал источника, у меня не получается, она всё равно висит у Вас в базе форума в подвале этого поста. А то подумают, что это реклама. Спасибо.

Все вакансии компании TenViz LLC
Все вакансии компании TenViz LLC
  • www.work.ua
New York, US, based product (services) company with growing sales on 3 continents and 25−35 employees and contractors. We have a growing team in Ukraine, and are hiring full- and part-time people with...
 
Machine Learning, Neural Networks analyst
28000 грн

Описание вакансии

PROFESSIONAL REQUIREMENTS (we value the desire to learn on the go the most):

Knowledge of Artificial Neural Networks and Machine Learning, including:

    FeedForward Neural Network (FNN)
    Recurrent Neural Networks (RNN) family: including Long-Short Term Memory Model (LSTM)
    CNN — Convolutional Neural Networks
    Radial Basis Function (RBF)
    blended approaches ANFIS (Adaptive Network-based Fuzzy Inference System)
    Programming experience (or ready to learn) in Python (and set of libraries for all things Statistical)
    Machine Learning and data analysis libraries in Python (theano, keras, Torch, Pandas, NumPy, scikit-learn)
    additionally, good knowledge of R and/or Matlab would be helpful

RELATED AREAS OF KNOWLEDGE:

    advanced knowledge of Statistics and time series (Stochastic processes and Tools): ARFIMA, Nonlinear Autoregressive Exogenous Model (NARX), Wavelet Transforms
    spectrum estimation models — Singular Spectrum Analysis (SSA) (SVD)
    Collaborative filtering, Cluster analysis, Graphs Theory

TASKS (prioritized order):

    statistical analysis of financial data, econometric applications
    building services and frameworks for interactive distributed query processing over large volumes of financial markets data