Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 1848
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Их сотни, что вам поведать? Вы с задачу свою сформулируйте для начала
text mining
santiment analysis
Ну вот хотя бы названия от чего отталкиваться, и что искать. Благодарю.
Но вот индикатор который строится то же вроде рнормально, но при передачи в советник происиходит смещение на один бар и получается полная опа. Если получится переделать буду благодарен.
А как собирается ОИ не на открытии разве бара за прошлый бар? Если так, то смещение логично же.
Спасибо. Я пользовался Precision, называя (для себя) его Accuracy для класса. Буду называть общепринятыми терминами теперь).
А в целом Precision можно считать основной метрикой при наличии класса "ждать". Ошибки по Precision - это прямые убытки от неправильной классификации.
А Recall - означает упущенная прибыль, т.е. мы ждали вместо того, чтобы действовать.
В итоге нужно максимизировать F1, который найдет лучшее значение при минимуме ошибок предсказания и минимуме упущенной прибыли.
Если говорить об обучении на бустинге (CatBoost), то обычно, Precision очень быстро подымается, а вот Recall это делает медленно, и пока растет Recall падает Precision. Это я к тому, что при обучении хорошо бы контролировать два показателя отдельно, допустим установив границы 80<Precision>60 и Recall>50 и пытаться останавливать обучение в этих границах. Разными коэффициентными показателями, типа F1, это сделать сложней. Жаль, что разработчики такой возможности не предусмотрели, а с обрезанием деревьев готовой модели я пока не разобрался.
Ещё есть идея разбить выборку на участков 10 и обучить 10 моделей по каждому участку, посмотреть поведение модели на каждом участке и подрезать деревья модели, по среднему показатели переобучения, а потом как то свести все модели вместе. Таким образом произойдет зачистка переобученности моделей и использоваться будут данные только имеющие устойчивую информацию о тенденции.
А как собирается ОИ не на открытии разве бара за прошлый бар? Если так, то смещение логично же.
Нет он пишется каждый тик
Непонятно, как запрашиваете данные с индикатора в советнике, если он строится правильно на чарте. Проверяли построение индикатора в визуальном режиме тестера стратегий?
Ещё есть идея разбить выборку на участков 10 и обучить 10 моделей по каждому участку, посмотреть поведение модели на каждом участке и подрезать деревья модели, по среднему показатели переобучения, а потом как то свести все модели вместе. Таким образом произойдет зачистка переобученности моделей и использоваться будут данные только имеющие устойчивую информацию о тенденции.
Тоже была похожая идея, но пока занят другим. Надеюсь скоро поэкспериментирую и с этим.
Недостаток в ней тоже есть - то что модель будет учиться на в 10 меньшем участке данных. Мне кажется обобщающая способность при этом уменьшится.
Непонятно, как запрашиваете данные с индикатора в советнике, если он строится правильно на чарте. Проверяли построение индикатора в визуальном режиме тестера стратегий?
Ну вот хотя бы названия от чего отталкиваться, и что искать. Благодарю.
это не названия , а ссылки на все что вам надо, готовое... и даже больше
Стандартно через икустом... просто он читает данные из файла в котором записан каждый тик, а индикатор читает при появлении нового бара и получается что он берет немного не то значение которое нужно. вспомнил...
Начнем с того, что пишется не каждый тик
ОИ пишется только если он изменился и если изменился более 10 (100 циклов записи одинаковых строк умножаем на 0,1 секунды ожидания после каждой записи) секунды назад. По факту пропускается много тиков, поэтому точная синхронизация уже невозможна при воспроизведении. Хотя я с тиками и не работаю - уточните в тестере все тики или только те, в которых происходила покупка\продажа инструмента(актива)?
Лучше уж писать ОИ по результатом закрытой минуты - данных мусорных меньше, синхронизация в индикаторе удобней.
По индикатору - что то там отрисовали на истории - допустим правильно.
А дальше на нулевом баре такая петрушка идет
Берем данные ОИ тикущие с сервера, в тестере их нет - да и не используются они.
Потом, если появилась новая дата модификации файла, который обнавляется раз в 15 минут в прямом эфире, но не в тестере, считываем данные из файла (последнюю строку) FileName1=_Symbol+FileNames+"_TMP.csv"; и присваиваем значение полученных данных первому бару, закрываем файл и присваиваем значение ещё и нулевому бару. Ну понятно, что такой вариант в тестере никак работать не будет.
Вам нужно два режима индикатора - для работы на истории и для работы в реальном времени, я так думаю.
Проверяли корректность данных на истории - а то странно считываются данные из файла...
Получается что считались данные
Начнем с того, что пишется не каждый тик
ОИ пишется только если он изменился и если изменился более 10 (100 циклов записи одинаковых строк умножаем на 0,1 секунды ожидания после каждой записи) секунды назад. По факту пропускается много тиков, поэтому точная синхронизация уже невозможна при воспроизведении. Хотя я с тиками и не работаю - уточните в тестере все тики или только те, в которых происходила покупка\продажа инструмента(актива)?
Лучше уж писать ОИ по результатом закрытой минуты - данных мусорных меньше, синхронизация в индикаторе удобней.
По индикатору - что то там отрисовали на истории - допустим правильно.
А дальше на нулевом баре такая петрушка идет
Берем данные ОИ тикущие с сервера, в тестере их нет - да и не используются они.
Потом, если появилась новая дата модификации файла, который обнавляется раз в 15 минут в прямом эфире, но не в тестере, считываем данные из файла (последнюю строку) FileName1=_Symbol+FileNames+"_TMP.csv"; и присваиваем значение полученных данных первому бару, закрываем файл и присваиваем значение ещё и нулевому бару. Ну понятно, что такой вариант в тестере никак работать не будет.
Вам нужно два режима индикатора - для работы на истории и для работы в реальном времени, я так думаю.
Проверяли корректность данных на истории - а то странно считываются данные из файла...
Получается что считались данные
Тут с Вами абсолютно согласен. А данные он пишет несколько значений внутри минуты, это не каждый тик, но всё же. Потом строит из этих данных любой ТФ
Про ТМП файл это была уже моя писанина. Делал чтоб индюк обновлялся при поступлении новой свечи и там получалось вроде как верно на реале. Но в какой то момент он либо захватит последнее значение предыдущей свечи, либо первое значение уже открытой свечи. Я просил автора чтоб он переделал его для минуток но итога так и не последовало.
В итоге вспомнил, что бы получить актуальные результаты на входе НС нужно было при каждом сигнале перекомпилирывать советник что бы индикатор инициализировался правильно и выдавал правильные результаты. От этого текущий сигнал мог изменятся. Это то и напрягало серьёзно....