Тестирование советников - тема для программистов 📌

От b0a, 12 марта, 2013 в Уголок Программиста

#101


AndreyGold На кой вам нужно тестировать Сов с ММ? Чтобы видеть красивый рост графика?
Все тесты всегда делаются со стандартным лотом. Просадка высчитывается делением значения максимальной на начальный депозит.
Этих данных вполне достаточно, чтобы иметь представление о просадке, доходе сета. далее на калькуляторе высчитывается соотношение лота в депо (0.01 на 500 тугриков), и после этого уже только прикручивается ММ для этого соотношения.


Это понятно, а если хочется красивый график ?

Добавлено: 22-05-2015 13:24:19


Генетический алгоритм тестера отбирает максимальные результаты для последующих пргонов => кол-во сделок должно находиться в прямой пропорции к результату, возвращаемому OnTester.
т.е. ret = TesterStatistics(STAT_DEALS) * ... * TesterStatistics(STAT_PROFIT) / TesterStatistics(STAT_EQUITY_DD);


0ll
А можно мне не сразу соображающему (и это еще мягко сказано :d) чуть разжевать этот момент.
Как я понял Вашу логику, то прописав строчку :
ret = TesterStatistics(STAT_DEALS) * TesterStatistics(STAT_PROFIT) / TesterStatistics(STAT_EQUITY_DD);
в модуль Ontester() и выбрав в качестве Optimized parameter "Custom". Мы получаем в результатах оптимизации столбец Ontester result, отсортировав по которому, мы должны получить лучшие результаты с точки зрения "Количества сделок*Соотношение прибыли к просадке" и таким образом
как бы "отсекается" недостаточная выборка ну и мы имеем более плавную кривую доходности, так ?
А у меня почему то в столбец Ontester result прописываются только нули. Что я недопонял ?

Изменено 4 сентября, 2015 пользователем Старик

#102
AndreyGold для получения нужных результатов для разных ботов нужно подходить индивидуально, для каких-то моментов общее кол-во сделок благо, а могут быть ситуации когда это плохо... Поэтому обозначил "*...*" - может весовой коэф. а может и не *, а + делать. в общем это творческий процесс.

почему нули - не знаю... У меня работает нормально. Сделай по каждому параметру отдельно - посмотри значения на коротких прогонах, а потом составляй формулу.
#103


Это понятно, а если хочется красивый график ?


Что мешает сделать красивый график, после того, как будет подобран правильный сет?
Не понимаю я этого стремления делать миллионы на картинке.
Вот первый скрин. ММ отключен. Просадка 6,5%, Доход - 37%


Я посчитал что для меня это мало, уже имея эти данные прогнал пару с 5% риском на сделку
Результат: Просадка по тестеру 14,5%, Доход - 199,5%
#104
Спойлер



Это понятно, а если хочется красивый график ?


Что мешает сделать красивый график, после того, как будет подобран правильный сет?
Не понимаю я этого стремления делать миллионы на картинке.
Вот первый скрин. ММ отключен. Просадка 6,5%, Доход - 37%


Я посчитал что для меня это мало, уже имея эти данные прогнал пару с 5% риском на сделку
Результат: Просадка по тестеру 14,5%, Доход - 199,5%


Так при мультитестировании сделать правильный красивый график никак не получается, вот в чем и вопрос. То есть если Вам например надо показать результаты форвард-теста потенциальному инвестору то варианта 4:
1) Ваша сова должна сама учитывать мультивалютность
2) Мы показываем результаты тестов с лотом 0,01 и на пальцах объясняем а как было бы на самом деле
3) Мы корректируем руками полученные данные
4) Мы показываем результаты, которые корректны из-за неправильного рассчета размера-лота от счета (это как сейчас)

Изменено 22 мая, 2015 пользователем AndreyGold

#105
AndreyGold просто не сделаешь (в МТ4). Надо писать скрипт, который пересчитывает стейты по каждой паре и составляет суммарный стейт с поправкой на размер лота, а потом этот стейт грузить в анализатор.
#106

Господа, а как на Ваш взгляд, такой подход : если стратегия настроена на работу на средне-долгосроке (например работает только на дневках). То при первом "грубом" прогоне оптимизации, отключать генетический алгоритм и делать прогон на модели "Control points". С одной стороны получаем
многочасовую оптимизацию (в зависимости от кол-ва параметров и мощности компа 10 лет -> ~ 16 часов работы компа).
С другой - первая картина будет более полная и сократится время, на дальнейший анализ и количество последующих прогонов оптимизаций.

#107
AndreyGold тут от нашего мнения мало зависит.
1. если сова использует трал (обычный), то тестирование по контрольным точкам даст ложный результат. (а также БУ и прочие переносы стопов)
2. Если сова выходит по ТП, то результат будет искажен.
3. Наблюдал лично, что сделка должна была закрыться - Хай свечи был выше МА (например), а она не закрылась, а при прогоне на всех тиках - все в порядке. Видимо это особенности МТ.

Вы сами можете это посмотреть: прогоните на коротком отрезке бота по разным методам и сравните количество сделок...
#108
0ll Ну то есть даже для первого, грубого определения влияния диапазона переменных на результат, Вы считаете такой подход неправильным ?
#109

0ll Ну то есть даже для первого, грубого определения влияния диапазона переменных на результат, Вы считаете такой подход неправильным ?

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

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

Moving_Average.mq49 скач.

#111

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

#112

Спасибо, моих знаний пока на это не хватает.

#113


Спасибо, моих знаний пока на это не хватает.


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

Других-то зачем зовете за вас ваши эксперименты доделывать? Пользы от этого всем не будет никакой...

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

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

Но я серьезно, без обид - вы точно решили осваивать программирование?...
Если да, то учитесь искать информацию самостоятельно - никто не будет за вас месяц за месяцем исправлять ваши ошибки и показывать вам то, что вы должны были найти и изучить по возможности самостоятельно.
Программисты всегда одиноки - почти всегда просто некому разбираться в ваших кодах и помочь...
#114


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


А так проверьте - вроде открывает

P.S. Надеюсь Старик не забанит :d ;)

Moving_Average_2.mq415 скач.

#115



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


А так проверьте - вроде открывает

P.S. Надеюсь Старик не забанит :d ;)

Конечно нет! :d

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

спасибо, насчет программирования, вы правы.

#117

Подскажите, пожалуйста: есть два результата теста советника, один с неким включенным фильтром, другой с выключенным (сделок больше соответственно). Мне интересно посмотреть на сделки, которые были отфильтрованы. Есть ли способ как-нибудь сравнить эти два отчета, удалив все совпадающие сделки, чтобы остались только отфильтрованные? В EA Analyzer такой функции вроде нет, просто глазами отсматривать где там лишняя сделка закралась тяжеловато, а тупо html файлы сравнить тоже не получилось :-?

#118
nertok Все можно сделать через Ексель. Правда, чтобы удалять одинаковые значения, нужно писать макрос на поиск и сравнение всех сделок и удалению совпадений. Немного геморрно.
Второй вариант, если на заморачиваться сильно:
1) Копируешь данные стейтмента из терминала или отчета в ексель. Выделяешь колонку С, включаешь фильтр и выбираешь все значения, кроме s/l и t/p. Оставшиеся значения удаляешь, убираешь фильтр и у тебя остаются только необходимые сделки с s/l и t/p.
Спойлер


2) Тоже самое делаем на другом листе со вторым отчетом и получаем:
Спойлер


3) Объединяешь данные на одном листе рядом друг с другом.
4) Строишь График. Выбираешь Вставка - График - Точечный с прямыми отрезками. (Можно строить на отдельном листе, прописав графику постоянный диапазон данных для будущих работ)
Вставляешь в диапазон данных времени и баланса, получаются 2 ряда на одном графике - сравнивай на здоровье.
Спойлер


Можно поиграть с настойками прозрачности графика и т.п. Пример во вложении

Пример.xlsx22 скач.

#119
Rever27, спасибо за подробный ответ, но это не совсем то, что было нужно. Примерно то же самое EA Analyzer делать умеет (удалять все ордера без конечного результата и строить график двух отчетов сразу). Мне все же нужен был именно список уникальных фильтрующихся ордеров, чтобы глаза не ломать, высматривая на графике изменения.

Однако, предложенный пример подсказал как это сделать с помощью Excel. Если вдруг кому понадобится, я делал так:

1. В EA Analyzer объединил два отчета в портфель, удалил все пустые ордера (What If - remove zero trades), экспортировал List of trades результата в csv.
2. В Excel выделил столбец "P/L in pips" (можно и по другим делать), Главная - Условное форматирование - Правила выделения ячеек - Повторяющиеся значения. В итоге все дублирующиеся выделяются цветом.
3. Тот же столбец, Данные - Фильтр. В верхней ячейке поставил По цвету - Нет заливки.

В итоге получается именно список недублирующихся ордеров b-)
#120
nertok Тоже вариант, но будет работать только, если этот фильтр строго добавляет дополнительные сделки. Если же он как то влияет на прибыль, даже на копейку изменит доход, то отчет будет уже не корректным, т.к. останутся два значения баланса (к примеру 100,01 и 100,02), которые перемешаются с общими данными. Жаль, что МетаТрейдер комменты торговли в отчет не записывает, с ними можно было бы фильтровать по всякому.
Тут уже либо макросом, либо доп вычислениями и сравнениями в дополнительных столбцах.
Вообще, если отличный форум по Ексель _http://excelworld.ru
Там я многому научился, куча программистов, подскажут и решат практически любую задачу, как платно, так и бесплатно.

#121

Насколько на Ваш взгляд, можно доверять результатам тестов 99,90% ?
Допустим среднесрочная стратегия. Спред при тестировании, увеличен в 2 раза от стандартного, дневного. Стоп-лосы 200-400 пипсов на 5знаке. Период тестирования 10 лет и количество сделок >2000.
Другими словами все данные для подстраховки тестовых результатов вроде как соблюдены (вроде ничего не упущено).
При какой минимальной прибыльности (Profit Factor) имеет смысл ковырять стратегию ?

#122


При какой минимальной прибыльности (Profit Factor) имеет смысл ковырять стратегию ?

Одного профит фактора,имхо, мало для принятия решения. Нужно смотреть на плавность кривой эквити, глубину просадок, количество лосей подряд и т.д.
Доверять тестам можно, НО они-же на истории... Опять-же надо знать основу стратегии, чтоб предполагать как поведёт себя бот на реале...
#123


Насколько на Ваш взгляд, можно доверять результатам тестов 99,90% ?
Допустим среднесрочная стратегия. Спред при тестировании, увеличен в 2 раза от стандартного, дневного. Стоп-лосы 200-400 пипсов на 5знаке. Период тестирования 10 лет и количество сделок >2000.
Другими словами все данные для подстраховки тестовых результатов вроде как соблюдены (вроде ничего не упущено).
При какой минимальной прибыльности (Profit Factor) имеет смысл ковырять стратегию ?



Если не доверять качеству 99%, то чему тогда доверять при тестировании?
Для меня самый главный показатель сейчас Фактор восстановления: dRecoveryFactor = TesterStatistics(STAT_PROFIT)/TesterStatistics(STAT_BALANCE_DD) ?
Далее идет количество сделок и количество убыточных сделок подряд. По ним и фильтрую полученные результаты.

После проведения Форварда/Бекварда смотрю, чтобы на про этих промежутках график шел строго вверх, т.к. если хоть один из них будет в убытке - значит система не стабильна.
#124

Парни, раскжите мне - малоопытному, про Форвард/Беквард тест , что это значит? например: я скачал тики с дукаскопи с 2013 года, когда (в какой момент времени) мне оптимизировать и тестировать советник? и вообще, какой лучше период с дукаса скачивать, зависит ли период оптимизации и тестирования от алгоритма работы сова(скальпер, трендовый, и.т.д.)?

#125
romariogold тестирование/оптимизация тема субъективная, сколько людей - столько мнений. Рынок меняется и некоторые системы работают периодами. Скальпер по-идее должен работать более-менее равномерно. Имхо оптимизировать надо с января по июнь 2015 и потом смотреть как сова работает в 13-14 гг и с июля по н.в.

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025