Ловим баги в тестере стратегий МТ4

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

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

Как узнать какой спред советник использует во время оптимизации? Ведь вывод в журнал во время оптимизации не производится. С помощью глобальной переменной. Я написал простейший советник, который устанавливает глобальную переменную, которой присваивается значение спреда (можно скачать в конце статьи).

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

Тестирование по тиковым котировкам: подводные камни

В свое время, когда тестирование по реальным тиковым котировкам в тестере стратегий МТ4 только-только появилось, тесты «с качеством моделирования 99%» стали считаться эталоном и чуть ли не окончательной правдой. А разница в результатах тестов между «обычным» тестированием с использованием М1 котировок и тиковых котировок интерпретировалась однозначно – «смотрите, насколько обычное тестирование врет». При этом , как правило, забывалось, что тиковые котировки брались из единственного доступного тогда источника, Dukascopy, который отличался от доступных большинству трейдеров брокеров как небо и земля. В общем, неважно какие котировки, главное чтобы «настоящие тиковые».

Время шло и многое менялось. В тестере МТ4 залатали дыры, которые позволяли писать тестерные граали, а тиковые котировки стали доступными из разных источников. Но на мнение масс это повлияло слабо – по-прежнему большинство считает самыми надежными тесты, сделанные по тиковым котировкам от  Dukascopy. Так ли это?

Давайте проверим. Возьмем советник и прогоним его в тестере с одинаковыми настройками за одинаковый период по котировкам от различных брокеров. А потом сравним результаты и попробуем сделать выводы.

Понятное дело – советник советнику рознь, и ожидаемая зависимость от котировок тоже разная. Мы возьмем капризный советник – ночник, который работает только во время Азиатской сессии. Такие советники, как правило, брокеро-зависимы и для них можно ожидать разных результатов на разных котировках.

В качестве начального варианта мы возьмем «обычное» тестирование с качеством моделирования 90% у брокера Альпари. Котировки М1 загружены в терминале Альпари стандартным образом через Архив котировок. Выполняем прогон в тестере, получаем следующий результат.

Альпари, стандартное тестирование (качество моделирования 90%)

Теперь проведем тест по тиковым котировкам от Альпари, которые можно скачать с их сайта http://ticks.alpari.org/. Как выполнять тест по любым тиковым котировкам я недавно описывал (https://www.argolab.net/o-testirovani.html), так что повторяться не буду. В случае Альпари пришлось повозиться со склеиванием тиковых котировок, т.к. они нарезаны по дням, что очень неудобно, но что делать. Получается следующий результат.

Тиковые котировки Альпари (качество моделирования 99%)
Подробнее »

Еще раз о тестировании по всем тикам или отправляем TickStory на свалку

Мы уже не раз писали о тестировании советников в тестере стратегий MetaTrader4 с использованием тиковых котировок (с качеством моделирования 99%), в частности здесь https://www.argolab.net/testirovanie99-ot-integral.html и здесь https://www.argolab.net/tick-data-suite.html. Но жизнь не стоит на месте и вносит свои коррективы в привычные схемы работы.

Много лет одним из самых простых бесплатных способов протестировать стратегию по тиковым котировкам было использование пакета TickStory Lite (мы писали об этом вот здесь https://www.argolab.net/tickstory-lite.html). Однако, некоторое время назад команда TickStory прекратила бесплатную поддержку новых билдов МТ4. Действительно, в описании версий TickStory на официальном сайте читаем следующее

Т.е., TickStory Lite по-прежнему бесплатна, но поддерживает билды МТ4 только до 765 (а актуальный билд сейчас 1031). Платить 35$ за лицензию многим не хочется, а за годы использования многие привыкли к TickStory, а зачастую еще хуже – не представляют себе, как без нее обойтись. Вот и приходится или использовать для тестирования старые билды, или собирать по сети ломаные коммерческие версии. Ломаные версии работают плохо, а жить со старыми билдами еще хуже. Старые билды МТ4 уже нельзя подсоединить к брокеру, они норовят автоматически обновиться, а главное — советники скомпилированные новыми билдами на старых билдах не работают.
Подробнее »

Оптимизируем мультивалютный сеточник в МТ4: подбор оптимального шага сетки сразу для всех валютных пар

dreamstime_xs_34882380Некоторое время назад мы уже рассматривали тестирование мультивалютных советников в терминале МТ4 и выяснили, что это вполне возможно сделать (Тестирование мультивалютных советников в МТ4: мифы и реальность). Напомню, что в тот раз мультивалютность тестирования достигалась за счет объединения нескольких прогонов тестера МТ4, в каждом из которых сделки открывались только по одной валютной паре. Такой способ действительно работает, но имеет несколько неудобств. Первая проблема заключается в сложности оптимизации такого советника. Вторая проблема заключается в том, что неизвестной оказывается максимальная открытая просадка – для ее определения придется устраивать дополнительный анализ.

Сегодня я изложу метод мультивалютного тестирования советников в МТ4, который свободен от вышеупомянутых недостатков. Сразу расскажу суть метода. Как мы помним, все проблемы с мультивалютным тестированием в МТ4 происходят из одного технического ограничения тестера стратегий МТ4: тестер может открывать (и модифицировать, закрывать) ордера только по той (одной) валютной паре, по которой запущен тестер стратегий. Решение, как всегда, на поверхности: если тестер не умеет открывать ордера по разным парам, то надо это делать самим! Итак, решено: мы напишем советник, который будет «торговать» виртуально – весь процесс открытия, модификации и закрытия ордеров будет держаться в памяти советника, и там же будет накапливаться информация о результатах торговли (прибыль, просадка, и тп). В конце прогона тестирования мы вычислим показатель эффективности торговли и передадим его в тестер через настраиваемый параметр оптимизации (функцию OnTester). Дополнительная информация о результатах торговли может выводиться советником во внешний файл (если захотеть, можно реализовать запись файла отчета, полностью идентичного тому, что делает тестер). В результате мы сможем использовать штатный режим оптимизации в тестере стратегий МТ4 для отбора вариантов с наилучшими результатами торговли. И это все в полностью мультивалютном режиме!

Теперь надо выбрать достойную задачу для мультивалютной оптимизации. Давайте рассмотрим базовую сеточную стратегию: мы открываем ордер; если цена идет в нашу сторону, мы закрываем сделку по тейк-профиту (ТП); если нет, мы строим сетку усредняющих ордеров с заданным шагом и заданным коэффициентом умножения лота. Когда сетка выходит в безубыток + ТП пунктов, мы закрываем сетку с прибылью и начинаем следующую. Таким образом, в логике всего 4 параметра: тейк-профит, шаг сетки, начальный лот и умножитель лота. Особенность нашего советника в том, что он мультивалютный, поэтому начальный лот и шаг сетки по разным валютным парам будут не произвольными, а жестко связанными между собой. Как? На этот вопрос мы уже по сути ответили в одной из наших предыдущих статей (Сколько весит валютная пара?). Разумно установить начальный лот обратно пропорциональным цене пункта по данной валютной паре, а шаг сетки сделать увеличивать или уменьшать пропорционально волатильности данной пары.
Подробнее »

Тестирование советников с качеством моделирования 99% по тиковым котировкам от Integral.

test 9
Про тестирование советников на тиковых исторических данных в тестере стратегий терминала МетаТрейдер 4 мы уже писали неоднократно (в частности, Тестирование советников с качеством 99,9% с помощью программы Tickstory Lite http://www.argolab.net/tickstory-lite.html и Tick Data Suite: тестирование с 99% моделированием, выбор профессионалов http://www.argolab.net/tick-data-suite.html), да и в сети информации об этом предостаточно. Однако, вся эта информация сводится только к тому, как протестировать советник на тиковых данных одного-единственного брокера, Dukascopy. Dukascopy, конечно, неплохой брокер, но людей которые у него торгуют можно по пальцам пересчитать. А с учетом того, что платформу МТ этот брокер не поддерживает, то тестирование МТ советников по его котировкам и вообще теряет особый смысл.

Между тем, существует очень хорошая (и совершенно бесплатная!) возможность тестировать советник по котировкам одного из самых известных поставщиков (точнее, агрегаторов) ликвидности, межбанковской системы Integral. Integral предоставляет ликвидность для многих брокеров, в частности, Roboforex, GKFX и пр. Несомненно, его котировки гораздо ближе к тому, что могут получить в реальности клиенты ритейл-форекса на постсоветском пространстве, чем котировки Dukascopy. Сегодня мы с вами подробно разберем, как нам протестировать советник на котировках от Integral.

Во-первых, тиковые котировки нужно скачать. Для этого идем по адресу http://www.truefx.com/?page=downloads
Подробнее »

Чистим терминал MetaTrader и снижаем нагрузку на ПК.

chistka

С каждым новым билдом MetaTrader становится всё тяжелей и прожорливее. А если вы занимаетесь тестирование советников и индикаторов во встроенном в Метартрейдер тестером стратегий, то вес терминала может достигать десятков гигабайт.
SCR00

Другая головная боль — это нагрузка на ваш компьютер или впс сервер. Сейчас терминалы стали гораздо прожорливее на ресурсы ПК. Если раньше мой VPS-VIP от http://www.myfxvps.pro/ тянул до восемнадцати терминалов, то сейчас на нём работают тринадцать терминалов.
Небольшая разгрузка терминалов позволяет экономить ресурсы сервера и установить дополнительные терминалы.

Подробнее »

Тестирование советников в тестере стратегий: ЧаВо

voprosС чего начать?

1. С закачки котировок. Зайти в «Архив котировок» в MetaTrader 4: меню «Сервис» / «Архив котировок» (клавиша F2). Выбрать интересующий таймфрейм необходимого инструмента (кликнуть два раза мышкой, например, на EURUSD / М1) и нажать «Загрузить».
Для тестирования рекомендуется использовать демо-счет от Альпари, посколько у них загружаются относительно приличные котировки (подробнее о качестве котировок читаем здесь).

2. В тестере стратегий выбрать советник, валютную пару, период времени, тип моделирования (все тики/контрольные точки/цены открытия).
Не забыть установить спред!
Capture
По умолчанию в тестере стоит «текущий спред», что может быть причиной фантастических результатов, особенно если вы тестируете на выходных.

3. Загружаем в эксперт желаемые настройки — и вперед.

Какой тип моделирования выбрать?
Подробнее »

Тестирование и оптимизация торговых стратегий в Excel

test58Здравствуйте уважаемые трейдеры! Недавно столкнулся с непростой проблемой: как протестировать торговую систему пришедшую мне в голову. Тестирование в Forex Tester  на длительном периоде времени — далеко не быстрое и не простое занятие. Конечно, наилучшим способом было бы написать советник и затем пропустить его через жернова тестера стратегий Метатрейдер, но так как программист из меня никудышный, этот вариант тоже отпал.  На бескрайних просторах интернета натолкнулся на еще один, наиболее приемлемый для меня, способ тестирования торговых систем в программе Excel, с основами которого и хочу вас познакомить.

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

Для начала познакомлю вас с простейшей торговой системой которая родилась в недрах моего воспаленного мозга :). Наблюдая за движением пары GBPUSD и глядя на историю, я заметил, что наиболее сильные движения по тренду происходят в одно и тоже время на протяжении многих лет.  Построив в Excel гистограмму зависимости волатильности этой пары от времени суток выяснил, что наиболее сильные движения пары приходятся на 8 ÷ 12 и 13 ÷ 17 часов по GMT.  На часовой график пары установим простую скользящую среднюю (SMA) с периодом 50, которая будет индикатором направления тренда в нашей системе. Правила входа и выхода системы по детски просты: в 8.00 по GMT смотрим на график, если цена выше SMA — открываем сделку на покупки, если наоборот — продажи. Закрываем сделку в 12.00 GMT. Повторяем то же самое после обеда трейдеров в Лондоне и  начале торгов Нью-Йоркской сессии.  В системе минимум переменных, что уменьшает вероятность подгонки на истории.  В дальнейшем, для увеличения доходности и агрессивности системы можно прикрутить к ней элементы мартингейла в случае получения убытка или их серии, но это перспективы. На данном этапе необходимо выяснить: прибыльна ли система, положительно ли у нее математическое ожидание, ведь в противном случае выжать что — либо из системы представляется мне маловероятным.

Итак, приступим. Для получения котировок заходим на сайт Dukascopy  и во вкладке «Рынки и инфо» нажимаем «Исторический Data Feed«. Подробнее »

Тестирование мультивалютных советников в МТ4: мифы и реальность

test001Почти каждый, кто хоть как-то знаком с терминалом МетаТрейдер 4, знает, что тестер стратегий МТ4 не поддерживает тестирование по истории мультивалютных советников. Но очень мало кто знает, что тестирование мультивалютных советников в МТ4 все-таки возможно, и причем совершенно стандартными средствами.

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

Сначала разберемся, чего же именно НЕ МОЖЕТ тестер стратегий МТ4, в плане мультивалютной торговли.

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

Второе. Советник в тестере может открывать (и модифицировать, закрывать) ордера только по той (одной) валютной паре, по которой запущен тестер стратегий.

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

Давайте еще раз перечитаем первый пункт. Нам не доступны тики цены по разным валютным парам. Но КОТИРОВКИ-то (цена открытия, закрытия, high и low баров) доступны! Это значит, что мультивалютные индикаторы будут корректно считаться в тестере стратегий – до тех пока мы используем значения индикаторов на закрытых барах. Не верите? Давайте проверим, ведь «эксперимент – критерий истины.»

Вот код простейшего тестового советника. Этот советник считает значение скользящей средней на паре MA(EURUSD) на открытии нового бара и пишет в журнал значения для 10и первых баров.

А теперь эксперимент. Сначала мы запускаем этот советник по паре EURUSD, и советник пишет нам в журнал значения МА для первых 10и баров.
Подробнее »

Как получить максимум котировок от своего брокера?

http://www.dreamstime.com/royalty-free-stock-images-risk-maximum-switch-button-positioned-word-black-background-red-light-conceptual-image-illustration-high-level-image48242719Не секрет, что котировки разных брокеров отличаются, и порой довольно существенно. В этом можно легко убедиться самостоятельно, прогнав в двух тестерах стратегий с разными котировками одного и того же робота. Что с этим делать? Существует точка зрения, что хороший робот должен хорошо торговать на разных (всех) котировках. Такая точка зрения имеет право на существование. Но … у разных брокеров торгуют роботы все равно по-разному.

Возникает законное желание получить котировки именно от своего брокера и на них протестировать свой советник. Вот тут и начинаются проблемы.  Для того, чтобы получить в тестере качество моделирования 90% (а нам нужно именно такое  – или лучше —  качество чтобы не заниматься самообманом), необходимы котировки М1. Более крупные таймфреймы, на самом деле, не нужны, т.к. могут быть легко получены из М1. Так давайте получать от брокера М1 котировки.

Тут нас ждет некоторая засада. Скачиваем свежий терминал МТ4 от брокера (например, Робофорекс). Открываем график EURUSD M1 и жмем кнопку HOME, тем самым выкачивая котировки брокера (можно также воспользоваться скриптом, если рука начинает отваливаться  🙂 ). Через некоторое время график перестает реагировать на клавишу – брокер не дает больше котировок. Смотрим на дату – закачать удалось порядка двух месяцев М1 котировок.
Подробнее »




Советники ARGOLab
Последние статьи

Комментарии
E-Mail:
Форекс рейтинг . Форекс каталог