Избранное трейдера Александр
Для анализа будем использовать данные 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()В результате получили:
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()И вот результат прогнозирования:
Intel — один из старейших и самых крупных производителей полупроводников в мире. Однако 40% выручки Intel приносят 3 потребителя: Dell (15%), Lenovo (15%) и HP (10%). Все эти компании в основном ориентированы на PC и схожие продукты личного использования.
Samsung в основном производит полупроводники для собственных устройств, но также имеет долгосрочные контракты с Apple, Deutsche Telekom и Verizon — основными бенефициарами распространения 5G технологии.
TSMC — один из лидеров рынка и самый крупный контрактный производитель в мире с долей рынка в 56%. Контрактный производитель продаёт то же самое оборудование, что используют конкуренты, но позволяет выпускать его под их маркой. Поэтому в числе крупных клиентов встречаются: AMD, NVIDIA, Qualcomm и Intel. Также услугами компании пользуются MediaTek, Apple. Таким образом, TSMC выигрывает от роста всего рынка полупроводников и перспективных секторов одновременно.
В 2008 году долговой кризис привел к снижению процентных ставок до 0%, что заставило центральные банки трех стран с основной резервной валютой (во главе с ФРС) перейти от монетарной политики, ориентированной на процентные ставки (MP1), к монетарной политике, ориентированной на печатание денег и покупку финансовых активов (MP2). Центральные банки печатали деньги и покупали финансовые активы, что давало деньги в руки инвесторов, которые покупали другие финансовые активы, что вызывало рост цен на финансовые активы, что было полезно для экономики и особенно выгодно для тех, кто был достаточно богат, чтобы владеть финансовыми активами, поэтому это увеличивало разрыв в благосостоянии. Вливание большого количества денег в финансовую систему и снижение доходности облигаций обеспечило компаниям большое количество дешевого финансирования, которое они использовали для выкупа собственных акций и акций связанных компаний, которые они хотели приобрести, что еще больше повысило цены на акции. По сути, заемные деньги были бесплатными, поэтому инвестиционные и корпоративные заемщики воспользовались этим, чтобы получить их и использовать для покупок, которые привели к росту цен на акции и корпоративных прибылей. Эти деньги не просачивались пропорционально вниз, поэтому разрыв в благосостоянии и доходах продолжал расти. Как показано на диаграммах ниже, разрыв в благосостоянии и доходах сейчас самый большой с момента 1930-45 годов.