![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здесь нас интересует, в первую очередь, дисперсия и, соответственно, стандартное отклонение. Перепишем его:
sigma = КОРЕНЬ(c*lambda*t), где:
с - некая константа
lambda - средняя величина приращений
t - время.
Вот эта формула - это Альфа и Омега, Инь и Янь Форекса. Грааль, проще говоря.
Разберемся в ней более подробно, с указанием ошибки, которую я допустил.
Смотрю я на твою формулу Эскандер, и вспоминаю как я плясал на этих граблях в 2006 году (ещё до знакомства с форумом).
Аж настольжи нахлынуло.
Сразу попадаем на концептуальные вещи, где требуются не только математические расчеты, но и соответствующий уровень абстрактности мышления, философии, если хотите.
1. ВРЕМЯ t.
Время... Философский персонаж! Камень преткновения мыслителей и философов. Подарок, дарованный нам провидением или, напротив, неизвестность, бездна, в которую не суждено заглянуть? Нет ответа... А ведь он нам нужен! Попробуем разобраться.
Почему мы не рассчитываем дисперсию постоянно от момента запуска Форекса и до его логической смерти?
Ответ очевиден. Еще великие физик Эйнштейн и трейдер Ганн заметили, что дисперсия процесса пропорциональна корню из t.
Честно говоря, не знаю, что служило мерой времени Ганну, но у Эйнштейна это были секунды.
Таким образом, если следить за стандартным отклонением постоянно, то оно растет со временем и ... И ничего особенного. Ни заработка, ни Нобелевки... Ничего.
Поэтому, мы вынуждены рассматривать процесс в строго определенном временном окне наблюдения, надеясь, что в этом окне имеет место быть определенная функция плотности вероятности с соответствующим стандартным отклонением.
Смотрю я на твою формулу Эскандер, и вспоминаю как я плясал на этих граблях в 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 - время.
классное видео, вчера только смотрел, вот сижу который час и думаю как бы треугольник Пифагора в качестве управления капиталом прикрутить в какую-нибудь сетку ордеров
Пока мы не рассматриваем константу с. Она очень важна и к ней мы еще вернемся.
Сейчас я просто покажу на неприятную вещь, которая меня ударила по морде. Да еще как больно, блин...
Раньше я работал с равномерным временем 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, т.к. мы работаем с дискретным временем.
Заранее - спасибо.
Что же делать? Отказаться от потоков Эрланга? Вернуться назад?
Нет!
Путь к Граалю будет продолжен.
Но, сейчас мне нужна помощь.
Прошу уважаемых математиков-программистов подсказать генератор СЧ с распределением Эрланга, который выдавал бы на выходе целые числа, но среднее значение которых строго соответствовало бы порядку потока
По-моему, это должен быть генератор дискретного распределения Паскаля (см. отрицательное биномиальное распределение 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, т.к. мы работаем с дискретным временем.
Заранее - спасибо.
Соберите статистику по количеству чисел генерируемых компьютерными ГСЧ. Всякий раз будете иметь один и тот же результат при достаточно большом числе генераций.
Поэтому пользуйте котир