Постов с тегом "python": 237

python


Как легко и просто обыграть рынок. Momentum and Portfolio Optimization.

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

И так,
  • Возмем 500 бумаг которые на данный момент находятся в индексе snp500.
  • Каждый месяц будем отбирать 10 бумаг по принципу силы импульса за последний год. Имеется ввиду процентное изменение.
  • Вторая стратегия будем отбирать 10 бумаг, но импульс будем считать как разницу цены и скользящей стредней с периодом 252.
  • Ребалансировка портфеля через каждые 22 дня.
  • Только лонг.
Протестируем за 10 лет начиная с 2005, и получим вот такой прекрасный результат: 
Как легко и просто обыграть рынок. Momentum and Portfolio Optimization.


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

Но мы же все делаем на питоне, где полно всяких полезных пакетов. Воспользуемся библиотекой PyPortfolioOpt, и добавим попробуем эти же две стратегии с импользованием следующих методов оптимизации портфелей: CLA, HRP, CVaR, DVaR


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

Python и МЫ

Python и МЫ
Python и МЫ


Данная тема развивает темы: Учим C# зная basic
Учу EXCEL за 6 минут в избранном у около 70 здешних
Учим c# windows forms зная basic
и наверняка подходит под форум Торговые роботы

Сейчас цель показать: посмотрев случайные видео уроки Python
легко и просто научиться программировать хоть что-то
и читать чужие программы и для начала проверять программы онлайн

Список программ ведёт в онлайн компилятор
QUAD rextester.com/IKMBI48397
FIBR rextester.com/FEEJ49204
SORT rextester.com/ZQSY77323
QUA rextester.com/OJN42859
+ qb64 Рюкзак 0-1 Knapsack 0-1

QUAD угадывает 1 из квадрилиона 10^15 за логарифмические шаги
и повторяет мои давнишние программы на qbasic & qb64 & C#

import random # QUAD rextester.com/IKMBI48397
h1, h2, t, f = 0, 10**15, 0, 0
c = random.randrange(0,h2) #comp
h = random.randrange(0,h2) #human
while f<1:
    print(t,c,h)
    if h<c:
        print('БОЛЬШЕ')
        a=h
        h=int((h+h2)/2)
        h1=a
    elif h>c:
        print('меньше')
        a=h
        h=int((h1+h)/2)
        h2=a
    else:
        print('угадано за', t, 'шагов')
        f=1
    t=t+1


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

Как ускорить python в 2000 раз, или как расчитывать максимальный дродаун со скоростью света :) (python, c++, cuda)

Смотрю некоторые люди интересуются темой как же скрестить питон и с++.

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



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

Моделирование стратегий на Python. С чего начинать.

    • 11 февраля 2022, 19:13
    • |
    • 3Qu
  • Еще
В предыдущей теме слегка неосторожно обмолвился, что помогу желающим начать программировать на Python. Таковых желающих уже оказалось несколько человек. И выбор — либо отвечать всем по очереди и, с вариациями, почти одно и тоже, либо написать топик, почти очевиден — написать топик и ответить всем разом. Кроме того, есть вероятность, что меня дополнят и поправят.

Итак, чтобы начать работать с Python, надо установить среду Python. Для совсем начинающих я рекомендую Anaconda. В Anaconda все в одном флаконе — большинство необходимых модулей, среды разработки, документация — вам ни с чем не придется заморачиваться, сиди работай и ни о чем не беспокойся. Из сред разработки я предпочитаю Spyder — он уже изначально входит в комплект поставки Anaconda, и вам опять ни о чем беспокоиться не надо. Многие предпочитают другие среды разработки, но это их выбор.
Более продвинутые могут установить Miniconda, что я и делаю на данном этапе. Начинать и даже продолжать со среды Python я бы не советовал, но это, опять таки, мое личное мнение. Можно я больше не буду после каждой фразы писать ИМХО — ИМХО, это очевидно, а чье же еще это мнение.)

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

Моделирование интрадей стратегии на Python. Результаты

    • 10 февраля 2022, 22:31
    • |
    • 3Qu
  • Еще
Я уже писал, что ухожу из трейдинга временно или постоянно, пока не решу вопросы  его прибыльности и окупаемости. Не хочу, знаете ли, работать и получать за работу ниже чем то, что, мне кажется приемлемым. Лучше на диване лежать.)) Об этом я подробно писал в топиках - Жив ли трейдинг? и Объявление об уходе. В общем, чтобы вернуться к трейдингу надо решить ряд описанных в топиках проблем, чем и занимаюсь — моделирую стратегии на Python в поисках приемлемого решения.
Поднял свои уже старые нереализованные модели стратегий на Python, загружаю в них различные биржевые инструменты, и смотрю, можно ли, выгодно ли, и имеет ли смысл с ними реально работать.
Итак, представляю вам первую нереализованную интрадей стратегию на Python — ее тест на 1-м фьючерсе Si-3.22 c 15.12.21 по 09.02.22 включительно.
Моделирование интрадей стратегии на Python. Результаты
по Х -номер сделки, по У — накопленная прибыль в пунктах инструмента. 1 п = 1 рубь.

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

Прямая пропаганда Python.

    • 10 февраля 2022, 17:01
    • |
    • 3Qu
  • Еще
Спрашивал многих — на чем вы моделируете и отрабатываете стратегии? Ответы — Луа, С #, Delphi, C++, Java, php и пр.  Хорошие языки, спору нет. Но хороши они для релиза. И лишь немногие при моделировании стратегий работают с Python.
Чем хорош Python?.. Это простота изучения — с нуля можно начать за считанные дни. Это громадные библиотеки — математические, машинное обучения, преобразования, работа с векторами и сложной графикой. Это простота моделирования — слабать стратегию можно за вечер.
Да, когда придет время релиза, придется все это переписывать на другой язык, но библиотеки можно оставить из Python — они оч быстрые, написаны на С++. Интерфейсы ко многим языкам имеются.
Для проверки ваших рыночных гипотез и моделирования стратегий переходите на Python. Чем могу, помогу. Но не обучаю, для этого книги есть- ничего сложного. По книгам и среде посоветую, для начала.

PS. Так, для справки, если покопаетесь в инете, то увидите, что NASA уже почти все пишет и моделирует на Python, и уже потом критические участки кода переводит на С++.

Парсинг финансовых данных на Python

Собственно вопрос в следующем: есть какие-нибудь библиотеки на Python, через которые можно относительно безгеморройно парсить данные из годовой финансовой отчётности эмитентов (подразумевается — США)? Интересует возможность относительно легко и просто получать данные по годовой выручке, операционной прибыли, обесценении и амортизации, чистой прибыли; из балансового отчёта интересует: нераспределённая прибыль, акционерный капитал на начало года, акционерный капитал на конец года.

От библиотеки требуется понимать, что я хочу получить данные именно из годового отчёта, а не за 4-й квартал отчётного финансового года. В целом, здесь не было бы проблемы, если бы абсолютно у всех эмитентов финансовый год начинался 1 января, но в США довольно много эмитентов, у которых финансовый год начинается нестандартно.

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

Я пробовал  библиотеки YahooFinancials, yfinance, api.tiingo.com.

Yfinance вроде ничего, но какая-то глючная (хотя может это просто у меня руки-крюки).



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

Пересечение скользящих средних + трейлинг стоп

В прошлых сериях:
— Простое пересечение скользящих стредних на 49 тикерах (https://smart-lab.ru/blog/730110.php)
— Пересечение + стоп в процентах от входа (https://smart-lab.ru/blog/730616.php). Стало только хуже.
— Пересечение + стоп на основе ATR (https://smart-lab.ru/blog/731254.php) Тоже стало хуже.

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

Рассмотрел четыре варианта трейлинг стопа: 1, 3, 5 и 10%.
Пересечение скользящих средних + трейлинг стоп

Топ 10 по доходности изначальной стратегии со всем вариантами трейлинг стопа

ret, max_dd — доходность и просадка простого пересечения скользящих средних
tps1...10_ret, tps1...10_max_dd — доходность и просадка разных процентов трейлин стопа

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

Софт для просмотра структуры портфеля акций

Сим творением пользуюсь сам постоянно. Буду рад, если кому-то ещё пригодится.

Характеристики

  1. Написан на Python 3, в качестве графической библиотеки используется Tkinter
  2. Цену берёт из API Мосбиржи. Цена — это цена закрытия
  3. Имеется возможность посмотреть цену и структуру портфеля на любую дату в прошлом
  4. Есть возможность импортировать структуру портфеля со Смартлаба
  5. Редактирование портфеля производится с помощь любого текстового редактора

Скриншот окна программы:
Софт для просмотра структуры портфеля акций

Попробовать можно так:
git clone https://github.com/eenden/my_case_tk.git
cd my_case_tk
python view.py
Рекомендуется создать виртуальное окружение с помощью virtualenv и использовать его. Зависимости, как обычно, в файле requirements.txt

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