Избранное трейдера vovak_85

по

Анализ и визуализация данных в финансах — анализ ETF с использованием Python

    • 18 сентября 2021, 00:55
    • |
    • Aleks
  • Еще
С проникновением аналитики во многие сферы нашей жизни она не могла обойти стороной финансы. В этой статье рассмотрим ее применение для анализа ETF с целью их анализа, в том числе и с применением визуализиции.

1. О данных

Для анализа будем использовать данные ETF c базовой валютой USD: FXCN, FXRL, FXIT, FXUS и FXRU. Временной ряд рассмотрим за три года с 2018 по 2020 года. Само исследование проведем в Google Colaboratory.

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

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from google.colab import files
import warnings
warnings.filterwarnings("ignore")
Сначала необходимо получить данные. Есть несколько способов. Мы воспользовались — взяли их с Finam в формате csv. Дальше написал функцию для обработки полученных данных и при помощи concat свел их в один датафрейм.

def changeDF(df):
  df['date'] = pd.to_datetime(df['<DATE>'].astype(str), dayfirst=True)
  name =[x for x in globals() if globals()[x] is df][0]
  df = df.drop(['<DATE>','<TIME>', '<OPEN>', '<HIGH>', '<LOW>'], axis=1)
  df = df.set_index(['date'])
  df.columns = [name+'_cl', name + '_vol']
  return df

fxgd_change = changeDF(fxgd)
fxrl_change = changeDF(fxrl)
fxit_change = changeDF(fxit)
fxus_change = changeDF(fxus)
fxru_change = changeDF(fxru)
fxcn_change = changeDF(fxcn)

etf = pd.concat([fxgd_change, fxrl_change, fxit_change, fxus_change, fxru_change, fxcn_change], axis=1)

etf.head()
В результате получили:

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

Забираем данные по ценным бумагам с finance.yahoo.com Python класс в подарок.

 

Забираем данные по ценным бумагам с finance.yahoo.com
Простой способ на Python.

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


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

ticker_list = {'gazp': 'GAZP.ME',
               'sber': 'SBER.ME',
               'tatn': 'TATN.ME',
               'moex': 'MOEX.ME',
               'rosn': 'ROSN.ME',
               'lkoh': 'LKOH.ME',
               'yndx': 'YNDX.ME',
               'nlmk': 'NLMK.ME',
               'alrs': 'ALRS.ME',
               'rual': 'RUAL.ME',
               'magn': 'MAGN.ME'}


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

Парсинг текущего значения цены акций Python.

 
Захотелось реализовать несколько идей для быстрого расчета по позициям акций и  для этого мне нужно было чтобы скрипт на python постоянно получал обновленное значение цены. Например раз в три секунды. Искал решение и нашел похожий пример с парсингом любой информации в интернете на python с применением блиотек requests и beautiful soup, (bs4)


На примере тикера GAZP продемонстрирую как можно спарсить текущий курс (например с гугла.)

 Кому лень читать всё что я тут написал можно скопипастить полный код в конце статьи :)


Парсинг текущего значения цены акций Python.



Для начала нужно установить нужные библиотеки, в консоли пишем : 
 

pip install requests bs4
 

Теперь перейдем к коду. 

Импортируем то, что установилось. Также нам понадобится библиотека time для задержки запросов по времени.

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

Прохладный пост о системной торговле. Тестируем торговые идеи на Python бесплатно и без зауми с библиотекой PQR.

Привет, почти 2 месяца назад мы запустили первую версию нашей библиотеки PQR для тестирования инвестиционных идей. Основная суть: системно проверять аномалии на большой группе акций. Например, вы ведете таблицы с мультипликаторами компаний и биржевых котировок. Цель — покупать 10% недооцененных бумаг с наименьшим значение P/E и ребалансировать портфель раз в месяц.

Прохладный пост о системной торговле. Тестируем торговые идеи на Python бесплатно и без зауми с библиотекой PQR.


Разделов для улучшения было так много, что Андрей (github.com/eura17) почти полностью переписал все функции. Основные изменения:

1) Переход к объектно-ориентированному программированию. Код легче читается и занимает меньше места.

2) Добавили функцию correct_matrices — она приравнивает матрицы с исходными данными к одному виду. Сортирует и удаляет отсутствующие в остальных матрицах столбцы (акции) и строки (периоды);

3) Появилась документация на readthedocs: pqr.readthedocs.io/en/latest/index.html

4) Возможность перебора параметров стратегии через grid_search. Быстрый вывод таблицы с результатами или отдельного параметра (например, Шарп) для стратегий с разными периодами наблюдения, удержания и лагом;



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

Гайд для инвестора: как читать финансовую отчетность?

Умение правильно читать финансовую отчетность компаний — очень полезный навык для инвестора.

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

Какие бывают финансовые отчеты?

Финансовые отчеты можно классифицировать по:

  • Периоду: квартальный, годовой
  • Типу: бухгалтеский (РСБУ, GAAP), финансовый (МСФО, IFRS)
  • Достоверности: аудированный, неаудированный

Квартальные и годовые отчеты финансовые отчеты

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

В квартальных отчетах также часто присутствуют данные за весь период с начала года. Например, в отчете за 3 квартал, будут данные за 9 месяцев с начала года:

из квартального отчета компании Лукойлиз квартального отчета компании Лукойл

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

Дивидендные кидалы.

Решил по-памяти составить список дивидендных кидал, которые проявили себя совсем недавно, за последние года два.
И вы тоже подключайтесь.
Их два типа.
Тип А — как ЛСР.
Сначала декларируют свою дивидендную политику и какое-то время придерживаются её: мы будем платить каждый год по 78₽.
И платят.
Потом вдруг — ой, нет, мы столько не сможем, но зато будем акции выкупать.
В результате и дивы меньше, и выкупа нет.
Тип Б — как ВТБ.

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

Как слать сообщения в телеграм из питона в три строчки

Удобно когда бот шлёт сообщения в телеграм, а не в лог файл. Как это можно сделать в python? Очень просто.

Как слать сообщения в телеграм из питона в три строчки

Шаг 1. Устанавливаем либу loguru. Вам же нужно логирование в боте? Через loguru настраивается парой строчек.
Шаг 2. Устанавливаем либу notifiers которая шлёт сообщения куда угодно тоже парой строчек.
Шаг 3. Настраиваем

# подключаем либы
from loguru import logger
from notifiers.logging import NotificationHandler

# прописываем параметры телеграм бота, от чьего имени и куда слать, где их взять думаю сами разберетесь
params = {
    'token': 'dfdfsfasdfljsahdfkljhasdfklj',
    'chat_id': 'dfkdsflksdjfls;kfjas;ldkf'
}
tg_handler = NotificationHandler("telegram", defaults=params)

# добавляем в logger правило, что все логи уровня info и выше отсылаются в телегу
logger.add(tg_handler, level="INFO")

Я у себя настроил уровень info. Использую его как раз для сообщений в телегу. А вот debug сообщения в телегу уже не приходят. Нечего эфир засорять. Подробнее про уровни логов можно почитать в справке docs.python.org/3/library/logging.html#logging-levels

Шаг 4. Отправляем сообщение
logger.info("Слава роботам! Убить всех человеков!")

Если не нужны логи, можно слать просто через notifiers.

Моя история или как правильно выводить крипту если она есть.

Волею судеб, досталось мне как-то немного майнеров. Был один хороший человек, который втарил асиков на пике их стоимости, в 2017-18г.  Хоть я и предупреждал его — «если даже ты в эту тему полез — бечь оттуда надо немедля!» — но кто слушает голос разума, да еще знакомого. В итоге, крипта рухнула, чел не отбил даже 20% стоимости, асики остались лежать на пыльном складе. К времени начала роста крипты, у части майнеров хешрейта как раз хватало, чтобы отбить пожираемое электричество 1:1, а цена самого устройства снизилась до 5.000р.
И он мне их отдал на запчасти.
Не знаю зачем собственно, но «там такие крутые вентиляторы! Уууу! по 120к рублей за пару вышли, остальное в мусор». Забегая вперед — когда крипта пошла в рост, эту часть майнеров очень быстро расхватали на сайте объявлений будущие теоретические миллионеры. К сожалению заработок даже с нынешним ростом крипты на этих моделях в районе 5-10$ в месяц, но парни не теряют надежду.

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

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

Опережающий индикатор изменения ключевой ставки - ОФЗ

Пока есть некоторый перерыв в выборе вендора для автоматизации Казначейства — участники тендера готовят коммерческие предложения в формате TCO, я решил «запротоколировать» (для себя) индикатор, который показывает возможное изменение ключевой ставки. 

Важно за какое-то время понимать, что сейчас «good time» для перекредитования. 

С т.з. корпораций — хорошее время, когда рынок более-менее спокоен и ставки стабильны в районе «дна» = как это было примерно до начала февраля 2021 (ну, насколько это возможно с учетом текущего «лебедя» — COVID19). То время было удобно для выбора стратегий хеджирования кредитных портфелей относительно ключевой (биржевые ПФИ или внебиржевые zero-cost-collar).

Поскольку в работе используем 3 варианта дюрации ОФЗ — сравнение идет с ними (полугодовые, два года и 2,5).

Инструменты:


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

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