Постов с тегом "Бэктестинг": 140

Бэктестинг


Бэктестинг: алгоритм на основе MACD

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

Все будет тестироваться на Quantopian (см. сюда), писать код будем на Python. Рассмотрим следующие стратегии:

  • Что надо знать и как не надо делать.
  • Как есть: гистограмма, линия MACD, сигнальная.
  • Добавим стоп-лосс.
  • Торгуем в двух направлениях.
  • Отфильтруем боковики и волатильность.


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

Как проверить инвестиционный портфель?

 Как проверить инвестиционный портфель?

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



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

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

Интересуют и готовые решения (типа метатрейдера...) и самописные продукты (тогда интересна среда разработки, C#, python ...). Если будет достаточно ответов, то готов подбить сводные итоги предпочтений. Познаем общество в котором живём!

Бэктестинг для новичков: Python + Quantopian

Люблю простоту и потому не могу не поделиться с вами ссылкой на пост, который сложное делает простым. Если словосочетание «бэктестинг торговых систем» для вас не пустой звук, то он однозначно вам будет полезен. Его автор наглядно и просто (проверено на себе, как блондинке) рассказывает о том, как самому протестировать стратегию торговли с помощью Python и Quantopian. Интересно? Тогда вот вам ссылка на пост на Smart-Lab. Захотите узнать больше, идите на Quantrum.me, там есть то, чего нет на Cмартлабе.

Цицерон о ТА и бектестинге.

    • 23 января 2017, 01:11
    • |
    • Kapral
  • Еще

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

Цицерон


Бэктестинг 3 популярных индикаторов + исходный код на Python

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



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

Бэктестинг: с чего начать?

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

Quantopian — богатый инструментарий для бэктестинга различных стратегий с помощью Python. На сайте имеются бесплатные данные: минутные тики⏳ с 2002 года, фундаментал, календарь отчетности, настроение по новостям и т.д.

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


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


Эргодическая гипотеза и бектестинг

    • 13 декабря 2016, 10:57
    • |
    • Kapral
  • Еще

Братья, Сестры!

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

«Статистические свойства результата 100 подбрасываний одной и той же монеты совпадают со статистическими свойствами опыта, в которым мы подбрасываем 100 монет по одному разу». Как я понимаю, вера в необходимость бектестинга держится именно на этом? Просьба поправить мои ошибки и объяснить.

 

P.S.Прав Решпект. Всегда прав. Не надо читать книгу Тимофея на ночь. Особенно 279 страницу)


Buy High стратегия

Тест стратегии из поста http://smart-lab.ru/blog/343965.php 

Формализовал стратегию так, как я ее понял. 

1. Входа на следующий день, после обновления исторического хая. Тут есть неточности — историю брал с 2005 года. Не факт, что all time high был на этом промежутке. 
2. Предыдущее обновление хая было больше 90 дней назад и менее чем 200 дней назад. 
3. Примерно 500 ликвидных бумаг с NYSE/NASDAQ/AMEX. Без учета делистинга, без учета комиссий, без учета платы за плечо. Вроде бы без дивидендов (не уверен), дейли дата взята с Google Finance. 

4. Стоп в примере — 3%. Тейк — 90%. Можно взять больше стоп, результаты не критично меняются. 
5. Вход фиксированным BP на позицию. (взял 1000 на позу)

Код Multicharts.Net 

using System;
using System.Drawing;
using System.Linq;
using PowerLanguage.Function;
using ATCenterProxy.interop;

namespace PowerLanguage.Strategy {
        public class _INTEST_by_high_daily : SignalObject {
                public _INTEST_by_high_daily(object _ctx):base(_ctx){}
                private IOrderMarket buy_order;
                private IOrderMarket sell_order;
                double previous_high;
                double previous_high_low_range;
                double all_time_high;
                protected override void Create() 
                {
                        // create variable objects, function objects, order objects etc.
                        buy_order = OrderCreator.MarketNextBar(new SOrderParameters(Contracts.Default, EOrderAction.Buy));
                        sell_order = OrderCreator.MarketNextBar(new SOrderParameters(Contracts.Default, EOrderAction.Sell));
                }
                protected override void StartCalc() {
                        all_time_high =0;
                }
                protected override void CalcBar()
                {
                        // strategy logic 
                        if (Bars.High[0]>previous_high && previous_high_low_range<previous_high && previous_high == all_time_high)
                        {
                            buy_order.Send();
                        }
                        
                        if (StrategyInfo.MarketPosition>0 && Bars.Close[0]>StrategyInfo.AvgEntryPrice*1.9)
                                sell_order.Send();
                        
                        previous_high = Bars.High.Highest(200);
                        previous_high_low_range = Bars.High.Highest(90);
                        if (Bars.High[0]> all_time_high) all_time_high = Bars.High[0];
                        
                }
        }
}


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

....все тэги
UPDONW
Новый дизайн