Поиск сжатия и расширения рынка
Паттерн «недельный коэффициент»
Цитата
На рынках после периода нерешительности часто происходит расширение цены. Параметр «недельный коэффициент» помогает определить этот паттерн. Узнайте, как его использовать для фильтрации сделок в целях улучшения своей прибыльности.
Андреа Ангер
Поскольку мы являемся системными трейдерами, в нашем арсенале есть масса инструментов для открытия сделок. Одним из простых и эффективных инструментов является фильтр. С помощью нескольких строк кода мы можем быстро проанализировать текущие рыночные условия и определить, когда эти условия станут благоприятными для открытия торговых позиций.
В этой статье я расскажу об одном из самых полезных фильтров – недельном коэффициенте.
ЧТО ТАКОЕ НЕДЕЛЬНЫЙ КОЭФФИЦИЕНТ?
Недельный коэффициент анализирует торговый диапазон за неделю (то есть расстояние от самого высокого максимума до самого низкого минимума за последние пять сессий), а затем сравнивает расстояние от цены открытия сессии пять дней назад до цены закрытия сессии день назад («тело» недели) с тем же диапазоном от максимума до минимума (диапазон недели) (см. рисунок 1).
Компанией MultiCharts был разработан следующий программный код на языке PowerLanguage:
AbsValue(OpenS(5) - CloseS(1)) < RangeFilter * maxlist(highS(1), highS(2), highS(3), highS(4), highS(5)) - minlist(lowS(1), lowS(2), lowS(3), lowS(4), lowS(5));
В данном примере кода параметр “RangeFilter” – это вход, который можно протестировать и оптимизировать, чтобы найти процент пятидневного диапазона для определения «нерешительности» цены. Именно эту нерешительность мы и ищем.
Небольшое тело по сравнению с расширенным диапазоном за последние пять дней может означать нерешительность, за которой последует расширение цены. Более того, узкое тело может быть благоприятным для трендовых стратегий, поскольку это означает, что тренд еще не начался.
На большинстве ликвидных рынков за «нерешительностью», или «сжатием», цены следует ее «расширение», а после расширения снова происходит сжатие – такова цикличность ценового движения; ее исследование позволяет найти надежные рынки для торговли. Если мы определим сжатие цены, то сможем добавить параметры для входа, когда это сжатие превращается в расширение. Это определение точки входа на «пробое». С учетом этого понятно, почему использование фильтра «недельный коэффициент», определяющего длительные (пятидневные) периоды нерешительности, выгодно для нашей торговли. Рассмотрим несколько примеров.
РИСУНОК 1. НЕДЕЛЬНЫЙ КОЭФФИЦИЕНТ. СРАВНЕНИЕ ТЕЛА НЕДЕЛИ С ДИАПАЗОНОМ НЕДЕЛИ. Чтобы использовать паттерн «недельный коэффициент», мы сравниваем диапазон торговой недели (расстояние от самого высокого максимума до самого низкого минимума за последние пять торговых сессий) с телом той же торговой недели (разницей между ценой открытия сессии пять дней назад и ценой закрытия сессии один день назад). Этот параметр помогает выявить периоды рыночной «нерешительности» (сжатия рынка).
РИСУНОК 2. КРИВАЯ КАПИТАЛА СТРАТЕГИИ БЕЗ ПРИМЕНЕНИЯ ФИЛЬТРА. Простая торговая стратегия без использования фильтра «недельный коэффициент» была протестирована на трех фьючерсных рынках металлов. В целом эта положительная кривая капитала является отправной точкой, хотя есть возможности для ее улучшения. Можно ли улучшить данную систему путем фильтрации точек входов в рынок с помощью недельного коэффициента?
ТЕСТИРОВАНИЕ ПРОСТОЙ СТРАТЕГИИ
Следующая простая стратегия тестировалась на 12-летних исторических данных с 2010 по 2022 год на трех рынках металлургического сектора с использованием фильтра «недельный коэффициент» и без него. В рамках этой стратегии вход в рынок осуществляется на ценовом пробое, а выход – в конце дня. Мы не используем жесткий стоп. Сделки будут закрываться либо по времени, либо путем входа в противоположную сделку (метод «стоп и разворот»). Цель этой стратегии – продемонстрировать недельный коэффициент в действии.
Компанией MultiCharts был разработан следующий программный код на языке PowerLanguage:
//uses 15 min bars
Inputs:
RangeFilter (1);
Var:
BarCount (0),
MP (0),
SLB (false),
DayCounter (0),
WeeklyFactor (false);
if SLB[1] then barcount = 1
else BarCount = barcount+1;
MP = marketposition;
SLB = SessionLastBar;
WeeklyFactor = AbsValue(OpenS(5) - CloseS(1)) < RangeFilter
* (maxlist(highS(1), highS(2), highS(3), highS(4), highS(5))
- minlist(lowS(1), lowS(2), lowS(3), lowS(4), lowS(5)));
If WeeklyFactor then begin
if barcount > 1 and barcount < 91 then begin
buy ("Brkout_LE") next bar at HighS(1) stop;
sellshort ("Brkout_SE") next bar at LowS(1) stop;
end;
end;
If MP <> MP[1] and MP <> 0 then DayCounter = 0;
if SLB[1] then DayCounter = DayCounter + 1;
if DayCounter > 1 and contractprofit > 0 then setexitonclose;
Мы можем протестировать этот скрипт на 15-минутных свечных графиках трех фьючерсов на металлы: золото (GC), медь (HG) и платину (PL). Первоначальные результаты без паттерна «недельный коэффициент» можно увидеть на рисунке 2 (кривая капитала) и рисунке 3 (результаты торговли). Кривая капитала за этот период является положительной. Небольшая средняя прибыль в сделке ($ 20) явно не подходит для торговли на реальном рынке, так как комиссионные издержки и проскальзывания уничтожат потенциальную прибыль.
Но это исследование служит хорошей отправной точкой, которая показывает, что три рассматриваемых рынка являются трендовыми.
|
Общий анализ сделок |
Все сделки |
Длинные сделки |
Короткие сделки |
|
Общее количество сделок |
9872 |
5056 |
4816 |
|
Общее количество сделок |
0 |
0 |
0 |
|
Количество прибыльных сделок |
4801 |
2477 |
2324 |
|
Количество убыточных сделок |
5014 |
2544 |
2470 |
|
Процент прибыльных сделок |
48,63% |
48,99% |
48,26% |
|
Средняя прибыль (убыток) в сделке |
20,56 |
12,90 |
28,59 |
|
Средняя прибыльная сделка |
748,35 |
730,16 |
767,75 |
|
Средняя убыточная сделка |
(676,09) |
(685,28) |
(666,61) |
|
Соотношение средней прибыли к среднему убытку |
1,11 |
1,07 |
1,15 |
РИСУНОК 3. РЕЗУЛЬТАТЫ ТОРГОВЛИ ПО СТРАТЕГИИ БЕЗ ПРИМЕНЕНИЯ ФИЛЬТРА. Здесь показана первоначальная статистика и результаты без применения паттерна «недельный коэффициент» в качестве торгового фильтра. Результаты положительные, но небольшая средняя прибыль в сделке ($ 20) – это недостаточно хороший показатель для торговли на реальном рынке.
|
Общее количество сделок |
% прибыльных сделок |
Чистая прибыль |
Максимальная внутридневная просадка |
Диапазонный фильтр (недельный коэффициент) |
|
0 |
0,00% |
0,00 |
0,00 |
0,0 |
|
1033 |
45,79% |
3195,00 |
-31217,50 |
0,1 |
|
2176 |
45,73% |
11677,50 |
-48295,00 |
0,2 |
|
3285 |
46,30% |
11592,50 |
-49582,50 |
0,3 |
|
4445 |
47,49% |
78317,50 |
-53147,50 |
0,4 |
|
5594 |
48,11% |
146827,50 |
-51967,50 |
0,5 |
|
6765 |
48,53% |
211420,00 |
-48832,50 |
0,6 |
|
7904 |
48,77% |
237342,50 |
-42427,50 |
0,7 |
|
8851 |
48,94% |
253750,00 |
-48007,50 |
0,8 |
|
9580 |
48,65% |
231737,50 |
-47310,00 |
0,9 |
|
9872 |
48,63% |
202952,50 |
-49447,50 |
1,0 |
РИСУНОК 4. ТАБЛИЦА ОПТИМИЗАЦИИ. Таблица оптимизации показывает, как добавление диапазонного фильтра в данную стратегию влияет на портфель. Значение 1 демонстрирует ранее рассмотренный случай, в то время как все другие входные параметры фильтруют, как большое (или маленькое) тело недели за последние пять дней должно сравниваться с недельным диапазоном. К лучшим результатам, по-видимому, приводят значения параметра RangeFilter между 0,6 и 0,9.
В этом бэктестировании данный фильтр доказал свою эффективность, увеличив среднюю прибыль в сделке на 50%.
ДОБАВЛЕНИЕ НЕДЕЛЬНОГО КОЭФФИЦИЕНТА В СТРАТЕГИЮ
Добавив к нашим расчетам недельный коэффициент, мы сможем проверить влияние нерешительности цены за пять торговых дней до открытия сделок. Оптимизация системы проводилась с использованием входного параметра “RangeFilter” со значениями от 0,1 до 1 (1-100% от общего диапазона).
По мере уменьшения фильтра нерешительность последних пяти дней становится более важной.
В таблице на рисунке 4 мы видим, какое влияние оказывает параметр RangeFilter на портфель. Значение 1 демонстрирует ранее рассмотренный случай, в то время как все другие входные параметры фильтруют, насколько большое (или малое) тело недели за последние пять дней должно сравниваться с недельным диапазоном.
В таблице оптимизации мы видим, что к лучшим результатам приводят значения параметра RangeFilter между 0,6 и 0,9. Из этого диапазона мы можем использовать значение 0,7, которое показывает диапазон стабильности и лучший результат просадки по сравнению с другими хорошими значениями параметра RangeFilter.
Данное значение параметра RangeFilter 0,7 означает, что тело недели должно составлять менее 70% от общего недельного диапазона, и около 2000 сделок (20%) отфильтровываются, что не является огромным торговым средним, но всё же эффективно.
На рисунке 5 представлена кривая капитала, а на рисунке 6 снова показаны результаты торговли для бэктестирования, на этот раз с использованием недельного коэффициента для фильтрации точек входа. Как видно, использование недельного коэффициента в качестве фильтра значительно улучшило результаты торговли. Кривая капитала показывает более плавную линию, а в последние годы тестирования значительно улучшилась прибыльность. Средняя прибыль в сделке выросла на 50% и достигла $ 30.
Это улучшение является важным по сравнению с предыдущими результатами, но его недостаточно для торговли на реальном рынке. В данной стратегии по-прежнему отсутствует стоп-лосс или тейк-профит, поэтому ее можно дополнительно отфильтровать и усовершенствовать, чтобы применить на реальных рынках.
Также важно отметить, что этот портфель состоит из разных фьючерсов, с разными значениями пунктов и разными номинальными значениями контрактов (например, стоимость платины ниже, чем золота и меди), поэтому оценить среднюю прибыль в сделке сложнее.
Тем не менее, в этом бэктестировании данный фильтр доказал свою эффективность, увеличив среднюю прибыль в сделке на 50% (с $ 20 до $ 30). Другие значения фильтра тоже показали хорошие результаты, достигнув лучшей средней прибыли в сделке и подтвердив эффективность недельного коэффициента.
РИСУНОК 5. КРИВАЯ КАПИТАЛА СТРАТЕГИИ С ИСПОЛЬЗОВАНИЕМ ФИЛЬТРА. Когда в качестве фильтра для входа в сделку добавляется недельный паттерн, результирующая кривая капитала во время тестирования простой стратегии становится более гладкой.
|
Общий анализ сделок |
Все сделки |
Длинные сделки |
Короткие сделки |
|
Общее количество сделок |
7904 |
4056 |
3848 |
|
Общее количество сделок |
0 |
0 |
0 |
|
Количество прибыльных сделок |
3855 |
2001 |
1854 |
|
Количество убыточных сделок |
4006 |
2028 |
1978 |
|
Процент прибыльных сделок |
48,77% |
49,33% |
48,18% |
|
Средняя прибыль (убыток) в сделке |
30,03 |
26,66 |
33,58 |
|
Средняя прибыльная сделка |
746,62 |
731,53 |
762,91 |
|
Средняя убыточная сделка |
(659,23) |
(668,48) |
(649,75) |
|
Соотношение средней прибыли к среднему убытку |
1,13 |
1,09 |
1,17 |
РИСУНОК 6. РЕЗУЛЬТАТЫ ТОРГОВЛИ ПО СТРАТЕГИИ С ПРИМЕНЕНИЕМ ФИЛЬТРА. При использовании недельного коэффициента в качестве фильтра для входа в сделку результаты улучшаются. В последние годы бэктестирования прибыльность значительно улучшилась, а средняя прибыль в сделке увеличилась на 50%.
Комплексный подход, диверсифицирующий торгуемые рынки, торговые методы и профили риска, имеет важное значение для получения стабильной прибыли.
ЗАКЛЮЧЕНИЕ
При выборе фильтров или триггеров для входа чистая прибыль не должна быть единственным параметром, который следует учитывать. Комплексный подход, который диверсифицирует торгуемые рынки, торговые методы и профили риска, имеет важное значение для получения стабильной прибыли.
В этой короткой демонстрации я показал, что с помощью нескольких строк кода мы смогли значительно улучшить качество сделок и общую прибыльность простой стратегии торговли на пробоях, применяемой на трех разных рынках. Измеряя ценовой диапазон последних пяти дней относительно диапазона между ценами открытия и закрытия, мы доказали, что за нерешительностью действительно следует расширение цены. Теперь вам нужно проявить творческий подход и следовать своему любопытству!
Андреа Ангер
Код, приведенный в этой статье, доступен в разделе «Код статьи» нашего веб-сайта Traders.com.
Переведено для сайта TLAP.
