Избранное трейдера vovak_85
Для анализа будем использовать данные 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()В результате получили:
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 с применением блиотек requests и beautiful soup, (bs4).
Привет, почти 2 месяца назад мы запустили первую версию нашей библиотеки PQR для тестирования инвестиционных идей. Основная суть: системно проверять аномалии на большой группе акций. Например, вы ведете таблицы с мультипликаторами компаний и биржевых котировок. Цель — покупать 10% недооцененных бумаг с наименьшим значение P/E и ребалансировать портфель раз в месяц.
Разделов для улучшения было так много, что Андрей (github.com/eura17) почти полностью переписал все функции. Основные изменения:
1) Переход к объектно-ориентированному программированию. Код легче читается и занимает меньше места.
2) Добавили функцию correct_matrices — она приравнивает матрицы с исходными данными к одному виду. Сортирует и удаляет отсутствующие в остальных матрицах столбцы (акции) и строки (периоды);
3) Появилась документация на readthedocs: pqr.readthedocs.io/en/latest/index.html
4) Возможность перебора параметров стратегии через grid_search. Быстрый вывод таблицы с результатами или отдельного параметра (например, Шарп) для стратегий с разными периодами наблюдения, удержания и лагом;
Умение правильно читать финансовую отчетность компаний — очень полезный навык для инвестора.
В этой статье разберем ключевые моменты, ошибки и нюансы при чтении бухгалтерских и финансовых отчетов компаний.
Какие бывают финансовые отчеты?Финансовые отчеты можно классифицировать по:
Здесь название говорит само за себя. Квартальный финансовые отчет содержит промежуточные данные, например только за 2 квартал текущего года, а годовой — данные за весь год.
В квартальных отчетах также часто присутствуют данные за весь период с начала года. Например, в отчете за 3 квартал, будут данные за 9 месяцев с начала года:
из квартального отчета компании Лукойл# подключаем либы 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")
logger.info("Слава роботам! Убить всех человеков!")