Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2587
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Синусоида - для циклического времени типа времени суток или дня недели. А там изначально (у Aleksey Vyazmikin) шла речь об обычном линейном времени, чтобы попытаться уловить влияние нестационарности в виде распада закономерностей. На мой взгляд, для решения подобных задач должны использоваться простые, легко интерпретируемые модели. Сложные модели - для практических целей, простые - для предварительного анализа.
Правда, есть сомнения в практической пользе от такой возни в данном конкретном случае. Скорее всего, наши закономерности меняются со временем не равномерно, а циклично (но без периодичности).
Синусоида - для циклического времени типа времени суток или дня недели. А там изначально (у Aleksey Vyazmikin) шла речь об обычном линейном времени, чтобы попытаться уловить влияние нестационарности в виде распада закономерностей. На мой взгляд, для решения подобных задач должны использоваться простые, легко интерпретируемые модели. Сложные модели - для практических целей, простые - для предварительного анализа.
Правда, есть сомнения в практической пользе от такой возни в данном конкретном случае. Скорее всего, наши закономерности меняются со временем не равномерно, а циклично (но без периодичности).
В общем идея подать линейное время - плохая. Кстати, да: на трейне оно в каждой строке разное и на форварде мы анализируем только 1 строку за раз, т.е. время будет всегда текущим (которого не было в трейне), а номер всегда = 0 (а в трейне от 0 до 5000). Т.е. ни время ни номер строки подавать нельзя. Что тест и показал.
Хотя с номером я еще попробую... ведь нулевой номер будет входить в ту часть дерева, которое < какого-то сплита (например <5000) Т.е. будет использована часть дерева для форварда. А не всё. Что-то я решил время взять для теста, по ошибке.
А вот как сделать чтобы сплит по номеру был на оптимальном для форварда расстоянии?
Попробовал. Модель с 5000 барами истории для обучения, после добавления номера строки, как фичи, для Buy улучшилась, для Sell в чем то хуже, в чем-то лучше.
А вот если обучать на 10000 барах, то обе модели становятся сливными. Т.е. главная задача добавления номера строки для автоматического определения нужной длины истории, не выполнилась.
Пока остается только вручную оптимизировать/подбирать длину истории для обучения.
Судя по всему, основная идея использования кастомных трейдерских метрик сводится к тому, что они используются на этапе выбора модели. На этапе обучения же используются стандартные метрики. Наверное, это что-то вроде того что писал ранее Maxim Dmitrievsky по этому поводу.
Небольшая статья в качестве иллюстрации подхода.
Судя по всему, основная идея использования кастомных трейдерских метрик сводится к тому, что они используются на этапе выбора модели.
Хотя, встречаются идеи использования кастомных метрик уже на этапе обучения. При этом они не совсем похожи на трейдерские, а скорее являются подправленными вариантами стандартных для МО.
Возможно, трейдерские метрики приводят к плохой обусловленности. Это напоминает, например, использование кроссэнтропии вместо исходно интересующей частоты ошибки (говорят про плохую чувствительность последней).
Нужно как-то уменьшать теоретический и практический разрывы между обучением в МО и оптимизацией в тестере.
Хотя, встречаются идеи использования кастомных метрик уже на этапе обучения. При этом они не совсем похожи на трейдерские, а скорее являются подправленными вариантами стандартных для МО.
Возможно, трейдерские метрики приводят к плохой обусловленности. Это напоминает, например, использование кроссэнтропии вместо исходно интересующей частоты ошибки (говорят про плохую чувствительность последней).
Нужно как-то уменьшать теоретический и практический разрывы между обучением в МО и оптимизацией в тестере.
Когда делал модели с ТП/СЛ точность была абсолютной. И в модели и в тестере сделки открывались на тех же барах и закрывались с теми же ТП/СЛ. Вот только доходность была около 0.
Тестировал по ценам открытия. Но с ними проблема... в баре используется минимальный спред.
Т.е. часть ордеров и ТП/СЛ в тестере сработают по цене
ASK HIGH = BID HIGH + минимальный спред.
И не сработают те, которые сработали бы при реальной торговле
ASK HIGH (реальный) = BID HIGH + Спред расчитанный по максимальному ASK
Я уже пару раз предлагал разработчикам сделать сохранение в барах не минимального спреда, а
Spread = ASK HIGH - BID HIGH.
С таким спредом тестирование по ценам открытия стало бы ближе к тестированию по реальным тикам.
Например мин спред на баре = 0,00002, а Spread = ASK HIGH - BID HIGH = 0,00020. Т.е. в реальности цена ASK была выше тестерной на 0,00018. Где могли произойти открытия/закрытия сделок.
Но реакции от MetaQuotes нет ((
ПС: Для большей точности еще и спред для расчета Low Ask надо.Но реакции от MetaQuotes нет ((
И не будет, поскольку реальный спред портит рекламную картинку. Максимум, предложат использовать кастомные символы.
И не будет, поскольку реальный спред портит рекламную картинку. Максимум, предложат использовать кастомные символы.
Очень жаль вообще то. Моделирование спреда по времени сделало бы тестирование ближе к реалу.