Здравствуйте!
В очередной раз представляю Вашему вниманию одну из своих разработок в области системной торговли, с целью предоставления информации интересующихся данной областью трейдеров.
Уже приводил подобную систему, данная имеет некоторое добавление в плане разноса сделок во времени, а разной длительностью удержания позиции.
Изучив достаточно информации о механизмах покупки крупных объемах бумаг фондами, именно дат, времени покупок и характер поведения рынка. Систематизировал и формализовал набор правил, которые «зашил» в данный алгоритм.
Алгоритм работает на фьючерсе на индекс РТС. На уровне идеи используется только дата и время покупки. На уровне алгоритма добавлен некий фильтр, который идентифицирует силу движения, возникающую от покупок. Для большей эффективности систему разбил на 2 входа. Цель первого входа взять краткосрочное движение, цель второго- взять некоторое среднесрочное движение, возникшее вследствии серии покупок. Система имеет первоначальный стоп, трейлинг стоп по волатильности, тейк-профит по волатильности.
Equity и Perfomance, примеры сделок приведены ниже.
Как видно идея достаточно устойчива. Средняя сделка 464п, 44% прибыльных сделок, средняя доходность в год 44%. На 12г Доходность/Макс просадка 3/1. Это период чисто рыночной торговли, т.е 2009-2012 – подбор параметров, 2012-тек.дату – период чисто рыночно торговли (без изменения параметров).
Преимущество алгоритма – минимум параметров, оптимизация в очень разумном пределе. Устойчив на всех фазах рынка за счет дискретного набора позиций, отсутствия привязки к тренду. Даже на даун-тренде, возникают сигналы. Алгоритм отрабатывает, фиксирует цель с коротким адаптивным тей-профитом.
Так же выкладываю свои разработки на профессиональном ресурсе по аренде торговых роботов
algolaba.com .
Помогаю в реализации идей на C#.
Вопросы на почту vanilov83@mail.ru
представляю как крупные фонды куярят нашу ри со стопом 700 и тейком 2000
() => Series.AverageTrueRange(sec.Bars, ATRperiod));
var ATRVas = ctx.GetData(«ATRk», new[] {ATRperiod.ToString(), ATRs.ToString()},
() => averageTrueRange.Select(v => v*ATRs).ToList());
далее var atrStop1 = PosLow1[i] — ATRVas[i]; от максимума в позиции откладывем ATRVas, волотильность падает, стоп ближе двигается. Пишите на почту, если конкретные вопросы.