Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2063
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
С гепами понятно, а как это поможет с выпадениями котировок? Не лучше уже считать для H1?
Когда один бар = одно приращение, то не страшно если несколько баров потеряются. Если же приращение считается по двум барам, то будет много выбросов.
" в качестве приращения лучше брать close[i]-open[i] " - может лучше в процентном изменении?
Да, так лучше. Можно ещё брать приращение логарифмов.
close[i-1] и open[i] отличаются на 1 тик. Смысл бороться с 1м тиком?
Практически гарантированное избавление от гэпов и пропусков в истории.
Практически гарантированное избавление от гэпов и пропусков в истории.
Гэп может произойти в любой другой тик в течении минуты. Пропущенные бары надо заполнять с последней известной цены последнего известного бара.
Гэпы равномерно распределённые среди баров не особо страшны. Неприятны те, что скучены в определённом времени, а это обычно разрывы между барами.
"Пропущенные" бары - неоднозначное понятие, это могут быть праздники, короткие сессии и тд или просто выпавшие бары по совершенно непонятным причинам. Для себя решил, что проще считать приращение по одному бару, чем изображать Шерлок Холмса, разбираясь с несколькими минутными барами десятилетней давности.
Делаю так:
1) создаю массив индексов строк с длиной равной числу строк, заполняю его значениями от 0 до N строк
2) перемешиваю этот массив
где RandomInteger() - любой вариант из тех ГСЧ
3) потом беру в цикле все подряд значения, этих индексов и по нему из основного массива нужную строку, она получается псевдо-случайной после перемешивания индексовПопробовал этот алгоритм с функцией рандома, что ранее дали. Получается, что есть смещение к первой половине числового ряда, если взять первых n значений из получившегося массива и потом по порядку фильтровать массив. И наблюдаются группы подряд, что так же не очень, но лучше, чем ничего.
Попробовал этот алгоритм с функцией рандома, что ранее дали. Получается, что есть смещение к первой половине числового ряда, если взять первых n значений из получившегося массива и потом по порядку фильтровать массив. И наблюдаются группы подряд, что так же не очень, но лучше, чем ничего.
Странно. Интересно, как это можно объяснить?
У меня закоментирована еще одна версия, но она мне не понравилась по логическим соображениям:
Какой RandomInteger() используете? Я XOR.
close[i-1] и open[i] отличаются на 1 тик. Смысл бороться с 1м тиком?
Вы не правы) они отличаются не на 1 тик, эти значения будут равны.
https://www.mql5.com/ru/docs/runtime/testing
Новый минутный бар открывается не в тот момент, когда начинается новая минута (количество секунд становится равным 0), а когда приходит тик - изменение цены хотя бы на один пункт.
Ищем Di - средний квадрат приращений за i-ю минуту дня. Затем делим все приращения на соответствующее им di=sqrt(Di). Суммируем отнормированные приращения и уже у нового ряда ищем отклонения от СБ. Цена искажается, зато время не меняется.
В чем смысл 2х месяцев на каждую минутку? Изменения на каждой минуте будем малым, а расчеты большие. И минутки назад или месяц назад и месяц вперед. Код для первого бара.
Новый ряд
Все правильно?
Все правильно?
Вроде нет.
Я понял алгоритм так: допустим сейчас время 10:00, считаешь Di именно для баров m1 этого времени. a потом для 10:00 минутки (close[i] - open[i])/di и так для каждой минуты.