Избранное трейдера Роман Давыдов

по

Python. Делаем тестер стратегий и... зарабатываем на случайном блуждании.

    • 19 июня 2020, 16:32
    • |
    • 3Qu
  • Еще

Если вам кто нибудь скажет, что на случайном блуждании (СБ) нельзя зарабатывать, бросьте в него камень. Как говорил Паниковский — это жалкие ничтожные люди. На СБ можно зарабатывать с результатами не хуже, чем на реальном рынке. У СБ, по сравнению с реальным рынком, только один недостаток — за игры с СБ никто деньги платить не будет.
А если бы платили? Никто бы ничего не заметил. По прежнему 95% СБ-трейдеров сливало бы депозиты, а 5% регулярно выигрывало и считало бы себя Гуру. По прежнему на графики наносились бы каббалистические знаки и индикаторы, угадывались бы направления движения, каналы, и линии поддержки/сопротивления. Все так же начинающие трейдеры искали Учителя для обучения, а аналитики предсказывали будущее. И, ровным счетом, абсолютно ничего бы не поменялось. Может только АГ заметил бы подвох, но тоже не сразу, а только через несколько месяцев, а, может, и через год-другой. Но, легко сделать, чтобы и АГ остался в неведении.)

Однако, прежде чем играть на СБ, нам необходима стратегия и тестер. Ими мы и займемся.
Для начала стратегия: нам нужны три функции
— одна для пошагового слежения за рыночными котировками и определения момента входа в сделку — DealEntryAnalysis(i) и пусть на ее выходе будет: 0-если сделки нет, 1 — необходим вход в лонг, и -1 — необходим вход в шорт. i — номер отсчета массива котировок.
— вторая для сопровождения сделки лонг — DealControlL(i), отвечающая за контроль и закрытие сделки.
— и третья, для сопровождения сделки шорт — DealControlS(i).
Теперь у нас все готово для разработки тестера стратегий, а это всего лишь цикл while() последовательно перебирающий котировки.
Вот наша стратегия уже в тестере:

while i < Ie:
    deal_type = DealEntryAnalysis(i)
    if deal_type == 1:
        j, rep = DealControlL(i)
        deals_report.append(rep)
        i = j+1
        continue
    elif deal_type == -1:
        j, rep = DealControlS(i)
        deals_report.append(rep)
        i = j+1
        continue
    i = i+1


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

Где брать идеи для алго-стратегий? Туториал по академическим ресерчам для начинающих + полезные ссылки

Привет, сегодня вместо традиционного бэктеста разберем площадки, где можно подсмотреть идеи для торговых стратегий.  Навеяно постом Eugene Logunov о литературе для алго-трейдера https://smart-lab.ru/blog/627444.php Теперь у нас есть методики, но где взять идеи? :)

Наши предыдущие бэктесты хоть и адаптированы под Россию и имеют отличия в реализации – все равно основываются на ранее выявленных закономерностях в США/Европе. Сразу скажу, что речь пойдет об исследованиях в открытом доступе. Если на работе/в университете есть доступ к EBSCO или Science Direct, то вы и сами знаете, где все посмотреть.

Зачем вообще читать академические ресерчи, если фонд LTCM показал, что кол-во цитирований и премий спорно соотносится с успехом на рынке?

Хорошие ресерчи дают базовые идеи о том, что и почему работало в прошлом, на каких стадиях и почему перестало. Да, в них есть реализация или дизайн исполнения, но обычно он сырой и его всегда можно поменять, сохранив базовую идею. В отличие от дискуссий в рунете, очень сложно опубликовать что-то без пруфов, а проверка устойчивости не ограничивается t-статистикой > 3.  Сам текст хорошо структурирован, методика либо объясняется полностью, либо ссылается на такой текст. Авторы в основном исследователи, которые выполняя свою работу попутно дают подсказки практикам. Но встречаются и практики, например, аналитики хедж фонда AQR сейчас главные поставщики контента по факторным стратегиям или ученые Dimson и Ibbotson, которые параллельно пишут исследования для инвестиционных банков. Если желание почитать что-то заумное осталось, то сформулируйте идею/биржевую аномалию, которую хотите проверить (например, покупка акций с наибольшими дивидендами) и возвращайтесь к этому тексту.



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

Аудитор из большой четверки сможет многому научить

Всем, привет!

В первую очередь, наверное, нужно рассказать немного о себе.
Я менеджер отдела аудита в большой четверке (аудиторско-консалтинговые фирмы EY, KPMG, PWC, Deloitte, ссылка на краткое описание компаний https://ru.m.wikipedia.org/wiki/Большая_четвёрка_(аудит) ). Работаю в этой отрасли более 7 лет.

Как и все менеджеры сдал экзамены  (кто не знает, это международный сертификат в сфере финансов и бухгалтерского учёта, также ссылка с подробным описанием https://ru.m.wikipedia.org/wiki/ACCA ). Также я имею сертификат ФСФР 1.0 и российский сертификат аудиторов — тот ещё геморрой, процент сдающих в районе 20%, ссылка на описание https://eak-rus.ru/ ).



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

Минимальный набор аналитика для бэктеста

    • 16 июня 2020, 20:56
    • |
    • Grin
  • Еще
Вот тут написано, к чему это вообще и содержание

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

Отдельной ремаркой, немаловажной для данного сайта, все инструменты описанные ниже совершенно open source, то есть даром! 
Используемый инструментарий:

Python 3.8 + Pycharm + anaconda + git(необязательно)

В комменты накидали еще инструментов, грех упускать случай.
Что еще используют пользователи smart-lab:
Язык R
jupyter notebook
Collab google


Если вы хотя бы немного умеете в программирование, не читайте дальше, вам не понравится.

Я предупреждал. 


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

История одной опционной сделки.

        Изучая англоязычные блоги в интернете, я наткнулся на интересный способ регулировки опционной стратегии Broken Butterfly. Если интересно посмотреть исходник, то это было в видео-блоге Option Alpha. Так вот, благодаря этим регулировкам, можно получить бабочку, которая при любом движении рынка будет приносить прибыль. Размер прибыли конечно разный. Ну и я конечно загорелся сотворить тоже самое на нашем российском рынке.
        28 мая решил открыть позицию на опционах РТС, к сожалению, на вечерке вошел не совсем по оптимальным ценам. График позиции прилагается, единственно скрин был сделан не во время покупки.
История одной опционной сделки.

         Как вы видите из позиции, я рассчитывал на небольшую коррекцию, либо на боковик. Но рынок пошел выше. В голове начали возникать мысли закрыть позу и открыть новую, но с центральным страйком 130000. Потом собственно пришло долгожданное снижение, и я перестроил свою позицию в безубыточную. Я продал 130-ые колы и купил 127500 колы. Позиция стала выглядеть так:
История одной опционной сделки.



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

Зарождение личинки инвестиционного аналитика, без регистрации и смс!

    • 14 июня 2020, 13:11
    • |
    • Grin
  • Еще
День добрый! 
Предлагаю вам понаблюдать в прямом эфире процесс зарождения и танцев по граблям начинающего автоматизатора анализа ценных бумаг. 

Немного про проект:

Написание собственного пошагового бэктестинга инвестиционных идей на python. 

Это попытка развития под свои нужды кода из вот этой статьи:

Репозиторий вот тут

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

Если вы все еще читаете, у вас наверняка возникли вопросы:

Кто ты вообще такой?
В анамнезе:
— профессия и профильное образование бизнес / системный аналитик
— куски знаний про инвестиции набранные на курсах про инвестиции курсеры 
— куски знаний по python набранные на курсах по машинному обучению той же курсеры и всякие 

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

Чем меньше риск, тем больше доходность. Fact and fiction о риске и доходности на Московской бирже. Большой бэктест

Привет, выражение «чем выше риск, тем выше доходность» внешне выглядит логично, но не находит подтверждения на практике.  По акциям США и Европы на длинных горизонтах уже доказано, что акции с наименьшим риском приносят больше доходности, чем высокорискованные даже без поправки на риск. В качестве меры риска принято использовать рыночную бету, но сегодня мы будем тестировать волатильность (стандартное отклонение) дневной доходности, а бету оставим для будущих экспериментов.

За основу мы возьмем работу Нэда Бейкера и Роберта Хогена «Low Risk Stocks Outperform within All Observable Markets of the World» (2012). Авторы просто посчитали волатильность для каждой акции за последние 24 месяца, сформировали по 2 портфеля из 10% акций с наибольшей и наименьшей волой и повторяли это каждый месяц. Да, это академическая работа, но она написана не теоретиками и носит важные практические выводы. Очень рекомендую почитать в оригинале. Вот, что получили авторы по рынкам развитых стран:
Чем меньше риск, тем больше доходность. Fact and fiction о риске и доходности на Московской бирже. Большой бэктест



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

Пошел сливать бабосики на бинарках

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

Поковырявшись в 264 стратегиях я выяснил, что хорошо себя ведут стратегии, которые были изобретены еще 2 года назад. Ну то есть сильные закономерности существуют до сих пор и уверенно себя чувствуют. С тех пор конечно что-то было улучшено, но сами закономерности остались те же. Даже обидно, мог бы раньше запуститься.

В итоге решил убрать стратегии, которые работают сейчас не очень, и картина не сильно поменялась в плане прибыли. Зато повысилась стабильность и повысился винрейт.

Если торговать с коэффициентом ослабления критерия Келли 0.2 и процентами выплат 82% у одного брокера и 80% у другого, получается неплохой результат. Винрейт у сигналов разный, но в среднем он 59%. Вот результат теста с начала 2020 года по 26.05.2020. Т.е. этот период вообще никак не участвовал в настройке стратегий. 

Пошел сливать бабосики на бинарках



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

Тест "Грааля который долго искали" с Python и Pandas

В статье "Грааль, которые вы так долго искали" даётся алгоритм торговли:
  • если клоуз больше предыдущего клоуза, то покупаем (лонг) на закрытии сессии,
  • если клоуз меньше предыдущего клоуза, то продаем (шорт) на закрытии сессии.
Работаем на месячном таймфрейме.

Сейчас изучаю Python и Pandas и хотелось применить знания на каких-то реальных данных. Вот случай подвернулся. 

Выводы

Тестировал на данных по Газпрому (с 3.03.2010 по 20.05.2020) и Сбербанку пр. (с 21.11.2011 по 20.05.2020).
Отношение текущей стоимости портфеля к общей вложенной сумме: у Газпрома — 1,27, у Сбербанка пр. — 2,08.

Предварительные замечания 

Собрал данные для Сбербанк пр из Yahoo Finance (дневки). 
Написал код Pandas + Python. Это пока всё, чем владею на текущих момент, и то владею так себе. 
Pandas для преобразования таблицы с Yahoo Finance и обрезки ненужных столбцов. Python для прогонки алгоритма. 
Дивиденды учитывались в том случае, если на дату отсечки в портфеле были акции, если акций в портфеле не было, то дивиденды не учитывались. Дивиденды учитывались с учётом налога 13%.

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

КВИК-->Lua-->Python. Трансляция данных из КВИКа в Питон в реальном времени

Всех с пятницей — самоизолятницей!
Представляю общественности Python-сервер (в 9 строк кода) для получения данных из КВИКа в Питон через луа-скрипт в режиме реального времени.
Для примера приведу получение тиковых данных по SIM0.
Нам понадобятся следующие ингредиенты.
1. Понятное дело КВИК, версии ниже 8 или 8.5.2 и выше.
2. Питон Jupyter Notebook (Anaconda 3)
3. Луа-скрипт, взятый из Jatotrader (в нем буквально изменено пару строк)
Как работает сервер можно посмотреть в этом видео (1 мин. 38 сек.) Ну и по правилам хорошего тона, естественно сам текст ниже.


( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

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