English 中文 Español Deutsch 日本語 Português
Интерактивная площадка для моделирования случайных результатов

Интерактивная площадка для моделирования случайных результатов

MetaTrader 4Примеры | 15 августа 2013, 13:41
5 488 2
Clerin
Clerin

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


Введение

Как нам понять, насколько в действительности эффективен тот или иной эксперт?

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

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

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

Данные в столбце результатов задаются таким образом, что при каждом изменении рабочего листа автоматически генерируются новые выходные данные. Для генерации новых данных мы просто выделяем любую пустую ячейку и нажимаем кнопку "Delete" (при этом выбранная ячейка не изменится, однако данное действие вызовет обновление рабочего листа в Excel и создание новых случайных данных). Случайные трейды отображаются на трех отдельных графиках, наряду с которыми выводятся данные стандартных показателей. В прилагаемом файле Excel есть три рабочих листа. Первый лист содержит входные параметры, результаты и графики. На втором листе находятся смоделированные торговые расчеты. Третий лист показывает расчеты для определения ожидаемого процента выигрыша по каждой сделке.

Задание: Откройте прилагаемый файл Excel, на первом листе выделите любую пустую ячейку и нажмите кнопку "Delete", чтобы случайным образом сгенерировать массив результатов. Каждое нажатие кнопки "Delete" будет приводить к генерации новых случайных результатов.

На первом рабочем листе наряду с соответствующими показателями изображены 3 графика:

  1. Суммарный выигрыш/проигрыш (где выигрыш = 1, проигрыш = -1).
  2. Суммарная прибыль/убыток при торговле фиксированным лотом.
  3. Суммарная прибыль/убыток при торговле динамическим лотом с учетом указанного процента капитала, которым вы готовы рисковать при каждой сделке.

Входные параметры

  • Начальный капитал.
  • Стоп Лосс (в долях единицы).
  • Соотношение риск:прибыль (умножаем Стоп Лосс на это число, прибавляем спред и получаем Тейк Профит).
  • Фиксированный размер лота (для расчетов по второму графику).
  • Процент риска на сделку (для расчетов по третьему графику).
  • Спред (в долях единицы).
  • Цена пипса на стандартный лот, в £ (для расчетов по третьему графику. 1 лот = 100,000).
  • Принудительное повышение эффективности (искусственное увеличение ожидаемого процента выигрыша на указанную величину).

Результаты

  • Ожидаемый процент выигрыша (шанс выигрыша с учетом имеющегося соотношения SL:TP и спреда на сделку).
  • Фактический процент выигрыша (фактический результат рандомизации).
  • Максимальное число последовательных выигрышей.
  • Максимальное число последовательных проигрышей.
  • Прибыльность (отношение общей прибыли к общему убытку).
  • Относительная просадка (наибольшее падение баланса в %).
  • Показатель ROI % (окупаемость инвестиций в %).

Положения

  • Есть только одна открытая позиция в каждый конкретный момент времени.
  • Выход из каждого трейда осуществляется по Стоп Лоссу или Тейк Профиту, без Трейлинг Стопа.
  • Размер Стоп Лосса во всех трейдах одинаковый.
  • Тейк Профит всегда рассчитывается как величина, кратная Стоп Лоссу.
  • Процент выигрышных сделок основан на соотношении SL:TP и величине спреда, при условии что распределение является случайным.
  • Величина спреда фиксирована.
Задание: Попробуйте поиграть со значениями различных входных параметров и понаблюдать, как при этом меняются графики и выходные данные, особенно прибыльность и относительная просадка.


Генерация случайных данных

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

Учитывая, что результатом любого трейда является либо выигрыш, либо проигрыш, некоторые иногда полагают, что при одинаковом размере Стоп Лосса и Тейк Профита случайность должна дать 50% выигрышей и 50% проигрышей. Предположение о том, что убыточную стратегию можно превратить в прибыльную, просто поменяв направление трейдов такой системы, представляется крайне заманчивым. Однако реальность быстро вносит свои коррективы.

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

Например, предположим, что Стоп Лосс и Тейк Профит составляют 10 пипсов, а спред равен 2 пипсам. Если рынок пройдет расстояние в 10 пипсов в благоприятном для трейда направлении, то прибыль составит 10 пипсов вверх до уровня Тейк Профита. Учитывая, что необходимо оплачивать спред в размере 2 пипсов, фактическая прибыль будет равняться 8 пипсам. Если же рынок пройдет 10 пипсов в противоположном трейду направлении, убыток составит 10 пипсов вниз до уровня Стоп Лосса. Однако чистый убыток по сути будет равен 12 пипсам, так как и в этом случае 2 пипса пойдут на оплату спреда. Соотношение расстояний в пипсах, которые рынок прошел и в том, и в другом направлении, равно 10:10. При этом соотношение заработанных пипсов к потерянным составляет 8:12.

Для обеспечения того, чтобы сумма средств, потерянных на Стоп Лоссе, была равна сумме средств, заработанных на Тейк Профите, мы можем просто переставить уровень Тейк Профита немного дальше, чтобы он покрывал величину спреда, а по Стоп Лосс закрываться немного раньше - на ту же величину. Таким образом, Стоп Лосс будет равен 8 пипсам (убыток в размере 10 пипсов), а Тейк Профит будет равен 12 пипсам (прибыль в размере 10 пипсов). Учитывая равные шансы попадания цены в любую точку на указанном интервале, вероятность оказаться на уровне Тейк Профита равна 1- (12 / (8+12)) = 0.4 = 40%, а вероятность оказаться на уровне Стоп Лосса представляет собой величину, обратную вышеуказанной, т.е. 60%.

Вы можете найти несколько примеров на третьем рабочем листе в таблице и на графике под расчетами. Чем больше соотношение Стоп Лосса к Тейк Профиту, тем меньше влияет спред на ожидаемый процент выигрыша.

Задание: Поменяйте величину спреда, значение Стоп Лосса и соотношение SL:TP и посмотрите, как эти изменения повлияют на ожидаемый процент выигрыша.


Связь между процентом выигрыша и соотношением SL:TP

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

  • Обсуждать процент выигрыша, не владея при этом данными о соотношении Стоп Лосса к Тейк Профиту, размере спреда и об изменении этих цифр в течение всего периода работы эксперта, не имеет большого смысла.
  • Высокий процент выигрыша совсем не обязательно является показателем прибыльности той или иной стратегии, и наоборот, низкий процент выигрыша не означает, что стратегия автоматически является убыточной.
Задание: Поэкспериментируйте с цифрами. Выставив значение 10 для соотношения риск:прибыль, вы увидите, как процент выигрыша сразу уменьшится и на первом графике отобразится резкое падение. Тем не менее, на втором и третьем графике можно будет заметить прибыль по некоторым случайным данным. Далее, изменив значение соотношения на 0.1, процент выигрыша подскочит вверх, а первый график резко пойдет в гору. При этом по некоторым случайным данным все равно будет зафиксирован убыток.

Примеры:


Рисунок 1. Вариант 1: Соотношение риск:прибыль = 10.



Рисунок 2. Вариант 2: Соотношение риск:прибыль = 0.1.


Эффект увеличения риска

Мы часто слышим, что успешные трейдеры никогда не "ставят на карту" более n-ого числа процентов от суммы своего счета в каждой отдельно взятой сделке. Обычно это порядка 3-10%. В большинстве случаев нигде не объясняется, почему это так, а не иначе. Естественно, благодаря этому можно предотвратить крупные потери и, таким образом, избежать полного опустошения счета. Вероятно, еще более важным является влияние процента риска при торговле динамическим лотом.

Под процентом риска трейдеры понимают процент от суммы счета, который будет потерян при срабатывании Стоп Лосса. Вообще, расстояние, на котором выставляется Стоп Лосс, определяется еще до открытия трейда, и размер лота вычисляется так, чтобы обеспечить адекватность такого расстояния в пипсах проценту риска по счету. С ростом прибыли увеличиваются и средства, доступные для открытия каждой новой позиции. В результате возрастает размер лота, что приводит к росту потенциальной прибыли. Таким образом, мы получаем "составную" прибыль (здесь, конечно, нужно отметить, что при потерях оказываемое воздействие тоже является по сути "составным").

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

Задание: Увеличивая риск с 1% до 20%, проследите за изменением результатов на третьем графике. Затем сравните полученные результаты (в особенности, относительную просадку и прибыльность) с графиком торговли фиксированным лотом.

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


Рисунок 3. Разница результатов, полученных по одному и тому же ряду трейдов, в первом случае торгуя с процентом риска 1%, а во втором случае - 10%.


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

Изменение соотношения риск:прибыль или увеличение начального капитала вряд ли сильно повлияют на картину. Единственное, что может привести к существенным изменениям, - это увеличение процента выигрыша (с целью сокращения вероятности серии больших потерь). Для этого у нас есть параметр под названием "Принудительное повышение эффективности". Увеличивая его значение, можно посмотреть, как могли бы развиваться события, если бы эффективность эксперта была лучше, чем в условиях случайности.

По умолчанию значение данного параметра равно 15% (потому что иначе попытки получить чистую прибыль на большинстве случайных данных будут постоянно терпеть неудачу из-за влияния спреда на ожидаемый процент выигрыша, как уже объяснялось выше). Тем не менее, всегда будет существовать такой уровень процента риска, выше которого стратегия почти гарантированно потерпит крах.

Задание: Если вам больше не нужно, чтобы рабочий лист генерировал новые случайные данные, и вы просто хотите посмотреть, как разные значения входных параметров влияют на один и тот же набор данных, скопируйте результаты из колонки C в колонку D с помощью опции "Специальная вставка" и выберите "значения" (для того чтобы вернуть все на свои места, нужно просто обычным образом скопировать колонку C в колонку D). Попробуйте увеличить значение "Принудительного повышения эффективности" и понаблюдайте за тем, как это повлияет на третий график.

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


Использование эксперта для моделирования случайных трейдов (при тестировании на истории)

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

С этой целью к статье прикреплен очень простой советник под названием "Random EA" (см. ниже). Он предназначен для выставления случайных трейдов исключительно при тестировании на истории или в режиме оптимизации (указанный советник не предназначен для реальной торговли или торговли на реально существующем демо-счете).

Процент случайности при выставлении трейда на том или ином баре можно выставить во входных параметрах (вплоть до 100%). В каждый конкретный момент времени можно открыть только один трейд. Число трейдов на одном баре сведено к одному. Трейды выставляются в начале бара.

Можно выбрать необходимый размер Стоп Лосса и Тейк Профита (в пунктах). Эти размеры соответствуют фактическому убытку по счету (и поэтому заранее учитывают влияние спреда). Так, Тейк Профит в размере 300 пунктов эквивалентен Стоп Лоссу, равному 300 пунктам, в валюте депозита. Кроме того, имеется возможность выставлять уровни Стоп Лосса и Тейк Профита по каждому трейду случайным образом, используя диапазон значений от 100 до 1000 пунктов. Эксперт разработан так, чтобы обеспечить равные шансы для открытия длинных и коротких трейдов.

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

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

Из выставления случайных трейдов описанным выше образом, можно извлечь два важных урока:

  1. Даже случайные трейды можно превратить в прибыльные на определенном участке истории путем правильно подобранного соотношения SL:TP.
    Можно заметить, что изменения соотношения SL:TP, при которых Тейк Профит устанавливается значительно больше или значительно меньше Стоп Лосса, имеют огромное влияние на показатели эффективности. Важным является то, что иногда удается подобрать такое удачное соотношение SL:TP для определенного участка истории, при котором в результате большинства случайных проходов будет фиксироваться прибыль. Например, если данные периода истории, на котором идет тестирование, говорят о преобладании бычьего рынка, то, значительно увеличив значение Тейк Профита по отношению к Стоп Лоссу, пользователь может склонить перевес на свою сторону. В таких случаях время выставления трейдов не имеет значения - они в буквальном смысле могут быть совершенно случайными. При этом конечный результат, скорее всего, будет положительным.

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

    Разработав, казалось бы, успешную комбинацию индикаторов для своих советников (по результатам тестирования на истории), трейдеры очень часто спешат поздравить себя с этим событием, не осознавая, что на самом деле за выполнением большей части работы в их системе стоит не что иное, как соотношение SL:TP, потому что тестирование проводилось на участке истории с ярко выраженным трендом. При тестировании таких систем в условиях вялого рынка, прежней результативности может уже не быть. Не забывайте, что сильные тренды по валютным парам могут иногда сохраняться в течение года или еще дольше.

    Если результаты тестирования советника на определенном участке истории совпадают с результатами советника, торгующего случайным образом, на том же участке истории (при использовании одинаковых соотношений SL:TP и идентичных правил определения размера лота), вы можете открыть для себя много интересной информации о вашей стратегии.

  2. Работая со случайными трейдами можно оставаться в прибыли на протяжении сотен трейдов.
    После проведения нескольких тестов на истории вы сможете заметить, что в некоторых случаях прибыльность сохраняется в течение длительных периодов времени даже при случайных трейдах. Это оказывает влияние на то, как можно судить об успешности той или иной стратегии, когда решение приходится принимать на основе лишь небольшого количества имеющихся трейдов. Советник, выставляющий трейды случайным образом, может, порой, приносить постоянную прибыль на протяжении, например, 300 трейдов, а потом в течение следующих 50 терпеть неудачи. Эта информация может пригодиться пользователям для оценки эффективности других стратегий.
Задание: Проведите несколько тестов на истории, используя советник "Random EA". Попробуйте поменять значения Стоп Лосса, Тейк Профита и размер лота и посмотреть, как эти изменения отразятся на результатах. Изменяя параметры Стоп Лосса и Тейк Профита, попытайтесь подобрать такое их соотношение, при котором случайные трейды будут сохранять прибыльность в течение тестового периода. Далее, несколько раз протестируйте советник на одном и том же периоде и подсчитайте максимальное количество выполненных трейдов в промежуток времени от начала постоянной прибыли до существенной просадки.


Заключение

Эта статья не носит рекомендательный характер. Она просто предоставляет площадку для экспериментов. Пользователи сами должны сделать свои выводы.


Примечания

  • При написании материалов использовался Excel 2003.
  • Время от времени генератор случайных чисел "исчерпывает" свои возможности и перестает выдавать случайные результаты. Если вы заметили подобное поведение, просто закройте и снова откройте файл Excel.
  • Расчеты реализованы так, чтобы обеспечить моделирование валют с 4 или 5 знаками после запятой (т.е. не предназначены для валютных пар, в составе которых есть JPY).
  • Следует признать, что, учитывая характер случайности, в основе которой лежат качество генератора случайных чисел, созданного в Excel, и приближенные вычисления для прогнозирования ожидаемого процента выигрыша, в полной мере отобразить результаты, которые могут быть получены в реальном мире, будет невозможно. Тем не менее, в рамках данной статьи этого должно быть достаточно.

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/1360

Прикрепленные файлы |
Random_EA.mq4 (8.13 KB)
Последние комментарии | Перейти к обсуждению на форуме трейдеров (2)
Sceptic Philozoff
Sceptic Philozoff | 17 авг. 2013 в 14:52
При расчете результатов на рабочем листе Excel предполагается, что рынки абсолютно случайны и трейды в таких рынках тоже выставляются случайным образом

Приехали.

Ни одна реальная (не заглядывающая в будущее) торговая система не способна систематически выигрывать на "абсолютно случайных" рынках. Говорят, что это и есть одна из теорем Дуба о мартингале. Она сформулирована в других терминах, гораздо более умных, но по сути именно это и говорит.

Алексей Тарабанов
Алексей Тарабанов | 16 сент. 2013 в 22:14
Mathemat:
При расчете результатов на рабочем листе Excel предполагается, что рынки абсолютно случайны и трейды в таких рынках тоже выставляются случайным образом

Приехали.

Ни одна реальная (не заглядывающая в будущее) торговая система не способна систематически выигрывать на "абсолютно случайных" рынках. Говорят, что это и есть одна из теорем Дуба о мартингале. Она сформулирована в других терминах, гораздо более умных, но по сути именно это и говорит.


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

Кстати, а чем "абсолютно случайный" процесс отличается от сермяжного случайного?

Приобщаемся к объектно-ориентированному программированию в MQL5 Приобщаемся к объектно-ориентированному программированию в MQL5
В статье показано, как создать объектно-ориентированного торгового советника с нуля, начиная с выработки торговой идеи и заканчивая созданием торгового советника на языке MQL5, воплощающего данную идею в жизнь. На мой взгляд, самый верный путь к успеху - это обучение на практике, поэтому в статье рассмотрен практический пример, демонстрирующий, как можно упорядочить свои идеи и приступить к программированию форекс-роботов. Кроме того, мне хотелось пробудить интерес читателей к объектно-ориентированному подходу.
Генератор торговых сигналов пользовательского индикатора Генератор торговых сигналов пользовательского индикатора
Как сделать генератор торговых сигналов основанный на пользовательском индикаторе. Как создать пользовательский индикатор. Как получить доступ к данным пользовательского индикатора. Зачем нужна конструкция IS_PATTERN_USAGE(0) и model 0.
Создание нейросетевых торговых роботов на базе MQL5 Wizard и Hlaiman EA Generator Создание нейросетевых торговых роботов на базе MQL5 Wizard и Hlaiman EA Generator
В статье рассматривается метод автоматизированного создания нейросетевых торговых роботов на базе MQL5 Wizard и Hlaiman EA Generator. Узнайте, как легко начать работать с нейронными сетями, минуя длительные этапы изучения теоретических материалов и написания собственного кода.
Рецепты MQL5 - Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel Рецепты MQL5 - Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel
Общаясь на многих форумах, я довольно часто приводил в пример результаты тестов на скриншотах с графиков в Microsoft Excel. И многие просили меня объяснить, как же строить эти замечательные графики. Наконец у меня появилось немного времени, чтобы написать статью об этом.