Тестирование стратегий


Про тестирование стратегий на фьючерсах

    • 26 ноября 2019, 09:29
    • |
    • _sk_
  • Еще
Просто несколько строк про свой опыт.

Тестер стратегий у меня самописный (java), что даёт неплохую производительность и возможность запрограммировать именно то, что нужно мне.

Обычная склейка фьючерсов не используется из-за нестыковок цены соседних контрактов, которые портят как расчёт прибылей/убытков, так и значения индикаторов.

Свечные данные сохраняются из терминала QUIK скриптом на QLua в ежедневном режиме отдельно по каждому инструменту. Получается, что для каждого фьючерса есть вся его история в виде csv-файлов «финамовского» OHLCV-формата. Тестер умеет загружать временные ряды из этих файлов за любой период времени.

Для каждого фьючерса прописаны 3 даты: дата экспирации, день, предшествующий экспирации, и день экспирации предыдущего фьючерса. В коде это выглядит примерно так:

SiH9("Si-3.19", "SiH9", "Si", 20190321, 20190320, 20181220),
SiM9("Si-6.19", "SiM9", "Si", 20190620, 20190619, 20190321),
SiU9("Si-9.19", "SiU9", "Si", 20190919, 20190918, 20190620),
SiZ9("Si-12.19", "SiZ9", "Si", 20191219, 20191218, 20190919),

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

( Читать дальше )

Тестирование стратегий для бинарных опционов на истории. Библиотека для С++ и пример с "граалем".

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

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

( Читать дальше )

Как я тестирую этим летом.

    • 10 июня 2019, 13:19
    • |
    • XXM
  • Еще

Поиск прибыльных торговых правил — тема многогранная. Сейчас расскажу про свой сегодняшний подход к формированию портфеля стратегий для одного инструмента на примере индекса Московской биржи.

Сперва картинка:

Грааль от 2011 года.
Ей много лет. Хранится в компьютере под именем graal_001.JPG, дата создания — 14.05.2011.

Когда-то и робота делал в VBA Excel, и Downloader (https://smart-lab.ru/blog/488966.php) и, конечно же, тестера. Последний и выдал мне тогда этот Equity, от которого мне стало как-то не по себе, что я закрыл компьютер и пару дней вообще старался не думать про этот график. Потом вернулся к программе и стал уже чуть ли не через лупу изучать стратегию. Обнаружил ошибку заглядывания вперед (look-ahead bias), выдохнул и успокоился :) Файл сохранил в назидание: если увидел ровную Equity, ищи ощибку и найди ее!

Увы, похвастаться ровным нарастающим графиком пока не могу. Хотя есть простые, но неровно растущие графики. Иногда получается даже выпрямить их в некоторой степени. Ниже — рассказ про свой метод.



( Читать дальше )

О шансах выбрать хорошую стратегию

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

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

Постановка задачи

Пусть О шансах выбрать хорошую стратегию — вероятность того, что очередная придуманная стратегия окажется плохой (нерабочей). Тогда О шансах выбрать хорошую стратегию

( Читать дальше )

Работают ли уровни Фибоначчи?

Неоднократно задавался вопросом, работают ли на самом деле классические инструменты технического анализа, кочующие из книги в книгу, из программы в программу. Например, стоит ли «караулить» отскок по тренду на уровнях 38% или 62%. Исследования ряда западных гуру, таких как Ларри Вильямс и Адам Граймс, показали, что цена останавливается на этих уровнях не чаще чем на прочих, т.е., другими словами — «уровни не работают».

Мне захотелось повторить этот эксперимент, уже на российских инструментах (мало ли, может у нас и здесь «особый путь»?). Для теста мной были выбраны следующие активы:
  • Наиболее ликвидные акции ММВБ: AFLT, ALRS, CHMF, GAZP, GMKN, IRAO, LKOH, MGNT, MOEX, MTSS, NLMK, NVTK, ROSN, SBER, SBERP, SNGS, SNGSP, TATN, VTBR
  • Фьючерсы: Si, BRENT
  • Индекс: IMOEX
Таймфрейм: дневки, период: 01.07.2008 — 31.03.2017.

Суть теста состояла в подсчете среднего размера коррекции пуллбэка, после которого цена обновила экстремум (назовем его «удавшимся пуллбэком»).

( Читать дальше )

Тестирование стратегий. На примере индекса Московской биржи.

    • 12 декабря 2017, 17:16
    • |
    • XXM
  • Еще

цены на мед

Программ для тестирования много. Как-то начал считать, дошел до цифры 33 (https://smart-lab.ru/blog/236254.php).
Но, сколько бы их ни было, все равно чего-то не хватает: то танцы с бубном со входными данными, то отсутствие какого-нибудь функционала, то проблемы с установкой самой программы ТА, «то полы кривые» и т.д.

Поэтому создал свой тестер, на c#, назвал Xtest.

Вкратце напишу про то, как он работает на примере индекса Московской биржи (ранее — индекс ММВБ).

Стратегия простая:
Покупаем, когда начался рост. Продаем либо по стопу, либо по тэйк-профиту.
Для шорта — зеркально.
Для входа в позицию выбрал простой индикатор, рассказывать про него не буду, поверьте, он банальный. Одна переменная, назвал Param1.
Выходы: будем подбирать stopLoss, takeProfit и SLforTP (stopLoss для takeProfit), они в блоке «Strategy Parameters» на вкладке Parameters.



( Читать дальше )

Где ошибка? Элементы торгового автомата: функции и критерии качества

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

Если цель торгового автомата: максимизация прироста капитала, за счёт совершения операций купли\продажи финансовых инструментов, то из этой цели следуют две функции:

  1. Совершение операций купли/продажи (для приведения фактических позиций к целевым позициям).

  2. Расчёт целевых позиций.

Таким образом, получаем два элемента: “привод” — реализует первую функцию и “советник” — реализует вторую функцию.

“Инструкцию” о том как получать целевую позицию задаёт “конфигурация” советника (т.е. конфигурация = признаки + алгоритм + параметры).

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



( Читать дальше )

Меморандум об историческом тестировании

    • 02 декабря 2016, 11:07
    • |
    • TT
  • Еще
Меморандум об историческом тестировании

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

....все тэги
2010-2020
UPDONW