Расчет целевых уровней.

История изменений

15.04.2011  Обработаны и удалены 125 комментариев. Материал дополнен.
22.12.2011  Обработаны и удалены 8 комментариев. Материал дополнен.

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

Каким должен быть алгоритм вычисления целевых уровней, которым могли бы пользоваться основные участники рынка? Наверное, этот алгоритм должен быть максимально простым и точным. Это позволило бы присоединяться к движению новым крупным участникам рынка. Методика вычисления должна быть интуитивно понятна. Для ее понимания и проверки любой участник рынка должен иметь необходимый инструментарий, который должен быть в большинстве программ технического анализа. Магические индикаторы и различные хитроумные графические объекты, имеющие различные параметры и модификации, на роль такого инструментария не подходят. Инструмент должен быть максимально простым и точным.

Вы уже догадались, что это за инструмент?

Нет? Тогда я предоставлю вам возможность догадаться самостоятельно, предоставляя по мере повествования статистические доказательства эффективности этого инструмента. Надеюсь, вы поймете, что это за инструмент, не дочитав до конца этой статьи.

Итак, рассмотрим статистику и некоторые расчеты.

Для начала вычислим, сколько в среднем проходит цена в определенном направлении после того, как она прошла в этом направлении n-пунктов. Например, вычислим средний размер движений для всех движений более 100 пунктов Fоrexite, 105 пунктов и т.д. Для этого расчета нам потребуются данные, которые можно выгрузить в базу данных с помощью информационного индикатора gp_Mount. Возьмем историю за период [2000-2009] и выгрузим все движения большие 100 пунктов с шагом 5 пунктов. Меньший шаг не имеет значения для предстоящих расчетов (проверено на практике). В итоге мы вычислим средний размер движения для каждого шага от 100 до 500 и соотношение шага к размеру среднего движения:

Расчет среднего размера движений.

Таблица отношений среднего размера всех движений к базовому размеру движения:
  • В столбце "Базовый размер" указан минимальный размер движения (параметр p_Mount).
  • В столбце "Средний размер" указан средний размер всех движений за всю историю [2000-2009].
  • В столбце "Отношение среднего размера к базовому размеру" показан результат деления среднего размера движения на базовый размер.
  • В столбце "Число движений в расчете" указано общее число движений для данного базового размера.
Таблицы для всех символов не привожу полностью, т.к. они занимают много места. Вместо них далее показаны диаграммы отношения среднего размера к базовому размеру:

Отношение среднего размера к базовому размеру для GBP.

Отношение среднего размера к базовому размеру для EUR. Отношение среднего размера к базовому размеру для CHF. Отношение среднего размера к базовому размеру для JPY.
Отношение среднего размера к базовому размеру для AUD. Отношение среднего размера к базовому размеру для CAD. Отношение среднего размера к базовому размеру для Gold (XAU).

Таблица минимальных и максимальных значений отношения для символов:

Таблица минимальных и максимальных значений отношения.

Как вы можете видеть, отношение среднего размера движения к базовому размеру имеет незначительное отклонение от цифры 2.

Что это значит? Это значит следующее: сколько бы цена не прошла в каком-либо направлении, за достаточный период выборки в среднем она пройдет столько же.

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

Для проверки вышеприведенной статистики на практике, воспользуемся простой механической стратегией. Суть ее заключается в следующем. Покупаем, если цена растет на p_Mount-пунктов. Продаем, если цена падает на p_Mount-пунктов. После открытия позиции устанавливаем TakeProfit=p_Mount. Например, если p_Mount=160, то при росте цены на 160 пунктов мы открываем длинную позицию с лимитом на 160 пунктов выше цены открытия. Если цена падает на 160 пунктов, открывается короткая позиция. Таким образом, стоп у нас так же равен 160 пунктов.

Оптимизируем параметр p_Mount от 100 до 500 с шагом 5 без учета спреда и ролловеров. Пока наша цель в том, чтобы подтвердить полученную выше статистику на практике, а не сделать прибыльную торговую стратегию.

В итоге оптимизации торговой стратегии на интервале [2000-2009] мы получаем доходность (NetProfit), изменяя параметр p_Mount от 100 до 500 с шагом 5:

Итог оптимизации торговой стратегии на интервале [2000-2009].

Построим диаграмму доходности торговой стратегии:

Отношение среднего размера к базовому размеру для GBP.

Сравним ее с более подробной диаграммой отношения среднего размера к базовому размеру:

Отношение среднего размера к базовому размеру для GBP.

Корреляция подтверждает наши расчеты. Цена действительно в среднем проходит после открытия позиции столько же пунктов, сколько и до открытия (размер p_Mount). Если в качестве уровня TakeProfit использовать не размер p_Mount и добавить параметр стопа, прибыльность торговой стратегии возрастает многократно. Однако не спешите повторять стратегию. Ведь целью построения стратегии было получение доказательства, а не построение стратегии, дающей стабильную прибыль каждый год. Основные участники рынка подходят к открытию позиций избирательно, а не открывают позиции как только цены дернутся в ту или иную сторону.

Для иллюстрирования робастности метода выше использовались данные за период [2000-2009]. Это не означает, что метод работает только на большом отрезке истории. Подтверждающая статистика сохраняется из года в год, так как этим методом основные участники рынка пользуются десятилетиями. И не только на рынке Forex. Чтобы вы могли в этом убедиться, после текста статьи приводятся диаграммы отдельно для каждого символа и года.

Надеюсь, вы уже поняли, что в качестве инструмента для расчета целевых уровней, основные участники рынка использую классический 50% ретрейсмента. С его помощью рыночные движения разбиваются на три фазы:
  1. Начало движения.
  2. Середина - прорыв ключевого уровня.
  3. Конец движения - фиксация прибыли по достижению целевого уровня.
Примеры расчета целевых уровней можно посмотреть по тэгу "Торговые решения". Примеры расчета целевых уровней для долгосрочных моделей можно посмотреть здесь.

Как вы можете видеть, все не просто, а очень просто. Почему же трейдеры так редко используют этот простой и эффективный метод? По следующим причинам:
  1. Это слишком просто, чтобы быть правдой.
  2. Это запрограммировать сложнее, чем пересечение индикатором другого индикатора.
Если хочешь что-то спрятать - положи это на самое видное место. Умный заметит, а остальные не ищут легких путей. Люди не верят, что на рынке зарабатывать легко. Раз зарабатывают не многие, значит это сложно. Следовательно, хорошие методики должны быть сложными. Никто не верит профессионалам, которые во всех книжках пишут - делайте стратегию простой. Правда они не договаривают, почему ее надо делать простой и в чем собственно заключается суть простой и успешной стратегии. Читателям приходится довольствоваться полуправдой, но и за это можно сказать спасибо.

Нам осталось рассмотреть еще один вопрос: насколько эффективной может быть стратегия, использующая 50% ретрейсмент в качестве метода для расчета лимит-ордеров? Для примера приведу вам статистику стратегии, которая была настроена не на максимальную прибыль, а на максимальное число прибыльных сделок, чтобы проиллюстрировать эффективность расчета целевых уровней:

Потенциальная эффективность расчета целевых уровней.

Если сравнивать эффективность расчета целевых уровней с различного рода трэйлингами, параболиками, всевозможными скользящими средними, то этот метод значительно эффективнее.

Дополнения, ответы на вопросы и комментарии читателей:
  • Желающие проверить расчеты могут использовать стратегию gp_Mount_Sample или стратегию GeliumStarter с названием стратегии p_System = "mount". В параметрах стратегии шаг Mount, размер профита и стопа надо установить равными. Profit factor в районе 1 и колебание кривой доходности в районе нуля будут подтверждать выводы этой статьи. Так же можно воспользоваться индикатором gp_Mount для выгрузки статистики движений в файл и для последующего расчета в Excel. Готовый пример с формулами можно скачать отсюда.

  • Для среднесрочных целей, по моим расчетам, цена в среднем не доходит до целевого уровня следующее число пунктов:

    Символ Число пунктов
    GBP/USD 19
    EUR/USD 20
    USD/CHF 20
    XAU/USD 13
    USD/JPY 21
    AUD/USD 25
    USD/CAD 22

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

    Для долгосрочных моделей эти значения могут быть значительно больше, но, как правило, в качестве целей используются значения среднесрочных моделей.

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

  • Допустим, начало движения найти несложно, тем более, что его можно искать аж вплоть до пробития ключевого уровня. Вопрос только в том, по каким критериям определить, что это ключевой уровень?

    В подавляющем большинстве случаев, ключевым уровнем является уровень поддержки/сопротивления. Хорошие уровни поддержки/сопротивления образуются не за один день. Для их индикации можно использовать индикатор gp_Supres или вершины индикатора gp_Mount. Крайне редко уровнем прорыва может быть уровень возникновения импульса, который пробивает уровень поддержки/сопротивления.

  • Можно ли использовать целевые уровни при работе с моделями консолидации?

    Можно. В качестве размера стопа лучше использовать оптимизируемый параметр, который будет оптимален актуальному рыночному контексту.

  • Как вы объясняете причину продолжения движения после пробития ключевого уровня?

    Продолжается движение за счет устанавливаемых ниже/выше уровня поддержки/сопротивления ордеров, которые обеспечивают не просто движение, а движение с ускорением. На истории это можно видеть. Далее профессионалы начинают строить пирамиду за счет кредитных средств, чтобы тренд дошел туда куда надо, а не развернулся на половине пути.

  • Ничего нового я не открою, но, по-моему, есть только один сигнал на вход - пробой значимого уровня. Нет пробоя, не входим.

    Не только пробой:
    1. Большие тренды и некоторые модели закладываются не один день и даже не одну неделю. Есть возможности войти во время формирования модели, на опережении.
    2. Можно входить на импульсах, когда цена несется без откатов.
    3. Работа внутри диапазона с входом у его границ.
    Пробой - очень хороший вариант, но не единственный.

  • Комментарий Марка от 20.04.2010:

    Попытался воспроизвести ваш опыт на MQ4. Я получил блестящее подтверждение вашему тезису о том, что цена, пройдя Х пунктов, очень часто проходит еще столько же. Достаточно часто (и из года в год), чтобы не считать это случайностью.

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

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


    Я прогнал стратегию для евродоллара на промежутке от начала 2000 года по конец 2009, меняя параметр Base (аналог вашего p_Mount) от 100 п. c шагом в 5 п. до 200 п. (у Альпари все эти цифры надо умножить на 10 из-за пятого знака.).

    Лот постоянный (0.1), поэтому такие показатели, как прибыльность и матожидание успеха, однозначно указывают на то, каких сделок больше - прибыльных или убыточных. Никакого реинвестирования, поскольку данный советник предназначен исключительно для проверки тезиса, а не для торговли.

    20 из 21 прогона дали положительные результаты. Отрицательный результат дал лишь прогон, в котором Base равен 165. Самые хорошие результаты дали прогоны с Base, равным 125, 145, 185. Матожидание успеха соответственно составило 53, 34, 42, а профит-фактор (прибыльность): 2.48, 1.61, 1.6.

    И все это, заметьте, без каких-либо попыток найти оптимальное соотношение стоплосса и тейкпрофита (они здесь просто равны Base), без учета ключевых уровней, без реинвестирования и даже без учета среднесрочных или долгосрочных трендов.

    Думаю, этот результат заинтересует многих посетителей сайта.

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

    И я в их числе, за что огромная вам наша благодарность.

    Скачать код стратегии на MQL4 можно отсюда.


    Чтобы не зависеть от пятого знака, я ввел в коде переменную Punkt. В блоке Init она получает свое значение, которое затем больше не меняется. Вот соответствующие строки:

    if(Digits==4 || Digits==5) Punkt=0.0001;
    if(Digits==2 || Digits==3) Punkt=0.01;

    Иными словами, сколько бы ни было у брокера знаков после запятой для евродоллара, мы полагаем, что Punkt=0.0001. И затем вместо зарезервированной переменной Point , которая разная у разных брокеров, мы используем наш Punkt.

    Значение переменной Base измеряется именно в этих пунктах (Punkt). Т.е. данная МТС оперирует общепринятым значением пункта (рассчитанного для 4 знаков), а не для пятого знака, который некоторые брокеры ввели около года назад.
    Как нетрудно понять, вторая строка приведенного кода относится к йенозависиым парам. Здесь мы тоже используем общепринятое значение пункта (для двух знаков после запятой).

    Для пользователей MetaTrader хочу обратить внимание на то, что советник предназначен не для получения прибыли, а для подтверждения статистики. Доходность советника должна быть в среднем в районе нуля, с большей вероятностью ухода в минус из-за свопов и спреда.

  • К сожалению, не могу согласиться, что эти результаты что-либо подтверждают. Слишком небольшой перевес в плюс, слишком мало сделок. 

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

    Насколько он эффективен видно здесь:

    Forex-big-money-gbp3

  • С удовольствием почитал ваши статьи, почерпнул для себя много полезного. Вместе с тем, что касается этой статьи, у меня возникли сомнения по поводу целесообразности использования среднего размера движения для расчёта целевых уровней. Дело в том, что по идее нам необходимо найти такое движение, которое при данном базовом движении повторялось бы наиболее часто.

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

  • Посмотрел... Попробовал... Понял, всё новое - хорошо забытое старое. Это канальная стратегия торговли, которую жуют на первом занятии любых курсов по трейдингу. А именно цена всегда ходит в канале (ах), при пробое границы канала, цена проходит расстояние равное высоте покинутого канала. Ничего не напоминает?

    К каналам расчет целевых уровней не имеет никакого отношения. Да и сами каналы, которые рисуют в виде двух параллельных линий, штука бесполезная. imho.
  • Основой для расчетом целевого уровня является уровень поддержки и сопротивления, а также не менее 50% коррекции предыдущего движения?

    Коррекция в 50% не является обязательным условием для расчета целевого уровня. Например, может быть восходящий тренд на 1500 пунктов, откат на 500 пунктов и продолжение в направлении тренда еще на 1000 пунктов с точки минимума коррекции.
  • При расчете целевого уровня ориентируетесь ли вы на размер предыдущего движения или прошлая цена не играет роли в расчете будущей цены?

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

Далее привожу диаграммы отдельно для каждого символа и года.

GBP 2008 GBP 2007 GBP 2006
GBP 2005 GBP 2004 GBP 2003
GBP 2002 GBP 2001 GBP 2000
EUR 2008 EUR 2007 EUR 2006
EUR 2005 EUR 2004 EUR 2003
EUR 2002 EUR 2001 EUR 2000
CHF 2008 CHF 2007 CHF 2006
CHF 2005 CHF 2004 CHF 2003
CHF 2002 CHF 2001 CHF 2000
JPY 2008 JPY 2007 JPY 2006
JPY 2005 JPY 2004 JPY 2003
JPY 2002 JPY 2001 JPY 2000
CAD 2008 CAD 2007 CAD 2006
CAD 2005 CAD 2004 CAD 2003
CAD 2002 CAD 2001 CAD 2000
AUD 2008 AUD 2007 AUD 2006
AUD 2005 AUD 2004 AUD 2003
AUD 2002 AUD 2001 AUD 2000
Gold 2008 Gold 2007 Gold 2006
Gold 2005 Gold 2004 Gold 2003
Gold 2002

Для души и разума.

- Или сделаем так, как сказал я!
- Или?
- Или как я сказал, так и сделаем!

Просто я люблю, когда меня любят. Ну очень мне это нравится. Отличная вещь. Вообще всем рекомендую. Любить меня.

Далее.


Pavel Gelium 2000-2017 © All rights reserved.