Обсуждение статьи "Архитектура системы машинного обучения в MetaTrader 5 (Часть 1): Утечка данных и исправление меток времени"
Бары, ориентированные на активность, не решают всех проблем, которые вы упомянули для временных баров. Например, вы написали:
The Subtle Intra-Bar Leakage: However, a more subtle form of data leakage can still occur within the very formation of that time bar. If a significant event transpires midway through a 1-minute bar (e.g., at 09:00:35), any features derived from that bar (such as its high price or a flag for the event) will inevitably incorporate this information by the bar's end.
Если вы строите пользовательские бары равного объема, равного диапазона или другие тиковые бары, вы все равно пометите такой бар одной меткой, и он будет сливать (точнее, размывать) информацию о высокой цене по всему бару.
Единственный способ решить эту проблему - строить "бары" с учетом специфических особенностей (которые вы собираетесь использовать). Например, если основными характеристиками являются максимумы или минимумы, стоит попробовать, возможно, зигзагообразные "бары" с экстремумами, отмеченными точным временем.
На самом деле, подход с постоянными таймфреймами, да еще и ограничивающий их М1, проблематичен в контексте утечки данных в МТ5. Маркировать бары М1 временем окончания не намного лучше, чем временем начала, имхо.
Для тех, кто интересуется построением пользовательских баров (графиков) нативно в MT5, есть статья с реализацией на MQL5 баров equal-volume, equal-range и renko. Разумеется, в открытом коде можно пометить бары с временем окончания.
- www.mql5.com
Бары, ориентированные на активность, не решают всех проблем, которые вы упомянули для временных баров. Например, вы написали:
Если вы строите пользовательские бары равного объема, равного диапазона или другие тиковые бары, вы в любом случае пометите такой бар одной меткой, и он будет сливать (точнее, размывать) информацию о высокой цене по всему бару.
Единственный способ решить эту проблему - строить "бары" с учетом специфических особенностей (которые вы собираетесь использовать). Например, если основными характеристиками являются максимумы или минимумы, то стоит попробовать, возможно, зигзагообразные "бары" с экстремумами, отмеченными точным временем.
На самом деле, подход с постоянными таймфреймами, да еще и ограничивающий их М1, проблематичен в контексте утечки данных в МТ5. Маркировать бары М1 временем окончания не намного лучше, чем временем начала, имхо.
Для тех, кто интересуется построением пользовательских баров (графиков) нативно в MT5, есть статья с реализацией на MQL5 баров equal-volume, equal-range и renko. Разумеется, в открытом коде можно пометить бары с временем окончания.
Бары, управляемые активностью, направлены на улучшение статистических свойств информации, содержащейся в барах, например, уменьшение гетероскедастичности и улучшение нормальности. Предложенное мной решение проблемы тонкой внутрибарной утечки заключается в маркировке баров с помощью времени их окончания, так что все события, происходящие внутри бара, отражаются в метке времени. Полезный пример - использование в обучении модели характеристик, полученных из временной метки, таких как преобразования Фурье. Если вы используете соглашение MetaTrader5, в котором бары маркируются по началу периода, то вы дезинформируете свою модель. Это различие может не иметь большого значения для некоторых моделей, но оно оказывает огромное влияние на те, которые нацелены на использование циклической природы рынков. Надеюсь, я прояснил свои намерения.
Бары, основанные на активности, не решают всех проблем, которые вы упомянули для временных баров. Например, вы написали:
Если вы создаете бары того же объема, диапазона или другие тиковые пользовательские бары, вы в любом случае будете помечать такой бар одной меткой, и информация о максимальной цене будет просачиваться (точнее, размываться) по всему бару.
Единственный способ решить эту проблему - создавать "бары" с учетом специфических особенностей (которые вы будете использовать). Например, если основными характеристиками являются максимумы или минимумы, попробуйте создать "зигзагообразный бар" с экстремумами, отмеченными точно по времени.
Подход с постоянным таймфреймом, и в частности ограничение M1, проблематичен в контексте утечки данных MT5. Маркировка баров М1 временем окончания имхо не намного лучше, чем временем начала.
Для тех, кто интересуется созданием пользовательских баров (графиков) нативно в MT5, есть статья с MQL5-реализацией баров Equal Volume, Equal Range и Renko. Разумеется, в открытом коде можно пометить бары временем окончания.
Что вы имеете в виду, когда говорите: "Если вы создаете бары с одинаковым объемом, диапазоном или другие тиковые пользовательские бары, вы в любом случае будете помечать такой бар одной меткой, и информация о максимальной цене будет просачиваться (точнее, размываться) по всему бару"?
Что вы имеете в виду, когда говорите: "Если вы создаете бары с одинаковым объемом, диапазоном или другие пользовательские бары на основе тиков, вы все равно будете помечать такой бар одной меткой, и информация о максимальной цене будет просачиваться (или, точнее, размываться) по всему бару"?
Я не понимаю, что тут непонятного. Мое предложение - прямой ответ на ваше предложение, которое я процитировал в предыдущем посте. Независимо от того, как вы формируете бар, все свойства бара приписываются одной временной метке, а фактические "события" свойств не совпадают с этим временем. время.
Теперь я понимаю значение слова blur.
Очень интересная точка зрения. Однако меня заинтересовал один возможный компромисс.
Временные бары могут содержать информацию, связанную непосредственно с календарным временем: повторяющиеся закономерности в определённые часы, торговые сессии, публикации экономических данных или конкретные дни недели. Эти временные эффекты могут быть тем, чему модель машинного обучения действительно способна научиться.
В случае тиковых баров наблюдаемые значения характеризуются более равномерной активностью, но промежуток времени между барами становится переменным. Поэтому мне интересно, не потеряем ли мы часть информации, связанной со временем наступления того или иного рыночного события, при переходе от временных баров к тиковым.
Не стоило бы, возможно, учитывать оба измерения — бары, ориентированные на активность, для отбора данных о рыночной активности, при этом сохраняя информацию о календарном времени в качестве дополнительной характеристики?
Возможно, я что-то упускаю, поэтому мне было бы очень интересно услышать точку зрения автора по этому поводу.
В случае тиковых баров наблюдения демонстрируют более равномерный уровень активности, но промежуток времени между барами становится переменным. Поэтому мне интересно, не потеряем ли мы при переходе с временных баров на тиковые бары часть информации, связанной со временем наступления того или иного рыночного события.
Не было бы, возможно, целесообразно учитывать оба измерения — бары, ориентированные на активность, для отражения рыночной активности, при этом сохраняя информацию о календарном времени в качестве дополнительной характеристики?
Возможно, я что-то упускаю, поэтому мне было бы очень интересно узнать точку зрения автора по этому вопросу.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Архитектура системы машинного обучения в MetaTrader 5 (Часть 1): Утечка данных и исправление меток времени:
Подсматривание данных или утечка данных могут показаться чем-то незначительным, но их влияние на модели машинного обучения может быть колоссальным и разрушительным. Представьте, что вы готовитесь к экзамену, нечаянно подсмотрев ответы заранее. Ваш отличный результат кажется заслуженным, но на самом деле это обман. Именно это происходит, когда мы используем временные метки MetaTrader 5 по умолчанию в машинном обучении — утечка данных неожиданно разрушает целостность вашей модели.
Как временные метки MetaTrader 5 вводят вас в заблуждение

MetaTrader 5 маркирует 5-минутный бар, начинающийся в 18:55, то есть 2-й последний бар сверху, как:Отмечая время в начале, MetaTrader 5 подразумевает, что данные этого бара были доступны в 18:55:00 -за целых 5 минут до его фактического закрытия! Если ваша модель использует это в обучении, это все равно что дать студенту ответы на экзамен за 5 минут до начала тестирования. Чтобы противостоять этому, мы должны избегать использования предварительно скомпилированных временных баров MetaTrader 5, а вместо этого использовать тиковые данные для создания баров, которые мы используем в наших моделях.
Автор: Patrick Murimi Njoroge