Я называю страйком в тестировании торговых систем соотношение финансового результата на тренировочной и проверочной выборке.
Сам по себе он мало о чём скажет, если его не выровнять: следует привести доходность на тренировочной и проверочной выборке к одному основанию, в частности, я привожу к году, и сравниваю.
Для меня Strike = (абсолютная приведённая доходность на проверочной) / (абсолютная приведённая доходность на тренировочной).
Получается некий коэффициент, от минус до плюс бесконечности, и целевое его значение — единица.
Он означает, как результаты, которые торговая система показывает на проверочной выборке, отличаются от результатов тренировки. Значения:
- единица означает, что результат аналогичен тренировке,
- меньше единицы — результат хуже, чем на тренировке,
- больше единицы — результат лучше, чем на тренировке
А ещё есть выбросы:
- если Strike cильно больше единицы — что-то пошло не так,
- если он отрицательный — значит, был плюс на тренировке и минус на проверке или наоборот.
В целом, это очень хороший фильтр для фильтрации неадекватных торговых алгоритмов, но я бы ещё хотел его улучшить.
Если рассмотреть гипотетическую ситуацию, что поведение рынка на проверке сильно изменилось по сравнению с его поведением на тренировке, то это исказит данные и, в подавляющем большинстве случаев, получаем выброс. Но хочется учесть глобальные параметры рынка в этом показателе, чтобы сделать его ещё более релевантным. Возможные варианты:
- учитывать перелом тренда, если он возник,
- но мне нравится более простая и изящная идея: ввести поправочные коэффициенты для финансовых результатов тренировки и проверки, исходя из идеальной возможной прибыли на том и другом участке по оптимальному торговому пути.
Когда-то и до этого дойдут руки.
На картинке ниже столбец br:tr — это он и есть, strike.
Тема следующего поста: эволюционный рост и долговременное совершенствование торговых систем