На главную
Обучение
Учебник Forex
Механические торговые системы
Торговые роботы
Аналитика/Прогнозы
О нас
Партнёрство

ПАРТНЕРЫ





Курсы "Трейдер валютного и российского фондового рынка"

Обучение торговле на фондовом рынке и рынке форекс (Forex) в центре Москвы.
Программа обучения и форма записи на обучение. Записаться можно по тел.8 (985) 923 47 54

Ближайшая группа  с 23 октября по 09 ноября 2017 г. Обучение в течение трёх недель  с 18ч30м. до 21ч. с понедельника по четверг.

Бесплатный семинар "Инвестирование на финансовых рынках " каждый четверг в 16ч30.

главная / Механические торговые системы / О роботах / Методы тестирования

Методы тестирования

Автор: Хомич Андрей Владимирович.
МЕТОДЫ ТЕСТИРОВАНИЯ МЕХАНИЧЕСКИХ ТОРГОВЫХ СИСТЕМ

Аннотация
Показывается, как стандартные методы прикладной статистики могут применяться для тестирования МТС. Наглядно демонстрируется необходимость формального и статистически обоснованного тестирования МТС.

Введение
В статистике известны методы тестирования моделей, представляющих собой «черный ящик» с определенными входами и выходами, если имеются примеры входов и эталонных выходов. Самый простой метод заключается в разделении всех примеров на две группы, тренировочную (обучающую) и тестовую. На тренировочных примерах оцениваются параметры модели, а на тестовой оценивается точность модели. Развитием этого метода является кросс-тестирование [1,2].

Например, модель, принимающая на входе историю цен, и вычисляющая прогноз будущей цены может быть протестирована с помощью кросс-тестов. Для этого можно подготовить примеры предшествующего колебания цен и дальнейшего развития процесса, к примеру, на периоде 2000-2007 год. Затем выполнить оптимизацию параметров модели на примерах из 2000, 2002, 2004 и 2006, после чего выполнить  тестирование на примерах из 2001, 2003, 2005 и 2007 года. Возможны и другие варианты формирования тренировочного и тестового набора примеров.

Проблема МТС заключается в том, что для нее не существует набора примеров входов и эталонных выходов. Конечно, можно составить набор примеров истории колебания цен и последовательности оптимальных торговых решение. Под оптимальной последовательностью торговых решений здесь понимается последовательность, приводящая к максимальной прибыли с минимальной просадкой на известной нам истории цен. Но проблема в том, что оптимальным это решение будет именно при условии знания всей истории цен. В истории же, поступающей на вход МТС, полной информации нет. Пытаясь заставить МТС принимать именно такие глобально оптимальные решения, мы заведомо ставим перед ней невыполнимую задачу. МТС должна принимать решения оптимальные в условиях доступной для нее информации. Но как раз последовательность таких решений нам и неизвестна. Более того, оптимальная последовательность торговых решений может быть не одна.

 Как показывает опыт авторов, принятые в среде инвесторов на рынке Forex и реализованные в популярных торговых терминалах методы тестирования стратегий мало пригодны для практического использования. Фактически все сводится к прогону МТС на тестовом периоде. Результаты теста представлены набором характеристик, таких как коэффициент прибыльности (profit factor), максимальная просадка (maximal drawdown), средний выигрыш (expected payoff), и др. Однако все эти характеристики относятся только к тестовому периоду. Авторам неизвестен не один строго обоснованный метод, позволяющий надежно предсказывать значение этих характеристик на будущем периоде. Предполагается, что в среднем на будущем периоде будут получены такие же значения характеристик, что и на тестовом периоде. В принципе, это верное предположение по отношению к таким характеристикам, как средний выигрыш. Но по отношению к максимальной просадке это предположение не верно. Известно, что для оценки рисков требуется кроме средних значений также знать доверительный интервал, разброс значений, наилучшее и наихудшее возможные значения характеристик. Например, вряд ли грамотного инвестора устроит МТС, дающая в среднем норму прибыли 300%, но допускающая возможность периода торговли с итоговой нормой прибыли –100%. Такая МТС может принести в первые 2-3 года огромные прибыли, а на 4-й год потерять все ранее заработанное. Вполне возможно, что МТС все «сольет» в первый же год. Таких историй в реальности было и будет немало. Правда, участники этих историй чаще всего предпочитают умалчивать о них.

Здесь надо обратить внимание на одно распространенное заблуждение. Считается, что для того, чтобы в одно мгновение не потерять все ранее заработанное необходимо периодически снимать средства с торгового депозита. Фактически предлагается выводить средства из процесса торговли. Если средства выводятся с целью вложения в иное бизнес, то это вполне рациональный прием. Если же средства просто переводятся на счет в банке (или сразу обмениваются на товар или услуги для личного пользования), то это не выход. Деньги должны работать. В банке же они в лучшем случае не будут обесцениваться из-за инфляции. В любом случае, «слив» относительно небольшой депозит инвестор все равно должен будет для продолжения торговли пополнить депозит, взяв деньги из другого источника (взять кредит, вывести из другого своего бизнеса, снять со своего счета в банке и т.п.). Так какая разница, потерять все разом или частями? Разве что, терять малыми частями психологически менее болезненно. Итог же един.

 Далее в статье рассматривается, как преодолеть проблемы тестирования МТС. Для понимания материала достаточно владение теорией вероятности и прикладной статистикой на уровне университетской программы.

Оценка прибыльности и рисков торговых стратегий

Основными характеристиками любой торговой стратегии являются норма прибыли и риск. Под нормой прибыли в данной статье понимается процент увеличения депозита за 1 год торговли от значения на начало года (процент годового дохода).

Риск принято определять как максимальная просадка в абсолютном или относительном к депозиту выражении. В данной статье используется относительная величина максимальной просадки по отношению к стартовому депозиту в процентах.

Зная просадку, которая может быть получена в будущем, мы можем определить соотношение объема сделок и текущего баланса. Чем меньше возможная просадка, тем больше может быть объем сделок или меньше начальный баланс. В любом случае норма прибыли увеличивается. Можно поступать и иначе. Можно зафиксировать необходимую норму прибыли, и пытаться снизить риски, сокращая объем сделок или увеличивая начальный баланс.

Необходимо учитывать, что максимальная просадка в действительности зависит, среди прочих факторов, и от продолжительности торговли. Чем дольше мы торгуем, тем выше вероятность хоть раз случайно получить продолжительную серию убыточных сделок даже при самой замечательной торговой стратегии, и соответственно тем будет больше абсолютное значение максимальной просадки. Давайте вспомним статистику. При подбрасывании монеты вероятность выпадения “орла” равна 0.5. Чем больше мы сделаем бросков, тем больше вероятность обнаружить в серии исходов подбрасывания «неожиданно» большое кол-во подряд следующих выпадений «орла». Таким образом, можно добиться и 2 подряд выпадений «орла», и 10, и 100 и даже 1000. Вероятность таких событий подчиняется распределению Бернулли. И ни один, даже самый сложный, математический метод не сможет отменить этого закона. Мы можем только снизить вероятности катастрофических убытков до приемлемого уровня.

По мнению авторов, распространенные методы оценки стратегий мало пригодны для практического использования. Коэффициент прибыльности (profit factor), максимальная просадка (maximal drawdown), средний выигрыш (expected payoff), и т.п. показатели говорят только о результатах прошлой торговли, но не годятся для надежного прогноза будущей торговли. Отрицательный средний выигрыш, конечно, говорит о том, что в будущем торговая стратегия принесет только убытки. Но положительный средний выигрыш, ни в коей мере не гарантирует прибыли в будущем. Положение не спасает даже совместный учет всех этих показателей. Никто толком и не знает, как их можно совместно использовать. По мнению авторов и некоторых других специалистов наиболее точные оценки эффективности стратегий можно получить с помощью статистического моделирования. Дело в том, что результат прошлой торговли является только одной реализацией случайного процесса. Никому ведь в голову не придет оценивать среднее значение некоторой случайной переменной, имея только один замер ее значения. Но по результатам прошлой торговли можно оценить распределение значения выигрыша от сделки, оценить вероятность прибыльной сделки в зависимости от результатов прошлых сделок и т.п. Имея такие оценки можно смоделировать любое количество вариантов развития процесса торговли. В качестве результата моделирования, например, можно получить надежную оценку максимальной просадки, которая в течение 100 лет непрерывной торговли не будет превышена с вероятностью свыше 0.999. Сравните теперь степень доверия к значению максимальной просадки полученной в обычном торговом терминале при тестировании стратегии на 1-3 прошлых годах. Чисто из интуитивных соображений ее значение умножают кто на 2, кто на 5, а кто на 10. Оценку максимальной просадки, полученной статистическим моделированием, ни на какую величину умножать не требуется.

Кросс-тестирование
Если МТС содержит настроечные параметры, то требуется выполнить их оптимизацию. Однако не менее важно оценить работу МТС. На периоде оптимизации МТС показывает заведомо лучшие результаты, чем они будут в реальности. Оценит МТС можно на тестовом периоде. Однако возникает проблема, как выбрать этот период, каковы его границы и продолжительность. Очень часто в качестве тестового периода выбирают последние 6-12 месяцев. При этом итоги тестирования по разным валютным парам учитываются отдельно. Принято считать, что если на какой то валютной паре МТС показала плохие результаты, то скорее виновата валютная пара, чем МТС. Инвестор просто не ставит торговать МТС на такой валютной паре. Имеются принципиальные возражения против такого подхода к тестированию:

1. Для получения надежных оценок требуется набор независимых контрольных точек. За столь короткий период нельзя получить независимые контрольные точки. В течение года может действовать общий тренд цены. Таким образом, останется неизвестным поведение МТС в условиях наличия противоположного общего тренда цены.

2. Каждая сделка, это контрольная точка МТС. За годовой период тестирования на одной валютной паре обычная МТС даст не более 30-70 сделок. Такого количества сделок недостаточно для надежной оценки характеристик МТС. По опыту авторов необходимо не менее 500 сделок, при условии, что сделки совершены на разных валютных парах на периоде продолжительностью не менее 9-ти лет. Иными словами необходимо не менее 500 независимых контрольных точек. Это намного больше, чем обычно рекомендуется в литературе по прикладной статистике. Но необходимо заметить, что по степени сложности из-за крайне плохого качества (недостаточность, неоднозначность, высокий уровень «шума» и т. п.) доступной информации задача прогнозирования Forex не является типичной для прикладной статистики.

Очевидно, нельзя применять МТС для реальной торговли, характеристики которой плохо изучены. Допустим, существует МТС, хорошо работающая на коротком предыдущем периоде и некотором коротком будущем периоде. По идее такая МТС полезна. Однако из-за  относительно небольшой продолжительности периодов мы не в состоянии доказать, что данная конкретная МТС действительно является пригодной для торговли. Мы не можем этого доказать из-за малого количества сделок на тестовом периоде. Следовательно, мы принципиально можем использовать для торговли только МТС стабильно дающие приемлемый результат на продолжительном тестовом периоде и на различных валютных парах. Анализ поведения Forex за последние 10 лет показал, что для надежных оценок эффективности МТС необходим тестовый период продолжительностью не менее 9 лет и тестирование на 10 наиболее ликвидных  валютных парах. И ни в коем случае не отбрасывать плохие результаты тестирования по некоторой валютной паре из соображений типа «это пара не подходит для этой МТС».

Где же взять 9 лет для тестирования, ведь еще необходим и период для оптимизации параметров МТС? Имеется решение этой проблемы, хотя и трудоемкое, но вполне осуществимое. В статистике в случае малого количества примеров прибегают к такому приему. Из набора примеров выделяется один пример, а на остальных примерах оптимизируются параметры модели. Затем определяется ошибка модели на исключенном примере. Исключенный пример возвращается в набор примеров. Из набора примеров исключается  другой пример. Повторяется процедура с оптимизацией модели и определением ошибки на исключенном примере. И так далее, пока все примеры не поучаствуют в роли исключенного из оптимизации примера. Результаты измерения ошибок на исключенных примерах анализируются, и получается оценка точности модели.

В случае Forex для выполнения кросс-тестирования необходимо весь используемый период истории разделить на множество вариантов периодов оптимизации и тестирования. Например, при использовании периода истории 1999-2007 год авторы статьи строили разбиения, перечисленные в таблице 1. Возможны и иные варианты, но принцип остается прежним.

Таблица 1 – Возможные варианты пар периода оптимизации и периода тестирования для периода истории1999-2007 год.

Период оптимизации

Период тестирования

2001-2006

2007

2000-2005

2006

1999-2004

2005

1999-2003

2004

2004-2007

2003

2003-2007

2002

2002-2007

2001

2001-2006

2000

2000-2005

1999

Результаты, полученные на различных тестовых периодах, собираются в единую таблицу совершенных сделок упорядоченных по дате закрытия позиции. По это таблице можно вывести некие средние характеристики. Можно предположить, что средние значения характеристик МТС, полученные за 9 последних лет, останутся таковыми и для будущих 6-ти месяцев. Но надо понимать, что среднее значение, это не обязательно то значение, которое будет получено за следующие 6-месяцев торговли. Реальные значения всегда имеют разброс около среднего значения. Для того чтобы оценить характеристики этого разброса, необходимо оценить вероятность всех вариантов развития процесса торговли. Наибольшую ценность таблица сделок представляет для задачи статистического моделирования возможных вариантов будущей торговли.

Статистическое моделирование будущей торговли

Процесс торговли является случайным процессом. Хотя МТС и действует по заранее заданному алгоритму, элемент случайности вносит случайный характер самого рынка Forex. Поэтому нельзя предсказать точную сумму чистой прибыли по итогам торговли за будущий период. Можно только оценить средние, минимальное и максимальное возможные значения. Здесь следует пояснить несколько важных моментов:

1. Предполагается, что закономерности, действовавшие на Forex в прошлом (на периодах тестирования и оптимизации) будут действовать и в ближайшем будущем. Выбор продолжительности прошлого и будущего периодов субъективен. Авторы статьи используют 9-8 летний период тестирования и 6-ти месячный будущий период.

2. Под минимально возможным значением подразумевается такое значение, меньше которого на периоде будущей торговли не будет получено с некоторой приемлемой вероятностью.

3. Под максимально возможным значением подразумевается такое значение, больше которого на периоде будущей торговли не будет получено с некоторой приемлемой вероятностью.

4. При выборе приемлемого значения вероятности наступления рискового события следует руководствоваться следующим принципом. Хотя Forex со временем меняется, принцип выбора приемлемого риска может оставаться неизменным. Будущий период торговли может быть коротким (6-12 месяцев), после чего МТС будет перестроена с учетом изменения ситуации. Но следует все же моделировать ситуацию неизменности законов Forex на длительном периоде, например 100 лет. Например, мы допускаем вероятность “слива” депозита за следующий год с вероятностью 0.01. Вроде достаточно малая вероятность (1 к 100). Однако при постоянном выборе такого уровня риска вероятность «слива» депозита в течение следующих 10 лет уже будет равна 0.1 (1 к 10). Это уже вряд ли может считаться приемлемым уровнем риска.

Предположим, что имеется МТС, 60% сделок которой имеют положительный выигрыш. Средний положительный выигрыш 50$. Средний отрицательный выигрыш -50$. Среднюю чистую прибыль за 100 сделок можно вычислить как (50*0.6 – 50*0.4)*100=50*0.2*100=1000$. Казалось бы, такой МТС гарантирована положительная чистая прибыль. Выигрыш по сделкам можно представить как случайную последовательность чисел. Несложно проделать эксперимент, сгенерировав случайную последовательность из 100 чисел, по следующему алгоритму:

1. Случайно выбирается число p из отрезка [0,1].
2. Если p > 0.6, то последовательность дополняется числом –50.
3. Если p <= 0.6, то последовательность дополняется числом 50.
4. Если последовательность еще не сформирована полностью, то возвращаемся на шаг 1.

Для генерации последовательности по этому алгоритму в Excel достаточно в 100 ячеек вставит формулу “=ЕСЛИ(СЛЧИС()>0.6;-50;50)”. Генерируя такие последовательности, мы очень скоро получим последовательность, сумма чисел которой отрицательна. Пример возможного изменения баланса при работе вышеописанной МТС представлен на рисунках 1, 2 и 3. Хотя конечно, более типична ситуация представленная на рисунке 3. Тем не менее, вероятность отрицательной чистой прибыли приблизительно равна 0.05 (1 к 20). Это притом, что 60% прибыльных сделок и равенство по модулю среднего положительного и отрицательного выигрышей является очень неплохим результатом для Forex.


Рисунок 1 – Пример возможного развития процесса торговли с положительным средним выигрышем  приводящего к отрицательной чистой прибыли.

Рисунок 2 – Пример возможного развития процесса торговли с положительным средним выигрышем  приводящего к нулевой прибыли.

Рисунок 3 – Пример возможного развития процесса торговли с положительным средним выигрышем  приводящего к положительной чистой прибыли.

Мы привели простую модельную задачу, наглядно показывающую наличие существенных рисков даже при торговле прибыльной МТС. На самом деле, в случае торговли на Forex, риски еще выше. Модельная задача предполагает отсутствие зависимости значения выигрыша от значения предшествующих выигрышей (Марковский процесс). В случае торговли на Forex очень часто случаются серии отрицательных выигрышей. Частота и продолжительность серий отрицательных выигрышей не объясняется простым совпадением. В принципе, этого следовало ожидать, раз мы считаем, что процесс изменения котировок не полностью случаен. Текущие котировки частично зависят от предыдущих котировок. Следовательно, и текущий выигрыш частично зависит от предыдущих выигрышей.

Приведенная выше модельная задача достаточно упрощена. Упрощения заключаются в следующем:

1. Возможны только два значения выигрыша
2. Значение выигрыша не зависит от значений предыдущих выигрышей
3. Вероятности значений выигрыша известны заранее

В реальности, конечно, все сложнее. Распределение значения выигрыша непрерывно и заранее неизвестно. Значения выигрышей зависят от значений предыдущих выигрышей. Все что нам известно, это результаты сделок (дата закрытия позиции и значение выигрыша на тестовом периоде). Однако этого уже достаточно, чтобы оценить распределение значения выигрыша и другие зависимости. Чтобы не делать дополнительных предположений насчет семейства распределения значения выигрыша можно воспользоваться ранговым методом (непараметрический метод оценки распределения случайной переменной). Естественно, чтобы получить достаточно точные оценки необходимо достаточно большое количество примеров результатов сделок за продолжительный тестовый период и на разных валютных парах. Продолжительный период необходим, чтобы получить независимую выборку результатов сделок (для уточнений смотрите в литературе по статистике определение понятия независимой выборки из генеральной совокупности). Например, за 1 год торговли на одной валютной паре нельзя получить независимую выборку. В течение года может действовать общий тренд цены. Таким образом, останется неизвестным поведение МТС в условиях наличия противоположного общего тренда цены. Большое количество сделок необходимо, чтобы иметь возможность с приемлемой точностью оценить распределение значения выигрыша. По опыту авторов необходимо не менее 500 сделок, при условии, что сделки совершены на разных валютных парах (10 валютных пар с наибольшей ликвидностью) на периоде продолжительностью не менее 9-ти лет.

После того, как получена оценка распределения значения выигрыша и другие зависимости, можно смоделировать большое количество вариантов развития процесса торговли (метод Монте-Карло). Анализирую полученные варианты можно оценить доверительные границы значения максимальной просадки и  чистой прибыли.
Без специализированного программного обеспечения выполнить сложные и трудоемкие вычисления практически невозможно. Для оценки прибыли и рисков торговых стратегий по описанному методу создана программа StrategyEstimator.

Литература

1. Вапник, В. Н. Алгоритмы и программы восстановления зависимостей / В. Н. Вапник, Т. Г. Глазкова, В. А. Кощеев, А. И. Михальский, А. Я. Червоненкис. — М.: Наука, Главная редакция физико-математической литературы, 1984. — 816 с.
2. Efron, B. The Jackknife, the Bootstrap, and other resampling plans / B. Efron. — Philadelphia, USA: SIAM, 1982. — 92 p. — ISBN 0-89871-179-7.

Результаты моделирования Методы тестирования Оценка МТС
Подразделов нет

 

8(985) 923-47-54
8(916) 569-29-02

Мы рядом с метро:
Каширская
Тульская

контакты

Карта сайта Rambler's Top100

Торговые сигналы бесплатно



 

Индекс ММВБ (MICEX)
25 сентября


Покупка

 

 



Что мы вам предлагаем?

Почему мы?

 


Зарегистрироваться
Напомнить пароль
ЛОГИН:
ПАРОЛЬ:
 
2005 (с) Все права принадлежат ИП Минаев. А.В. Rambler's Top100 eXTReMe Tracker
© 2005 Design and Programming
by InetStar.Ru