Избранное трейдера Михаил Дунаев
Для анализа будем использовать данные 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()В результате получили:
В данном посте представлю методику исследований под заголовком «генераторы альфы», дабы в последствие на нее ссылаться.
«Генераторы альфы» — серия постов, в которых стратегии проверяются на предмет наличия той самой альфы – меры эффективности управляющего.
Для понимания того, как альфу посчитать, достаточно задаться только одним вопросом: от куда есть пошла доходность на фондовом рынке?
Доподлинно известно, что не бывает на фондовом рынке доходности без риска. Не всегда этот чертяга вознаграждает инвестора, иной раз может и уполовинить его депозит, да только никуда жаждущий пенсии в 35 денег на брокерском счете от риска не убежит. Для тех, кто к риску и за километр не подойдет, придумали краткосрочные государственные облигации. Все остальные могут, с определенной периодичностью получать риск-премии – дополнительную доходность поверх безрисковой ставки.
А премий этих – видимо-невидимо. Свои для каждого класса активов. Так поспешим же познакомить нетерпеливого читателя с ними.
import sqlite3 as sql from scipy.stats import logistic import math import numpy as np import numpy.random as rnd import matplotlib.pyplot as plt from sklearn.neural_network import MLPRegressor sdata =[] sql1= "select ticker, date, open, high, low, close, vol \ from Hist_1m where ticker_id=1 order by Date;" con=sql.connect('C:/Users/ubase/Documents/StockDB/StockDB21.sqlite') cur=con.cursor() cur.execute(sql1) sdata=cur.fetchall() con.commit() con.close() Ldata = len(sdata) N = 8000 # Количество сделок ld = 5 #Продолжительность сделки NNinterval = 20 # Количество входов NN # Генерация случайных чисел rng = rnd.default_rng() rm=rng.integers(0, Ldata, N ) class Candle: tr = 0 dt = 1 o = 2 h = 3 l = 4 c = 5 v = 6 cl = Candle DataC =[sdata[i][cl.c] for i in range(0,Ldata)] # sigmoid линейность до 0.5 def sigmoidnorm(x, alfa = 0.9, xmin = -1.3, xmax = 1.3): return (xmax - xmin)*((1 / (1 + math.exp(-x*2.0*alfa))) - 1.0) + xmax x = [0.002 * i - 3 for i in range(0,3000)] y = [sigmoidnorm(x[i]) for i in range(len(x))] plt.plot(x,y) plt.grid() plt.show() # формируем сделки. def DealsGenL(rm,ld): #Lm = len(rm) ix = [] x = [] pr = [] for i in range(0,N): if rm[i] + ld < Ldata and rm[i] - NNinterval - 1 > 0: delta = (sdata[rm[i]+ld][cl.c] - sdata[rm[i]][cl.c])/sdata[rm[i]+ld][cl.c]*100 x0 = [sigmoidnorm((sdata[rm[i] - j][cl.c] - sdata[rm[i]][cl.c])/sdata[rm[i]][cl.c]*100) \ for j in range(0, NNinterval)] ix.append(rm[i]) x.append(x0) pr.append(delta) return ix, x, pr Ix, X, Pr = DealsGenL(rm,ld) Ib = 0 Ie = 100 plt.plot(X) plt.legend() plt.grid() plt.show() plt.plot(Pr, label = 'Prof') plt.legend() plt.grid() plt.show() regr = MLPRegressor(hidden_layer_sizes = [30,20,15,10,5], \ max_iter=500, activation = 'tanh') regr.fit(X, Pr) Out = regr.predict(X) plt.plot(Pr, Out, '.') plt.grid() plt.show()И вот результат прогнозирования:
Спойлер – в этот раз Грааля не будет. Просто для вашего и нашего удобства мы решили вынести посты «за жизнь» в отдельную рубрику «Грааль забесплатно», чтобы они не смешивались с публикациями результатов портфеля и анализом эмитентов.
Хоть эта статья и не претендует на «граальность», надеемся, она все же будет кому-то полезна. Сегодня мы хотели бы поделиться нашим подходом к фундаментальному анализу публичных компаний. Тема, конечно, неоднократно освещалась на Смартлабе, поэтому мы решили сфокусироваться не на фундаментальном анализе вообще, а на том, как мы проводим его на регулярной основе в рамках реализации нашей инвестиционной стратегии.
Цель анализа
Фундаментальный анализ часто ассоциируется с процессом поиска недооцененных акций и «стоимостным инвестированием» по заветам Бена Грэма и Уоррента Баффета. Инвесторы анализируют компании и в случае, если «справедливая стоимость» существенно выше текущей цены, добавляют акции в портфель.
Продолжаю выписывать самые важные тезисы из книг — на очереди великолепная книга Бенджамина Грэма — Разумный инвестор, библия фундаментального анализа. Сразу предупреждаю, пост является длинным, поэтому тем, кто дочитает до конца — ✋. За один раз прочитать пост будет трудновато, но как вариант сэкономить Ваше время и прочитать краткое содержание — вполне. )
С каждой главы выцарапал наиболее интересные мысли. Поехали.
Глава 1. Инвестиции и спекуляции: выбор разумного инвестора
👉 Инвестирование — это операции, цель которых — тщательно анализируя ситуацию, сохранить вложенные средства и получить приемлимую прибыль. Операции, которые не отвечают этим требованиям — спекуляции.
👉 Разумный инвестор обязан помнить не только о возможностях, но и о рисках.
👉 Спекуляции всегда соблазнительны, это увлекательная игра, и люди погружаются в неё с головой.
👉 Независимо от ситуации на рынке часть средств следует вкладывать в облигации, часть — в акции. Соотношение от 50:50 до 25:75.
Акция, в привычном понимании, это ценная бумага, подтверждающую право держателя на владение долей в компании, на получение части прибыли, или имущества компании, в случае ее ликвидации, или реорганизации, пропорционально доле акций в акционерном капитале.
Но так ли это, в случае покупки акций Китайских компаний, обращающихся не на локальных биржах? Стоит разобраться, что на самом деле покупают инвесторы, вместо акций Alibaba, Tencent или фондов на китайские акции (FXCN, VTBE и др).
Мы продолжаем делиться с вами полезными источниками информации для принятия инвестиционных решений.
Cегодня будет представлен список более продвинутых источников, которые, на наш взгляд, содержат в себе более объективную и полезную информацию для самостоятельного анализа. Они зачастую являются первоисточниками для всех тех новостей и аналитических сводок, с которыми вы знакомитесь на различных форумах, сайтах и телеграм-каналах, в том числе и на нашем :)
Что ж, давайте пройдемся по ним:
fred.stlouisfed.org/ — онлайн-база данных, состоящая из сотен тысяч графиков экономических данных из множества национальных, международных, государственных и частных источников. Призван помочь пользователям ознакомиться со свежими данными макроэкономической ситуации (преимущественно в США) + графики содержат довольно длинный исторический горизонт (от нескольких лет до нескольких десятков лет).
www.federalreserve.gov/ — сайт Федрезерва США. В разделе News & Events — Press releases наиболее интересными могут быть публикации с заседаний Федерального комитета по операциям на открытом рынке ФРС США (FOMC). Да-да, это те самые заседания, на которых принимаются решения о будущем «печатного станка» и ставки ФРС.
Короче, данный пост тянет на один из моих принципов инвестирования (инвестиции должны быть ликвидными и не в рублях, а для принятия решений надо использовать ожидаемую выгоду), пожалуй добавлю его в список.
Какая суть?