Несколько лет назад написал простой инструментарий для лучшего понимания фильтра, что использую. Сам фильтр (торговых сигналов) был опубликован с открытым исходным кодом почти пять лет назад.
Теперь любой желающий может попробовать этот инструмент (beta). А ниже просто покажу его удивительные результаты в теме машинного обучения (МО) через одну из версий (8.13) имитации интеллекта (ИИ).
Для статистически значимой проверки требуется много сделок, поэтому с помощью вышеупомянутого ИИ был собран робот с просьбой (к ИИ) ничего не фильтровать и быть постоянно в рынке одной позицией, только ее переворачивая. Грубо говоря, вся история торгов — это чередование Buy/Sell.
В итоге в замечательном MT5-тестере с возможностью подключения ONNX-моделей был получен такой результат.
IS – in sample (оно же обучающая выборка), OOS — out of sample (оно же тестовая выборка). Ну или ближе к обычным алго – IS – там, где оптимизируешь стратегию, OOS – данные, которые стратегия ещё не видела.
Какое соотношение выборок лучше. Просто сейчас накапливаю некоторые данные (которые иным способом не получить), а любопытство оно же такое, что нельзя просто так взять и подождать 3 месяца и только тогда начать с данными работать, поэтому начал работать с данными чуть когда их было ещё совсем мало, потом продолжил когда их было просто мало, продолжил когда стало чуть побольше и т.д., сейчас уже вполне достаточно.
Из-за того, что несколько раз к данным подступался при разных объёмах этих самых данных, несколько выпятился наружу вопрос достаточности данных в целом и в частности вопрос соотношения IS/OOS в целом.
Когда данных совсем мало – без разницы как делить – не хватит ни чтобы обучить (терминология у меня ML’ная, но, по сути, без разницы, ML или классические алгоритмы) ни чтобы оценить.
Боевые торговые советники время от времени перенастраиваются по разным причинам через Тестер на исторических данных.
Однако, результат таких периодических настроек сводится к наблюдению за неизвестным — будущая торговля.
Аргументировать и обосновать целесообразность таких действий в отношении того или иного торгового советника довольно непросто.
Крайне малая часть авторов роботов создают внутренние адаптивные механизмы через автооптимизацию, т.к. это требует серьезной подготовки программиста и не носит универсальный характер. Это всегда сложно, громоздко и индивидуально.
Поэтому говорить об автооптимизации всех торговых роботов не приходилось. Особенно, когда речь заходила о платных чужих роботах с закрытым исходным кодом (Маркет).
Когда-то в паблике столкнулся с мнением, что OOS должен располагаться только справа. Т.е. расположение его слева от интервала Оптимизации — ошибка. Я с этим был категорически не согласен, т.к. не видел разницы. Теперь вижу. Ошибался, был не прав.