рекомендации

Показаны сообщения с ярлыком Quantstrat. Показать все сообщения
Показаны сообщения с ярлыком Quantstrat. Показать все сообщения

суббота, 31 июля 2021 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 14. Скачивание и хранение больших объемов исторических котировок

Часть 1. Подготовительные действия.
Часть 2. Инициализация.
Часть 3. Добавление индикаторов.
Часть 4. Добавление сигналов.
Часть 5. Добавление правил.
Часть 6. Запуск тестирования стратегии на исторических данных.
Часть 7. Анализ результатов тестирования.
Часть 8. Продолжаем тестировать торговые стратегии в Quantstrat. Реверсивная стратегия.
Часть 9. Тестирование нескольких активов.
Часть 10. Сравнение результатов тестирования торговой стратегии в Quantstrat и TSLab.
Часть 11. Оптимизация параметров
Часть 12. Стоп-лоссы.

Если вы тестируете свои стратегии на длинных периодах при небольших таймфреймах (например 5 мин), то можете столкнуться с определенными проблемами.

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

Во-вторых, и это главное, при скачивании данных ММВБ из архива котировок Финама с помощью пакета rusquant максимальный период для скачивания котировок за один раз ограничен.

суббота, 8 мая 2021 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 13. Оптимизация стоп-лоссов.

Первая часть
Вторая часть
Третья часть
Четвертая часть
Пятая часть
Шестая часть
Седьмая часть
Восьмая часть
Девятая часть
Десятая часть
Одиннадцатая часть
Двенадцатая часть

 

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

 

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

понедельник, 12 апреля 2021 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 12. Стоп-лоссы.

Первая часть
Вторая часть
Третья часть
Четвертая часть
Пятая часть
Шестая часть
Седьмая часть
Восьмая часть
Девятая часть
Десятая часть
Одиннадцатая часть

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

Однако реальную торговую стратегию невозможно представить без стоп-лоссов.

Стоп-лосс (англ. stop loss — «остановить потери») — биржевая заявка, выставленная в торговом терминале трейдером с целью ограничить свои убытки при достижении ценой заранее определенного уровня. Стоп-лосс представляет собой защитный ордер. Без него при движении рынка против вашей позиции вы можете понести большие убытки, либо, при использовании плечей, обнулить свой счет.

среда, 31 марта 2021 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 11. Оптимизация параметров стратегии

Первая часть
Вторая часть
Третья часть
Четвертая часть
Пятая часть
Шестая часть
Седьмая часть
Восьмая часть
Девятая часть
Десятая часть

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

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

среда, 10 марта 2021 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 10. Сравнение результатов тестирования торговой стратегии в Quantstrat и TSLab.

Первая часть
Вторая часть
Третья часть
Четвертая часть
Пятая часть
Шестая часть
Седьмая часть
Восьмая часть
Девятая часть

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

вторник, 26 января 2021 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 8. Продолжаем тестировать торговые стратегии в Quantstrat. Реверсивная стратегия.

Первая часть
Вторая часть
Третья часть
Четвертая часть
Пятая часть
Шестая часть
Седьмая часть

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

 

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

пятница, 8 января 2021 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 7. Анализ результатов тестирования.

Первая часть
Вторая часть
Третья часть
Четвертая часть
Пятая часть
Шестая часть

 

 

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

Для этого воспользуемся функцией chart.Posn(). Она создает четкую и информативную визуализацию эффективности вашей торговой системы в ходе моделирования.

среда, 2 декабря 2020 г.

среда, 18 ноября 2020 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 5. Добавление правил.

Первая часть
Вторая часть
Третья часть
Четвертая часть

Итак, мы построили наши индикаторы  nFast  и  nSlow  и генерируемые на их базе сигналы. Далее мы должны добавить правила для этих сигналов. 

Всякий раз, когда значение нашей переменной long будет равно TRUE, мы хотим разместить рыночный ордер на открытие длинной позиции. Мы хотим купить 100 акций.

 

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

среда, 4 ноября 2020 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 4. Добавление сигналов.

Первая часть
Вторая часть
Третья часть

Сигналы представляют собой значения индикаторов, которые удовлетворяют нашим условиям входа в позицию. Например, в этой стратегии мы хотим получить сигнал на покупку, когда  nFast  больше или равно  nSlow . Мы также хотим получить другой сигнал, на продажу, когда  nFast  меньше, чем  nSlow . Мы назовем эти сигналы  long  и  short  соответственно. Код R:

среда, 28 октября 2020 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 3. Добавление индикаторов.

Первая часть
Вторая часть

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

Здесь в дело вступает библиотека TTR, сокращение от Technical Trading Rules.  Для расчета простой скользящей средней используется функция SMA().  Это делается с помощью функции add.indicator, которая добавляет наши индикаторы в объект стратегии:

четверг, 15 октября 2020 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 2. Инициализация.

Первая часть

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

Процесс тестирования стратегии в Quantstrat можно представить в общем виде следующим образом:

 

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

Второй этап - добавление индикаторов, торговых сигналов и условий открытия/закрытия позиций.

четверг, 8 октября 2020 г.

Тестирование торговых стратегий на исторических данных с помощью Quantstrat. Часть 1. Подготовительные действия.

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


1. Что такое Quantstrat?


Quantstrat предоставляет общую инфраструктуру для моделирования и тестирования количественных стратегий на основе сигналов. Это уровень абстракции высокого уровня (построенный на базе xts, FinancialInstrument, blotter и т. д.), который позволяет создавать и тестировать стратегии в несколько строк кода.


Ключевые особенности:

- поддерживает стратегии, которые включают в себя индикаторы, сигналы и правила;

- позволяет применять стратегии к портфелям с несколькими активами;

- поддерживает рыночные, лимитные, стоп-лимитные и стоп-трейлинговые ордера;

- поддерживает определение размера ордера и оптимизацию параметров.