Для любых инструментов?
Цикаво!
Объем сделки = Максимальная стоимость актива за всю историю * Дельта / текущую стоимость.
После чего прогоняем их в тестере и суммируем результат. Дельта подбирается таким образом что бы средняя потеря у всех инструментов была одна и та же.
Изучаем график портфеля, находим максимальную просадку, доходность и т.п. На основе полученных данных подбираем формулу капитализации портфеля и ее агресивность. Капитализируем портфель, наслаждаемся результатом.
Допустим имеем небольшой такой портфельчик из одной стратегии и трех акций: CITIGROUP, APPLE INC, GE; выравниваем акции CITIGROUP таким образом, что бы средняя убыточная сделка была скажем -10 (+/- 1)$:
Максимальная цена акции ситигроуп была примерно 60 баксов, дельту для начала возьмем за 1, следовательно торгуем по формуле 60 * 1/ на текущую стоимость. Получаем результат:
средняя убыточная сделка = -1.01 $, => что бы средний убыток был -10 долларов умножаем все на 10 и прогоняем результат снова.
То же делаем с Apple и GE:
Apple (средняя убыточная сделка -6.25 долларов):
Дельта = 10$(средний убыток) / 6.25 = 1.6
Максимальную цену умножаем на дельту: 260$*1.6=420 (приблизительно)
Торгуем с коэффицентом 420, средний убыток: -9.95
GE получаем такой график:
Объединяем все графики в один:
Капитализируем получившийся график, и потягиваясь от удовольствия пьем пиво.
Теперь классический путь: торгуем тремя акциями фиксированым объемом по 10 акций (средний убыток по apple -13.0$, для остальных акций значительно меньше):
В данном случае итоговая прибыль меньше в 1.4 раза(!). И практически вся она была сделана за счет акций APPLE. если в будущем система перестанет работать на этой акции, это приведет к краху всего портфеля.
Объем сделки = Максимальная стоимость пункта из портфеля инструментов / текущую стоимость пункта инструмента * единичный объем.
// В первый проход дельта = 1, во второй она равна коэффиценту,
// который повышает, понижает среднюю убыточную сделку до нужной величины
double get_mmfp_lot()
{
if(Ask!=0)mm_steep=MathRound(levelling_const/Ask);
else mm_steep=MathRound(levelling_const/50.0);
//Print("Volume is: ", mm_steep);
return(mm_steep);
}
Я предлагаю другой путь: рассчитывать объемы, используя стоимость пункта.
Объем сделки = Максимальная стоимость пункта из портфеля инструментов / текущую стоимость пункта инструмента * единичный объем.
На акциях не прокатит, у них стоимость пункта одна и та же и всегда равна одному центу, не зависимо от стоимости и вида акции. Тем более эта формула нормализует объем к максимально возможному из портфеля, что не есть гуд для маленьких депо, к тому же в ней не учитывается работа стратегии, в моем варианте учитывается, через средний проигрыш. К тому же вот еще какая загвоздка, взять к примеру бонды, у них стоимость пункта для 0.1 3.5 доллара по-моему, у евро 1 доллар за пункт при 0.1, но волатильность у инструментов разная и не факт что убыток по бондам при 0.1 будет в 3.5 раза больше аналогичной позиции по евро 0.1 при выставлении равных стопов.
Мы рассматриваем портфель инструментов.... Изменения на 1 пункт по каждому инструменту равны. Теперь на общий результат влияет волантильность каждого инструмента... Объемы уравновешены.
раз волатильность разная - и СЛ разныя. а для уравновешивания нельзя забывать и о марже. Имхо: функция уравновешивания размера лота от чего-то (эквити, планового размера портфеля рисковых инвестициц ;) должна работать как минимум с этими параметрами.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как видно, график баланса весьма точно повторяет ценовой график. Спрашивается почему? Потому что в 2000-2004 годах стоимость акций этой компании колебалась в диапазоне 2-7$. Умножаем 100$ на 7 = 700 долларов. Теперь акции стоят одна акция стоит 260$ а это значит что теперь стандартный лот = 100*260 = 26 000$. Понятно что по сравнению с современными ценами прошлые колебания были настолько не значительные (в силу малой капитализации что прямая баланса до 2005 года выглядит ровной). Спрашивается, как тестировать такие инструменты? Ответ напрашивается сам собой, надо выравнять объемы:
Объем сделки = Максимальная стоимость актива за всю историю / текущую стоимость.
Пример. Расчитать объем сделки для акций Apple в 2002.03.03 если ивестно, что максимальная цена акции этой компании 2010.04.20 достигала 265$.
Решение: Стоимость одной акции apple на 2002.03.03 составляла приблизительно 11$, тогда: 260/11 = 23.61 или 24 акции.
Для запаса на будущее, максимальную стоимость актива можно еще умножить в несколько раз, что бы на тот случай если акция обновит свой максимум мы могли бы снизить объем, потому как если этого не сделать, томы достигнем минимального предела торговли в одну акцию при максимальной цене.
Теперь попробуем поторговать нормализованной величиной актива. Тот же робот, на том же инструменте делает это так:
Честно, такой график мне импонирует гораздо больше первого. Во всяком случае именно такой график хочется капитализировать. В ближайшую неделю буду думать как лучше наложить капитализацию на выравненные объемы с помощью хитрой математики.
Остаются добавить: авторы книги "Энциклопедия торговых стратегий", Кац, МакКормик прибегали к выравниванию активов с помощью ATR().
Однако Райан Джонс в своей книги "Сделай миллион играя числами" отрицает выравнивание, утверждая что с точки зрения математики это бессмысленно. Я не силен в математике, но "на глаз" определить разницу между первым и вторым графиками почему-то могу, и лично я выбираю второй график. Кстати это касается не только акций но и вообще любого актива который торгуется совсем по иным ценам нежели чем несколько лет назад, например золото.