От теории к практике - страница 376

 
Alexander_K2:

Здесь нас интересует, в первую очередь, дисперсия и, соответственно, стандартное отклонение. Перепишем его:

sigma = КОРЕНЬ(c*lambda*t), где:

с - некая константа

lambda - средняя величина приращений

t - время.

Вот эта формула - это Альфа и Омега, Инь и Янь Форекса. Грааль, проще говоря.

Разберемся в ней более подробно, с указанием ошибки, которую я допустил.

Смотрю я на твою формулу Эскандер, и вспоминаю как я плясал на этих граблях в 2006 году (ещё до знакомства с форумом).

Аж настольжи нахлынуло.

 

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

1. ВРЕМЯ t.

Время... Философский персонаж! Камень преткновения мыслителей и философов. Подарок, дарованный нам провидением или, напротив, неизвестность, бездна, в которую не суждено заглянуть? Нет ответа... А ведь он нам нужен! Попробуем разобраться.

Почему мы не рассчитываем дисперсию постоянно от момента запуска Форекса и до его логической смерти?

Ответ очевиден. Еще великие физик Эйнштейн и трейдер Ганн заметили, что дисперсия процесса пропорциональна корню из t.

Честно говоря, не знаю, что служило мерой времени Ганну, но у Эйнштейна это были секунды.

Таким образом, если следить за стандартным отклонением постоянно, то оно растет со временем и ... И ничего особенного. Ни заработка, ни Нобелевки... Ничего.

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

 
Nikolay Demko:

Смотрю я на твою формулу Эскандер, и вспоминаю как я плясал на этих граблях в 2006 году (ещё до знакомства с форумом).

Аж настольжи нахлынуло.

:))) Это хорошо.

 
 

Теперь смотрите фокус со временем.

Напомню:

sigma = КОРЕНЬ(c*lambda*t), где:

с - некая константа

lambda - средняя величина приращений

t - время.

Выберем скользящее временное окно наблюдения t=14400 сек. (4 часа. Почему именно 4? Это тема для отдельного разговора).

 

2. Средняя величина приращений lambda.

Все физические процессы, подобные броуновскому движению, всегда рассматриваются в предположении о случайном характере соударений частиц, с deltaT -->0 между соударениями.

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

Т.о. если считать lambda как среднюю по времени, это даст одинаковые неверные данные для валютной пары с огромными, но редкими скачками и для пары с частыми, малыми скачками.

Правильно считать lambda как среднее по количеству пришедших котировок за время t.

Перепишем формулу для стандартного отклонения:

sigma = КОРЕНЬ(c*(СУММ(ABS(return))/N)*t), где:

с - некая константа

return - величина приращения в данный момент времени

N - количество котировок за время t

t - время.

 
Nikolay Demko:

классное видео, вчера только смотрел, вот сижу который час и думаю как бы треугольник Пифагора в качестве управления капиталом прикрутить в какую-нибудь сетку ордеров

 

Пока мы не рассматриваем константу с. Она очень важна и к ней мы еще вернемся.

Сейчас я просто покажу на неприятную вещь, которая меня ударила по морде. Да еще как больно, блин...

Раньше я работал с равномерным временем t=1 сек. Экспоненциальные промежутки рассматривал теоретически как возможность работы с потоками Эрланга.

В окне= 4 часа имел:

sigma = КОРЕНЬ(c*(СУММ(ABS(return))/N)*14400).

Но задача была еще не решена. Константа с! Вот ее-то не так просто рассчитать. Я знаю как это сделать, но для этого надо попасть в пространство, где все валютные пары за 4 часа имеют одинаковое количество пришедших котировок за время t. Т.е. попасть в нужный поток Эрланга.

Пока же, я просто положил с=0.01 для пар с JPY и с=0.0001 для всех остальных.

Т.е. использовал формулу:

sigma = КОРЕНЬ(0.01*(СУММ(ABS(return))/N)*14400) для пар с JPY.

sigma = КОРЕНЬ(0.0001*(СУММ(ABS(return))/N)*14400) для всех остальных.

Теперь, думаю, все - пришла пора потоков Эрланга.

Выбрал поток 2-го порядка. Т.е. среднее время считывания котировки = 2 сек. Получаю:

sigma = КОРЕНЬ(0.01*(СУММ(ABS(return))/N)*7200для пар с JPY.

sigma = КОРЕНЬ(0.0001*(СУММ(ABS(return))/N)*7200для всех остальных.

И... Получил по щщам...

 

Что же делать? Отказаться от потоков Эрланга? Вернуться назад?

Нет!

Путь к Граалю будет продолжен.

Но, сейчас мне нужна помощь.

Прошу уважаемых математиков-программистов подсказать генератор СЧ с распределением Эрланга, который выдавал бы на выходе целые числа, но среднее значение которых строго соответствовало бы порядку потока

По-моему, это должен быть генератор дискретного распределения Паскаля (см. отрицательное биномиальное распределение  https://habr.com/post/265321), но не уверен...

Проблема вот в чем.

Если использовать генератор СЧ из https://en.wikipedia.org/wiki/Erlang_distribution (см. раздел Generating Erlang-distributed random variates), то числа в формате real действительно для потока 5-го порядка при lambda=1 имеют среднее арифметическое, моду и медиану = 5. А вот в формате Integer уже мода и медиана = 5, а вот среднее арифметическое = 5.5. Мне нужно, чтобы и в формате Integer все было строго = 5, т.к. мы работаем с дискретным временем.

Заранее - спасибо.

Генераторы дискретно распределенных случайных величин
Генераторы дискретно распределенных случайных величин
  • 2016.01.16
  • habr.com
Данная статья является продолжением поста Генераторы непрерывно распределенных случайных величин. В этой главе учитывается, что все теоремы из предыдущей статьи уже доказаны и генераторы, указанные в ней, уже реализованы. Как и ранее, у нас имеется некий базовый генератор натуральных чисел от 0 до RAND_MAX: С дискретными величинами все...
 
Alexander_K2:

Что же делать? Отказаться от потоков Эрланга? Вернуться назад?

Нет!

Путь к Граалю будет продолжен.

Но, сейчас мне нужна помощь.

Прошу уважаемых математиков-программистов подсказать генератор СЧ с распределением Эрланга, который выдавал бы на выходе целые числа, но среднее значение которых строго соответствовало бы порядку потока

По-моему, это должен быть генератор дискретного распределения Паскаля (см. отрицательное биномиальное распределение  https://habr.com/post/265321), но не уверен...

Проблема вот в чем.

Если использовать генератор СЧ из https://en.wikipedia.org/wiki/Erlang_distribution (см. раздел Generating Erlang-distributed random variates), то числа в формате real действительно для потока 5-го порядка при lambda=1 имеют среднее арифметическое, моду и медиану = 5. А вот в формате Integer уже мода и медиана = 5, а вот среднее арифметическое = 5.5. Мне нужно, чтобы и в формате Integer все было строго = 5, т.к. мы работаем с дискретным временем.

Заранее - спасибо.

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

Поэтому пользуйте котир